diff --git a/.gitignore b/.gitignore
index 9277c4b..a68af48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,8 +23,8 @@ preview/
# Early PixelLab experiment outputs (the library build itself lives in pixellab_src/, parts_pl*/)
pixellab_out/
-# Cross-process API job lock (pixellab_api.py)
-pixellab_src/.api.lock
+# Cross-process API job slots (pixellab_api.py)
+pixellab_src/.api_slots/
# Scratch reports
size_changes.txt
diff --git a/README.md b/README.md
index 8b2a0ef..079a5cd 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ There are two part libraries:
pip install -r requirements.txt
```
-You only need an [OpenRouter](https://openrouter.ai) API key if you want the type picked automatically. Skip the key by passing `--type`.
+You only need an [OpenRouter](https://openrouter.ai) API key if you want the type picked automatically. Set `OPENROUTER_API_KEY` in the environment or in `.env`, or skip the key by passing `--type`.
## Generate a sprite
@@ -83,7 +83,11 @@ python pixellab_library.py cost # spend so far (pixella
python validate_parts.py --library pixellab --sample 3000
```
-To change a part, edit its spec (new `seed` or wording), then run `generate
--parts --force` and `extract `. Regenerating a base deletes that body's old edits.
+To change a part, edit its spec (new `seed` or wording), then run `generate --parts --force` and `extract `. Regenerating a base deletes that body's old edits and variants.
+
+A new body needs no parts of its own: for each slot without a part, `generate` makes a probe edit (a standard horn pair, wing pair or tail) that is used only to find where that slot attaches. A body's `variants` are edits of its base ("make it chubbier with crimson stripes"): the same creature idea with a different look. They share the parent's attach points and tags. `generate` runs up to 10 PixelLab jobs at once, shared between all processes. `preview ` writes one review sheet per family (base, attach points, a test fit with library parts, every variant), and `preview --sheet out.png ` shows many raw bases on one image.
+
+`generate` stops before starting new work once the month's included PixelLab generations drop to 800 (`PIXELLAB_RESERVE` changes the floor), so a big run can't use up the whole monthly allowance.
## Classic library
diff --git a/business_pokemon_type.py b/business_pokemon_type.py
index 92e3a75..234ffce 100644
--- a/business_pokemon_type.py
+++ b/business_pokemon_type.py
@@ -1,11 +1,24 @@
import os
import sys
import json
+from pathlib import Path
+
import requests
-OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY")
+
+def _key_from_env_file(name):
+ env = Path(__file__).with_name(".env")
+ if env.exists():
+ for line in env.read_text().splitlines():
+ key, sep, value = line.strip().partition("=")
+ if sep and key.strip() == name:
+ return value.strip().strip("'\"")
+ return None
+
+
+OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY") or _key_from_env_file("OPENROUTER_API_KEY")
if not OPENROUTER_API_KEY:
- sys.exit("Set OPENROUTER_API_KEY first: export OPENROUTER_API_KEY='sk-or-v1-...'")
+ sys.exit("Set OPENROUTER_API_KEY first: export it, or put OPENROUTER_API_KEY=sk-or-v1-... in .env")
# All 15 Gen 1 types, tuned for home service businesses. Each trade is listed under
# exactly one type, and Rock is limited to stone/roofing work so "construction-y"
diff --git a/parts_pl/back/pl_backpack.png b/parts_pl/back/pl_backpack.png
new file mode 100644
index 0000000..4017c9e
Binary files /dev/null and b/parts_pl/back/pl_backpack.png differ
diff --git a/parts_pl/back/pl_barbell.png b/parts_pl/back/pl_barbell.png
new file mode 100644
index 0000000..c198db9
Binary files /dev/null and b/parts_pl/back/pl_barbell.png differ
diff --git a/parts_pl/back/pl_bedroll.png b/parts_pl/back/pl_bedroll.png
new file mode 100644
index 0000000..9ee6538
Binary files /dev/null and b/parts_pl/back/pl_bedroll.png differ
diff --git a/parts_pl/back/pl_bell_collar.png b/parts_pl/back/pl_bell_collar.png
new file mode 100644
index 0000000..6e3435d
Binary files /dev/null and b/parts_pl/back/pl_bell_collar.png differ
diff --git a/parts_pl/back/pl_bindle.png b/parts_pl/back/pl_bindle.png
new file mode 100644
index 0000000..3fd9d6a
Binary files /dev/null and b/parts_pl/back/pl_bindle.png differ
diff --git a/parts_pl/back/pl_bow_gift.png b/parts_pl/back/pl_bow_gift.png
new file mode 100644
index 0000000..eba1bdd
Binary files /dev/null and b/parts_pl/back/pl_bow_gift.png differ
diff --git a/parts_pl/back/pl_brambles_back.png b/parts_pl/back/pl_brambles_back.png
new file mode 100644
index 0000000..6d4089c
Binary files /dev/null and b/parts_pl/back/pl_brambles_back.png differ
diff --git a/parts_pl/back/pl_cactus_back.png b/parts_pl/back/pl_cactus_back.png
new file mode 100644
index 0000000..e534a7e
Binary files /dev/null and b/parts_pl/back/pl_cactus_back.png differ
diff --git a/parts_pl/back/pl_coffin_back.png b/parts_pl/back/pl_coffin_back.png
new file mode 100644
index 0000000..b670899
Binary files /dev/null and b/parts_pl/back/pl_coffin_back.png differ
diff --git a/parts_pl/back/pl_crescent_moon.png b/parts_pl/back/pl_crescent_moon.png
new file mode 100644
index 0000000..b4c0d8c
Binary files /dev/null and b/parts_pl/back/pl_crescent_moon.png differ
diff --git a/parts_pl/back/pl_drum_back.png b/parts_pl/back/pl_drum_back.png
new file mode 100644
index 0000000..47a5b4e
Binary files /dev/null and b/parts_pl/back/pl_drum_back.png differ
diff --git a/parts_pl/back/pl_fan_folding.png b/parts_pl/back/pl_fan_folding.png
new file mode 100644
index 0000000..82bf326
Binary files /dev/null and b/parts_pl/back/pl_fan_folding.png differ
diff --git a/parts_pl/back/pl_feather_tuft_back.png b/parts_pl/back/pl_feather_tuft_back.png
new file mode 100644
index 0000000..267c4f2
Binary files /dev/null and b/parts_pl/back/pl_feather_tuft_back.png differ
diff --git a/parts_pl/back/pl_flower_lei.png b/parts_pl/back/pl_flower_lei.png
new file mode 100644
index 0000000..152a796
Binary files /dev/null and b/parts_pl/back/pl_flower_lei.png differ
diff --git a/parts_pl/back/pl_gears.png b/parts_pl/back/pl_gears.png
new file mode 100644
index 0000000..181b608
Binary files /dev/null and b/parts_pl/back/pl_gears.png differ
diff --git a/parts_pl/back/pl_gloves_slung.png b/parts_pl/back/pl_gloves_slung.png
new file mode 100644
index 0000000..a9eb8f7
Binary files /dev/null and b/parts_pl/back/pl_gloves_slung.png differ
diff --git a/parts_pl/back/pl_honeycomb.png b/parts_pl/back/pl_honeycomb.png
new file mode 100644
index 0000000..8cec1b6
Binary files /dev/null and b/parts_pl/back/pl_honeycomb.png differ
diff --git a/parts_pl/back/pl_lantern_pack.png b/parts_pl/back/pl_lantern_pack.png
new file mode 100644
index 0000000..a55169a
Binary files /dev/null and b/parts_pl/back/pl_lantern_pack.png differ
diff --git a/parts_pl/back/pl_moss_mantle.png b/parts_pl/back/pl_moss_mantle.png
new file mode 100644
index 0000000..0785762
Binary files /dev/null and b/parts_pl/back/pl_moss_mantle.png differ
diff --git a/parts_pl/back/pl_parasol.png b/parts_pl/back/pl_parasol.png
new file mode 100644
index 0000000..dfde76d
Binary files /dev/null and b/parts_pl/back/pl_parasol.png differ
diff --git a/parts_pl/back/pl_pennant.png b/parts_pl/back/pl_pennant.png
new file mode 100644
index 0000000..0ff85bd
Binary files /dev/null and b/parts_pl/back/pl_pennant.png differ
diff --git a/parts_pl/back/pl_pinwheel.png b/parts_pl/back/pl_pinwheel.png
new file mode 100644
index 0000000..e964f80
Binary files /dev/null and b/parts_pl/back/pl_pinwheel.png differ
diff --git a/parts_pl/back/pl_potion_flasks.png b/parts_pl/back/pl_potion_flasks.png
new file mode 100644
index 0000000..f97a8cb
Binary files /dev/null and b/parts_pl/back/pl_potion_flasks.png differ
diff --git a/parts_pl/back/pl_quills_gold.png b/parts_pl/back/pl_quills_gold.png
new file mode 100644
index 0000000..bbb9307
Binary files /dev/null and b/parts_pl/back/pl_quills_gold.png differ
diff --git a/parts_pl/back/pl_ruff_feather.png b/parts_pl/back/pl_ruff_feather.png
new file mode 100644
index 0000000..dfea503
Binary files /dev/null and b/parts_pl/back/pl_ruff_feather.png differ
diff --git a/parts_pl/back/pl_saddle_riding.png b/parts_pl/back/pl_saddle_riding.png
new file mode 100644
index 0000000..4b3d1ad
Binary files /dev/null and b/parts_pl/back/pl_saddle_riding.png differ
diff --git a/parts_pl/back/pl_satchel.png b/parts_pl/back/pl_satchel.png
new file mode 100644
index 0000000..f695583
Binary files /dev/null and b/parts_pl/back/pl_satchel.png differ
diff --git a/parts_pl/back/pl_scallop_shell.png b/parts_pl/back/pl_scallop_shell.png
new file mode 100644
index 0000000..f53f778
Binary files /dev/null and b/parts_pl/back/pl_scallop_shell.png differ
diff --git a/parts_pl/back/pl_scuba_tank.png b/parts_pl/back/pl_scuba_tank.png
new file mode 100644
index 0000000..7b98635
Binary files /dev/null and b/parts_pl/back/pl_scuba_tank.png differ
diff --git a/parts_pl/back/pl_shell_hex.png b/parts_pl/back/pl_shell_hex.png
new file mode 100644
index 0000000..30ae89c
Binary files /dev/null and b/parts_pl/back/pl_shell_hex.png differ
diff --git a/parts_pl/back/pl_shoulder_pads.png b/parts_pl/back/pl_shoulder_pads.png
new file mode 100644
index 0000000..f5410c4
Binary files /dev/null and b/parts_pl/back/pl_shoulder_pads.png differ
diff --git a/parts_pl/back/pl_smokestack.png b/parts_pl/back/pl_smokestack.png
new file mode 100644
index 0000000..bd14b22
Binary files /dev/null and b/parts_pl/back/pl_smokestack.png differ
diff --git a/parts_pl/back/pl_snowflake_back.png b/parts_pl/back/pl_snowflake_back.png
new file mode 100644
index 0000000..dda21f8
Binary files /dev/null and b/parts_pl/back/pl_snowflake_back.png differ
diff --git a/parts_pl/back/pl_solar_panels.png b/parts_pl/back/pl_solar_panels.png
new file mode 100644
index 0000000..1a2ccbc
Binary files /dev/null and b/parts_pl/back/pl_solar_panels.png differ
diff --git a/parts_pl/back/pl_sprouts_back.png b/parts_pl/back/pl_sprouts_back.png
new file mode 100644
index 0000000..e5df7c1
Binary files /dev/null and b/parts_pl/back/pl_sprouts_back.png differ
diff --git a/parts_pl/back/pl_swords_crossed.png b/parts_pl/back/pl_swords_crossed.png
new file mode 100644
index 0000000..8dcb364
Binary files /dev/null and b/parts_pl/back/pl_swords_crossed.png differ
diff --git a/parts_pl/back/pl_tufts_shoulder.png b/parts_pl/back/pl_tufts_shoulder.png
new file mode 100644
index 0000000..dbcd465
Binary files /dev/null and b/parts_pl/back/pl_tufts_shoulder.png differ
diff --git a/parts_pl/back/pl_windup_key.png b/parts_pl/back/pl_windup_key.png
new file mode 100644
index 0000000..0946cb5
Binary files /dev/null and b/parts_pl/back/pl_windup_key.png differ
diff --git a/parts_pl/back/pl_wings_butterfly.png b/parts_pl/back/pl_wings_butterfly.png
new file mode 100644
index 0000000..1bf1e85
Binary files /dev/null and b/parts_pl/back/pl_wings_butterfly.png differ
diff --git a/parts_pl/back/pl_wings_fairy.png b/parts_pl/back/pl_wings_fairy.png
new file mode 100644
index 0000000..e0e8674
Binary files /dev/null and b/parts_pl/back/pl_wings_fairy.png differ
diff --git a/parts_pl/back/pl_wings_ice.png b/parts_pl/back/pl_wings_ice.png
new file mode 100644
index 0000000..072cb6f
Binary files /dev/null and b/parts_pl/back/pl_wings_ice.png differ
diff --git a/parts_pl/back/pl_wings_leaf.png b/parts_pl/back/pl_wings_leaf.png
new file mode 100644
index 0000000..b3552a7
Binary files /dev/null and b/parts_pl/back/pl_wings_leaf.png differ
diff --git a/parts_pl/back/pl_wings_origami.png b/parts_pl/back/pl_wings_origami.png
new file mode 100644
index 0000000..675a307
Binary files /dev/null and b/parts_pl/back/pl_wings_origami.png differ
diff --git a/parts_pl/back/pl_wings_tattered.png b/parts_pl/back/pl_wings_tattered.png
new file mode 100644
index 0000000..452a391
Binary files /dev/null and b/parts_pl/back/pl_wings_tattered.png differ
diff --git a/parts_pl/body/pl_aardvark.png b/parts_pl/body/pl_aardvark.png
new file mode 100644
index 0000000..0e820b6
Binary files /dev/null and b/parts_pl/body/pl_aardvark.png differ
diff --git a/parts_pl/body/pl_aardvark_b.png b/parts_pl/body/pl_aardvark_b.png
new file mode 100644
index 0000000..711313e
Binary files /dev/null and b/parts_pl/body/pl_aardvark_b.png differ
diff --git a/parts_pl/body/pl_aardvark_c.png b/parts_pl/body/pl_aardvark_c.png
new file mode 100644
index 0000000..a821374
Binary files /dev/null and b/parts_pl/body/pl_aardvark_c.png differ
diff --git a/parts_pl/body/pl_alien.png b/parts_pl/body/pl_alien.png
new file mode 100644
index 0000000..d58420c
Binary files /dev/null and b/parts_pl/body/pl_alien.png differ
diff --git a/parts_pl/body/pl_alien_b.png b/parts_pl/body/pl_alien_b.png
new file mode 100644
index 0000000..99b09ab
Binary files /dev/null and b/parts_pl/body/pl_alien_b.png differ
diff --git a/parts_pl/body/pl_alien_c.png b/parts_pl/body/pl_alien_c.png
new file mode 100644
index 0000000..53b785e
Binary files /dev/null and b/parts_pl/body/pl_alien_c.png differ
diff --git a/parts_pl/body/pl_alien_d.png b/parts_pl/body/pl_alien_d.png
new file mode 100644
index 0000000..c1fa320
Binary files /dev/null and b/parts_pl/body/pl_alien_d.png differ
diff --git a/parts_pl/body/pl_alpaca.png b/parts_pl/body/pl_alpaca.png
new file mode 100644
index 0000000..45b076c
Binary files /dev/null and b/parts_pl/body/pl_alpaca.png differ
diff --git a/parts_pl/body/pl_alpaca_b.png b/parts_pl/body/pl_alpaca_b.png
new file mode 100644
index 0000000..fe5ac1f
Binary files /dev/null and b/parts_pl/body/pl_alpaca_b.png differ
diff --git a/parts_pl/body/pl_alpaca_c.png b/parts_pl/body/pl_alpaca_c.png
new file mode 100644
index 0000000..e45c70b
Binary files /dev/null and b/parts_pl/body/pl_alpaca_c.png differ
diff --git a/parts_pl/body/pl_alpaca_d.png b/parts_pl/body/pl_alpaca_d.png
new file mode 100644
index 0000000..72970ce
Binary files /dev/null and b/parts_pl/body/pl_alpaca_d.png differ
diff --git a/parts_pl/body/pl_amber.png b/parts_pl/body/pl_amber.png
new file mode 100644
index 0000000..9f4aa29
Binary files /dev/null and b/parts_pl/body/pl_amber.png differ
diff --git a/parts_pl/body/pl_amber_b.png b/parts_pl/body/pl_amber_b.png
new file mode 100644
index 0000000..009cc90
Binary files /dev/null and b/parts_pl/body/pl_amber_b.png differ
diff --git a/parts_pl/body/pl_amber_c.png b/parts_pl/body/pl_amber_c.png
new file mode 100644
index 0000000..d57a353
Binary files /dev/null and b/parts_pl/body/pl_amber_c.png differ
diff --git a/parts_pl/body/pl_amber_d.png b/parts_pl/body/pl_amber_d.png
new file mode 100644
index 0000000..3e14e11
Binary files /dev/null and b/parts_pl/body/pl_amber_d.png differ
diff --git a/parts_pl/body/pl_ankylo.png b/parts_pl/body/pl_ankylo.png
new file mode 100644
index 0000000..4511ac8
Binary files /dev/null and b/parts_pl/body/pl_ankylo.png differ
diff --git a/parts_pl/body/pl_ankylo_b.png b/parts_pl/body/pl_ankylo_b.png
new file mode 100644
index 0000000..c685de0
Binary files /dev/null and b/parts_pl/body/pl_ankylo_b.png differ
diff --git a/parts_pl/body/pl_ankylo_c.png b/parts_pl/body/pl_ankylo_c.png
new file mode 100644
index 0000000..5598d90
Binary files /dev/null and b/parts_pl/body/pl_ankylo_c.png differ
diff --git a/parts_pl/body/pl_ankylo_d.png b/parts_pl/body/pl_ankylo_d.png
new file mode 100644
index 0000000..ef0ed0a
Binary files /dev/null and b/parts_pl/body/pl_ankylo_d.png differ
diff --git a/parts_pl/body/pl_ant.png b/parts_pl/body/pl_ant.png
new file mode 100644
index 0000000..f25d109
Binary files /dev/null and b/parts_pl/body/pl_ant.png differ
diff --git a/parts_pl/body/pl_ant_b.png b/parts_pl/body/pl_ant_b.png
new file mode 100644
index 0000000..94fbac9
Binary files /dev/null and b/parts_pl/body/pl_ant_b.png differ
diff --git a/parts_pl/body/pl_ant_c.png b/parts_pl/body/pl_ant_c.png
new file mode 100644
index 0000000..00f48f0
Binary files /dev/null and b/parts_pl/body/pl_ant_c.png differ
diff --git a/parts_pl/body/pl_ant_d.png b/parts_pl/body/pl_ant_d.png
new file mode 100644
index 0000000..8731265
Binary files /dev/null and b/parts_pl/body/pl_ant_d.png differ
diff --git a/parts_pl/body/pl_antlion.png b/parts_pl/body/pl_antlion.png
new file mode 100644
index 0000000..b51d0d4
Binary files /dev/null and b/parts_pl/body/pl_antlion.png differ
diff --git a/parts_pl/body/pl_antlion_b.png b/parts_pl/body/pl_antlion_b.png
new file mode 100644
index 0000000..0bc9f5a
Binary files /dev/null and b/parts_pl/body/pl_antlion_b.png differ
diff --git a/parts_pl/body/pl_antlion_c.png b/parts_pl/body/pl_antlion_c.png
new file mode 100644
index 0000000..6511854
Binary files /dev/null and b/parts_pl/body/pl_antlion_c.png differ
diff --git a/parts_pl/body/pl_ape.png b/parts_pl/body/pl_ape.png
new file mode 100644
index 0000000..d99cdcd
Binary files /dev/null and b/parts_pl/body/pl_ape.png differ
diff --git a/parts_pl/body/pl_ape_b.png b/parts_pl/body/pl_ape_b.png
new file mode 100644
index 0000000..6cc4c2c
Binary files /dev/null and b/parts_pl/body/pl_ape_b.png differ
diff --git a/parts_pl/body/pl_ape_c.png b/parts_pl/body/pl_ape_c.png
new file mode 100644
index 0000000..9afa533
Binary files /dev/null and b/parts_pl/body/pl_ape_c.png differ
diff --git a/parts_pl/body/pl_ape_d.png b/parts_pl/body/pl_ape_d.png
new file mode 100644
index 0000000..5c7da41
Binary files /dev/null and b/parts_pl/body/pl_ape_d.png differ
diff --git a/parts_pl/body/pl_aphid.png b/parts_pl/body/pl_aphid.png
new file mode 100644
index 0000000..e723d07
Binary files /dev/null and b/parts_pl/body/pl_aphid.png differ
diff --git a/parts_pl/body/pl_aphid_b.png b/parts_pl/body/pl_aphid_b.png
new file mode 100644
index 0000000..44e7499
Binary files /dev/null and b/parts_pl/body/pl_aphid_b.png differ
diff --git a/parts_pl/body/pl_aphid_c.png b/parts_pl/body/pl_aphid_c.png
new file mode 100644
index 0000000..bd3506f
Binary files /dev/null and b/parts_pl/body/pl_aphid_c.png differ
diff --git a/parts_pl/body/pl_aphid_d.png b/parts_pl/body/pl_aphid_d.png
new file mode 100644
index 0000000..2c95e23
Binary files /dev/null and b/parts_pl/body/pl_aphid_d.png differ
diff --git a/parts_pl/body/pl_armor.png b/parts_pl/body/pl_armor.png
new file mode 100644
index 0000000..d68ba0f
Binary files /dev/null and b/parts_pl/body/pl_armor.png differ
diff --git a/parts_pl/body/pl_armor_b.png b/parts_pl/body/pl_armor_b.png
new file mode 100644
index 0000000..2b20af2
Binary files /dev/null and b/parts_pl/body/pl_armor_b.png differ
diff --git a/parts_pl/body/pl_armor_c.png b/parts_pl/body/pl_armor_c.png
new file mode 100644
index 0000000..a163332
Binary files /dev/null and b/parts_pl/body/pl_armor_c.png differ
diff --git a/parts_pl/body/pl_armor_d.png b/parts_pl/body/pl_armor_d.png
new file mode 100644
index 0000000..8e61501
Binary files /dev/null and b/parts_pl/body/pl_armor_d.png differ
diff --git a/parts_pl/body/pl_arowana.png b/parts_pl/body/pl_arowana.png
new file mode 100644
index 0000000..7e2d8cb
Binary files /dev/null and b/parts_pl/body/pl_arowana.png differ
diff --git a/parts_pl/body/pl_arowana_b.png b/parts_pl/body/pl_arowana_b.png
new file mode 100644
index 0000000..edec2d7
Binary files /dev/null and b/parts_pl/body/pl_arowana_b.png differ
diff --git a/parts_pl/body/pl_arowana_c.png b/parts_pl/body/pl_arowana_c.png
new file mode 100644
index 0000000..89eda90
Binary files /dev/null and b/parts_pl/body/pl_arowana_c.png differ
diff --git a/parts_pl/body/pl_arowana_d.png b/parts_pl/body/pl_arowana_d.png
new file mode 100644
index 0000000..1f878a7
Binary files /dev/null and b/parts_pl/body/pl_arowana_d.png differ
diff --git a/parts_pl/body/pl_auger.png b/parts_pl/body/pl_auger.png
new file mode 100644
index 0000000..cc0314d
Binary files /dev/null and b/parts_pl/body/pl_auger.png differ
diff --git a/parts_pl/body/pl_auger_b.png b/parts_pl/body/pl_auger_b.png
new file mode 100644
index 0000000..52a0817
Binary files /dev/null and b/parts_pl/body/pl_auger_b.png differ
diff --git a/parts_pl/body/pl_auger_c.png b/parts_pl/body/pl_auger_c.png
new file mode 100644
index 0000000..9e7a43e
Binary files /dev/null and b/parts_pl/body/pl_auger_c.png differ
diff --git a/parts_pl/body/pl_auger_d.png b/parts_pl/body/pl_auger_d.png
new file mode 100644
index 0000000..8a99d3a
Binary files /dev/null and b/parts_pl/body/pl_auger_d.png differ
diff --git a/parts_pl/body/pl_axolotl_b.png b/parts_pl/body/pl_axolotl_b.png
new file mode 100644
index 0000000..1adc9a8
Binary files /dev/null and b/parts_pl/body/pl_axolotl_b.png differ
diff --git a/parts_pl/body/pl_axolotl_c.png b/parts_pl/body/pl_axolotl_c.png
new file mode 100644
index 0000000..da6cc69
Binary files /dev/null and b/parts_pl/body/pl_axolotl_c.png differ
diff --git a/parts_pl/body/pl_axolotl_d.png b/parts_pl/body/pl_axolotl_d.png
new file mode 100644
index 0000000..8dada79
Binary files /dev/null and b/parts_pl/body/pl_axolotl_d.png differ
diff --git a/parts_pl/body/pl_balloon.png b/parts_pl/body/pl_balloon.png
new file mode 100644
index 0000000..03933f7
Binary files /dev/null and b/parts_pl/body/pl_balloon.png differ
diff --git a/parts_pl/body/pl_balloon_c.png b/parts_pl/body/pl_balloon_c.png
new file mode 100644
index 0000000..b4e9585
Binary files /dev/null and b/parts_pl/body/pl_balloon_c.png differ
diff --git a/parts_pl/body/pl_bamboo.png b/parts_pl/body/pl_bamboo.png
new file mode 100644
index 0000000..dfb9db3
Binary files /dev/null and b/parts_pl/body/pl_bamboo.png differ
diff --git a/parts_pl/body/pl_bamboo_b.png b/parts_pl/body/pl_bamboo_b.png
new file mode 100644
index 0000000..c617d10
Binary files /dev/null and b/parts_pl/body/pl_bamboo_b.png differ
diff --git a/parts_pl/body/pl_bamboo_c.png b/parts_pl/body/pl_bamboo_c.png
new file mode 100644
index 0000000..d479ea8
Binary files /dev/null and b/parts_pl/body/pl_bamboo_c.png differ
diff --git a/parts_pl/body/pl_barrel.png b/parts_pl/body/pl_barrel.png
new file mode 100644
index 0000000..f0e85a4
Binary files /dev/null and b/parts_pl/body/pl_barrel.png differ
diff --git a/parts_pl/body/pl_barrel_b.png b/parts_pl/body/pl_barrel_b.png
new file mode 100644
index 0000000..a53b7d9
Binary files /dev/null and b/parts_pl/body/pl_barrel_b.png differ
diff --git a/parts_pl/body/pl_barrel_c.png b/parts_pl/body/pl_barrel_c.png
new file mode 100644
index 0000000..115e2ae
Binary files /dev/null and b/parts_pl/body/pl_barrel_c.png differ
diff --git a/parts_pl/body/pl_barreleye.png b/parts_pl/body/pl_barreleye.png
new file mode 100644
index 0000000..a6c61f2
Binary files /dev/null and b/parts_pl/body/pl_barreleye.png differ
diff --git a/parts_pl/body/pl_barreleye_b.png b/parts_pl/body/pl_barreleye_b.png
new file mode 100644
index 0000000..1076b7d
Binary files /dev/null and b/parts_pl/body/pl_barreleye_b.png differ
diff --git a/parts_pl/body/pl_barreleye_c.png b/parts_pl/body/pl_barreleye_c.png
new file mode 100644
index 0000000..5678634
Binary files /dev/null and b/parts_pl/body/pl_barreleye_c.png differ
diff --git a/parts_pl/body/pl_barreleye_d.png b/parts_pl/body/pl_barreleye_d.png
new file mode 100644
index 0000000..75c7cf0
Binary files /dev/null and b/parts_pl/body/pl_barreleye_d.png differ
diff --git a/parts_pl/body/pl_beaver.png b/parts_pl/body/pl_beaver.png
new file mode 100644
index 0000000..ee66b7f
Binary files /dev/null and b/parts_pl/body/pl_beaver.png differ
diff --git a/parts_pl/body/pl_beaver_b.png b/parts_pl/body/pl_beaver_b.png
new file mode 100644
index 0000000..f88f8e6
Binary files /dev/null and b/parts_pl/body/pl_beaver_b.png differ
diff --git a/parts_pl/body/pl_beaver_c.png b/parts_pl/body/pl_beaver_c.png
new file mode 100644
index 0000000..002baf6
Binary files /dev/null and b/parts_pl/body/pl_beaver_c.png differ
diff --git a/parts_pl/body/pl_beaver_d.png b/parts_pl/body/pl_beaver_d.png
new file mode 100644
index 0000000..ea4a389
Binary files /dev/null and b/parts_pl/body/pl_beaver_d.png differ
diff --git a/parts_pl/body/pl_bee_b.png b/parts_pl/body/pl_bee_b.png
new file mode 100644
index 0000000..05e235b
Binary files /dev/null and b/parts_pl/body/pl_bee_b.png differ
diff --git a/parts_pl/body/pl_bee_c.png b/parts_pl/body/pl_bee_c.png
new file mode 100644
index 0000000..9cff553
Binary files /dev/null and b/parts_pl/body/pl_bee_c.png differ
diff --git a/parts_pl/body/pl_bee_d.png b/parts_pl/body/pl_bee_d.png
new file mode 100644
index 0000000..3fd0fd2
Binary files /dev/null and b/parts_pl/body/pl_bee_d.png differ
diff --git a/parts_pl/body/pl_beetle_b.png b/parts_pl/body/pl_beetle_b.png
new file mode 100644
index 0000000..2e3a978
Binary files /dev/null and b/parts_pl/body/pl_beetle_b.png differ
diff --git a/parts_pl/body/pl_beetle_c.png b/parts_pl/body/pl_beetle_c.png
new file mode 100644
index 0000000..62364aa
Binary files /dev/null and b/parts_pl/body/pl_beetle_c.png differ
diff --git a/parts_pl/body/pl_beetle_d.png b/parts_pl/body/pl_beetle_d.png
new file mode 100644
index 0000000..b59b555
Binary files /dev/null and b/parts_pl/body/pl_beetle_d.png differ
diff --git a/parts_pl/body/pl_betta.png b/parts_pl/body/pl_betta.png
new file mode 100644
index 0000000..1aa3fb3
Binary files /dev/null and b/parts_pl/body/pl_betta.png differ
diff --git a/parts_pl/body/pl_betta_b.png b/parts_pl/body/pl_betta_b.png
new file mode 100644
index 0000000..168f4bf
Binary files /dev/null and b/parts_pl/body/pl_betta_b.png differ
diff --git a/parts_pl/body/pl_betta_c.png b/parts_pl/body/pl_betta_c.png
new file mode 100644
index 0000000..37a9982
Binary files /dev/null and b/parts_pl/body/pl_betta_c.png differ
diff --git a/parts_pl/body/pl_betta_d.png b/parts_pl/body/pl_betta_d.png
new file mode 100644
index 0000000..345a90e
Binary files /dev/null and b/parts_pl/body/pl_betta_d.png differ
diff --git a/parts_pl/body/pl_blobfish.png b/parts_pl/body/pl_blobfish.png
new file mode 100644
index 0000000..4a9bdaf
Binary files /dev/null and b/parts_pl/body/pl_blobfish.png differ
diff --git a/parts_pl/body/pl_blobfish_c.png b/parts_pl/body/pl_blobfish_c.png
new file mode 100644
index 0000000..ffe50a9
Binary files /dev/null and b/parts_pl/body/pl_blobfish_c.png differ
diff --git a/parts_pl/body/pl_blobfish_d.png b/parts_pl/body/pl_blobfish_d.png
new file mode 100644
index 0000000..350990b
Binary files /dev/null and b/parts_pl/body/pl_blobfish_d.png differ
diff --git a/parts_pl/body/pl_boar_b.png b/parts_pl/body/pl_boar_b.png
new file mode 100644
index 0000000..f937cef
Binary files /dev/null and b/parts_pl/body/pl_boar_b.png differ
diff --git a/parts_pl/body/pl_boar_c.png b/parts_pl/body/pl_boar_c.png
new file mode 100644
index 0000000..656e659
Binary files /dev/null and b/parts_pl/body/pl_boar_c.png differ
diff --git a/parts_pl/body/pl_boar_d.png b/parts_pl/body/pl_boar_d.png
new file mode 100644
index 0000000..c765f7f
Binary files /dev/null and b/parts_pl/body/pl_boar_d.png differ
diff --git a/parts_pl/body/pl_boatman.png b/parts_pl/body/pl_boatman.png
new file mode 100644
index 0000000..6eb6bb7
Binary files /dev/null and b/parts_pl/body/pl_boatman.png differ
diff --git a/parts_pl/body/pl_boatman_b.png b/parts_pl/body/pl_boatman_b.png
new file mode 100644
index 0000000..47a24af
Binary files /dev/null and b/parts_pl/body/pl_boatman_b.png differ
diff --git a/parts_pl/body/pl_bogtoad.png b/parts_pl/body/pl_bogtoad.png
new file mode 100644
index 0000000..96d8ac2
Binary files /dev/null and b/parts_pl/body/pl_bogtoad.png differ
diff --git a/parts_pl/body/pl_bogtoad_b.png b/parts_pl/body/pl_bogtoad_b.png
new file mode 100644
index 0000000..a8cb235
Binary files /dev/null and b/parts_pl/body/pl_bogtoad_b.png differ
diff --git a/parts_pl/body/pl_bogtoad_c.png b/parts_pl/body/pl_bogtoad_c.png
new file mode 100644
index 0000000..80493e9
Binary files /dev/null and b/parts_pl/body/pl_bogtoad_c.png differ
diff --git a/parts_pl/body/pl_bogtoad_d.png b/parts_pl/body/pl_bogtoad_d.png
new file mode 100644
index 0000000..3c6d17e
Binary files /dev/null and b/parts_pl/body/pl_bogtoad_d.png differ
diff --git a/parts_pl/body/pl_bombardier.png b/parts_pl/body/pl_bombardier.png
new file mode 100644
index 0000000..763c69c
Binary files /dev/null and b/parts_pl/body/pl_bombardier.png differ
diff --git a/parts_pl/body/pl_bombardier_b.png b/parts_pl/body/pl_bombardier_b.png
new file mode 100644
index 0000000..e4fba94
Binary files /dev/null and b/parts_pl/body/pl_bombardier_b.png differ
diff --git a/parts_pl/body/pl_bombardier_c.png b/parts_pl/body/pl_bombardier_c.png
new file mode 100644
index 0000000..1bbcb32
Binary files /dev/null and b/parts_pl/body/pl_bombardier_c.png differ
diff --git a/parts_pl/body/pl_bombardier_d.png b/parts_pl/body/pl_bombardier_d.png
new file mode 100644
index 0000000..191c2d5
Binary files /dev/null and b/parts_pl/body/pl_bombardier_d.png differ
diff --git a/parts_pl/body/pl_bonesnake.png b/parts_pl/body/pl_bonesnake.png
new file mode 100644
index 0000000..63dc85b
Binary files /dev/null and b/parts_pl/body/pl_bonesnake.png differ
diff --git a/parts_pl/body/pl_bonesnake_b.png b/parts_pl/body/pl_bonesnake_b.png
new file mode 100644
index 0000000..a99f83a
Binary files /dev/null and b/parts_pl/body/pl_bonesnake_b.png differ
diff --git a/parts_pl/body/pl_bonesnake_c.png b/parts_pl/body/pl_bonesnake_c.png
new file mode 100644
index 0000000..f6e5f03
Binary files /dev/null and b/parts_pl/body/pl_bonesnake_c.png differ
diff --git a/parts_pl/body/pl_bonesnake_d.png b/parts_pl/body/pl_bonesnake_d.png
new file mode 100644
index 0000000..5e43fc4
Binary files /dev/null and b/parts_pl/body/pl_bonesnake_d.png differ
diff --git a/parts_pl/body/pl_boxfish.png b/parts_pl/body/pl_boxfish.png
new file mode 100644
index 0000000..2a10ec8
Binary files /dev/null and b/parts_pl/body/pl_boxfish.png differ
diff --git a/parts_pl/body/pl_boxfish_b.png b/parts_pl/body/pl_boxfish_b.png
new file mode 100644
index 0000000..e1ae7b3
Binary files /dev/null and b/parts_pl/body/pl_boxfish_b.png differ
diff --git a/parts_pl/body/pl_boxfish_c.png b/parts_pl/body/pl_boxfish_c.png
new file mode 100644
index 0000000..63d6197
Binary files /dev/null and b/parts_pl/body/pl_boxfish_c.png differ
diff --git a/parts_pl/body/pl_boxfish_d.png b/parts_pl/body/pl_boxfish_d.png
new file mode 100644
index 0000000..b1e1a2c
Binary files /dev/null and b/parts_pl/body/pl_boxfish_d.png differ
diff --git a/parts_pl/body/pl_brawler_b.png b/parts_pl/body/pl_brawler_b.png
new file mode 100644
index 0000000..2443e4f
Binary files /dev/null and b/parts_pl/body/pl_brawler_b.png differ
diff --git a/parts_pl/body/pl_brawler_c.png b/parts_pl/body/pl_brawler_c.png
new file mode 100644
index 0000000..32b0760
Binary files /dev/null and b/parts_pl/body/pl_brawler_c.png differ
diff --git a/parts_pl/body/pl_brawler_d.png b/parts_pl/body/pl_brawler_d.png
new file mode 100644
index 0000000..7624e52
Binary files /dev/null and b/parts_pl/body/pl_brawler_d.png differ
diff --git a/parts_pl/body/pl_brazier.png b/parts_pl/body/pl_brazier.png
new file mode 100644
index 0000000..275edfd
Binary files /dev/null and b/parts_pl/body/pl_brazier.png differ
diff --git a/parts_pl/body/pl_brazier_b.png b/parts_pl/body/pl_brazier_b.png
new file mode 100644
index 0000000..f41835b
Binary files /dev/null and b/parts_pl/body/pl_brazier_b.png differ
diff --git a/parts_pl/body/pl_brazier_c.png b/parts_pl/body/pl_brazier_c.png
new file mode 100644
index 0000000..f0410a2
Binary files /dev/null and b/parts_pl/body/pl_brazier_c.png differ
diff --git a/parts_pl/body/pl_bulb.png b/parts_pl/body/pl_bulb.png
new file mode 100644
index 0000000..f44c38e
Binary files /dev/null and b/parts_pl/body/pl_bulb.png differ
diff --git a/parts_pl/body/pl_bulb_b.png b/parts_pl/body/pl_bulb_b.png
new file mode 100644
index 0000000..0985688
Binary files /dev/null and b/parts_pl/body/pl_bulb_b.png differ
diff --git a/parts_pl/body/pl_bulb_c.png b/parts_pl/body/pl_bulb_c.png
new file mode 100644
index 0000000..6848f21
Binary files /dev/null and b/parts_pl/body/pl_bulb_c.png differ
diff --git a/parts_pl/body/pl_bulb_d.png b/parts_pl/body/pl_bulb_d.png
new file mode 100644
index 0000000..c67d7b2
Binary files /dev/null and b/parts_pl/body/pl_bulb_d.png differ
diff --git a/parts_pl/body/pl_bulldozer.png b/parts_pl/body/pl_bulldozer.png
new file mode 100644
index 0000000..1fb03b4
Binary files /dev/null and b/parts_pl/body/pl_bulldozer.png differ
diff --git a/parts_pl/body/pl_bulldozer_b.png b/parts_pl/body/pl_bulldozer_b.png
new file mode 100644
index 0000000..5012686
Binary files /dev/null and b/parts_pl/body/pl_bulldozer_b.png differ
diff --git a/parts_pl/body/pl_bulldozer_c.png b/parts_pl/body/pl_bulldozer_c.png
new file mode 100644
index 0000000..ddcf269
Binary files /dev/null and b/parts_pl/body/pl_bulldozer_c.png differ
diff --git a/parts_pl/body/pl_bulldozer_d.png b/parts_pl/body/pl_bulldozer_d.png
new file mode 100644
index 0000000..cc7bfe3
Binary files /dev/null and b/parts_pl/body/pl_bulldozer_d.png differ
diff --git a/parts_pl/body/pl_bunny_b.png b/parts_pl/body/pl_bunny_b.png
new file mode 100644
index 0000000..4f066ca
Binary files /dev/null and b/parts_pl/body/pl_bunny_b.png differ
diff --git a/parts_pl/body/pl_bunny_c.png b/parts_pl/body/pl_bunny_c.png
new file mode 100644
index 0000000..f40f5a4
Binary files /dev/null and b/parts_pl/body/pl_bunny_c.png differ
diff --git a/parts_pl/body/pl_bunny_d.png b/parts_pl/body/pl_bunny_d.png
new file mode 100644
index 0000000..052670b
Binary files /dev/null and b/parts_pl/body/pl_bunny_d.png differ
diff --git a/parts_pl/body/pl_buoy.png b/parts_pl/body/pl_buoy.png
new file mode 100644
index 0000000..26102d4
Binary files /dev/null and b/parts_pl/body/pl_buoy.png differ
diff --git a/parts_pl/body/pl_buoy_b.png b/parts_pl/body/pl_buoy_b.png
new file mode 100644
index 0000000..29eb978
Binary files /dev/null and b/parts_pl/body/pl_buoy_b.png differ
diff --git a/parts_pl/body/pl_buoy_c.png b/parts_pl/body/pl_buoy_c.png
new file mode 100644
index 0000000..2a60519
Binary files /dev/null and b/parts_pl/body/pl_buoy_c.png differ
diff --git a/parts_pl/body/pl_buoy_d.png b/parts_pl/body/pl_buoy_d.png
new file mode 100644
index 0000000..f28ce6c
Binary files /dev/null and b/parts_pl/body/pl_buoy_d.png differ
diff --git a/parts_pl/body/pl_cabbage.png b/parts_pl/body/pl_cabbage.png
new file mode 100644
index 0000000..ad7a48b
Binary files /dev/null and b/parts_pl/body/pl_cabbage.png differ
diff --git a/parts_pl/body/pl_cabbage_b.png b/parts_pl/body/pl_cabbage_b.png
new file mode 100644
index 0000000..398ba9c
Binary files /dev/null and b/parts_pl/body/pl_cabbage_b.png differ
diff --git a/parts_pl/body/pl_cabbage_c.png b/parts_pl/body/pl_cabbage_c.png
new file mode 100644
index 0000000..b1bcd83
Binary files /dev/null and b/parts_pl/body/pl_cabbage_c.png differ
diff --git a/parts_pl/body/pl_cabbage_d.png b/parts_pl/body/pl_cabbage_d.png
new file mode 100644
index 0000000..b56324c
Binary files /dev/null and b/parts_pl/body/pl_cabbage_d.png differ
diff --git a/parts_pl/body/pl_caddis.png b/parts_pl/body/pl_caddis.png
new file mode 100644
index 0000000..b56a831
Binary files /dev/null and b/parts_pl/body/pl_caddis.png differ
diff --git a/parts_pl/body/pl_caddis_b.png b/parts_pl/body/pl_caddis_b.png
new file mode 100644
index 0000000..20a111b
Binary files /dev/null and b/parts_pl/body/pl_caddis_b.png differ
diff --git a/parts_pl/body/pl_caddis_c.png b/parts_pl/body/pl_caddis_c.png
new file mode 100644
index 0000000..f1b245e
Binary files /dev/null and b/parts_pl/body/pl_caddis_c.png differ
diff --git a/parts_pl/body/pl_cairn.png b/parts_pl/body/pl_cairn.png
new file mode 100644
index 0000000..7c0d54b
Binary files /dev/null and b/parts_pl/body/pl_cairn.png differ
diff --git a/parts_pl/body/pl_cairn_b.png b/parts_pl/body/pl_cairn_b.png
new file mode 100644
index 0000000..1ba874c
Binary files /dev/null and b/parts_pl/body/pl_cairn_b.png differ
diff --git a/parts_pl/body/pl_cairn_c.png b/parts_pl/body/pl_cairn_c.png
new file mode 100644
index 0000000..ab42dc3
Binary files /dev/null and b/parts_pl/body/pl_cairn_c.png differ
diff --git a/parts_pl/body/pl_cairn_d.png b/parts_pl/body/pl_cairn_d.png
new file mode 100644
index 0000000..3974cbe
Binary files /dev/null and b/parts_pl/body/pl_cairn_d.png differ
diff --git a/parts_pl/body/pl_cardinal.png b/parts_pl/body/pl_cardinal.png
new file mode 100644
index 0000000..012a2d0
Binary files /dev/null and b/parts_pl/body/pl_cardinal.png differ
diff --git a/parts_pl/body/pl_cardinal_b.png b/parts_pl/body/pl_cardinal_b.png
new file mode 100644
index 0000000..dc120dd
Binary files /dev/null and b/parts_pl/body/pl_cardinal_b.png differ
diff --git a/parts_pl/body/pl_cardinal_c.png b/parts_pl/body/pl_cardinal_c.png
new file mode 100644
index 0000000..c8fa9e7
Binary files /dev/null and b/parts_pl/body/pl_cardinal_c.png differ
diff --git a/parts_pl/body/pl_cardinal_d.png b/parts_pl/body/pl_cardinal_d.png
new file mode 100644
index 0000000..001e9bd
Binary files /dev/null and b/parts_pl/body/pl_cardinal_d.png differ
diff --git a/parts_pl/body/pl_cassowary.png b/parts_pl/body/pl_cassowary.png
new file mode 100644
index 0000000..a8ca4b5
Binary files /dev/null and b/parts_pl/body/pl_cassowary.png differ
diff --git a/parts_pl/body/pl_cassowary_b.png b/parts_pl/body/pl_cassowary_b.png
new file mode 100644
index 0000000..149ed04
Binary files /dev/null and b/parts_pl/body/pl_cassowary_b.png differ
diff --git a/parts_pl/body/pl_cassowary_c.png b/parts_pl/body/pl_cassowary_c.png
new file mode 100644
index 0000000..04a9be1
Binary files /dev/null and b/parts_pl/body/pl_cassowary_c.png differ
diff --git a/parts_pl/body/pl_cassowary_d.png b/parts_pl/body/pl_cassowary_d.png
new file mode 100644
index 0000000..3f63eb2
Binary files /dev/null and b/parts_pl/body/pl_cassowary_d.png differ
diff --git a/parts_pl/body/pl_catfish.png b/parts_pl/body/pl_catfish.png
new file mode 100644
index 0000000..8d58cab
Binary files /dev/null and b/parts_pl/body/pl_catfish.png differ
diff --git a/parts_pl/body/pl_catfish_b.png b/parts_pl/body/pl_catfish_b.png
new file mode 100644
index 0000000..9c5d44d
Binary files /dev/null and b/parts_pl/body/pl_catfish_b.png differ
diff --git a/parts_pl/body/pl_catfish_c.png b/parts_pl/body/pl_catfish_c.png
new file mode 100644
index 0000000..ad12928
Binary files /dev/null and b/parts_pl/body/pl_catfish_c.png differ
diff --git a/parts_pl/body/pl_catfish_d.png b/parts_pl/body/pl_catfish_d.png
new file mode 100644
index 0000000..1a87262
Binary files /dev/null and b/parts_pl/body/pl_catfish_d.png differ
diff --git a/parts_pl/body/pl_catloaf.png b/parts_pl/body/pl_catloaf.png
new file mode 100644
index 0000000..a031be7
Binary files /dev/null and b/parts_pl/body/pl_catloaf.png differ
diff --git a/parts_pl/body/pl_catloaf_b.png b/parts_pl/body/pl_catloaf_b.png
new file mode 100644
index 0000000..02a1ffc
Binary files /dev/null and b/parts_pl/body/pl_catloaf_b.png differ
diff --git a/parts_pl/body/pl_catloaf_c.png b/parts_pl/body/pl_catloaf_c.png
new file mode 100644
index 0000000..c1a221d
Binary files /dev/null and b/parts_pl/body/pl_catloaf_c.png differ
diff --git a/parts_pl/body/pl_catloaf_d.png b/parts_pl/body/pl_catloaf_d.png
new file mode 100644
index 0000000..0839055
Binary files /dev/null and b/parts_pl/body/pl_catloaf_d.png differ
diff --git a/parts_pl/body/pl_cell.png b/parts_pl/body/pl_cell.png
new file mode 100644
index 0000000..a61e338
Binary files /dev/null and b/parts_pl/body/pl_cell.png differ
diff --git a/parts_pl/body/pl_cell_b.png b/parts_pl/body/pl_cell_b.png
new file mode 100644
index 0000000..897d3e9
Binary files /dev/null and b/parts_pl/body/pl_cell_b.png differ
diff --git a/parts_pl/body/pl_cell_c.png b/parts_pl/body/pl_cell_c.png
new file mode 100644
index 0000000..3bc8fee
Binary files /dev/null and b/parts_pl/body/pl_cell_c.png differ
diff --git a/parts_pl/body/pl_cell_d.png b/parts_pl/body/pl_cell_d.png
new file mode 100644
index 0000000..fd35133
Binary files /dev/null and b/parts_pl/body/pl_cell_d.png differ
diff --git a/parts_pl/body/pl_centipede.png b/parts_pl/body/pl_centipede.png
new file mode 100644
index 0000000..a5d6673
Binary files /dev/null and b/parts_pl/body/pl_centipede.png differ
diff --git a/parts_pl/body/pl_centipede_b.png b/parts_pl/body/pl_centipede_b.png
new file mode 100644
index 0000000..b5e525a
Binary files /dev/null and b/parts_pl/body/pl_centipede_b.png differ
diff --git a/parts_pl/body/pl_centipede_c.png b/parts_pl/body/pl_centipede_c.png
new file mode 100644
index 0000000..133b835
Binary files /dev/null and b/parts_pl/body/pl_centipede_c.png differ
diff --git a/parts_pl/body/pl_centipede_d.png b/parts_pl/body/pl_centipede_d.png
new file mode 100644
index 0000000..a08844a
Binary files /dev/null and b/parts_pl/body/pl_centipede_d.png differ
diff --git a/parts_pl/body/pl_chain.png b/parts_pl/body/pl_chain.png
new file mode 100644
index 0000000..79151eb
Binary files /dev/null and b/parts_pl/body/pl_chain.png differ
diff --git a/parts_pl/body/pl_chain_b.png b/parts_pl/body/pl_chain_b.png
new file mode 100644
index 0000000..27e9912
Binary files /dev/null and b/parts_pl/body/pl_chain_b.png differ
diff --git a/parts_pl/body/pl_chain_c.png b/parts_pl/body/pl_chain_c.png
new file mode 100644
index 0000000..b0b7ac0
Binary files /dev/null and b/parts_pl/body/pl_chain_c.png differ
diff --git a/parts_pl/body/pl_chameleon.png b/parts_pl/body/pl_chameleon.png
new file mode 100644
index 0000000..f42dd4c
Binary files /dev/null and b/parts_pl/body/pl_chameleon.png differ
diff --git a/parts_pl/body/pl_chameleon_b.png b/parts_pl/body/pl_chameleon_b.png
new file mode 100644
index 0000000..10d456e
Binary files /dev/null and b/parts_pl/body/pl_chameleon_b.png differ
diff --git a/parts_pl/body/pl_chameleon_c.png b/parts_pl/body/pl_chameleon_c.png
new file mode 100644
index 0000000..6dff48d
Binary files /dev/null and b/parts_pl/body/pl_chameleon_c.png differ
diff --git a/parts_pl/body/pl_chameleon_d.png b/parts_pl/body/pl_chameleon_d.png
new file mode 100644
index 0000000..9976658
Binary files /dev/null and b/parts_pl/body/pl_chameleon_d.png differ
diff --git a/parts_pl/body/pl_chick_b.png b/parts_pl/body/pl_chick_b.png
new file mode 100644
index 0000000..f92b9a9
Binary files /dev/null and b/parts_pl/body/pl_chick_b.png differ
diff --git a/parts_pl/body/pl_chick_c.png b/parts_pl/body/pl_chick_c.png
new file mode 100644
index 0000000..a08bb74
Binary files /dev/null and b/parts_pl/body/pl_chick_c.png differ
diff --git a/parts_pl/body/pl_chick_d.png b/parts_pl/body/pl_chick_d.png
new file mode 100644
index 0000000..5b4f840
Binary files /dev/null and b/parts_pl/body/pl_chick_d.png differ
diff --git a/parts_pl/body/pl_chipmunk.png b/parts_pl/body/pl_chipmunk.png
new file mode 100644
index 0000000..a25bb0f
Binary files /dev/null and b/parts_pl/body/pl_chipmunk.png differ
diff --git a/parts_pl/body/pl_chipmunk_b.png b/parts_pl/body/pl_chipmunk_b.png
new file mode 100644
index 0000000..c984052
Binary files /dev/null and b/parts_pl/body/pl_chipmunk_b.png differ
diff --git a/parts_pl/body/pl_chipmunk_c.png b/parts_pl/body/pl_chipmunk_c.png
new file mode 100644
index 0000000..18a9812
Binary files /dev/null and b/parts_pl/body/pl_chipmunk_c.png differ
diff --git a/parts_pl/body/pl_chipmunk_d.png b/parts_pl/body/pl_chipmunk_d.png
new file mode 100644
index 0000000..ef6608a
Binary files /dev/null and b/parts_pl/body/pl_chipmunk_d.png differ
diff --git a/parts_pl/body/pl_cicada.png b/parts_pl/body/pl_cicada.png
new file mode 100644
index 0000000..df527f3
Binary files /dev/null and b/parts_pl/body/pl_cicada.png differ
diff --git a/parts_pl/body/pl_cicada_b.png b/parts_pl/body/pl_cicada_b.png
new file mode 100644
index 0000000..e3665c2
Binary files /dev/null and b/parts_pl/body/pl_cicada_b.png differ
diff --git a/parts_pl/body/pl_cicada_c.png b/parts_pl/body/pl_cicada_c.png
new file mode 100644
index 0000000..61a658b
Binary files /dev/null and b/parts_pl/body/pl_cicada_c.png differ
diff --git a/parts_pl/body/pl_cicada_d.png b/parts_pl/body/pl_cicada_d.png
new file mode 100644
index 0000000..ec9a664
Binary files /dev/null and b/parts_pl/body/pl_cicada_d.png differ
diff --git a/parts_pl/body/pl_cinderhound.png b/parts_pl/body/pl_cinderhound.png
new file mode 100644
index 0000000..197396a
Binary files /dev/null and b/parts_pl/body/pl_cinderhound.png differ
diff --git a/parts_pl/body/pl_cinderhound_b.png b/parts_pl/body/pl_cinderhound_b.png
new file mode 100644
index 0000000..125c31b
Binary files /dev/null and b/parts_pl/body/pl_cinderhound_b.png differ
diff --git a/parts_pl/body/pl_cinderhound_c.png b/parts_pl/body/pl_cinderhound_c.png
new file mode 100644
index 0000000..b2015a3
Binary files /dev/null and b/parts_pl/body/pl_cinderhound_c.png differ
diff --git a/parts_pl/body/pl_cinderhound_d.png b/parts_pl/body/pl_cinderhound_d.png
new file mode 100644
index 0000000..8b5044c
Binary files /dev/null and b/parts_pl/body/pl_cinderhound_d.png differ
diff --git a/parts_pl/body/pl_circuitbug.png b/parts_pl/body/pl_circuitbug.png
new file mode 100644
index 0000000..9e6178c
Binary files /dev/null and b/parts_pl/body/pl_circuitbug.png differ
diff --git a/parts_pl/body/pl_circuitbug_b.png b/parts_pl/body/pl_circuitbug_b.png
new file mode 100644
index 0000000..d0dd7d3
Binary files /dev/null and b/parts_pl/body/pl_circuitbug_b.png differ
diff --git a/parts_pl/body/pl_circuitbug_c.png b/parts_pl/body/pl_circuitbug_c.png
new file mode 100644
index 0000000..fdd4cda
Binary files /dev/null and b/parts_pl/body/pl_circuitbug_c.png differ
diff --git a/parts_pl/body/pl_coconut.png b/parts_pl/body/pl_coconut.png
new file mode 100644
index 0000000..a56e7c6
Binary files /dev/null and b/parts_pl/body/pl_coconut.png differ
diff --git a/parts_pl/body/pl_coconut_b.png b/parts_pl/body/pl_coconut_b.png
new file mode 100644
index 0000000..f7ff872
Binary files /dev/null and b/parts_pl/body/pl_coconut_b.png differ
diff --git a/parts_pl/body/pl_coconut_c.png b/parts_pl/body/pl_coconut_c.png
new file mode 100644
index 0000000..729fb4c
Binary files /dev/null and b/parts_pl/body/pl_coconut_c.png differ
diff --git a/parts_pl/body/pl_coconut_d.png b/parts_pl/body/pl_coconut_d.png
new file mode 100644
index 0000000..7f0a1b4
Binary files /dev/null and b/parts_pl/body/pl_coconut_d.png differ
diff --git a/parts_pl/body/pl_coffinbug.png b/parts_pl/body/pl_coffinbug.png
new file mode 100644
index 0000000..a193042
Binary files /dev/null and b/parts_pl/body/pl_coffinbug.png differ
diff --git a/parts_pl/body/pl_coffinbug_b.png b/parts_pl/body/pl_coffinbug_b.png
new file mode 100644
index 0000000..b1feda9
Binary files /dev/null and b/parts_pl/body/pl_coffinbug_b.png differ
diff --git a/parts_pl/body/pl_coffinbug_c.png b/parts_pl/body/pl_coffinbug_c.png
new file mode 100644
index 0000000..4c6c7c1
Binary files /dev/null and b/parts_pl/body/pl_coffinbug_c.png differ
diff --git a/parts_pl/body/pl_coilfist.png b/parts_pl/body/pl_coilfist.png
new file mode 100644
index 0000000..e48fa0e
Binary files /dev/null and b/parts_pl/body/pl_coilfist.png differ
diff --git a/parts_pl/body/pl_coilfist_b.png b/parts_pl/body/pl_coilfist_b.png
new file mode 100644
index 0000000..8ec55c2
Binary files /dev/null and b/parts_pl/body/pl_coilfist_b.png differ
diff --git a/parts_pl/body/pl_coilfist_c.png b/parts_pl/body/pl_coilfist_c.png
new file mode 100644
index 0000000..b814efc
Binary files /dev/null and b/parts_pl/body/pl_coilfist_c.png differ
diff --git a/parts_pl/body/pl_coilfist_d.png b/parts_pl/body/pl_coilfist_d.png
new file mode 100644
index 0000000..db4eaf7
Binary files /dev/null and b/parts_pl/body/pl_coilfist_d.png differ
diff --git a/parts_pl/body/pl_condor.png b/parts_pl/body/pl_condor.png
new file mode 100644
index 0000000..27bec59
Binary files /dev/null and b/parts_pl/body/pl_condor.png differ
diff --git a/parts_pl/body/pl_condor_b.png b/parts_pl/body/pl_condor_b.png
new file mode 100644
index 0000000..62a8a1a
Binary files /dev/null and b/parts_pl/body/pl_condor_b.png differ
diff --git a/parts_pl/body/pl_condor_c.png b/parts_pl/body/pl_condor_c.png
new file mode 100644
index 0000000..35374ec
Binary files /dev/null and b/parts_pl/body/pl_condor_c.png differ
diff --git a/parts_pl/body/pl_condor_d.png b/parts_pl/body/pl_condor_d.png
new file mode 100644
index 0000000..b5b1300
Binary files /dev/null and b/parts_pl/body/pl_condor_d.png differ
diff --git a/parts_pl/body/pl_cornhen.png b/parts_pl/body/pl_cornhen.png
new file mode 100644
index 0000000..a72e702
Binary files /dev/null and b/parts_pl/body/pl_cornhen.png differ
diff --git a/parts_pl/body/pl_cornhen_b.png b/parts_pl/body/pl_cornhen_b.png
new file mode 100644
index 0000000..224d78e
Binary files /dev/null and b/parts_pl/body/pl_cornhen_b.png differ
diff --git a/parts_pl/body/pl_cornhen_c.png b/parts_pl/body/pl_cornhen_c.png
new file mode 100644
index 0000000..18de20d
Binary files /dev/null and b/parts_pl/body/pl_cornhen_c.png differ
diff --git a/parts_pl/body/pl_crab_b.png b/parts_pl/body/pl_crab_b.png
new file mode 100644
index 0000000..94cbf26
Binary files /dev/null and b/parts_pl/body/pl_crab_b.png differ
diff --git a/parts_pl/body/pl_crab_c.png b/parts_pl/body/pl_crab_c.png
new file mode 100644
index 0000000..047f769
Binary files /dev/null and b/parts_pl/body/pl_crab_c.png differ
diff --git a/parts_pl/body/pl_crab_d.png b/parts_pl/body/pl_crab_d.png
new file mode 100644
index 0000000..ed6e215
Binary files /dev/null and b/parts_pl/body/pl_crab_d.png differ
diff --git a/parts_pl/body/pl_cricket.png b/parts_pl/body/pl_cricket.png
new file mode 100644
index 0000000..31be8ca
Binary files /dev/null and b/parts_pl/body/pl_cricket.png differ
diff --git a/parts_pl/body/pl_cricket_b.png b/parts_pl/body/pl_cricket_b.png
new file mode 100644
index 0000000..277fd73
Binary files /dev/null and b/parts_pl/body/pl_cricket_b.png differ
diff --git a/parts_pl/body/pl_cricket_c.png b/parts_pl/body/pl_cricket_c.png
new file mode 100644
index 0000000..8fba514
Binary files /dev/null and b/parts_pl/body/pl_cricket_c.png differ
diff --git a/parts_pl/body/pl_cricket_d.png b/parts_pl/body/pl_cricket_d.png
new file mode 100644
index 0000000..0685b39
Binary files /dev/null and b/parts_pl/body/pl_cricket_d.png differ
diff --git a/parts_pl/body/pl_crystalball.png b/parts_pl/body/pl_crystalball.png
new file mode 100644
index 0000000..157a7e7
Binary files /dev/null and b/parts_pl/body/pl_crystalball.png differ
diff --git a/parts_pl/body/pl_crystalball_b.png b/parts_pl/body/pl_crystalball_b.png
new file mode 100644
index 0000000..22dc7ac
Binary files /dev/null and b/parts_pl/body/pl_crystalball_b.png differ
diff --git a/parts_pl/body/pl_crystalball_c.png b/parts_pl/body/pl_crystalball_c.png
new file mode 100644
index 0000000..02cb970
Binary files /dev/null and b/parts_pl/body/pl_crystalball_c.png differ
diff --git a/parts_pl/body/pl_crystalball_d.png b/parts_pl/body/pl_crystalball_d.png
new file mode 100644
index 0000000..ea8f904
Binary files /dev/null and b/parts_pl/body/pl_crystalball_d.png differ
diff --git a/parts_pl/body/pl_cub_b.png b/parts_pl/body/pl_cub_b.png
new file mode 100644
index 0000000..ce58067
Binary files /dev/null and b/parts_pl/body/pl_cub_b.png differ
diff --git a/parts_pl/body/pl_cub_c.png b/parts_pl/body/pl_cub_c.png
new file mode 100644
index 0000000..39b03a2
Binary files /dev/null and b/parts_pl/body/pl_cub_c.png differ
diff --git a/parts_pl/body/pl_cub_d.png b/parts_pl/body/pl_cub_d.png
new file mode 100644
index 0000000..f1e04ab
Binary files /dev/null and b/parts_pl/body/pl_cub_d.png differ
diff --git a/parts_pl/body/pl_cumulus.png b/parts_pl/body/pl_cumulus.png
new file mode 100644
index 0000000..52b0784
Binary files /dev/null and b/parts_pl/body/pl_cumulus.png differ
diff --git a/parts_pl/body/pl_cumulus_b.png b/parts_pl/body/pl_cumulus_b.png
new file mode 100644
index 0000000..159adef
Binary files /dev/null and b/parts_pl/body/pl_cumulus_b.png differ
diff --git a/parts_pl/body/pl_cumulus_c.png b/parts_pl/body/pl_cumulus_c.png
new file mode 100644
index 0000000..9ae0224
Binary files /dev/null and b/parts_pl/body/pl_cumulus_c.png differ
diff --git a/parts_pl/body/pl_cumulus_d.png b/parts_pl/body/pl_cumulus_d.png
new file mode 100644
index 0000000..61788b8
Binary files /dev/null and b/parts_pl/body/pl_cumulus_d.png differ
diff --git a/parts_pl/body/pl_cuttle.png b/parts_pl/body/pl_cuttle.png
new file mode 100644
index 0000000..ec8130c
Binary files /dev/null and b/parts_pl/body/pl_cuttle.png differ
diff --git a/parts_pl/body/pl_cuttle_b.png b/parts_pl/body/pl_cuttle_b.png
new file mode 100644
index 0000000..6da8225
Binary files /dev/null and b/parts_pl/body/pl_cuttle_b.png differ
diff --git a/parts_pl/body/pl_cuttle_c.png b/parts_pl/body/pl_cuttle_c.png
new file mode 100644
index 0000000..0ed54e9
Binary files /dev/null and b/parts_pl/body/pl_cuttle_c.png differ
diff --git a/parts_pl/body/pl_cuttle_d.png b/parts_pl/body/pl_cuttle_d.png
new file mode 100644
index 0000000..c8a217d
Binary files /dev/null and b/parts_pl/body/pl_cuttle_d.png differ
diff --git a/parts_pl/body/pl_dancedragon.png b/parts_pl/body/pl_dancedragon.png
new file mode 100644
index 0000000..4d52d19
Binary files /dev/null and b/parts_pl/body/pl_dancedragon.png differ
diff --git a/parts_pl/body/pl_dancedragon_b.png b/parts_pl/body/pl_dancedragon_b.png
new file mode 100644
index 0000000..2995951
Binary files /dev/null and b/parts_pl/body/pl_dancedragon_b.png differ
diff --git a/parts_pl/body/pl_dancedragon_c.png b/parts_pl/body/pl_dancedragon_c.png
new file mode 100644
index 0000000..a363949
Binary files /dev/null and b/parts_pl/body/pl_dancedragon_c.png differ
diff --git a/parts_pl/body/pl_dancedragon_d.png b/parts_pl/body/pl_dancedragon_d.png
new file mode 100644
index 0000000..497550c
Binary files /dev/null and b/parts_pl/body/pl_dancedragon_d.png differ
diff --git a/parts_pl/body/pl_dartfrog.png b/parts_pl/body/pl_dartfrog.png
new file mode 100644
index 0000000..7e1c75d
Binary files /dev/null and b/parts_pl/body/pl_dartfrog.png differ
diff --git a/parts_pl/body/pl_dartfrog_b.png b/parts_pl/body/pl_dartfrog_b.png
new file mode 100644
index 0000000..dab997a
Binary files /dev/null and b/parts_pl/body/pl_dartfrog_b.png differ
diff --git a/parts_pl/body/pl_dartfrog_c.png b/parts_pl/body/pl_dartfrog_c.png
new file mode 100644
index 0000000..1c40c67
Binary files /dev/null and b/parts_pl/body/pl_dartfrog_c.png differ
diff --git a/parts_pl/body/pl_dartfrog_d.png b/parts_pl/body/pl_dartfrog_d.png
new file mode 100644
index 0000000..8f1dd37
Binary files /dev/null and b/parts_pl/body/pl_dartfrog_d.png differ
diff --git a/parts_pl/body/pl_daruma.png b/parts_pl/body/pl_daruma.png
new file mode 100644
index 0000000..ce827cb
Binary files /dev/null and b/parts_pl/body/pl_daruma.png differ
diff --git a/parts_pl/body/pl_daruma_b.png b/parts_pl/body/pl_daruma_b.png
new file mode 100644
index 0000000..df57aa1
Binary files /dev/null and b/parts_pl/body/pl_daruma_b.png differ
diff --git a/parts_pl/body/pl_daruma_c.png b/parts_pl/body/pl_daruma_c.png
new file mode 100644
index 0000000..c1dcb9e
Binary files /dev/null and b/parts_pl/body/pl_daruma_c.png differ
diff --git a/parts_pl/body/pl_daruma_d.png b/parts_pl/body/pl_daruma_d.png
new file mode 100644
index 0000000..2f5edcb
Binary files /dev/null and b/parts_pl/body/pl_daruma_d.png differ
diff --git a/parts_pl/body/pl_dashbird.png b/parts_pl/body/pl_dashbird.png
new file mode 100644
index 0000000..7289e68
Binary files /dev/null and b/parts_pl/body/pl_dashbird.png differ
diff --git a/parts_pl/body/pl_dashbird_b.png b/parts_pl/body/pl_dashbird_b.png
new file mode 100644
index 0000000..0fb84a6
Binary files /dev/null and b/parts_pl/body/pl_dashbird_b.png differ
diff --git a/parts_pl/body/pl_dashbird_c.png b/parts_pl/body/pl_dashbird_c.png
new file mode 100644
index 0000000..e61340c
Binary files /dev/null and b/parts_pl/body/pl_dashbird_c.png differ
diff --git a/parts_pl/body/pl_dashbird_d.png b/parts_pl/body/pl_dashbird_d.png
new file mode 100644
index 0000000..4a307fd
Binary files /dev/null and b/parts_pl/body/pl_dashbird_d.png differ
diff --git a/parts_pl/body/pl_dimetro.png b/parts_pl/body/pl_dimetro.png
new file mode 100644
index 0000000..25c55e3
Binary files /dev/null and b/parts_pl/body/pl_dimetro.png differ
diff --git a/parts_pl/body/pl_dimetro_b.png b/parts_pl/body/pl_dimetro_b.png
new file mode 100644
index 0000000..0a723e5
Binary files /dev/null and b/parts_pl/body/pl_dimetro_b.png differ
diff --git a/parts_pl/body/pl_dimetro_c.png b/parts_pl/body/pl_dimetro_c.png
new file mode 100644
index 0000000..de71871
Binary files /dev/null and b/parts_pl/body/pl_dimetro_c.png differ
diff --git a/parts_pl/body/pl_dino_b.png b/parts_pl/body/pl_dino_b.png
new file mode 100644
index 0000000..f34a976
Binary files /dev/null and b/parts_pl/body/pl_dino_b.png differ
diff --git a/parts_pl/body/pl_dino_c.png b/parts_pl/body/pl_dino_c.png
new file mode 100644
index 0000000..6755a61
Binary files /dev/null and b/parts_pl/body/pl_dino_c.png differ
diff --git a/parts_pl/body/pl_dino_d.png b/parts_pl/body/pl_dino_d.png
new file mode 100644
index 0000000..ee43f43
Binary files /dev/null and b/parts_pl/body/pl_dino_d.png differ
diff --git a/parts_pl/body/pl_diver.png b/parts_pl/body/pl_diver.png
new file mode 100644
index 0000000..2fc4917
Binary files /dev/null and b/parts_pl/body/pl_diver.png differ
diff --git a/parts_pl/body/pl_diver_b.png b/parts_pl/body/pl_diver_b.png
new file mode 100644
index 0000000..c5d67a5
Binary files /dev/null and b/parts_pl/body/pl_diver_b.png differ
diff --git a/parts_pl/body/pl_diver_c.png b/parts_pl/body/pl_diver_c.png
new file mode 100644
index 0000000..b4003a7
Binary files /dev/null and b/parts_pl/body/pl_diver_c.png differ
diff --git a/parts_pl/body/pl_diver_d.png b/parts_pl/body/pl_diver_d.png
new file mode 100644
index 0000000..b9d3880
Binary files /dev/null and b/parts_pl/body/pl_diver_d.png differ
diff --git a/parts_pl/body/pl_dobsonfly.png b/parts_pl/body/pl_dobsonfly.png
new file mode 100644
index 0000000..5a278e9
Binary files /dev/null and b/parts_pl/body/pl_dobsonfly.png differ
diff --git a/parts_pl/body/pl_dobsonfly_b.png b/parts_pl/body/pl_dobsonfly_b.png
new file mode 100644
index 0000000..981c454
Binary files /dev/null and b/parts_pl/body/pl_dobsonfly_b.png differ
diff --git a/parts_pl/body/pl_dobsonfly_c.png b/parts_pl/body/pl_dobsonfly_c.png
new file mode 100644
index 0000000..499208f
Binary files /dev/null and b/parts_pl/body/pl_dobsonfly_c.png differ
diff --git a/parts_pl/body/pl_dobsonfly_d.png b/parts_pl/body/pl_dobsonfly_d.png
new file mode 100644
index 0000000..ed9e2ba
Binary files /dev/null and b/parts_pl/body/pl_dobsonfly_d.png differ
diff --git a/parts_pl/body/pl_dodo.png b/parts_pl/body/pl_dodo.png
new file mode 100644
index 0000000..12b7c4f
Binary files /dev/null and b/parts_pl/body/pl_dodo.png differ
diff --git a/parts_pl/body/pl_dodo_b.png b/parts_pl/body/pl_dodo_b.png
new file mode 100644
index 0000000..0a3daa8
Binary files /dev/null and b/parts_pl/body/pl_dodo_b.png differ
diff --git a/parts_pl/body/pl_dodo_c.png b/parts_pl/body/pl_dodo_c.png
new file mode 100644
index 0000000..b6ed925
Binary files /dev/null and b/parts_pl/body/pl_dodo_c.png differ
diff --git a/parts_pl/body/pl_dodo_d.png b/parts_pl/body/pl_dodo_d.png
new file mode 100644
index 0000000..77483c6
Binary files /dev/null and b/parts_pl/body/pl_dodo_d.png differ
diff --git a/parts_pl/body/pl_doll.png b/parts_pl/body/pl_doll.png
new file mode 100644
index 0000000..7228cc9
Binary files /dev/null and b/parts_pl/body/pl_doll.png differ
diff --git a/parts_pl/body/pl_doll_b.png b/parts_pl/body/pl_doll_b.png
new file mode 100644
index 0000000..42c0757
Binary files /dev/null and b/parts_pl/body/pl_doll_b.png differ
diff --git a/parts_pl/body/pl_doll_c.png b/parts_pl/body/pl_doll_c.png
new file mode 100644
index 0000000..7a6f21f
Binary files /dev/null and b/parts_pl/body/pl_doll_c.png differ
diff --git a/parts_pl/body/pl_doll_d.png b/parts_pl/body/pl_doll_d.png
new file mode 100644
index 0000000..a91cc26
Binary files /dev/null and b/parts_pl/body/pl_doll_d.png differ
diff --git a/parts_pl/body/pl_dormouse.png b/parts_pl/body/pl_dormouse.png
new file mode 100644
index 0000000..d59bc15
Binary files /dev/null and b/parts_pl/body/pl_dormouse.png differ
diff --git a/parts_pl/body/pl_dormouse_b.png b/parts_pl/body/pl_dormouse_b.png
new file mode 100644
index 0000000..48cb3aa
Binary files /dev/null and b/parts_pl/body/pl_dormouse_b.png differ
diff --git a/parts_pl/body/pl_dormouse_c.png b/parts_pl/body/pl_dormouse_c.png
new file mode 100644
index 0000000..ec67205
Binary files /dev/null and b/parts_pl/body/pl_dormouse_c.png differ
diff --git a/parts_pl/body/pl_dormouse_d.png b/parts_pl/body/pl_dormouse_d.png
new file mode 100644
index 0000000..387307b
Binary files /dev/null and b/parts_pl/body/pl_dormouse_d.png differ
diff --git a/parts_pl/body/pl_draco.png b/parts_pl/body/pl_draco.png
new file mode 100644
index 0000000..2bbc7ab
Binary files /dev/null and b/parts_pl/body/pl_draco.png differ
diff --git a/parts_pl/body/pl_draco_b.png b/parts_pl/body/pl_draco_b.png
new file mode 100644
index 0000000..826509e
Binary files /dev/null and b/parts_pl/body/pl_draco_b.png differ
diff --git a/parts_pl/body/pl_draco_c.png b/parts_pl/body/pl_draco_c.png
new file mode 100644
index 0000000..d68cb50
Binary files /dev/null and b/parts_pl/body/pl_draco_c.png differ
diff --git a/parts_pl/body/pl_draco_d.png b/parts_pl/body/pl_draco_d.png
new file mode 100644
index 0000000..79e0e0d
Binary files /dev/null and b/parts_pl/body/pl_draco_d.png differ
diff --git a/parts_pl/body/pl_dracobeetle.png b/parts_pl/body/pl_dracobeetle.png
new file mode 100644
index 0000000..ef71bf5
Binary files /dev/null and b/parts_pl/body/pl_dracobeetle.png differ
diff --git a/parts_pl/body/pl_dracobeetle_b.png b/parts_pl/body/pl_dracobeetle_b.png
new file mode 100644
index 0000000..e2968db
Binary files /dev/null and b/parts_pl/body/pl_dracobeetle_b.png differ
diff --git a/parts_pl/body/pl_dracobeetle_d.png b/parts_pl/body/pl_dracobeetle_d.png
new file mode 100644
index 0000000..9e69ca1
Binary files /dev/null and b/parts_pl/body/pl_dracobeetle_d.png differ
diff --git a/parts_pl/body/pl_dragonegg.png b/parts_pl/body/pl_dragonegg.png
new file mode 100644
index 0000000..8b281da
Binary files /dev/null and b/parts_pl/body/pl_dragonegg.png differ
diff --git a/parts_pl/body/pl_dragonegg_b.png b/parts_pl/body/pl_dragonegg_b.png
new file mode 100644
index 0000000..d405867
Binary files /dev/null and b/parts_pl/body/pl_dragonegg_b.png differ
diff --git a/parts_pl/body/pl_dragonegg_c.png b/parts_pl/body/pl_dragonegg_c.png
new file mode 100644
index 0000000..62e6a90
Binary files /dev/null and b/parts_pl/body/pl_dragonegg_c.png differ
diff --git a/parts_pl/body/pl_dragonegg_d.png b/parts_pl/body/pl_dragonegg_d.png
new file mode 100644
index 0000000..e734b65
Binary files /dev/null and b/parts_pl/body/pl_dragonegg_d.png differ
diff --git a/parts_pl/body/pl_dragonfly.png b/parts_pl/body/pl_dragonfly.png
new file mode 100644
index 0000000..17d7efe
Binary files /dev/null and b/parts_pl/body/pl_dragonfly.png differ
diff --git a/parts_pl/body/pl_dragonfly_b.png b/parts_pl/body/pl_dragonfly_b.png
new file mode 100644
index 0000000..c58dae7
Binary files /dev/null and b/parts_pl/body/pl_dragonfly_b.png differ
diff --git a/parts_pl/body/pl_dragonfly_c.png b/parts_pl/body/pl_dragonfly_c.png
new file mode 100644
index 0000000..57cd1e3
Binary files /dev/null and b/parts_pl/body/pl_dragonfly_c.png differ
diff --git a/parts_pl/body/pl_dragonfly_d.png b/parts_pl/body/pl_dragonfly_d.png
new file mode 100644
index 0000000..41fe3d3
Binary files /dev/null and b/parts_pl/body/pl_dragonfly_d.png differ
diff --git a/parts_pl/body/pl_drake_b.png b/parts_pl/body/pl_drake_b.png
new file mode 100644
index 0000000..4405855
Binary files /dev/null and b/parts_pl/body/pl_drake_b.png differ
diff --git a/parts_pl/body/pl_drake_c.png b/parts_pl/body/pl_drake_c.png
new file mode 100644
index 0000000..5ee7a62
Binary files /dev/null and b/parts_pl/body/pl_drake_c.png differ
diff --git a/parts_pl/body/pl_drake_d.png b/parts_pl/body/pl_drake_d.png
new file mode 100644
index 0000000..0c7c4cc
Binary files /dev/null and b/parts_pl/body/pl_drake_d.png differ
diff --git a/parts_pl/body/pl_dromaeo.png b/parts_pl/body/pl_dromaeo.png
new file mode 100644
index 0000000..2721935
Binary files /dev/null and b/parts_pl/body/pl_dromaeo.png differ
diff --git a/parts_pl/body/pl_dromaeo_b.png b/parts_pl/body/pl_dromaeo_b.png
new file mode 100644
index 0000000..f666bfc
Binary files /dev/null and b/parts_pl/body/pl_dromaeo_b.png differ
diff --git a/parts_pl/body/pl_dromaeo_c.png b/parts_pl/body/pl_dromaeo_c.png
new file mode 100644
index 0000000..1b2ed98
Binary files /dev/null and b/parts_pl/body/pl_dromaeo_c.png differ
diff --git a/parts_pl/body/pl_dromaeo_d.png b/parts_pl/body/pl_dromaeo_d.png
new file mode 100644
index 0000000..a3be301
Binary files /dev/null and b/parts_pl/body/pl_dromaeo_d.png differ
diff --git a/parts_pl/body/pl_duck_b.png b/parts_pl/body/pl_duck_b.png
new file mode 100644
index 0000000..3f3ab76
Binary files /dev/null and b/parts_pl/body/pl_duck_b.png differ
diff --git a/parts_pl/body/pl_duck_c.png b/parts_pl/body/pl_duck_c.png
new file mode 100644
index 0000000..c6dc5b3
Binary files /dev/null and b/parts_pl/body/pl_duck_c.png differ
diff --git a/parts_pl/body/pl_duck_d.png b/parts_pl/body/pl_duck_d.png
new file mode 100644
index 0000000..f4fa305
Binary files /dev/null and b/parts_pl/body/pl_duck_d.png differ
diff --git a/parts_pl/body/pl_dumbo.png b/parts_pl/body/pl_dumbo.png
new file mode 100644
index 0000000..21bd758
Binary files /dev/null and b/parts_pl/body/pl_dumbo.png differ
diff --git a/parts_pl/body/pl_dumbo_b.png b/parts_pl/body/pl_dumbo_b.png
new file mode 100644
index 0000000..4115aa1
Binary files /dev/null and b/parts_pl/body/pl_dumbo_b.png differ
diff --git a/parts_pl/body/pl_dumbo_c.png b/parts_pl/body/pl_dumbo_c.png
new file mode 100644
index 0000000..e9ffdd1
Binary files /dev/null and b/parts_pl/body/pl_dumbo_c.png differ
diff --git a/parts_pl/body/pl_dumbo_d.png b/parts_pl/body/pl_dumbo_d.png
new file mode 100644
index 0000000..7fb6d45
Binary files /dev/null and b/parts_pl/body/pl_dumbo_d.png differ
diff --git a/parts_pl/body/pl_dustdevil.png b/parts_pl/body/pl_dustdevil.png
new file mode 100644
index 0000000..fa62275
Binary files /dev/null and b/parts_pl/body/pl_dustdevil.png differ
diff --git a/parts_pl/body/pl_dustdevil_b.png b/parts_pl/body/pl_dustdevil_b.png
new file mode 100644
index 0000000..31e8110
Binary files /dev/null and b/parts_pl/body/pl_dustdevil_b.png differ
diff --git a/parts_pl/body/pl_dustdevil_c.png b/parts_pl/body/pl_dustdevil_c.png
new file mode 100644
index 0000000..e2061ed
Binary files /dev/null and b/parts_pl/body/pl_dustdevil_c.png differ
diff --git a/parts_pl/body/pl_dustdevil_d.png b/parts_pl/body/pl_dustdevil_d.png
new file mode 100644
index 0000000..5c67923
Binary files /dev/null and b/parts_pl/body/pl_dustdevil_d.png differ
diff --git a/parts_pl/body/pl_dynamo.png b/parts_pl/body/pl_dynamo.png
new file mode 100644
index 0000000..a75b4e5
Binary files /dev/null and b/parts_pl/body/pl_dynamo.png differ
diff --git a/parts_pl/body/pl_dynamo_c.png b/parts_pl/body/pl_dynamo_c.png
new file mode 100644
index 0000000..4091e5f
Binary files /dev/null and b/parts_pl/body/pl_dynamo_c.png differ
diff --git a/parts_pl/body/pl_dynamo_d.png b/parts_pl/body/pl_dynamo_d.png
new file mode 100644
index 0000000..78fc345
Binary files /dev/null and b/parts_pl/body/pl_dynamo_d.png differ
diff --git a/parts_pl/body/pl_earwig.png b/parts_pl/body/pl_earwig.png
new file mode 100644
index 0000000..6cd7f98
Binary files /dev/null and b/parts_pl/body/pl_earwig.png differ
diff --git a/parts_pl/body/pl_earwig_b.png b/parts_pl/body/pl_earwig_b.png
new file mode 100644
index 0000000..53ed40f
Binary files /dev/null and b/parts_pl/body/pl_earwig_b.png differ
diff --git a/parts_pl/body/pl_earwig_c.png b/parts_pl/body/pl_earwig_c.png
new file mode 100644
index 0000000..2245309
Binary files /dev/null and b/parts_pl/body/pl_earwig_c.png differ
diff --git a/parts_pl/body/pl_earwig_d.png b/parts_pl/body/pl_earwig_d.png
new file mode 100644
index 0000000..d63399c
Binary files /dev/null and b/parts_pl/body/pl_earwig_d.png differ
diff --git a/parts_pl/body/pl_eel_b.png b/parts_pl/body/pl_eel_b.png
new file mode 100644
index 0000000..6a04dcf
Binary files /dev/null and b/parts_pl/body/pl_eel_b.png differ
diff --git a/parts_pl/body/pl_eel_c.png b/parts_pl/body/pl_eel_c.png
new file mode 100644
index 0000000..6b7905a
Binary files /dev/null and b/parts_pl/body/pl_eel_c.png differ
diff --git a/parts_pl/body/pl_eel_d.png b/parts_pl/body/pl_eel_d.png
new file mode 100644
index 0000000..e954d93
Binary files /dev/null and b/parts_pl/body/pl_eel_d.png differ
diff --git a/parts_pl/body/pl_emberant.png b/parts_pl/body/pl_emberant.png
new file mode 100644
index 0000000..c08cbe6
Binary files /dev/null and b/parts_pl/body/pl_emberant.png differ
diff --git a/parts_pl/body/pl_emberant_b.png b/parts_pl/body/pl_emberant_b.png
new file mode 100644
index 0000000..f427a1c
Binary files /dev/null and b/parts_pl/body/pl_emberant_b.png differ
diff --git a/parts_pl/body/pl_emberant_c.png b/parts_pl/body/pl_emberant_c.png
new file mode 100644
index 0000000..bb9c7aa
Binary files /dev/null and b/parts_pl/body/pl_emberant_c.png differ
diff --git a/parts_pl/body/pl_emberant_d.png b/parts_pl/body/pl_emberant_d.png
new file mode 100644
index 0000000..971218e
Binary files /dev/null and b/parts_pl/body/pl_emberant_d.png differ
diff --git a/parts_pl/body/pl_eyespot.png b/parts_pl/body/pl_eyespot.png
new file mode 100644
index 0000000..e54dee5
Binary files /dev/null and b/parts_pl/body/pl_eyespot.png differ
diff --git a/parts_pl/body/pl_eyespot_b.png b/parts_pl/body/pl_eyespot_b.png
new file mode 100644
index 0000000..248ea3f
Binary files /dev/null and b/parts_pl/body/pl_eyespot_b.png differ
diff --git a/parts_pl/body/pl_eyespot_c.png b/parts_pl/body/pl_eyespot_c.png
new file mode 100644
index 0000000..37d095b
Binary files /dev/null and b/parts_pl/body/pl_eyespot_c.png differ
diff --git a/parts_pl/body/pl_eyespot_d.png b/parts_pl/body/pl_eyespot_d.png
new file mode 100644
index 0000000..be88913
Binary files /dev/null and b/parts_pl/body/pl_eyespot_d.png differ
diff --git a/parts_pl/body/pl_fawn_b.png b/parts_pl/body/pl_fawn_b.png
new file mode 100644
index 0000000..545e997
Binary files /dev/null and b/parts_pl/body/pl_fawn_b.png differ
diff --git a/parts_pl/body/pl_fawn_c.png b/parts_pl/body/pl_fawn_c.png
new file mode 100644
index 0000000..5551e9c
Binary files /dev/null and b/parts_pl/body/pl_fawn_c.png differ
diff --git a/parts_pl/body/pl_fawn_d.png b/parts_pl/body/pl_fawn_d.png
new file mode 100644
index 0000000..bf979a0
Binary files /dev/null and b/parts_pl/body/pl_fawn_d.png differ
diff --git a/parts_pl/body/pl_ferret.png b/parts_pl/body/pl_ferret.png
new file mode 100644
index 0000000..2d5276b
Binary files /dev/null and b/parts_pl/body/pl_ferret.png differ
diff --git a/parts_pl/body/pl_ferret_b.png b/parts_pl/body/pl_ferret_b.png
new file mode 100644
index 0000000..27fbbd8
Binary files /dev/null and b/parts_pl/body/pl_ferret_b.png differ
diff --git a/parts_pl/body/pl_ferret_c.png b/parts_pl/body/pl_ferret_c.png
new file mode 100644
index 0000000..87a51bd
Binary files /dev/null and b/parts_pl/body/pl_ferret_c.png differ
diff --git a/parts_pl/body/pl_ferret_d.png b/parts_pl/body/pl_ferret_d.png
new file mode 100644
index 0000000..3386582
Binary files /dev/null and b/parts_pl/body/pl_ferret_d.png differ
diff --git a/parts_pl/body/pl_firecracker.png b/parts_pl/body/pl_firecracker.png
new file mode 100644
index 0000000..539da9e
Binary files /dev/null and b/parts_pl/body/pl_firecracker.png differ
diff --git a/parts_pl/body/pl_firecracker_b.png b/parts_pl/body/pl_firecracker_b.png
new file mode 100644
index 0000000..b0ef022
Binary files /dev/null and b/parts_pl/body/pl_firecracker_b.png differ
diff --git a/parts_pl/body/pl_firefly.png b/parts_pl/body/pl_firefly.png
new file mode 100644
index 0000000..ab878b8
Binary files /dev/null and b/parts_pl/body/pl_firefly.png differ
diff --git a/parts_pl/body/pl_firefly_b.png b/parts_pl/body/pl_firefly_b.png
new file mode 100644
index 0000000..1d66f6c
Binary files /dev/null and b/parts_pl/body/pl_firefly_b.png differ
diff --git a/parts_pl/body/pl_firefly_c.png b/parts_pl/body/pl_firefly_c.png
new file mode 100644
index 0000000..02f3fd4
Binary files /dev/null and b/parts_pl/body/pl_firefly_c.png differ
diff --git a/parts_pl/body/pl_firehose.png b/parts_pl/body/pl_firehose.png
new file mode 100644
index 0000000..8f2b4cf
Binary files /dev/null and b/parts_pl/body/pl_firehose.png differ
diff --git a/parts_pl/body/pl_firehose_c.png b/parts_pl/body/pl_firehose_c.png
new file mode 100644
index 0000000..5c75a4e
Binary files /dev/null and b/parts_pl/body/pl_firehose_c.png differ
diff --git a/parts_pl/body/pl_flask.png b/parts_pl/body/pl_flask.png
new file mode 100644
index 0000000..efb3645
Binary files /dev/null and b/parts_pl/body/pl_flask.png differ
diff --git a/parts_pl/body/pl_flask_b.png b/parts_pl/body/pl_flask_b.png
new file mode 100644
index 0000000..219af13
Binary files /dev/null and b/parts_pl/body/pl_flask_b.png differ
diff --git a/parts_pl/body/pl_flask_c.png b/parts_pl/body/pl_flask_c.png
new file mode 100644
index 0000000..d121561
Binary files /dev/null and b/parts_pl/body/pl_flask_c.png differ
diff --git a/parts_pl/body/pl_flask_d.png b/parts_pl/body/pl_flask_d.png
new file mode 100644
index 0000000..ab5dc98
Binary files /dev/null and b/parts_pl/body/pl_flask_d.png differ
diff --git a/parts_pl/body/pl_flea.png b/parts_pl/body/pl_flea.png
new file mode 100644
index 0000000..4c247fb
Binary files /dev/null and b/parts_pl/body/pl_flea.png differ
diff --git a/parts_pl/body/pl_flea_b.png b/parts_pl/body/pl_flea_b.png
new file mode 100644
index 0000000..ad63ccb
Binary files /dev/null and b/parts_pl/body/pl_flea_b.png differ
diff --git a/parts_pl/body/pl_flea_c.png b/parts_pl/body/pl_flea_c.png
new file mode 100644
index 0000000..e1a2aa6
Binary files /dev/null and b/parts_pl/body/pl_flea_c.png differ
diff --git a/parts_pl/body/pl_flea_d.png b/parts_pl/body/pl_flea_d.png
new file mode 100644
index 0000000..2b0c0df
Binary files /dev/null and b/parts_pl/body/pl_flea_d.png differ
diff --git a/parts_pl/body/pl_flutter.png b/parts_pl/body/pl_flutter.png
new file mode 100644
index 0000000..a5594ff
Binary files /dev/null and b/parts_pl/body/pl_flutter.png differ
diff --git a/parts_pl/body/pl_flutter_b.png b/parts_pl/body/pl_flutter_b.png
new file mode 100644
index 0000000..5347a03
Binary files /dev/null and b/parts_pl/body/pl_flutter_b.png differ
diff --git a/parts_pl/body/pl_flutter_c.png b/parts_pl/body/pl_flutter_c.png
new file mode 100644
index 0000000..ac3b164
Binary files /dev/null and b/parts_pl/body/pl_flutter_c.png differ
diff --git a/parts_pl/body/pl_flutter_d.png b/parts_pl/body/pl_flutter_d.png
new file mode 100644
index 0000000..d438f8e
Binary files /dev/null and b/parts_pl/body/pl_flutter_d.png differ
diff --git a/parts_pl/body/pl_flyfish.png b/parts_pl/body/pl_flyfish.png
new file mode 100644
index 0000000..017f905
Binary files /dev/null and b/parts_pl/body/pl_flyfish.png differ
diff --git a/parts_pl/body/pl_flyfish_b.png b/parts_pl/body/pl_flyfish_b.png
new file mode 100644
index 0000000..1f42580
Binary files /dev/null and b/parts_pl/body/pl_flyfish_b.png differ
diff --git a/parts_pl/body/pl_flyfish_d.png b/parts_pl/body/pl_flyfish_d.png
new file mode 100644
index 0000000..e366111
Binary files /dev/null and b/parts_pl/body/pl_flyfish_d.png differ
diff --git a/parts_pl/body/pl_flytrap.png b/parts_pl/body/pl_flytrap.png
new file mode 100644
index 0000000..d6e2f64
Binary files /dev/null and b/parts_pl/body/pl_flytrap.png differ
diff --git a/parts_pl/body/pl_flytrap_b.png b/parts_pl/body/pl_flytrap_b.png
new file mode 100644
index 0000000..457c8da
Binary files /dev/null and b/parts_pl/body/pl_flytrap_b.png differ
diff --git a/parts_pl/body/pl_flytrap_c.png b/parts_pl/body/pl_flytrap_c.png
new file mode 100644
index 0000000..d4cef36
Binary files /dev/null and b/parts_pl/body/pl_flytrap_c.png differ
diff --git a/parts_pl/body/pl_flytrap_d.png b/parts_pl/body/pl_flytrap_d.png
new file mode 100644
index 0000000..9eb2925
Binary files /dev/null and b/parts_pl/body/pl_flytrap_d.png differ
diff --git a/parts_pl/body/pl_fox_b.png b/parts_pl/body/pl_fox_b.png
new file mode 100644
index 0000000..15e703b
Binary files /dev/null and b/parts_pl/body/pl_fox_b.png differ
diff --git a/parts_pl/body/pl_fox_c.png b/parts_pl/body/pl_fox_c.png
new file mode 100644
index 0000000..918eb94
Binary files /dev/null and b/parts_pl/body/pl_fox_c.png differ
diff --git a/parts_pl/body/pl_fox_d.png b/parts_pl/body/pl_fox_d.png
new file mode 100644
index 0000000..bcbb4b6
Binary files /dev/null and b/parts_pl/body/pl_fox_d.png differ
diff --git a/parts_pl/body/pl_frigate.png b/parts_pl/body/pl_frigate.png
new file mode 100644
index 0000000..439faf0
Binary files /dev/null and b/parts_pl/body/pl_frigate.png differ
diff --git a/parts_pl/body/pl_frigate_b.png b/parts_pl/body/pl_frigate_b.png
new file mode 100644
index 0000000..32685ca
Binary files /dev/null and b/parts_pl/body/pl_frigate_b.png differ
diff --git a/parts_pl/body/pl_frigate_c.png b/parts_pl/body/pl_frigate_c.png
new file mode 100644
index 0000000..8bb6cc7
Binary files /dev/null and b/parts_pl/body/pl_frigate_c.png differ
diff --git a/parts_pl/body/pl_frigate_d.png b/parts_pl/body/pl_frigate_d.png
new file mode 100644
index 0000000..fcb4986
Binary files /dev/null and b/parts_pl/body/pl_frigate_d.png differ
diff --git a/parts_pl/body/pl_frizzbird.png b/parts_pl/body/pl_frizzbird.png
new file mode 100644
index 0000000..6c0403d
Binary files /dev/null and b/parts_pl/body/pl_frizzbird.png differ
diff --git a/parts_pl/body/pl_frizzbird_b.png b/parts_pl/body/pl_frizzbird_b.png
new file mode 100644
index 0000000..37226ff
Binary files /dev/null and b/parts_pl/body/pl_frizzbird_b.png differ
diff --git a/parts_pl/body/pl_frizzbird_c.png b/parts_pl/body/pl_frizzbird_c.png
new file mode 100644
index 0000000..5e363a8
Binary files /dev/null and b/parts_pl/body/pl_frizzbird_c.png differ
diff --git a/parts_pl/body/pl_frogmouth.png b/parts_pl/body/pl_frogmouth.png
new file mode 100644
index 0000000..c72b5e5
Binary files /dev/null and b/parts_pl/body/pl_frogmouth.png differ
diff --git a/parts_pl/body/pl_frogmouth_b.png b/parts_pl/body/pl_frogmouth_b.png
new file mode 100644
index 0000000..590cc8e
Binary files /dev/null and b/parts_pl/body/pl_frogmouth_b.png differ
diff --git a/parts_pl/body/pl_frogmouth_c.png b/parts_pl/body/pl_frogmouth_c.png
new file mode 100644
index 0000000..e6e28bb
Binary files /dev/null and b/parts_pl/body/pl_frogmouth_c.png differ
diff --git a/parts_pl/body/pl_frogmouth_d.png b/parts_pl/body/pl_frogmouth_d.png
new file mode 100644
index 0000000..a487fb4
Binary files /dev/null and b/parts_pl/body/pl_frogmouth_d.png differ
diff --git a/parts_pl/body/pl_furnace.png b/parts_pl/body/pl_furnace.png
new file mode 100644
index 0000000..e75207d
Binary files /dev/null and b/parts_pl/body/pl_furnace.png differ
diff --git a/parts_pl/body/pl_furnace_b.png b/parts_pl/body/pl_furnace_b.png
new file mode 100644
index 0000000..0bb6bd7
Binary files /dev/null and b/parts_pl/body/pl_furnace_b.png differ
diff --git a/parts_pl/body/pl_furnace_c.png b/parts_pl/body/pl_furnace_c.png
new file mode 100644
index 0000000..9ce2f2a
Binary files /dev/null and b/parts_pl/body/pl_furnace_c.png differ
diff --git a/parts_pl/body/pl_furnace_d.png b/parts_pl/body/pl_furnace_d.png
new file mode 100644
index 0000000..0143b3a
Binary files /dev/null and b/parts_pl/body/pl_furnace_d.png differ
diff --git a/parts_pl/body/pl_gamecock.png b/parts_pl/body/pl_gamecock.png
new file mode 100644
index 0000000..1acd79a
Binary files /dev/null and b/parts_pl/body/pl_gamecock.png differ
diff --git a/parts_pl/body/pl_gamecock_b.png b/parts_pl/body/pl_gamecock_b.png
new file mode 100644
index 0000000..dab1748
Binary files /dev/null and b/parts_pl/body/pl_gamecock_b.png differ
diff --git a/parts_pl/body/pl_gamecock_c.png b/parts_pl/body/pl_gamecock_c.png
new file mode 100644
index 0000000..a4caaa1
Binary files /dev/null and b/parts_pl/body/pl_gamecock_c.png differ
diff --git a/parts_pl/body/pl_gamecock_d.png b/parts_pl/body/pl_gamecock_d.png
new file mode 100644
index 0000000..5ecc14f
Binary files /dev/null and b/parts_pl/body/pl_gamecock_d.png differ
diff --git a/parts_pl/body/pl_gargoyle.png b/parts_pl/body/pl_gargoyle.png
new file mode 100644
index 0000000..c7300db
Binary files /dev/null and b/parts_pl/body/pl_gargoyle.png differ
diff --git a/parts_pl/body/pl_gargoyle_b.png b/parts_pl/body/pl_gargoyle_b.png
new file mode 100644
index 0000000..3e7db8f
Binary files /dev/null and b/parts_pl/body/pl_gargoyle_b.png differ
diff --git a/parts_pl/body/pl_gargoyle_c.png b/parts_pl/body/pl_gargoyle_c.png
new file mode 100644
index 0000000..2be2cbb
Binary files /dev/null and b/parts_pl/body/pl_gargoyle_c.png differ
diff --git a/parts_pl/body/pl_gargoyle_d.png b/parts_pl/body/pl_gargoyle_d.png
new file mode 100644
index 0000000..65df0fa
Binary files /dev/null and b/parts_pl/body/pl_gargoyle_d.png differ
diff --git a/parts_pl/body/pl_genie.png b/parts_pl/body/pl_genie.png
new file mode 100644
index 0000000..f7f6641
Binary files /dev/null and b/parts_pl/body/pl_genie.png differ
diff --git a/parts_pl/body/pl_genie_c.png b/parts_pl/body/pl_genie_c.png
new file mode 100644
index 0000000..1774687
Binary files /dev/null and b/parts_pl/body/pl_genie_c.png differ
diff --git a/parts_pl/body/pl_geode.png b/parts_pl/body/pl_geode.png
new file mode 100644
index 0000000..4710b7f
Binary files /dev/null and b/parts_pl/body/pl_geode.png differ
diff --git a/parts_pl/body/pl_geode_b.png b/parts_pl/body/pl_geode_b.png
new file mode 100644
index 0000000..171aa86
Binary files /dev/null and b/parts_pl/body/pl_geode_b.png differ
diff --git a/parts_pl/body/pl_geode_c.png b/parts_pl/body/pl_geode_c.png
new file mode 100644
index 0000000..41ebf58
Binary files /dev/null and b/parts_pl/body/pl_geode_c.png differ
diff --git a/parts_pl/body/pl_geode_d.png b/parts_pl/body/pl_geode_d.png
new file mode 100644
index 0000000..cac2fb8
Binary files /dev/null and b/parts_pl/body/pl_geode_d.png differ
diff --git a/parts_pl/body/pl_gharial.png b/parts_pl/body/pl_gharial.png
new file mode 100644
index 0000000..d5a3ef4
Binary files /dev/null and b/parts_pl/body/pl_gharial.png differ
diff --git a/parts_pl/body/pl_gharial_b.png b/parts_pl/body/pl_gharial_b.png
new file mode 100644
index 0000000..05bb4ea
Binary files /dev/null and b/parts_pl/body/pl_gharial_b.png differ
diff --git a/parts_pl/body/pl_gharial_c.png b/parts_pl/body/pl_gharial_c.png
new file mode 100644
index 0000000..f075b41
Binary files /dev/null and b/parts_pl/body/pl_gharial_c.png differ
diff --git a/parts_pl/body/pl_gharial_d.png b/parts_pl/body/pl_gharial_d.png
new file mode 100644
index 0000000..8df0807
Binary files /dev/null and b/parts_pl/body/pl_gharial_d.png differ
diff --git a/parts_pl/body/pl_ghostkoi.png b/parts_pl/body/pl_ghostkoi.png
new file mode 100644
index 0000000..1fe4c7f
Binary files /dev/null and b/parts_pl/body/pl_ghostkoi.png differ
diff --git a/parts_pl/body/pl_ghostkoi_b.png b/parts_pl/body/pl_ghostkoi_b.png
new file mode 100644
index 0000000..ad0cc93
Binary files /dev/null and b/parts_pl/body/pl_ghostkoi_b.png differ
diff --git a/parts_pl/body/pl_ghostkoi_c.png b/parts_pl/body/pl_ghostkoi_c.png
new file mode 100644
index 0000000..1ef3238
Binary files /dev/null and b/parts_pl/body/pl_ghostkoi_c.png differ
diff --git a/parts_pl/body/pl_ghostkoi_d.png b/parts_pl/body/pl_ghostkoi_d.png
new file mode 100644
index 0000000..9a98c71
Binary files /dev/null and b/parts_pl/body/pl_ghostkoi_d.png differ
diff --git a/parts_pl/body/pl_glider.png b/parts_pl/body/pl_glider.png
new file mode 100644
index 0000000..9b25ac0
Binary files /dev/null and b/parts_pl/body/pl_glider.png differ
diff --git a/parts_pl/body/pl_glider_b.png b/parts_pl/body/pl_glider_b.png
new file mode 100644
index 0000000..16c7363
Binary files /dev/null and b/parts_pl/body/pl_glider_b.png differ
diff --git a/parts_pl/body/pl_glider_d.png b/parts_pl/body/pl_glider_d.png
new file mode 100644
index 0000000..106430b
Binary files /dev/null and b/parts_pl/body/pl_glider_d.png differ
diff --git a/parts_pl/body/pl_golem.png b/parts_pl/body/pl_golem.png
new file mode 100644
index 0000000..a515ec5
Binary files /dev/null and b/parts_pl/body/pl_golem.png differ
diff --git a/parts_pl/body/pl_golem_b.png b/parts_pl/body/pl_golem_b.png
new file mode 100644
index 0000000..07d321c
Binary files /dev/null and b/parts_pl/body/pl_golem_b.png differ
diff --git a/parts_pl/body/pl_golem_c.png b/parts_pl/body/pl_golem_c.png
new file mode 100644
index 0000000..b11df2c
Binary files /dev/null and b/parts_pl/body/pl_golem_c.png differ
diff --git a/parts_pl/body/pl_golem_d.png b/parts_pl/body/pl_golem_d.png
new file mode 100644
index 0000000..0597f33
Binary files /dev/null and b/parts_pl/body/pl_golem_d.png differ
diff --git a/parts_pl/body/pl_gourd.png b/parts_pl/body/pl_gourd.png
new file mode 100644
index 0000000..933effe
Binary files /dev/null and b/parts_pl/body/pl_gourd.png differ
diff --git a/parts_pl/body/pl_gourd_b.png b/parts_pl/body/pl_gourd_b.png
new file mode 100644
index 0000000..60469f4
Binary files /dev/null and b/parts_pl/body/pl_gourd_b.png differ
diff --git a/parts_pl/body/pl_gourd_c.png b/parts_pl/body/pl_gourd_c.png
new file mode 100644
index 0000000..061b2cd
Binary files /dev/null and b/parts_pl/body/pl_gourd_c.png differ
diff --git a/parts_pl/body/pl_gourd_d.png b/parts_pl/body/pl_gourd_d.png
new file mode 100644
index 0000000..8175283
Binary files /dev/null and b/parts_pl/body/pl_gourd_d.png differ
diff --git a/parts_pl/body/pl_grub_b.png b/parts_pl/body/pl_grub_b.png
new file mode 100644
index 0000000..3c44298
Binary files /dev/null and b/parts_pl/body/pl_grub_b.png differ
diff --git a/parts_pl/body/pl_grub_c.png b/parts_pl/body/pl_grub_c.png
new file mode 100644
index 0000000..3f13a6b
Binary files /dev/null and b/parts_pl/body/pl_grub_c.png differ
diff --git a/parts_pl/body/pl_grub_d.png b/parts_pl/body/pl_grub_d.png
new file mode 100644
index 0000000..eaca7fc
Binary files /dev/null and b/parts_pl/body/pl_grub_d.png differ
diff --git a/parts_pl/body/pl_gryphon.png b/parts_pl/body/pl_gryphon.png
new file mode 100644
index 0000000..e79c9db
Binary files /dev/null and b/parts_pl/body/pl_gryphon.png differ
diff --git a/parts_pl/body/pl_gryphon_b.png b/parts_pl/body/pl_gryphon_b.png
new file mode 100644
index 0000000..ad079f4
Binary files /dev/null and b/parts_pl/body/pl_gryphon_b.png differ
diff --git a/parts_pl/body/pl_gryphon_c.png b/parts_pl/body/pl_gryphon_c.png
new file mode 100644
index 0000000..7b64d59
Binary files /dev/null and b/parts_pl/body/pl_gryphon_c.png differ
diff --git a/parts_pl/body/pl_gryphon_d.png b/parts_pl/body/pl_gryphon_d.png
new file mode 100644
index 0000000..683a4ff
Binary files /dev/null and b/parts_pl/body/pl_gryphon_d.png differ
diff --git a/parts_pl/body/pl_guppy_b.png b/parts_pl/body/pl_guppy_b.png
new file mode 100644
index 0000000..68bc3bf
Binary files /dev/null and b/parts_pl/body/pl_guppy_b.png differ
diff --git a/parts_pl/body/pl_guppy_c.png b/parts_pl/body/pl_guppy_c.png
new file mode 100644
index 0000000..23abb8e
Binary files /dev/null and b/parts_pl/body/pl_guppy_c.png differ
diff --git a/parts_pl/body/pl_guppy_d.png b/parts_pl/body/pl_guppy_d.png
new file mode 100644
index 0000000..50d847c
Binary files /dev/null and b/parts_pl/body/pl_guppy_d.png differ
diff --git a/parts_pl/body/pl_hammerhead.png b/parts_pl/body/pl_hammerhead.png
new file mode 100644
index 0000000..77b6dc4
Binary files /dev/null and b/parts_pl/body/pl_hammerhead.png differ
diff --git a/parts_pl/body/pl_hammerhead_b.png b/parts_pl/body/pl_hammerhead_b.png
new file mode 100644
index 0000000..ecf18ee
Binary files /dev/null and b/parts_pl/body/pl_hammerhead_b.png differ
diff --git a/parts_pl/body/pl_hammerhead_c.png b/parts_pl/body/pl_hammerhead_c.png
new file mode 100644
index 0000000..58d92db
Binary files /dev/null and b/parts_pl/body/pl_hammerhead_c.png differ
diff --git a/parts_pl/body/pl_handheld.png b/parts_pl/body/pl_handheld.png
new file mode 100644
index 0000000..e667670
Binary files /dev/null and b/parts_pl/body/pl_handheld.png differ
diff --git a/parts_pl/body/pl_handheld_b.png b/parts_pl/body/pl_handheld_b.png
new file mode 100644
index 0000000..75cfede
Binary files /dev/null and b/parts_pl/body/pl_handheld_b.png differ
diff --git a/parts_pl/body/pl_handheld_c.png b/parts_pl/body/pl_handheld_c.png
new file mode 100644
index 0000000..7dd014e
Binary files /dev/null and b/parts_pl/body/pl_handheld_c.png differ
diff --git a/parts_pl/body/pl_hare.png b/parts_pl/body/pl_hare.png
new file mode 100644
index 0000000..bcff5ef
Binary files /dev/null and b/parts_pl/body/pl_hare.png differ
diff --git a/parts_pl/body/pl_hare_b.png b/parts_pl/body/pl_hare_b.png
new file mode 100644
index 0000000..4cdc980
Binary files /dev/null and b/parts_pl/body/pl_hare_b.png differ
diff --git a/parts_pl/body/pl_hare_c.png b/parts_pl/body/pl_hare_c.png
new file mode 100644
index 0000000..ada3aa3
Binary files /dev/null and b/parts_pl/body/pl_hare_c.png differ
diff --git a/parts_pl/body/pl_hare_d.png b/parts_pl/body/pl_hare_d.png
new file mode 100644
index 0000000..f317c1d
Binary files /dev/null and b/parts_pl/body/pl_hare_d.png differ
diff --git a/parts_pl/body/pl_hatchetfish.png b/parts_pl/body/pl_hatchetfish.png
new file mode 100644
index 0000000..5b71581
Binary files /dev/null and b/parts_pl/body/pl_hatchetfish.png differ
diff --git a/parts_pl/body/pl_hatchetfish_b.png b/parts_pl/body/pl_hatchetfish_b.png
new file mode 100644
index 0000000..3821781
Binary files /dev/null and b/parts_pl/body/pl_hatchetfish_b.png differ
diff --git a/parts_pl/body/pl_hatchetfish_c.png b/parts_pl/body/pl_hatchetfish_c.png
new file mode 100644
index 0000000..5139e1d
Binary files /dev/null and b/parts_pl/body/pl_hatchetfish_c.png differ
diff --git a/parts_pl/body/pl_hatchetfish_d.png b/parts_pl/body/pl_hatchetfish_d.png
new file mode 100644
index 0000000..e01fdab
Binary files /dev/null and b/parts_pl/body/pl_hatchetfish_d.png differ
diff --git a/parts_pl/body/pl_hawk_b.png b/parts_pl/body/pl_hawk_b.png
new file mode 100644
index 0000000..037837c
Binary files /dev/null and b/parts_pl/body/pl_hawk_b.png differ
diff --git a/parts_pl/body/pl_hawk_c.png b/parts_pl/body/pl_hawk_c.png
new file mode 100644
index 0000000..5c8c909
Binary files /dev/null and b/parts_pl/body/pl_hawk_c.png differ
diff --git a/parts_pl/body/pl_hawk_d.png b/parts_pl/body/pl_hawk_d.png
new file mode 100644
index 0000000..38c7ab5
Binary files /dev/null and b/parts_pl/body/pl_hawk_d.png differ
diff --git a/parts_pl/body/pl_hazmat.png b/parts_pl/body/pl_hazmat.png
new file mode 100644
index 0000000..454f32e
Binary files /dev/null and b/parts_pl/body/pl_hazmat.png differ
diff --git a/parts_pl/body/pl_hazmat_b.png b/parts_pl/body/pl_hazmat_b.png
new file mode 100644
index 0000000..8344546
Binary files /dev/null and b/parts_pl/body/pl_hazmat_b.png differ
diff --git a/parts_pl/body/pl_hazmat_c.png b/parts_pl/body/pl_hazmat_c.png
new file mode 100644
index 0000000..49104ff
Binary files /dev/null and b/parts_pl/body/pl_hazmat_c.png differ
diff --git a/parts_pl/body/pl_hazmat_d.png b/parts_pl/body/pl_hazmat_d.png
new file mode 100644
index 0000000..c4ece07
Binary files /dev/null and b/parts_pl/body/pl_hazmat_d.png differ
diff --git a/parts_pl/body/pl_heavybag.png b/parts_pl/body/pl_heavybag.png
new file mode 100644
index 0000000..d7fa211
Binary files /dev/null and b/parts_pl/body/pl_heavybag.png differ
diff --git a/parts_pl/body/pl_heavybag_b.png b/parts_pl/body/pl_heavybag_b.png
new file mode 100644
index 0000000..728040e
Binary files /dev/null and b/parts_pl/body/pl_heavybag_b.png differ
diff --git a/parts_pl/body/pl_heavybag_c.png b/parts_pl/body/pl_heavybag_c.png
new file mode 100644
index 0000000..82bc875
Binary files /dev/null and b/parts_pl/body/pl_heavybag_c.png differ
diff --git a/parts_pl/body/pl_heavybag_d.png b/parts_pl/body/pl_heavybag_d.png
new file mode 100644
index 0000000..87cd64f
Binary files /dev/null and b/parts_pl/body/pl_heavybag_d.png differ
diff --git a/parts_pl/body/pl_hermit.png b/parts_pl/body/pl_hermit.png
new file mode 100644
index 0000000..069df73
Binary files /dev/null and b/parts_pl/body/pl_hermit.png differ
diff --git a/parts_pl/body/pl_hermit_b.png b/parts_pl/body/pl_hermit_b.png
new file mode 100644
index 0000000..88ab368
Binary files /dev/null and b/parts_pl/body/pl_hermit_b.png differ
diff --git a/parts_pl/body/pl_hermit_c.png b/parts_pl/body/pl_hermit_c.png
new file mode 100644
index 0000000..3a692f0
Binary files /dev/null and b/parts_pl/body/pl_hermit_c.png differ
diff --git a/parts_pl/body/pl_hermit_d.png b/parts_pl/body/pl_hermit_d.png
new file mode 100644
index 0000000..4d78028
Binary files /dev/null and b/parts_pl/body/pl_hermit_d.png differ
diff --git a/parts_pl/body/pl_hoard.png b/parts_pl/body/pl_hoard.png
new file mode 100644
index 0000000..ac72f8d
Binary files /dev/null and b/parts_pl/body/pl_hoard.png differ
diff --git a/parts_pl/body/pl_hoard_b.png b/parts_pl/body/pl_hoard_b.png
new file mode 100644
index 0000000..f28199a
Binary files /dev/null and b/parts_pl/body/pl_hoard_b.png differ
diff --git a/parts_pl/body/pl_hoard_c.png b/parts_pl/body/pl_hoard_c.png
new file mode 100644
index 0000000..b2d0434
Binary files /dev/null and b/parts_pl/body/pl_hoard_c.png differ
diff --git a/parts_pl/body/pl_hoard_d.png b/parts_pl/body/pl_hoard_d.png
new file mode 100644
index 0000000..4f9fa1a
Binary files /dev/null and b/parts_pl/body/pl_hoard_d.png differ
diff --git a/parts_pl/body/pl_hoatzin.png b/parts_pl/body/pl_hoatzin.png
new file mode 100644
index 0000000..c4889f2
Binary files /dev/null and b/parts_pl/body/pl_hoatzin.png differ
diff --git a/parts_pl/body/pl_hoatzin_b.png b/parts_pl/body/pl_hoatzin_b.png
new file mode 100644
index 0000000..ec967fd
Binary files /dev/null and b/parts_pl/body/pl_hoatzin_b.png differ
diff --git a/parts_pl/body/pl_hoatzin_c.png b/parts_pl/body/pl_hoatzin_c.png
new file mode 100644
index 0000000..d0a20cc
Binary files /dev/null and b/parts_pl/body/pl_hoatzin_c.png differ
diff --git a/parts_pl/body/pl_hoatzin_d.png b/parts_pl/body/pl_hoatzin_d.png
new file mode 100644
index 0000000..f037f34
Binary files /dev/null and b/parts_pl/body/pl_hoatzin_d.png differ
diff --git a/parts_pl/body/pl_hoopoe.png b/parts_pl/body/pl_hoopoe.png
new file mode 100644
index 0000000..970c9d3
Binary files /dev/null and b/parts_pl/body/pl_hoopoe.png differ
diff --git a/parts_pl/body/pl_hoopoe_b.png b/parts_pl/body/pl_hoopoe_b.png
new file mode 100644
index 0000000..9d49373
Binary files /dev/null and b/parts_pl/body/pl_hoopoe_b.png differ
diff --git a/parts_pl/body/pl_hoopoe_c.png b/parts_pl/body/pl_hoopoe_c.png
new file mode 100644
index 0000000..3403482
Binary files /dev/null and b/parts_pl/body/pl_hoopoe_c.png differ
diff --git a/parts_pl/body/pl_hoopoe_d.png b/parts_pl/body/pl_hoopoe_d.png
new file mode 100644
index 0000000..ead7fc4
Binary files /dev/null and b/parts_pl/body/pl_hoopoe_d.png differ
diff --git a/parts_pl/body/pl_hourglass.png b/parts_pl/body/pl_hourglass.png
new file mode 100644
index 0000000..7942af1
Binary files /dev/null and b/parts_pl/body/pl_hourglass.png differ
diff --git a/parts_pl/body/pl_hourglass_b.png b/parts_pl/body/pl_hourglass_b.png
new file mode 100644
index 0000000..de0e146
Binary files /dev/null and b/parts_pl/body/pl_hourglass_b.png differ
diff --git a/parts_pl/body/pl_hourglass_c.png b/parts_pl/body/pl_hourglass_c.png
new file mode 100644
index 0000000..9a12917
Binary files /dev/null and b/parts_pl/body/pl_hourglass_c.png differ
diff --git a/parts_pl/body/pl_housefly.png b/parts_pl/body/pl_housefly.png
new file mode 100644
index 0000000..ac4b7dd
Binary files /dev/null and b/parts_pl/body/pl_housefly.png differ
diff --git a/parts_pl/body/pl_housefly_b.png b/parts_pl/body/pl_housefly_b.png
new file mode 100644
index 0000000..2c46ae3
Binary files /dev/null and b/parts_pl/body/pl_housefly_b.png differ
diff --git a/parts_pl/body/pl_housefly_c.png b/parts_pl/body/pl_housefly_c.png
new file mode 100644
index 0000000..7b161d0
Binary files /dev/null and b/parts_pl/body/pl_housefly_c.png differ
diff --git a/parts_pl/body/pl_housefly_d.png b/parts_pl/body/pl_housefly_d.png
new file mode 100644
index 0000000..90459bc
Binary files /dev/null and b/parts_pl/body/pl_housefly_d.png differ
diff --git a/parts_pl/body/pl_hummer.png b/parts_pl/body/pl_hummer.png
new file mode 100644
index 0000000..57b7ad5
Binary files /dev/null and b/parts_pl/body/pl_hummer.png differ
diff --git a/parts_pl/body/pl_hummer_b.png b/parts_pl/body/pl_hummer_b.png
new file mode 100644
index 0000000..2912187
Binary files /dev/null and b/parts_pl/body/pl_hummer_b.png differ
diff --git a/parts_pl/body/pl_hummer_c.png b/parts_pl/body/pl_hummer_c.png
new file mode 100644
index 0000000..299c166
Binary files /dev/null and b/parts_pl/body/pl_hummer_c.png differ
diff --git a/parts_pl/body/pl_hummer_d.png b/parts_pl/body/pl_hummer_d.png
new file mode 100644
index 0000000..f1d6de8
Binary files /dev/null and b/parts_pl/body/pl_hummer_d.png differ
diff --git a/parts_pl/body/pl_hyena.png b/parts_pl/body/pl_hyena.png
new file mode 100644
index 0000000..e8361b2
Binary files /dev/null and b/parts_pl/body/pl_hyena.png differ
diff --git a/parts_pl/body/pl_hyena_b.png b/parts_pl/body/pl_hyena_b.png
new file mode 100644
index 0000000..156fcdf
Binary files /dev/null and b/parts_pl/body/pl_hyena_b.png differ
diff --git a/parts_pl/body/pl_hyena_c.png b/parts_pl/body/pl_hyena_c.png
new file mode 100644
index 0000000..9026670
Binary files /dev/null and b/parts_pl/body/pl_hyena_c.png differ
diff --git a/parts_pl/body/pl_hyena_d.png b/parts_pl/body/pl_hyena_d.png
new file mode 100644
index 0000000..ddc269e
Binary files /dev/null and b/parts_pl/body/pl_hyena_d.png differ
diff --git a/parts_pl/body/pl_ibis.png b/parts_pl/body/pl_ibis.png
new file mode 100644
index 0000000..cd09584
Binary files /dev/null and b/parts_pl/body/pl_ibis.png differ
diff --git a/parts_pl/body/pl_ibis_b.png b/parts_pl/body/pl_ibis_b.png
new file mode 100644
index 0000000..28f2311
Binary files /dev/null and b/parts_pl/body/pl_ibis_b.png differ
diff --git a/parts_pl/body/pl_ibis_c.png b/parts_pl/body/pl_ibis_c.png
new file mode 100644
index 0000000..629f969
Binary files /dev/null and b/parts_pl/body/pl_ibis_c.png differ
diff --git a/parts_pl/body/pl_ibis_d.png b/parts_pl/body/pl_ibis_d.png
new file mode 100644
index 0000000..dd16b0b
Binary files /dev/null and b/parts_pl/body/pl_ibis_d.png differ
diff --git a/parts_pl/body/pl_icebat.png b/parts_pl/body/pl_icebat.png
new file mode 100644
index 0000000..d359b94
Binary files /dev/null and b/parts_pl/body/pl_icebat.png differ
diff --git a/parts_pl/body/pl_icebat_b.png b/parts_pl/body/pl_icebat_b.png
new file mode 100644
index 0000000..48165d7
Binary files /dev/null and b/parts_pl/body/pl_icebat_b.png differ
diff --git a/parts_pl/body/pl_icebat_c.png b/parts_pl/body/pl_icebat_c.png
new file mode 100644
index 0000000..f7ba608
Binary files /dev/null and b/parts_pl/body/pl_icebat_c.png differ
diff --git a/parts_pl/body/pl_icebat_d.png b/parts_pl/body/pl_icebat_d.png
new file mode 100644
index 0000000..35726ec
Binary files /dev/null and b/parts_pl/body/pl_icebat_d.png differ
diff --git a/parts_pl/body/pl_icefish.png b/parts_pl/body/pl_icefish.png
new file mode 100644
index 0000000..dc930f2
Binary files /dev/null and b/parts_pl/body/pl_icefish.png differ
diff --git a/parts_pl/body/pl_icefish_b.png b/parts_pl/body/pl_icefish_b.png
new file mode 100644
index 0000000..73719e3
Binary files /dev/null and b/parts_pl/body/pl_icefish_b.png differ
diff --git a/parts_pl/body/pl_icefish_c.png b/parts_pl/body/pl_icefish_c.png
new file mode 100644
index 0000000..e7f706c
Binary files /dev/null and b/parts_pl/body/pl_icefish_c.png differ
diff --git a/parts_pl/body/pl_icefish_d.png b/parts_pl/body/pl_icefish_d.png
new file mode 100644
index 0000000..aa5f4e5
Binary files /dev/null and b/parts_pl/body/pl_icefish_d.png differ
diff --git a/parts_pl/body/pl_icicle.png b/parts_pl/body/pl_icicle.png
new file mode 100644
index 0000000..11c08d5
Binary files /dev/null and b/parts_pl/body/pl_icicle.png differ
diff --git a/parts_pl/body/pl_icicle_b.png b/parts_pl/body/pl_icicle_b.png
new file mode 100644
index 0000000..960d5ca
Binary files /dev/null and b/parts_pl/body/pl_icicle_b.png differ
diff --git a/parts_pl/body/pl_icicle_c.png b/parts_pl/body/pl_icicle_c.png
new file mode 100644
index 0000000..6b4a99f
Binary files /dev/null and b/parts_pl/body/pl_icicle_c.png differ
diff --git a/parts_pl/body/pl_icicle_d.png b/parts_pl/body/pl_icicle_d.png
new file mode 100644
index 0000000..02bcd87
Binary files /dev/null and b/parts_pl/body/pl_icicle_d.png differ
diff --git a/parts_pl/body/pl_igloo.png b/parts_pl/body/pl_igloo.png
new file mode 100644
index 0000000..a3422b2
Binary files /dev/null and b/parts_pl/body/pl_igloo.png differ
diff --git a/parts_pl/body/pl_igloo_b.png b/parts_pl/body/pl_igloo_b.png
new file mode 100644
index 0000000..e554457
Binary files /dev/null and b/parts_pl/body/pl_igloo_b.png differ
diff --git a/parts_pl/body/pl_igloo_c.png b/parts_pl/body/pl_igloo_c.png
new file mode 100644
index 0000000..5c680ba
Binary files /dev/null and b/parts_pl/body/pl_igloo_c.png differ
diff --git a/parts_pl/body/pl_igloo_d.png b/parts_pl/body/pl_igloo_d.png
new file mode 100644
index 0000000..4981571
Binary files /dev/null and b/parts_pl/body/pl_igloo_d.png differ
diff --git a/parts_pl/body/pl_imp_b.png b/parts_pl/body/pl_imp_b.png
new file mode 100644
index 0000000..d1c9a4a
Binary files /dev/null and b/parts_pl/body/pl_imp_b.png differ
diff --git a/parts_pl/body/pl_imp_c.png b/parts_pl/body/pl_imp_c.png
new file mode 100644
index 0000000..1b4f935
Binary files /dev/null and b/parts_pl/body/pl_imp_c.png differ
diff --git a/parts_pl/body/pl_imp_d.png b/parts_pl/body/pl_imp_d.png
new file mode 100644
index 0000000..4ca3988
Binary files /dev/null and b/parts_pl/body/pl_imp_d.png differ
diff --git a/parts_pl/body/pl_inchworm.png b/parts_pl/body/pl_inchworm.png
new file mode 100644
index 0000000..23fece9
Binary files /dev/null and b/parts_pl/body/pl_inchworm.png differ
diff --git a/parts_pl/body/pl_inchworm_b.png b/parts_pl/body/pl_inchworm_b.png
new file mode 100644
index 0000000..42e5736
Binary files /dev/null and b/parts_pl/body/pl_inchworm_b.png differ
diff --git a/parts_pl/body/pl_inchworm_c.png b/parts_pl/body/pl_inchworm_c.png
new file mode 100644
index 0000000..287ed88
Binary files /dev/null and b/parts_pl/body/pl_inchworm_c.png differ
diff --git a/parts_pl/body/pl_inchworm_d.png b/parts_pl/body/pl_inchworm_d.png
new file mode 100644
index 0000000..92f306d
Binary files /dev/null and b/parts_pl/body/pl_inchworm_d.png differ
diff --git a/parts_pl/body/pl_jadecoil.png b/parts_pl/body/pl_jadecoil.png
new file mode 100644
index 0000000..f7c7727
Binary files /dev/null and b/parts_pl/body/pl_jadecoil.png differ
diff --git a/parts_pl/body/pl_jadecoil_b.png b/parts_pl/body/pl_jadecoil_b.png
new file mode 100644
index 0000000..281faff
Binary files /dev/null and b/parts_pl/body/pl_jadecoil_b.png differ
diff --git a/parts_pl/body/pl_jadecoil_c.png b/parts_pl/body/pl_jadecoil_c.png
new file mode 100644
index 0000000..c3301e8
Binary files /dev/null and b/parts_pl/body/pl_jadecoil_c.png differ
diff --git a/parts_pl/body/pl_jadecoil_d.png b/parts_pl/body/pl_jadecoil_d.png
new file mode 100644
index 0000000..2867b65
Binary files /dev/null and b/parts_pl/body/pl_jadecoil_d.png differ
diff --git a/parts_pl/body/pl_jelly.png b/parts_pl/body/pl_jelly.png
new file mode 100644
index 0000000..1a481f9
Binary files /dev/null and b/parts_pl/body/pl_jelly.png differ
diff --git a/parts_pl/body/pl_jelly_b.png b/parts_pl/body/pl_jelly_b.png
new file mode 100644
index 0000000..66e9200
Binary files /dev/null and b/parts_pl/body/pl_jelly_b.png differ
diff --git a/parts_pl/body/pl_jelly_c.png b/parts_pl/body/pl_jelly_c.png
new file mode 100644
index 0000000..c3554e4
Binary files /dev/null and b/parts_pl/body/pl_jelly_c.png differ
diff --git a/parts_pl/body/pl_jelly_d.png b/parts_pl/body/pl_jelly_d.png
new file mode 100644
index 0000000..7da132c
Binary files /dev/null and b/parts_pl/body/pl_jelly_d.png differ
diff --git a/parts_pl/body/pl_jerboa.png b/parts_pl/body/pl_jerboa.png
new file mode 100644
index 0000000..bdce3c3
Binary files /dev/null and b/parts_pl/body/pl_jerboa.png differ
diff --git a/parts_pl/body/pl_jerboa_b.png b/parts_pl/body/pl_jerboa_b.png
new file mode 100644
index 0000000..780e940
Binary files /dev/null and b/parts_pl/body/pl_jerboa_b.png differ
diff --git a/parts_pl/body/pl_jerboa_c.png b/parts_pl/body/pl_jerboa_c.png
new file mode 100644
index 0000000..8bd0ed7
Binary files /dev/null and b/parts_pl/body/pl_jerboa_c.png differ
diff --git a/parts_pl/body/pl_jerboa_d.png b/parts_pl/body/pl_jerboa_d.png
new file mode 100644
index 0000000..f3f504c
Binary files /dev/null and b/parts_pl/body/pl_jerboa_d.png differ
diff --git a/parts_pl/body/pl_kasa.png b/parts_pl/body/pl_kasa.png
new file mode 100644
index 0000000..fe54858
Binary files /dev/null and b/parts_pl/body/pl_kasa.png differ
diff --git a/parts_pl/body/pl_kasa_b.png b/parts_pl/body/pl_kasa_b.png
new file mode 100644
index 0000000..1b93edb
Binary files /dev/null and b/parts_pl/body/pl_kasa_b.png differ
diff --git a/parts_pl/body/pl_kasa_c.png b/parts_pl/body/pl_kasa_c.png
new file mode 100644
index 0000000..5a4674a
Binary files /dev/null and b/parts_pl/body/pl_kasa_c.png differ
diff --git a/parts_pl/body/pl_kasa_d.png b/parts_pl/body/pl_kasa_d.png
new file mode 100644
index 0000000..ea72f50
Binary files /dev/null and b/parts_pl/body/pl_kasa_d.png differ
diff --git a/parts_pl/body/pl_kindle.png b/parts_pl/body/pl_kindle.png
new file mode 100644
index 0000000..c7c9f44
Binary files /dev/null and b/parts_pl/body/pl_kindle.png differ
diff --git a/parts_pl/body/pl_kindle_b.png b/parts_pl/body/pl_kindle_b.png
new file mode 100644
index 0000000..5fe5efb
Binary files /dev/null and b/parts_pl/body/pl_kindle_b.png differ
diff --git a/parts_pl/body/pl_kindle_c.png b/parts_pl/body/pl_kindle_c.png
new file mode 100644
index 0000000..cbc8fd3
Binary files /dev/null and b/parts_pl/body/pl_kindle_c.png differ
diff --git a/parts_pl/body/pl_kingfisher.png b/parts_pl/body/pl_kingfisher.png
new file mode 100644
index 0000000..3e86e5f
Binary files /dev/null and b/parts_pl/body/pl_kingfisher.png differ
diff --git a/parts_pl/body/pl_kingfisher_b.png b/parts_pl/body/pl_kingfisher_b.png
new file mode 100644
index 0000000..a10da0a
Binary files /dev/null and b/parts_pl/body/pl_kingfisher_b.png differ
diff --git a/parts_pl/body/pl_kingfisher_c.png b/parts_pl/body/pl_kingfisher_c.png
new file mode 100644
index 0000000..f42155d
Binary files /dev/null and b/parts_pl/body/pl_kingfisher_c.png differ
diff --git a/parts_pl/body/pl_kingfisher_d.png b/parts_pl/body/pl_kingfisher_d.png
new file mode 100644
index 0000000..ff352f1
Binary files /dev/null and b/parts_pl/body/pl_kingfisher_d.png differ
diff --git a/parts_pl/body/pl_kite.png b/parts_pl/body/pl_kite.png
new file mode 100644
index 0000000..9dc228b
Binary files /dev/null and b/parts_pl/body/pl_kite.png differ
diff --git a/parts_pl/body/pl_kite_b.png b/parts_pl/body/pl_kite_b.png
new file mode 100644
index 0000000..0f90c8f
Binary files /dev/null and b/parts_pl/body/pl_kite_b.png differ
diff --git a/parts_pl/body/pl_kite_c.png b/parts_pl/body/pl_kite_c.png
new file mode 100644
index 0000000..05b50d3
Binary files /dev/null and b/parts_pl/body/pl_kite_c.png differ
diff --git a/parts_pl/body/pl_kite_d.png b/parts_pl/body/pl_kite_d.png
new file mode 100644
index 0000000..5282263
Binary files /dev/null and b/parts_pl/body/pl_kite_d.png differ
diff --git a/parts_pl/body/pl_kiwi.png b/parts_pl/body/pl_kiwi.png
new file mode 100644
index 0000000..915a5bc
Binary files /dev/null and b/parts_pl/body/pl_kiwi.png differ
diff --git a/parts_pl/body/pl_kiwi_b.png b/parts_pl/body/pl_kiwi_b.png
new file mode 100644
index 0000000..182ec49
Binary files /dev/null and b/parts_pl/body/pl_kiwi_b.png differ
diff --git a/parts_pl/body/pl_kiwi_c.png b/parts_pl/body/pl_kiwi_c.png
new file mode 100644
index 0000000..90658df
Binary files /dev/null and b/parts_pl/body/pl_kiwi_c.png differ
diff --git a/parts_pl/body/pl_kiwi_d.png b/parts_pl/body/pl_kiwi_d.png
new file mode 100644
index 0000000..4ba5b71
Binary files /dev/null and b/parts_pl/body/pl_kiwi_d.png differ
diff --git a/parts_pl/body/pl_knifefish.png b/parts_pl/body/pl_knifefish.png
new file mode 100644
index 0000000..e926065
Binary files /dev/null and b/parts_pl/body/pl_knifefish.png differ
diff --git a/parts_pl/body/pl_knifefish_b.png b/parts_pl/body/pl_knifefish_b.png
new file mode 100644
index 0000000..e947c5e
Binary files /dev/null and b/parts_pl/body/pl_knifefish_b.png differ
diff --git a/parts_pl/body/pl_knifefish_c.png b/parts_pl/body/pl_knifefish_c.png
new file mode 100644
index 0000000..f1d8761
Binary files /dev/null and b/parts_pl/body/pl_knifefish_c.png differ
diff --git a/parts_pl/body/pl_knifefish_d.png b/parts_pl/body/pl_knifefish_d.png
new file mode 100644
index 0000000..557dc3a
Binary files /dev/null and b/parts_pl/body/pl_knifefish_d.png differ
diff --git a/parts_pl/body/pl_koala.png b/parts_pl/body/pl_koala.png
new file mode 100644
index 0000000..82557cd
Binary files /dev/null and b/parts_pl/body/pl_koala.png differ
diff --git a/parts_pl/body/pl_koala_b.png b/parts_pl/body/pl_koala_b.png
new file mode 100644
index 0000000..41c7ec8
Binary files /dev/null and b/parts_pl/body/pl_koala_b.png differ
diff --git a/parts_pl/body/pl_koala_c.png b/parts_pl/body/pl_koala_c.png
new file mode 100644
index 0000000..c6f895c
Binary files /dev/null and b/parts_pl/body/pl_koala_c.png differ
diff --git a/parts_pl/body/pl_koala_d.png b/parts_pl/body/pl_koala_d.png
new file mode 100644
index 0000000..6f264a9
Binary files /dev/null and b/parts_pl/body/pl_koala_d.png differ
diff --git a/parts_pl/body/pl_kobold.png b/parts_pl/body/pl_kobold.png
new file mode 100644
index 0000000..bca6db0
Binary files /dev/null and b/parts_pl/body/pl_kobold.png differ
diff --git a/parts_pl/body/pl_kobold_b.png b/parts_pl/body/pl_kobold_b.png
new file mode 100644
index 0000000..c18dafd
Binary files /dev/null and b/parts_pl/body/pl_kobold_b.png differ
diff --git a/parts_pl/body/pl_kobold_c.png b/parts_pl/body/pl_kobold_c.png
new file mode 100644
index 0000000..8bc54da
Binary files /dev/null and b/parts_pl/body/pl_kobold_c.png differ
diff --git a/parts_pl/body/pl_kobold_d.png b/parts_pl/body/pl_kobold_d.png
new file mode 100644
index 0000000..20e26dc
Binary files /dev/null and b/parts_pl/body/pl_kobold_d.png differ
diff --git a/parts_pl/body/pl_komodo.png b/parts_pl/body/pl_komodo.png
new file mode 100644
index 0000000..a72ae45
Binary files /dev/null and b/parts_pl/body/pl_komodo.png differ
diff --git a/parts_pl/body/pl_komodo_b.png b/parts_pl/body/pl_komodo_b.png
new file mode 100644
index 0000000..31d9f23
Binary files /dev/null and b/parts_pl/body/pl_komodo_b.png differ
diff --git a/parts_pl/body/pl_komodo_c.png b/parts_pl/body/pl_komodo_c.png
new file mode 100644
index 0000000..b1ac36d
Binary files /dev/null and b/parts_pl/body/pl_komodo_c.png differ
diff --git a/parts_pl/body/pl_komodo_d.png b/parts_pl/body/pl_komodo_d.png
new file mode 100644
index 0000000..a4924f7
Binary files /dev/null and b/parts_pl/body/pl_komodo_d.png differ
diff --git a/parts_pl/body/pl_krill.png b/parts_pl/body/pl_krill.png
new file mode 100644
index 0000000..0f6e6a5
Binary files /dev/null and b/parts_pl/body/pl_krill.png differ
diff --git a/parts_pl/body/pl_krill_b.png b/parts_pl/body/pl_krill_b.png
new file mode 100644
index 0000000..d572319
Binary files /dev/null and b/parts_pl/body/pl_krill_b.png differ
diff --git a/parts_pl/body/pl_krill_c.png b/parts_pl/body/pl_krill_c.png
new file mode 100644
index 0000000..b100b92
Binary files /dev/null and b/parts_pl/body/pl_krill_c.png differ
diff --git a/parts_pl/body/pl_krill_d.png b/parts_pl/body/pl_krill_d.png
new file mode 100644
index 0000000..ab039fc
Binary files /dev/null and b/parts_pl/body/pl_krill_d.png differ
diff --git a/parts_pl/body/pl_lamprey.png b/parts_pl/body/pl_lamprey.png
new file mode 100644
index 0000000..0ea6690
Binary files /dev/null and b/parts_pl/body/pl_lamprey.png differ
diff --git a/parts_pl/body/pl_lamprey_b.png b/parts_pl/body/pl_lamprey_b.png
new file mode 100644
index 0000000..340c725
Binary files /dev/null and b/parts_pl/body/pl_lamprey_b.png differ
diff --git a/parts_pl/body/pl_lamprey_c.png b/parts_pl/body/pl_lamprey_c.png
new file mode 100644
index 0000000..2dba1b9
Binary files /dev/null and b/parts_pl/body/pl_lamprey_c.png differ
diff --git a/parts_pl/body/pl_lamprey_d.png b/parts_pl/body/pl_lamprey_d.png
new file mode 100644
index 0000000..6bf3fe2
Binary files /dev/null and b/parts_pl/body/pl_lamprey_d.png differ
diff --git a/parts_pl/body/pl_lantern.png b/parts_pl/body/pl_lantern.png
new file mode 100644
index 0000000..aa89c23
Binary files /dev/null and b/parts_pl/body/pl_lantern.png differ
diff --git a/parts_pl/body/pl_lantern_b.png b/parts_pl/body/pl_lantern_b.png
new file mode 100644
index 0000000..f9d23a0
Binary files /dev/null and b/parts_pl/body/pl_lantern_b.png differ
diff --git a/parts_pl/body/pl_lantern_c.png b/parts_pl/body/pl_lantern_c.png
new file mode 100644
index 0000000..b6a86b1
Binary files /dev/null and b/parts_pl/body/pl_lantern_c.png differ
diff --git a/parts_pl/body/pl_lantern_d.png b/parts_pl/body/pl_lantern_d.png
new file mode 100644
index 0000000..2c694a1
Binary files /dev/null and b/parts_pl/body/pl_lantern_d.png differ
diff --git a/parts_pl/body/pl_lavalamp.png b/parts_pl/body/pl_lavalamp.png
new file mode 100644
index 0000000..c431f9e
Binary files /dev/null and b/parts_pl/body/pl_lavalamp.png differ
diff --git a/parts_pl/body/pl_lavalamp_b.png b/parts_pl/body/pl_lavalamp_b.png
new file mode 100644
index 0000000..a630ea2
Binary files /dev/null and b/parts_pl/body/pl_lavalamp_b.png differ
diff --git a/parts_pl/body/pl_lavalamp_c.png b/parts_pl/body/pl_lavalamp_c.png
new file mode 100644
index 0000000..ecab424
Binary files /dev/null and b/parts_pl/body/pl_lavalamp_c.png differ
diff --git a/parts_pl/body/pl_lavalamp_d.png b/parts_pl/body/pl_lavalamp_d.png
new file mode 100644
index 0000000..4f8349f
Binary files /dev/null and b/parts_pl/body/pl_lavalamp_d.png differ
diff --git a/parts_pl/body/pl_lilyray.png b/parts_pl/body/pl_lilyray.png
new file mode 100644
index 0000000..337786a
Binary files /dev/null and b/parts_pl/body/pl_lilyray.png differ
diff --git a/parts_pl/body/pl_lilyray_b.png b/parts_pl/body/pl_lilyray_b.png
new file mode 100644
index 0000000..28a2bf2
Binary files /dev/null and b/parts_pl/body/pl_lilyray_b.png differ
diff --git a/parts_pl/body/pl_lilyray_c.png b/parts_pl/body/pl_lilyray_c.png
new file mode 100644
index 0000000..c097d33
Binary files /dev/null and b/parts_pl/body/pl_lilyray_c.png differ
diff --git a/parts_pl/body/pl_lilyray_d.png b/parts_pl/body/pl_lilyray_d.png
new file mode 100644
index 0000000..847bbf0
Binary files /dev/null and b/parts_pl/body/pl_lilyray_d.png differ
diff --git a/parts_pl/body/pl_lithops.png b/parts_pl/body/pl_lithops.png
new file mode 100644
index 0000000..ad07965
Binary files /dev/null and b/parts_pl/body/pl_lithops.png differ
diff --git a/parts_pl/body/pl_lithops_b.png b/parts_pl/body/pl_lithops_b.png
new file mode 100644
index 0000000..ebc436e
Binary files /dev/null and b/parts_pl/body/pl_lithops_b.png differ
diff --git a/parts_pl/body/pl_lithops_c.png b/parts_pl/body/pl_lithops_c.png
new file mode 100644
index 0000000..cf6d095
Binary files /dev/null and b/parts_pl/body/pl_lithops_c.png differ
diff --git a/parts_pl/body/pl_lithops_d.png b/parts_pl/body/pl_lithops_d.png
new file mode 100644
index 0000000..90d9a12
Binary files /dev/null and b/parts_pl/body/pl_lithops_d.png differ
diff --git a/parts_pl/body/pl_lizard_b.png b/parts_pl/body/pl_lizard_b.png
new file mode 100644
index 0000000..82abb2d
Binary files /dev/null and b/parts_pl/body/pl_lizard_b.png differ
diff --git a/parts_pl/body/pl_lizard_c.png b/parts_pl/body/pl_lizard_c.png
new file mode 100644
index 0000000..6b67c37
Binary files /dev/null and b/parts_pl/body/pl_lizard_c.png differ
diff --git a/parts_pl/body/pl_lizard_d.png b/parts_pl/body/pl_lizard_d.png
new file mode 100644
index 0000000..59b2379
Binary files /dev/null and b/parts_pl/body/pl_lizard_d.png differ
diff --git a/parts_pl/body/pl_lungfish.png b/parts_pl/body/pl_lungfish.png
new file mode 100644
index 0000000..cf4778d
Binary files /dev/null and b/parts_pl/body/pl_lungfish.png differ
diff --git a/parts_pl/body/pl_lungfish_b.png b/parts_pl/body/pl_lungfish_b.png
new file mode 100644
index 0000000..d1154b3
Binary files /dev/null and b/parts_pl/body/pl_lungfish_b.png differ
diff --git a/parts_pl/body/pl_lungfish_c.png b/parts_pl/body/pl_lungfish_c.png
new file mode 100644
index 0000000..49da94e
Binary files /dev/null and b/parts_pl/body/pl_lungfish_c.png differ
diff --git a/parts_pl/body/pl_lungfish_d.png b/parts_pl/body/pl_lungfish_d.png
new file mode 100644
index 0000000..4245bb0
Binary files /dev/null and b/parts_pl/body/pl_lungfish_d.png differ
diff --git a/parts_pl/body/pl_magnet.png b/parts_pl/body/pl_magnet.png
new file mode 100644
index 0000000..479f5cd
Binary files /dev/null and b/parts_pl/body/pl_magnet.png differ
diff --git a/parts_pl/body/pl_magnet_b.png b/parts_pl/body/pl_magnet_b.png
new file mode 100644
index 0000000..f733628
Binary files /dev/null and b/parts_pl/body/pl_magnet_b.png differ
diff --git a/parts_pl/body/pl_mammoth.png b/parts_pl/body/pl_mammoth.png
new file mode 100644
index 0000000..c441c1f
Binary files /dev/null and b/parts_pl/body/pl_mammoth.png differ
diff --git a/parts_pl/body/pl_mammoth_b.png b/parts_pl/body/pl_mammoth_b.png
new file mode 100644
index 0000000..2c6382c
Binary files /dev/null and b/parts_pl/body/pl_mammoth_b.png differ
diff --git a/parts_pl/body/pl_mammoth_c.png b/parts_pl/body/pl_mammoth_c.png
new file mode 100644
index 0000000..ff19b7a
Binary files /dev/null and b/parts_pl/body/pl_mammoth_c.png differ
diff --git a/parts_pl/body/pl_mammoth_d.png b/parts_pl/body/pl_mammoth_d.png
new file mode 100644
index 0000000..7deda61
Binary files /dev/null and b/parts_pl/body/pl_mammoth_d.png differ
diff --git a/parts_pl/body/pl_manatee.png b/parts_pl/body/pl_manatee.png
new file mode 100644
index 0000000..6fbbeaf
Binary files /dev/null and b/parts_pl/body/pl_manatee.png differ
diff --git a/parts_pl/body/pl_manatee_b.png b/parts_pl/body/pl_manatee_b.png
new file mode 100644
index 0000000..3da982c
Binary files /dev/null and b/parts_pl/body/pl_manatee_b.png differ
diff --git a/parts_pl/body/pl_manatee_c.png b/parts_pl/body/pl_manatee_c.png
new file mode 100644
index 0000000..5587036
Binary files /dev/null and b/parts_pl/body/pl_manatee_c.png differ
diff --git a/parts_pl/body/pl_manatee_d.png b/parts_pl/body/pl_manatee_d.png
new file mode 100644
index 0000000..0fc7280
Binary files /dev/null and b/parts_pl/body/pl_manatee_d.png differ
diff --git a/parts_pl/body/pl_mandrake.png b/parts_pl/body/pl_mandrake.png
new file mode 100644
index 0000000..d7e798a
Binary files /dev/null and b/parts_pl/body/pl_mandrake.png differ
diff --git a/parts_pl/body/pl_mandrake_b.png b/parts_pl/body/pl_mandrake_b.png
new file mode 100644
index 0000000..6b72cd8
Binary files /dev/null and b/parts_pl/body/pl_mandrake_b.png differ
diff --git a/parts_pl/body/pl_mandrake_c.png b/parts_pl/body/pl_mandrake_c.png
new file mode 100644
index 0000000..8aac7fa
Binary files /dev/null and b/parts_pl/body/pl_mandrake_c.png differ
diff --git a/parts_pl/body/pl_mandrake_d.png b/parts_pl/body/pl_mandrake_d.png
new file mode 100644
index 0000000..3fb00be
Binary files /dev/null and b/parts_pl/body/pl_mandrake_d.png differ
diff --git a/parts_pl/body/pl_mandrill.png b/parts_pl/body/pl_mandrill.png
new file mode 100644
index 0000000..2cef5bb
Binary files /dev/null and b/parts_pl/body/pl_mandrill.png differ
diff --git a/parts_pl/body/pl_mandrill_b.png b/parts_pl/body/pl_mandrill_b.png
new file mode 100644
index 0000000..8c61079
Binary files /dev/null and b/parts_pl/body/pl_mandrill_b.png differ
diff --git a/parts_pl/body/pl_mandrill_c.png b/parts_pl/body/pl_mandrill_c.png
new file mode 100644
index 0000000..fa775b6
Binary files /dev/null and b/parts_pl/body/pl_mandrill_c.png differ
diff --git a/parts_pl/body/pl_mandrill_d.png b/parts_pl/body/pl_mandrill_d.png
new file mode 100644
index 0000000..ce91beb
Binary files /dev/null and b/parts_pl/body/pl_mandrill_d.png differ
diff --git a/parts_pl/body/pl_mantis.png b/parts_pl/body/pl_mantis.png
new file mode 100644
index 0000000..0920522
Binary files /dev/null and b/parts_pl/body/pl_mantis.png differ
diff --git a/parts_pl/body/pl_mantis_b.png b/parts_pl/body/pl_mantis_b.png
new file mode 100644
index 0000000..70cc3c8
Binary files /dev/null and b/parts_pl/body/pl_mantis_b.png differ
diff --git a/parts_pl/body/pl_mantis_c.png b/parts_pl/body/pl_mantis_c.png
new file mode 100644
index 0000000..685b564
Binary files /dev/null and b/parts_pl/body/pl_mantis_c.png differ
diff --git a/parts_pl/body/pl_mantis_d.png b/parts_pl/body/pl_mantis_d.png
new file mode 100644
index 0000000..09380d0
Binary files /dev/null and b/parts_pl/body/pl_mantis_d.png differ
diff --git a/parts_pl/body/pl_marimo.png b/parts_pl/body/pl_marimo.png
new file mode 100644
index 0000000..2e61fcd
Binary files /dev/null and b/parts_pl/body/pl_marimo.png differ
diff --git a/parts_pl/body/pl_marimo_b.png b/parts_pl/body/pl_marimo_b.png
new file mode 100644
index 0000000..abbb38c
Binary files /dev/null and b/parts_pl/body/pl_marimo_b.png differ
diff --git a/parts_pl/body/pl_marimo_c.png b/parts_pl/body/pl_marimo_c.png
new file mode 100644
index 0000000..a494f59
Binary files /dev/null and b/parts_pl/body/pl_marimo_c.png differ
diff --git a/parts_pl/body/pl_marimo_d.png b/parts_pl/body/pl_marimo_d.png
new file mode 100644
index 0000000..d3d0391
Binary files /dev/null and b/parts_pl/body/pl_marimo_d.png differ
diff --git a/parts_pl/body/pl_marshmallow.png b/parts_pl/body/pl_marshmallow.png
new file mode 100644
index 0000000..a842355
Binary files /dev/null and b/parts_pl/body/pl_marshmallow.png differ
diff --git a/parts_pl/body/pl_marshmallow_b.png b/parts_pl/body/pl_marshmallow_b.png
new file mode 100644
index 0000000..609f64d
Binary files /dev/null and b/parts_pl/body/pl_marshmallow_b.png differ
diff --git a/parts_pl/body/pl_marshmallow_c.png b/parts_pl/body/pl_marshmallow_c.png
new file mode 100644
index 0000000..efa9536
Binary files /dev/null and b/parts_pl/body/pl_marshmallow_c.png differ
diff --git a/parts_pl/body/pl_marshmallow_d.png b/parts_pl/body/pl_marshmallow_d.png
new file mode 100644
index 0000000..31ee4f6
Binary files /dev/null and b/parts_pl/body/pl_marshmallow_d.png differ
diff --git a/parts_pl/body/pl_mask.png b/parts_pl/body/pl_mask.png
new file mode 100644
index 0000000..c8c7935
Binary files /dev/null and b/parts_pl/body/pl_mask.png differ
diff --git a/parts_pl/body/pl_mask_c.png b/parts_pl/body/pl_mask_c.png
new file mode 100644
index 0000000..2dc844a
Binary files /dev/null and b/parts_pl/body/pl_mask_c.png differ
diff --git a/parts_pl/body/pl_mask_d.png b/parts_pl/body/pl_mask_d.png
new file mode 100644
index 0000000..0d86427
Binary files /dev/null and b/parts_pl/body/pl_mask_d.png differ
diff --git a/parts_pl/body/pl_meerkat.png b/parts_pl/body/pl_meerkat.png
new file mode 100644
index 0000000..76edc21
Binary files /dev/null and b/parts_pl/body/pl_meerkat.png differ
diff --git a/parts_pl/body/pl_meerkat_b.png b/parts_pl/body/pl_meerkat_b.png
new file mode 100644
index 0000000..083cad3
Binary files /dev/null and b/parts_pl/body/pl_meerkat_b.png differ
diff --git a/parts_pl/body/pl_meerkat_c.png b/parts_pl/body/pl_meerkat_c.png
new file mode 100644
index 0000000..74f4126
Binary files /dev/null and b/parts_pl/body/pl_meerkat_c.png differ
diff --git a/parts_pl/body/pl_meerkat_d.png b/parts_pl/body/pl_meerkat_d.png
new file mode 100644
index 0000000..153edd8
Binary files /dev/null and b/parts_pl/body/pl_meerkat_d.png differ
diff --git a/parts_pl/body/pl_mimic.png b/parts_pl/body/pl_mimic.png
new file mode 100644
index 0000000..dce68e0
Binary files /dev/null and b/parts_pl/body/pl_mimic.png differ
diff --git a/parts_pl/body/pl_mimic_b.png b/parts_pl/body/pl_mimic_b.png
new file mode 100644
index 0000000..f1c8e4f
Binary files /dev/null and b/parts_pl/body/pl_mimic_b.png differ
diff --git a/parts_pl/body/pl_mimic_c.png b/parts_pl/body/pl_mimic_c.png
new file mode 100644
index 0000000..8ddfb9f
Binary files /dev/null and b/parts_pl/body/pl_mimic_c.png differ
diff --git a/parts_pl/body/pl_mimic_d.png b/parts_pl/body/pl_mimic_d.png
new file mode 100644
index 0000000..0250935
Binary files /dev/null and b/parts_pl/body/pl_mimic_d.png differ
diff --git a/parts_pl/body/pl_mitten.png b/parts_pl/body/pl_mitten.png
new file mode 100644
index 0000000..ec2c86b
Binary files /dev/null and b/parts_pl/body/pl_mitten.png differ
diff --git a/parts_pl/body/pl_mitten_b.png b/parts_pl/body/pl_mitten_b.png
new file mode 100644
index 0000000..ae88701
Binary files /dev/null and b/parts_pl/body/pl_mitten_b.png differ
diff --git a/parts_pl/body/pl_mitten_c.png b/parts_pl/body/pl_mitten_c.png
new file mode 100644
index 0000000..e3dd8e8
Binary files /dev/null and b/parts_pl/body/pl_mitten_c.png differ
diff --git a/parts_pl/body/pl_mitten_d.png b/parts_pl/body/pl_mitten_d.png
new file mode 100644
index 0000000..6a9a8ec
Binary files /dev/null and b/parts_pl/body/pl_mitten_d.png differ
diff --git a/parts_pl/body/pl_mochi_b.png b/parts_pl/body/pl_mochi_b.png
new file mode 100644
index 0000000..9f326df
Binary files /dev/null and b/parts_pl/body/pl_mochi_b.png differ
diff --git a/parts_pl/body/pl_mochi_c.png b/parts_pl/body/pl_mochi_c.png
new file mode 100644
index 0000000..2da2066
Binary files /dev/null and b/parts_pl/body/pl_mochi_c.png differ
diff --git a/parts_pl/body/pl_mochi_d.png b/parts_pl/body/pl_mochi_d.png
new file mode 100644
index 0000000..831ab40
Binary files /dev/null and b/parts_pl/body/pl_mochi_d.png differ
diff --git a/parts_pl/body/pl_mola.png b/parts_pl/body/pl_mola.png
new file mode 100644
index 0000000..010716d
Binary files /dev/null and b/parts_pl/body/pl_mola.png differ
diff --git a/parts_pl/body/pl_mola_b.png b/parts_pl/body/pl_mola_b.png
new file mode 100644
index 0000000..f700419
Binary files /dev/null and b/parts_pl/body/pl_mola_b.png differ
diff --git a/parts_pl/body/pl_mola_c.png b/parts_pl/body/pl_mola_c.png
new file mode 100644
index 0000000..c46f62b
Binary files /dev/null and b/parts_pl/body/pl_mola_c.png differ
diff --git a/parts_pl/body/pl_mola_d.png b/parts_pl/body/pl_mola_d.png
new file mode 100644
index 0000000..c7f03f2
Binary files /dev/null and b/parts_pl/body/pl_mola_d.png differ
diff --git a/parts_pl/body/pl_mole.png b/parts_pl/body/pl_mole.png
new file mode 100644
index 0000000..960914b
Binary files /dev/null and b/parts_pl/body/pl_mole.png differ
diff --git a/parts_pl/body/pl_mole_b.png b/parts_pl/body/pl_mole_b.png
new file mode 100644
index 0000000..3aaa613
Binary files /dev/null and b/parts_pl/body/pl_mole_b.png differ
diff --git a/parts_pl/body/pl_mole_c.png b/parts_pl/body/pl_mole_c.png
new file mode 100644
index 0000000..dd3527f
Binary files /dev/null and b/parts_pl/body/pl_mole_c.png differ
diff --git a/parts_pl/body/pl_mole_d.png b/parts_pl/body/pl_mole_d.png
new file mode 100644
index 0000000..1a3b91e
Binary files /dev/null and b/parts_pl/body/pl_mole_d.png differ
diff --git a/parts_pl/body/pl_molecricket.png b/parts_pl/body/pl_molecricket.png
new file mode 100644
index 0000000..9264d97
Binary files /dev/null and b/parts_pl/body/pl_molecricket.png differ
diff --git a/parts_pl/body/pl_molecricket_b.png b/parts_pl/body/pl_molecricket_b.png
new file mode 100644
index 0000000..9146fc7
Binary files /dev/null and b/parts_pl/body/pl_molecricket_b.png differ
diff --git a/parts_pl/body/pl_molecricket_c.png b/parts_pl/body/pl_molecricket_c.png
new file mode 100644
index 0000000..b84260b
Binary files /dev/null and b/parts_pl/body/pl_molecricket_c.png differ
diff --git a/parts_pl/body/pl_molecricket_d.png b/parts_pl/body/pl_molecricket_d.png
new file mode 100644
index 0000000..fc44999
Binary files /dev/null and b/parts_pl/body/pl_molecricket_d.png differ
diff --git a/parts_pl/body/pl_moloch.png b/parts_pl/body/pl_moloch.png
new file mode 100644
index 0000000..4a5c30b
Binary files /dev/null and b/parts_pl/body/pl_moloch.png differ
diff --git a/parts_pl/body/pl_moloch_b.png b/parts_pl/body/pl_moloch_b.png
new file mode 100644
index 0000000..6ce0dde
Binary files /dev/null and b/parts_pl/body/pl_moloch_b.png differ
diff --git a/parts_pl/body/pl_moloch_c.png b/parts_pl/body/pl_moloch_c.png
new file mode 100644
index 0000000..6968663
Binary files /dev/null and b/parts_pl/body/pl_moloch_c.png differ
diff --git a/parts_pl/body/pl_monk_b.png b/parts_pl/body/pl_monk_b.png
new file mode 100644
index 0000000..d739366
Binary files /dev/null and b/parts_pl/body/pl_monk_b.png differ
diff --git a/parts_pl/body/pl_monk_c.png b/parts_pl/body/pl_monk_c.png
new file mode 100644
index 0000000..ea5efa9
Binary files /dev/null and b/parts_pl/body/pl_monk_c.png differ
diff --git a/parts_pl/body/pl_monk_d.png b/parts_pl/body/pl_monk_d.png
new file mode 100644
index 0000000..5ce9917
Binary files /dev/null and b/parts_pl/body/pl_monk_d.png differ
diff --git a/parts_pl/body/pl_moose.png b/parts_pl/body/pl_moose.png
new file mode 100644
index 0000000..9cb00a2
Binary files /dev/null and b/parts_pl/body/pl_moose.png differ
diff --git a/parts_pl/body/pl_moose_b.png b/parts_pl/body/pl_moose_b.png
new file mode 100644
index 0000000..1589639
Binary files /dev/null and b/parts_pl/body/pl_moose_b.png differ
diff --git a/parts_pl/body/pl_moose_c.png b/parts_pl/body/pl_moose_c.png
new file mode 100644
index 0000000..66423d4
Binary files /dev/null and b/parts_pl/body/pl_moose_c.png differ
diff --git a/parts_pl/body/pl_moose_d.png b/parts_pl/body/pl_moose_d.png
new file mode 100644
index 0000000..2523a42
Binary files /dev/null and b/parts_pl/body/pl_moose_d.png differ
diff --git a/parts_pl/body/pl_morel.png b/parts_pl/body/pl_morel.png
new file mode 100644
index 0000000..60896e8
Binary files /dev/null and b/parts_pl/body/pl_morel.png differ
diff --git a/parts_pl/body/pl_morel_b.png b/parts_pl/body/pl_morel_b.png
new file mode 100644
index 0000000..4787eaf
Binary files /dev/null and b/parts_pl/body/pl_morel_b.png differ
diff --git a/parts_pl/body/pl_morel_c.png b/parts_pl/body/pl_morel_c.png
new file mode 100644
index 0000000..121992a
Binary files /dev/null and b/parts_pl/body/pl_morel_c.png differ
diff --git a/parts_pl/body/pl_mosquito.png b/parts_pl/body/pl_mosquito.png
new file mode 100644
index 0000000..a64d043
Binary files /dev/null and b/parts_pl/body/pl_mosquito.png differ
diff --git a/parts_pl/body/pl_mosquito_b.png b/parts_pl/body/pl_mosquito_b.png
new file mode 100644
index 0000000..3f0991c
Binary files /dev/null and b/parts_pl/body/pl_mosquito_b.png differ
diff --git a/parts_pl/body/pl_mosquito_c.png b/parts_pl/body/pl_mosquito_c.png
new file mode 100644
index 0000000..92d7553
Binary files /dev/null and b/parts_pl/body/pl_mosquito_c.png differ
diff --git a/parts_pl/body/pl_moth.png b/parts_pl/body/pl_moth.png
new file mode 100644
index 0000000..231a55e
Binary files /dev/null and b/parts_pl/body/pl_moth.png differ
diff --git a/parts_pl/body/pl_moth_b.png b/parts_pl/body/pl_moth_b.png
new file mode 100644
index 0000000..7152708
Binary files /dev/null and b/parts_pl/body/pl_moth_b.png differ
diff --git a/parts_pl/body/pl_moth_c.png b/parts_pl/body/pl_moth_c.png
new file mode 100644
index 0000000..942d715
Binary files /dev/null and b/parts_pl/body/pl_moth_c.png differ
diff --git a/parts_pl/body/pl_mourner.png b/parts_pl/body/pl_mourner.png
new file mode 100644
index 0000000..f3e4323
Binary files /dev/null and b/parts_pl/body/pl_mourner.png differ
diff --git a/parts_pl/body/pl_mourner_b.png b/parts_pl/body/pl_mourner_b.png
new file mode 100644
index 0000000..f0875eb
Binary files /dev/null and b/parts_pl/body/pl_mourner_b.png differ
diff --git a/parts_pl/body/pl_mourner_c.png b/parts_pl/body/pl_mourner_c.png
new file mode 100644
index 0000000..a64e01e
Binary files /dev/null and b/parts_pl/body/pl_mourner_c.png differ
diff --git a/parts_pl/body/pl_mudskipper.png b/parts_pl/body/pl_mudskipper.png
new file mode 100644
index 0000000..dd2bc1d
Binary files /dev/null and b/parts_pl/body/pl_mudskipper.png differ
diff --git a/parts_pl/body/pl_mudskipper_b.png b/parts_pl/body/pl_mudskipper_b.png
new file mode 100644
index 0000000..a6c5793
Binary files /dev/null and b/parts_pl/body/pl_mudskipper_b.png differ
diff --git a/parts_pl/body/pl_mudskipper_c.png b/parts_pl/body/pl_mudskipper_c.png
new file mode 100644
index 0000000..e81ab28
Binary files /dev/null and b/parts_pl/body/pl_mudskipper_c.png differ
diff --git a/parts_pl/body/pl_mudskipper_d.png b/parts_pl/body/pl_mudskipper_d.png
new file mode 100644
index 0000000..9f94db8
Binary files /dev/null and b/parts_pl/body/pl_mudskipper_d.png differ
diff --git a/parts_pl/body/pl_narwhal.png b/parts_pl/body/pl_narwhal.png
new file mode 100644
index 0000000..d303404
Binary files /dev/null and b/parts_pl/body/pl_narwhal.png differ
diff --git a/parts_pl/body/pl_narwhal_b.png b/parts_pl/body/pl_narwhal_b.png
new file mode 100644
index 0000000..55066fc
Binary files /dev/null and b/parts_pl/body/pl_narwhal_b.png differ
diff --git a/parts_pl/body/pl_narwhal_c.png b/parts_pl/body/pl_narwhal_c.png
new file mode 100644
index 0000000..bb8ef2b
Binary files /dev/null and b/parts_pl/body/pl_narwhal_c.png differ
diff --git a/parts_pl/body/pl_narwhal_d.png b/parts_pl/body/pl_narwhal_d.png
new file mode 100644
index 0000000..0977b0d
Binary files /dev/null and b/parts_pl/body/pl_narwhal_d.png differ
diff --git a/parts_pl/body/pl_neon.png b/parts_pl/body/pl_neon.png
new file mode 100644
index 0000000..31e31e1
Binary files /dev/null and b/parts_pl/body/pl_neon.png differ
diff --git a/parts_pl/body/pl_neon_b.png b/parts_pl/body/pl_neon_b.png
new file mode 100644
index 0000000..dd60796
Binary files /dev/null and b/parts_pl/body/pl_neon_b.png differ
diff --git a/parts_pl/body/pl_neon_c.png b/parts_pl/body/pl_neon_c.png
new file mode 100644
index 0000000..16b87b6
Binary files /dev/null and b/parts_pl/body/pl_neon_c.png differ
diff --git a/parts_pl/body/pl_neon_d.png b/parts_pl/body/pl_neon_d.png
new file mode 100644
index 0000000..0d81c8b
Binary files /dev/null and b/parts_pl/body/pl_neon_d.png differ
diff --git a/parts_pl/body/pl_nudibranch.png b/parts_pl/body/pl_nudibranch.png
new file mode 100644
index 0000000..58bd08b
Binary files /dev/null and b/parts_pl/body/pl_nudibranch.png differ
diff --git a/parts_pl/body/pl_nudibranch_b.png b/parts_pl/body/pl_nudibranch_b.png
new file mode 100644
index 0000000..270e1b2
Binary files /dev/null and b/parts_pl/body/pl_nudibranch_b.png differ
diff --git a/parts_pl/body/pl_nudibranch_c.png b/parts_pl/body/pl_nudibranch_c.png
new file mode 100644
index 0000000..6d15751
Binary files /dev/null and b/parts_pl/body/pl_nudibranch_c.png differ
diff --git a/parts_pl/body/pl_nutcracker.png b/parts_pl/body/pl_nutcracker.png
new file mode 100644
index 0000000..47b4ba8
Binary files /dev/null and b/parts_pl/body/pl_nutcracker.png differ
diff --git a/parts_pl/body/pl_nutcracker_b.png b/parts_pl/body/pl_nutcracker_b.png
new file mode 100644
index 0000000..c68e4c7
Binary files /dev/null and b/parts_pl/body/pl_nutcracker_b.png differ
diff --git a/parts_pl/body/pl_nutcracker_c.png b/parts_pl/body/pl_nutcracker_c.png
new file mode 100644
index 0000000..a3bfa26
Binary files /dev/null and b/parts_pl/body/pl_nutcracker_c.png differ
diff --git a/parts_pl/body/pl_nutcracker_d.png b/parts_pl/body/pl_nutcracker_d.png
new file mode 100644
index 0000000..3dbba1c
Binary files /dev/null and b/parts_pl/body/pl_nutcracker_d.png differ
diff --git a/parts_pl/body/pl_nymph.png b/parts_pl/body/pl_nymph.png
new file mode 100644
index 0000000..d75bc32
Binary files /dev/null and b/parts_pl/body/pl_nymph.png differ
diff --git a/parts_pl/body/pl_nymph_b.png b/parts_pl/body/pl_nymph_b.png
new file mode 100644
index 0000000..00fe23b
Binary files /dev/null and b/parts_pl/body/pl_nymph_b.png differ
diff --git a/parts_pl/body/pl_nymph_c.png b/parts_pl/body/pl_nymph_c.png
new file mode 100644
index 0000000..129c53a
Binary files /dev/null and b/parts_pl/body/pl_nymph_c.png differ
diff --git a/parts_pl/body/pl_nymph_d.png b/parts_pl/body/pl_nymph_d.png
new file mode 100644
index 0000000..231396d
Binary files /dev/null and b/parts_pl/body/pl_nymph_d.png differ
diff --git a/parts_pl/body/pl_obsidian.png b/parts_pl/body/pl_obsidian.png
new file mode 100644
index 0000000..255fd29
Binary files /dev/null and b/parts_pl/body/pl_obsidian.png differ
diff --git a/parts_pl/body/pl_obsidian_b.png b/parts_pl/body/pl_obsidian_b.png
new file mode 100644
index 0000000..d452ee0
Binary files /dev/null and b/parts_pl/body/pl_obsidian_b.png differ
diff --git a/parts_pl/body/pl_obsidian_c.png b/parts_pl/body/pl_obsidian_c.png
new file mode 100644
index 0000000..5ad9979
Binary files /dev/null and b/parts_pl/body/pl_obsidian_c.png differ
diff --git a/parts_pl/body/pl_obsidian_d.png b/parts_pl/body/pl_obsidian_d.png
new file mode 100644
index 0000000..569d442
Binary files /dev/null and b/parts_pl/body/pl_obsidian_d.png differ
diff --git a/parts_pl/body/pl_onigiri.png b/parts_pl/body/pl_onigiri.png
new file mode 100644
index 0000000..4d129f0
Binary files /dev/null and b/parts_pl/body/pl_onigiri.png differ
diff --git a/parts_pl/body/pl_onigiri_b.png b/parts_pl/body/pl_onigiri_b.png
new file mode 100644
index 0000000..38885a9
Binary files /dev/null and b/parts_pl/body/pl_onigiri_b.png differ
diff --git a/parts_pl/body/pl_onigiri_c.png b/parts_pl/body/pl_onigiri_c.png
new file mode 100644
index 0000000..1702004
Binary files /dev/null and b/parts_pl/body/pl_onigiri_c.png differ
diff --git a/parts_pl/body/pl_onigiri_d.png b/parts_pl/body/pl_onigiri_d.png
new file mode 100644
index 0000000..9c64bc2
Binary files /dev/null and b/parts_pl/body/pl_onigiri_d.png differ
diff --git a/parts_pl/body/pl_origami.png b/parts_pl/body/pl_origami.png
new file mode 100644
index 0000000..4b5eeba
Binary files /dev/null and b/parts_pl/body/pl_origami.png differ
diff --git a/parts_pl/body/pl_origami_b.png b/parts_pl/body/pl_origami_b.png
new file mode 100644
index 0000000..6170004
Binary files /dev/null and b/parts_pl/body/pl_origami_b.png differ
diff --git a/parts_pl/body/pl_ouija.png b/parts_pl/body/pl_ouija.png
new file mode 100644
index 0000000..80b19c3
Binary files /dev/null and b/parts_pl/body/pl_ouija.png differ
diff --git a/parts_pl/body/pl_ouija_b.png b/parts_pl/body/pl_ouija_b.png
new file mode 100644
index 0000000..5382799
Binary files /dev/null and b/parts_pl/body/pl_ouija_b.png differ
diff --git a/parts_pl/body/pl_ouija_c.png b/parts_pl/body/pl_ouija_c.png
new file mode 100644
index 0000000..47da2d9
Binary files /dev/null and b/parts_pl/body/pl_ouija_c.png differ
diff --git a/parts_pl/body/pl_ouroboros.png b/parts_pl/body/pl_ouroboros.png
new file mode 100644
index 0000000..c16a4d7
Binary files /dev/null and b/parts_pl/body/pl_ouroboros.png differ
diff --git a/parts_pl/body/pl_ouroboros_b.png b/parts_pl/body/pl_ouroboros_b.png
new file mode 100644
index 0000000..ac410dc
Binary files /dev/null and b/parts_pl/body/pl_ouroboros_b.png differ
diff --git a/parts_pl/body/pl_ouroboros_c.png b/parts_pl/body/pl_ouroboros_c.png
new file mode 100644
index 0000000..6b17da2
Binary files /dev/null and b/parts_pl/body/pl_ouroboros_c.png differ
diff --git a/parts_pl/body/pl_ouroboros_d.png b/parts_pl/body/pl_ouroboros_d.png
new file mode 100644
index 0000000..659448b
Binary files /dev/null and b/parts_pl/body/pl_ouroboros_d.png differ
diff --git a/parts_pl/body/pl_outlet.png b/parts_pl/body/pl_outlet.png
new file mode 100644
index 0000000..c4389bc
Binary files /dev/null and b/parts_pl/body/pl_outlet.png differ
diff --git a/parts_pl/body/pl_outlet_b.png b/parts_pl/body/pl_outlet_b.png
new file mode 100644
index 0000000..4f2af85
Binary files /dev/null and b/parts_pl/body/pl_outlet_b.png differ
diff --git a/parts_pl/body/pl_outlet_c.png b/parts_pl/body/pl_outlet_c.png
new file mode 100644
index 0000000..55763aa
Binary files /dev/null and b/parts_pl/body/pl_outlet_c.png differ
diff --git a/parts_pl/body/pl_outlet_d.png b/parts_pl/body/pl_outlet_d.png
new file mode 100644
index 0000000..b9f6723
Binary files /dev/null and b/parts_pl/body/pl_outlet_d.png differ
diff --git a/parts_pl/body/pl_owl_b.png b/parts_pl/body/pl_owl_b.png
new file mode 100644
index 0000000..e507c82
Binary files /dev/null and b/parts_pl/body/pl_owl_b.png differ
diff --git a/parts_pl/body/pl_owl_c.png b/parts_pl/body/pl_owl_c.png
new file mode 100644
index 0000000..6391ff4
Binary files /dev/null and b/parts_pl/body/pl_owl_c.png differ
diff --git a/parts_pl/body/pl_owl_d.png b/parts_pl/body/pl_owl_d.png
new file mode 100644
index 0000000..fa08f30
Binary files /dev/null and b/parts_pl/body/pl_owl_d.png differ
diff --git a/parts_pl/body/pl_pangolin.png b/parts_pl/body/pl_pangolin.png
new file mode 100644
index 0000000..11c798c
Binary files /dev/null and b/parts_pl/body/pl_pangolin.png differ
diff --git a/parts_pl/body/pl_pangolin_b.png b/parts_pl/body/pl_pangolin_b.png
new file mode 100644
index 0000000..e932090
Binary files /dev/null and b/parts_pl/body/pl_pangolin_b.png differ
diff --git a/parts_pl/body/pl_pangolin_c.png b/parts_pl/body/pl_pangolin_c.png
new file mode 100644
index 0000000..ee1eccc
Binary files /dev/null and b/parts_pl/body/pl_pangolin_c.png differ
diff --git a/parts_pl/body/pl_pebble_b.png b/parts_pl/body/pl_pebble_b.png
new file mode 100644
index 0000000..29d8bd1
Binary files /dev/null and b/parts_pl/body/pl_pebble_b.png differ
diff --git a/parts_pl/body/pl_pebble_c.png b/parts_pl/body/pl_pebble_c.png
new file mode 100644
index 0000000..d53b87d
Binary files /dev/null and b/parts_pl/body/pl_pebble_c.png differ
diff --git a/parts_pl/body/pl_pebble_d.png b/parts_pl/body/pl_pebble_d.png
new file mode 100644
index 0000000..a82d988
Binary files /dev/null and b/parts_pl/body/pl_pebble_d.png differ
diff --git a/parts_pl/body/pl_pegasus.png b/parts_pl/body/pl_pegasus.png
new file mode 100644
index 0000000..8e763e2
Binary files /dev/null and b/parts_pl/body/pl_pegasus.png differ
diff --git a/parts_pl/body/pl_pegasus_b.png b/parts_pl/body/pl_pegasus_b.png
new file mode 100644
index 0000000..b9d3b78
Binary files /dev/null and b/parts_pl/body/pl_pegasus_b.png differ
diff --git a/parts_pl/body/pl_pegasus_c.png b/parts_pl/body/pl_pegasus_c.png
new file mode 100644
index 0000000..31f20ba
Binary files /dev/null and b/parts_pl/body/pl_pegasus_c.png differ
diff --git a/parts_pl/body/pl_pegasus_d.png b/parts_pl/body/pl_pegasus_d.png
new file mode 100644
index 0000000..7eca627
Binary files /dev/null and b/parts_pl/body/pl_pegasus_d.png differ
diff --git a/parts_pl/body/pl_pelican.png b/parts_pl/body/pl_pelican.png
new file mode 100644
index 0000000..aa21a78
Binary files /dev/null and b/parts_pl/body/pl_pelican.png differ
diff --git a/parts_pl/body/pl_pelican_b.png b/parts_pl/body/pl_pelican_b.png
new file mode 100644
index 0000000..9328e5c
Binary files /dev/null and b/parts_pl/body/pl_pelican_b.png differ
diff --git a/parts_pl/body/pl_pelican_c.png b/parts_pl/body/pl_pelican_c.png
new file mode 100644
index 0000000..0a626d5
Binary files /dev/null and b/parts_pl/body/pl_pelican_c.png differ
diff --git a/parts_pl/body/pl_pelican_d.png b/parts_pl/body/pl_pelican_d.png
new file mode 100644
index 0000000..207b6a0
Binary files /dev/null and b/parts_pl/body/pl_pelican_d.png differ
diff --git a/parts_pl/body/pl_penguin.png b/parts_pl/body/pl_penguin.png
new file mode 100644
index 0000000..88afb34
Binary files /dev/null and b/parts_pl/body/pl_penguin.png differ
diff --git a/parts_pl/body/pl_penguin_b.png b/parts_pl/body/pl_penguin_b.png
new file mode 100644
index 0000000..ad2fbd5
Binary files /dev/null and b/parts_pl/body/pl_penguin_b.png differ
diff --git a/parts_pl/body/pl_penguin_c.png b/parts_pl/body/pl_penguin_c.png
new file mode 100644
index 0000000..3517a58
Binary files /dev/null and b/parts_pl/body/pl_penguin_c.png differ
diff --git a/parts_pl/body/pl_phoenix.png b/parts_pl/body/pl_phoenix.png
new file mode 100644
index 0000000..406cf14
Binary files /dev/null and b/parts_pl/body/pl_phoenix.png differ
diff --git a/parts_pl/body/pl_phoenix_b.png b/parts_pl/body/pl_phoenix_b.png
new file mode 100644
index 0000000..951dae7
Binary files /dev/null and b/parts_pl/body/pl_phoenix_b.png differ
diff --git a/parts_pl/body/pl_phoenix_c.png b/parts_pl/body/pl_phoenix_c.png
new file mode 100644
index 0000000..e93f7dc
Binary files /dev/null and b/parts_pl/body/pl_phoenix_c.png differ
diff --git a/parts_pl/body/pl_phoenix_d.png b/parts_pl/body/pl_phoenix_d.png
new file mode 100644
index 0000000..0801906
Binary files /dev/null and b/parts_pl/body/pl_phoenix_d.png differ
diff --git a/parts_pl/body/pl_pinefinch.png b/parts_pl/body/pl_pinefinch.png
new file mode 100644
index 0000000..8ac4cf7
Binary files /dev/null and b/parts_pl/body/pl_pinefinch.png differ
diff --git a/parts_pl/body/pl_pinefinch_b.png b/parts_pl/body/pl_pinefinch_b.png
new file mode 100644
index 0000000..d87da75
Binary files /dev/null and b/parts_pl/body/pl_pinefinch_b.png differ
diff --git a/parts_pl/body/pl_pinefinch_c.png b/parts_pl/body/pl_pinefinch_c.png
new file mode 100644
index 0000000..234cb39
Binary files /dev/null and b/parts_pl/body/pl_pinefinch_c.png differ
diff --git a/parts_pl/body/pl_pipe.png b/parts_pl/body/pl_pipe.png
new file mode 100644
index 0000000..c397d40
Binary files /dev/null and b/parts_pl/body/pl_pipe.png differ
diff --git a/parts_pl/body/pl_pipe_b.png b/parts_pl/body/pl_pipe_b.png
new file mode 100644
index 0000000..c3f4f62
Binary files /dev/null and b/parts_pl/body/pl_pipe_b.png differ
diff --git a/parts_pl/body/pl_pipe_c.png b/parts_pl/body/pl_pipe_c.png
new file mode 100644
index 0000000..c9229f0
Binary files /dev/null and b/parts_pl/body/pl_pipe_c.png differ
diff --git a/parts_pl/body/pl_pitcher.png b/parts_pl/body/pl_pitcher.png
new file mode 100644
index 0000000..8d4321a
Binary files /dev/null and b/parts_pl/body/pl_pitcher.png differ
diff --git a/parts_pl/body/pl_pitcher_b.png b/parts_pl/body/pl_pitcher_b.png
new file mode 100644
index 0000000..ad2a210
Binary files /dev/null and b/parts_pl/body/pl_pitcher_b.png differ
diff --git a/parts_pl/body/pl_pitcher_c.png b/parts_pl/body/pl_pitcher_c.png
new file mode 100644
index 0000000..97d683e
Binary files /dev/null and b/parts_pl/body/pl_pitcher_c.png differ
diff --git a/parts_pl/body/pl_pitcher_d.png b/parts_pl/body/pl_pitcher_d.png
new file mode 100644
index 0000000..99b58ce
Binary files /dev/null and b/parts_pl/body/pl_pitcher_d.png differ
diff --git a/parts_pl/body/pl_pitohui.png b/parts_pl/body/pl_pitohui.png
new file mode 100644
index 0000000..e1f4e48
Binary files /dev/null and b/parts_pl/body/pl_pitohui.png differ
diff --git a/parts_pl/body/pl_pitohui_b.png b/parts_pl/body/pl_pitohui_b.png
new file mode 100644
index 0000000..81b0ef8
Binary files /dev/null and b/parts_pl/body/pl_pitohui_b.png differ
diff --git a/parts_pl/body/pl_pitohui_c.png b/parts_pl/body/pl_pitohui_c.png
new file mode 100644
index 0000000..49745bd
Binary files /dev/null and b/parts_pl/body/pl_pitohui_c.png differ
diff --git a/parts_pl/body/pl_pitohui_d.png b/parts_pl/body/pl_pitohui_d.png
new file mode 100644
index 0000000..839e0e4
Binary files /dev/null and b/parts_pl/body/pl_pitohui_d.png differ
diff --git a/parts_pl/body/pl_plaguecrow.png b/parts_pl/body/pl_plaguecrow.png
new file mode 100644
index 0000000..7acdee6
Binary files /dev/null and b/parts_pl/body/pl_plaguecrow.png differ
diff --git a/parts_pl/body/pl_plaguecrow_b.png b/parts_pl/body/pl_plaguecrow_b.png
new file mode 100644
index 0000000..bdaab1d
Binary files /dev/null and b/parts_pl/body/pl_plaguecrow_b.png differ
diff --git a/parts_pl/body/pl_plaguecrow_c.png b/parts_pl/body/pl_plaguecrow_c.png
new file mode 100644
index 0000000..41f4186
Binary files /dev/null and b/parts_pl/body/pl_plaguecrow_c.png differ
diff --git a/parts_pl/body/pl_plaguecrow_d.png b/parts_pl/body/pl_plaguecrow_d.png
new file mode 100644
index 0000000..86b9d57
Binary files /dev/null and b/parts_pl/body/pl_plaguecrow_d.png differ
diff --git a/parts_pl/body/pl_platypus.png b/parts_pl/body/pl_platypus.png
new file mode 100644
index 0000000..95b96fc
Binary files /dev/null and b/parts_pl/body/pl_platypus.png differ
diff --git a/parts_pl/body/pl_platypus_b.png b/parts_pl/body/pl_platypus_b.png
new file mode 100644
index 0000000..b407250
Binary files /dev/null and b/parts_pl/body/pl_platypus_b.png differ
diff --git a/parts_pl/body/pl_platypus_d.png b/parts_pl/body/pl_platypus_d.png
new file mode 100644
index 0000000..7be248f
Binary files /dev/null and b/parts_pl/body/pl_platypus_d.png differ
diff --git a/parts_pl/body/pl_plesio.png b/parts_pl/body/pl_plesio.png
new file mode 100644
index 0000000..21c171c
Binary files /dev/null and b/parts_pl/body/pl_plesio.png differ
diff --git a/parts_pl/body/pl_plesio_b.png b/parts_pl/body/pl_plesio_b.png
new file mode 100644
index 0000000..06b10b5
Binary files /dev/null and b/parts_pl/body/pl_plesio_b.png differ
diff --git a/parts_pl/body/pl_plesio_c.png b/parts_pl/body/pl_plesio_c.png
new file mode 100644
index 0000000..6e51bde
Binary files /dev/null and b/parts_pl/body/pl_plesio_c.png differ
diff --git a/parts_pl/body/pl_plesio_d.png b/parts_pl/body/pl_plesio_d.png
new file mode 100644
index 0000000..1ffab8e
Binary files /dev/null and b/parts_pl/body/pl_plesio_d.png differ
diff --git a/parts_pl/body/pl_plugpig.png b/parts_pl/body/pl_plugpig.png
new file mode 100644
index 0000000..3de8927
Binary files /dev/null and b/parts_pl/body/pl_plugpig.png differ
diff --git a/parts_pl/body/pl_plugpig_b.png b/parts_pl/body/pl_plugpig_b.png
new file mode 100644
index 0000000..0af249b
Binary files /dev/null and b/parts_pl/body/pl_plugpig_b.png differ
diff --git a/parts_pl/body/pl_plugpig_c.png b/parts_pl/body/pl_plugpig_c.png
new file mode 100644
index 0000000..6c9dd48
Binary files /dev/null and b/parts_pl/body/pl_plugpig_c.png differ
diff --git a/parts_pl/body/pl_plugpig_d.png b/parts_pl/body/pl_plugpig_d.png
new file mode 100644
index 0000000..d8f2414
Binary files /dev/null and b/parts_pl/body/pl_plugpig_d.png differ
diff --git a/parts_pl/body/pl_polar.png b/parts_pl/body/pl_polar.png
new file mode 100644
index 0000000..81e5d9f
Binary files /dev/null and b/parts_pl/body/pl_polar.png differ
diff --git a/parts_pl/body/pl_polar_b.png b/parts_pl/body/pl_polar_b.png
new file mode 100644
index 0000000..88cc547
Binary files /dev/null and b/parts_pl/body/pl_polar_b.png differ
diff --git a/parts_pl/body/pl_polar_d.png b/parts_pl/body/pl_polar_d.png
new file mode 100644
index 0000000..c925292
Binary files /dev/null and b/parts_pl/body/pl_polar_d.png differ
diff --git a/parts_pl/body/pl_popcorn.png b/parts_pl/body/pl_popcorn.png
new file mode 100644
index 0000000..729399b
Binary files /dev/null and b/parts_pl/body/pl_popcorn.png differ
diff --git a/parts_pl/body/pl_popcorn_c.png b/parts_pl/body/pl_popcorn_c.png
new file mode 100644
index 0000000..29551fe
Binary files /dev/null and b/parts_pl/body/pl_popcorn_c.png differ
diff --git a/parts_pl/body/pl_popcorn_d.png b/parts_pl/body/pl_popcorn_d.png
new file mode 100644
index 0000000..efd3915
Binary files /dev/null and b/parts_pl/body/pl_popcorn_d.png differ
diff --git a/parts_pl/body/pl_psitta.png b/parts_pl/body/pl_psitta.png
new file mode 100644
index 0000000..801f282
Binary files /dev/null and b/parts_pl/body/pl_psitta.png differ
diff --git a/parts_pl/body/pl_psitta_b.png b/parts_pl/body/pl_psitta_b.png
new file mode 100644
index 0000000..d292e40
Binary files /dev/null and b/parts_pl/body/pl_psitta_b.png differ
diff --git a/parts_pl/body/pl_psitta_c.png b/parts_pl/body/pl_psitta_c.png
new file mode 100644
index 0000000..0c6f02f
Binary files /dev/null and b/parts_pl/body/pl_psitta_c.png differ
diff --git a/parts_pl/body/pl_ptarmigan.png b/parts_pl/body/pl_ptarmigan.png
new file mode 100644
index 0000000..14a4cd1
Binary files /dev/null and b/parts_pl/body/pl_ptarmigan.png differ
diff --git a/parts_pl/body/pl_ptarmigan_b.png b/parts_pl/body/pl_ptarmigan_b.png
new file mode 100644
index 0000000..969788f
Binary files /dev/null and b/parts_pl/body/pl_ptarmigan_b.png differ
diff --git a/parts_pl/body/pl_ptarmigan_c.png b/parts_pl/body/pl_ptarmigan_c.png
new file mode 100644
index 0000000..60a012b
Binary files /dev/null and b/parts_pl/body/pl_ptarmigan_c.png differ
diff --git a/parts_pl/body/pl_ptero.png b/parts_pl/body/pl_ptero.png
new file mode 100644
index 0000000..4a4994e
Binary files /dev/null and b/parts_pl/body/pl_ptero.png differ
diff --git a/parts_pl/body/pl_ptero_b.png b/parts_pl/body/pl_ptero_b.png
new file mode 100644
index 0000000..2762971
Binary files /dev/null and b/parts_pl/body/pl_ptero_b.png differ
diff --git a/parts_pl/body/pl_ptero_c.png b/parts_pl/body/pl_ptero_c.png
new file mode 100644
index 0000000..3cabc82
Binary files /dev/null and b/parts_pl/body/pl_ptero_c.png differ
diff --git a/parts_pl/body/pl_ptero_d.png b/parts_pl/body/pl_ptero_d.png
new file mode 100644
index 0000000..74d0ffa
Binary files /dev/null and b/parts_pl/body/pl_ptero_d.png differ
diff --git a/parts_pl/body/pl_pumice.png b/parts_pl/body/pl_pumice.png
new file mode 100644
index 0000000..672b362
Binary files /dev/null and b/parts_pl/body/pl_pumice.png differ
diff --git a/parts_pl/body/pl_pumice_b.png b/parts_pl/body/pl_pumice_b.png
new file mode 100644
index 0000000..09850a3
Binary files /dev/null and b/parts_pl/body/pl_pumice_b.png differ
diff --git a/parts_pl/body/pl_pumice_c.png b/parts_pl/body/pl_pumice_c.png
new file mode 100644
index 0000000..6f7b281
Binary files /dev/null and b/parts_pl/body/pl_pumice_c.png differ
diff --git a/parts_pl/body/pl_pumice_d.png b/parts_pl/body/pl_pumice_d.png
new file mode 100644
index 0000000..3b78b97
Binary files /dev/null and b/parts_pl/body/pl_pumice_d.png differ
diff --git a/parts_pl/body/pl_pup.png b/parts_pl/body/pl_pup.png
new file mode 100644
index 0000000..c7083bb
Binary files /dev/null and b/parts_pl/body/pl_pup.png differ
diff --git a/parts_pl/body/pl_pup_b.png b/parts_pl/body/pl_pup_b.png
new file mode 100644
index 0000000..c42b1ef
Binary files /dev/null and b/parts_pl/body/pl_pup_b.png differ
diff --git a/parts_pl/body/pl_pup_c.png b/parts_pl/body/pl_pup_c.png
new file mode 100644
index 0000000..9fb68dd
Binary files /dev/null and b/parts_pl/body/pl_pup_c.png differ
diff --git a/parts_pl/body/pl_pup_d.png b/parts_pl/body/pl_pup_d.png
new file mode 100644
index 0000000..b210286
Binary files /dev/null and b/parts_pl/body/pl_pup_d.png differ
diff --git a/parts_pl/body/pl_qilin.png b/parts_pl/body/pl_qilin.png
new file mode 100644
index 0000000..3d5902a
Binary files /dev/null and b/parts_pl/body/pl_qilin.png differ
diff --git a/parts_pl/body/pl_qilin_b.png b/parts_pl/body/pl_qilin_b.png
new file mode 100644
index 0000000..dc306c9
Binary files /dev/null and b/parts_pl/body/pl_qilin_b.png differ
diff --git a/parts_pl/body/pl_qilin_c.png b/parts_pl/body/pl_qilin_c.png
new file mode 100644
index 0000000..2324737
Binary files /dev/null and b/parts_pl/body/pl_qilin_c.png differ
diff --git a/parts_pl/body/pl_qilin_d.png b/parts_pl/body/pl_qilin_d.png
new file mode 100644
index 0000000..3b16c43
Binary files /dev/null and b/parts_pl/body/pl_qilin_d.png differ
diff --git a/parts_pl/body/pl_quail.png b/parts_pl/body/pl_quail.png
new file mode 100644
index 0000000..c579e11
Binary files /dev/null and b/parts_pl/body/pl_quail.png differ
diff --git a/parts_pl/body/pl_quail_b.png b/parts_pl/body/pl_quail_b.png
new file mode 100644
index 0000000..f4090d4
Binary files /dev/null and b/parts_pl/body/pl_quail_b.png differ
diff --git a/parts_pl/body/pl_quail_c.png b/parts_pl/body/pl_quail_c.png
new file mode 100644
index 0000000..4a04e66
Binary files /dev/null and b/parts_pl/body/pl_quail_c.png differ
diff --git a/parts_pl/body/pl_quail_d.png b/parts_pl/body/pl_quail_d.png
new file mode 100644
index 0000000..9ae51c3
Binary files /dev/null and b/parts_pl/body/pl_quail_d.png differ
diff --git a/parts_pl/body/pl_quetzal.png b/parts_pl/body/pl_quetzal.png
new file mode 100644
index 0000000..ec1c920
Binary files /dev/null and b/parts_pl/body/pl_quetzal.png differ
diff --git a/parts_pl/body/pl_quetzal_b.png b/parts_pl/body/pl_quetzal_b.png
new file mode 100644
index 0000000..727ea6e
Binary files /dev/null and b/parts_pl/body/pl_quetzal_b.png differ
diff --git a/parts_pl/body/pl_quetzal_c.png b/parts_pl/body/pl_quetzal_c.png
new file mode 100644
index 0000000..fae9598
Binary files /dev/null and b/parts_pl/body/pl_quetzal_c.png differ
diff --git a/parts_pl/body/pl_quetzal_d.png b/parts_pl/body/pl_quetzal_d.png
new file mode 100644
index 0000000..373cb6c
Binary files /dev/null and b/parts_pl/body/pl_quetzal_d.png differ
diff --git a/parts_pl/body/pl_raccoon.png b/parts_pl/body/pl_raccoon.png
new file mode 100644
index 0000000..a328150
Binary files /dev/null and b/parts_pl/body/pl_raccoon.png differ
diff --git a/parts_pl/body/pl_raccoon_b.png b/parts_pl/body/pl_raccoon_b.png
new file mode 100644
index 0000000..ea9c2ba
Binary files /dev/null and b/parts_pl/body/pl_raccoon_b.png differ
diff --git a/parts_pl/body/pl_raccoon_c.png b/parts_pl/body/pl_raccoon_c.png
new file mode 100644
index 0000000..6084db4
Binary files /dev/null and b/parts_pl/body/pl_raccoon_c.png differ
diff --git a/parts_pl/body/pl_raccoon_d.png b/parts_pl/body/pl_raccoon_d.png
new file mode 100644
index 0000000..5b792bb
Binary files /dev/null and b/parts_pl/body/pl_raccoon_d.png differ
diff --git a/parts_pl/body/pl_radio.png b/parts_pl/body/pl_radio.png
new file mode 100644
index 0000000..d9b36c3
Binary files /dev/null and b/parts_pl/body/pl_radio.png differ
diff --git a/parts_pl/body/pl_radio_b.png b/parts_pl/body/pl_radio_b.png
new file mode 100644
index 0000000..d7e7cb8
Binary files /dev/null and b/parts_pl/body/pl_radio_b.png differ
diff --git a/parts_pl/body/pl_radio_d.png b/parts_pl/body/pl_radio_d.png
new file mode 100644
index 0000000..bf85d04
Binary files /dev/null and b/parts_pl/body/pl_radio_d.png differ
diff --git a/parts_pl/body/pl_ram.png b/parts_pl/body/pl_ram.png
new file mode 100644
index 0000000..011bbf6
Binary files /dev/null and b/parts_pl/body/pl_ram.png differ
diff --git a/parts_pl/body/pl_ram_b.png b/parts_pl/body/pl_ram_b.png
new file mode 100644
index 0000000..6ce9e80
Binary files /dev/null and b/parts_pl/body/pl_ram_b.png differ
diff --git a/parts_pl/body/pl_ram_c.png b/parts_pl/body/pl_ram_c.png
new file mode 100644
index 0000000..586827b
Binary files /dev/null and b/parts_pl/body/pl_ram_c.png differ
diff --git a/parts_pl/body/pl_ram_d.png b/parts_pl/body/pl_ram_d.png
new file mode 100644
index 0000000..89412e0
Binary files /dev/null and b/parts_pl/body/pl_ram_d.png differ
diff --git a/parts_pl/body/pl_redpanda.png b/parts_pl/body/pl_redpanda.png
new file mode 100644
index 0000000..94bd857
Binary files /dev/null and b/parts_pl/body/pl_redpanda.png differ
diff --git a/parts_pl/body/pl_redpanda_b.png b/parts_pl/body/pl_redpanda_b.png
new file mode 100644
index 0000000..beaa023
Binary files /dev/null and b/parts_pl/body/pl_redpanda_b.png differ
diff --git a/parts_pl/body/pl_redpanda_c.png b/parts_pl/body/pl_redpanda_c.png
new file mode 100644
index 0000000..9024336
Binary files /dev/null and b/parts_pl/body/pl_redpanda_c.png differ
diff --git a/parts_pl/body/pl_redpanda_d.png b/parts_pl/body/pl_redpanda_d.png
new file mode 100644
index 0000000..5327234
Binary files /dev/null and b/parts_pl/body/pl_redpanda_d.png differ
diff --git a/parts_pl/body/pl_rhinobug.png b/parts_pl/body/pl_rhinobug.png
new file mode 100644
index 0000000..7cd2244
Binary files /dev/null and b/parts_pl/body/pl_rhinobug.png differ
diff --git a/parts_pl/body/pl_rhinobug_b.png b/parts_pl/body/pl_rhinobug_b.png
new file mode 100644
index 0000000..ab1560c
Binary files /dev/null and b/parts_pl/body/pl_rhinobug_b.png differ
diff --git a/parts_pl/body/pl_rhinobug_c.png b/parts_pl/body/pl_rhinobug_c.png
new file mode 100644
index 0000000..7d4554d
Binary files /dev/null and b/parts_pl/body/pl_rhinobug_c.png differ
diff --git a/parts_pl/body/pl_roadrunner.png b/parts_pl/body/pl_roadrunner.png
new file mode 100644
index 0000000..f517b29
Binary files /dev/null and b/parts_pl/body/pl_roadrunner.png differ
diff --git a/parts_pl/body/pl_roadrunner_b.png b/parts_pl/body/pl_roadrunner_b.png
new file mode 100644
index 0000000..89e29e9
Binary files /dev/null and b/parts_pl/body/pl_roadrunner_b.png differ
diff --git a/parts_pl/body/pl_roadrunner_c.png b/parts_pl/body/pl_roadrunner_c.png
new file mode 100644
index 0000000..f8e3d7e
Binary files /dev/null and b/parts_pl/body/pl_roadrunner_c.png differ
diff --git a/parts_pl/body/pl_roadrunner_d.png b/parts_pl/body/pl_roadrunner_d.png
new file mode 100644
index 0000000..20d7fd6
Binary files /dev/null and b/parts_pl/body/pl_roadrunner_d.png differ
diff --git a/parts_pl/body/pl_robodog.png b/parts_pl/body/pl_robodog.png
new file mode 100644
index 0000000..1e6b5ec
Binary files /dev/null and b/parts_pl/body/pl_robodog.png differ
diff --git a/parts_pl/body/pl_robodog_b.png b/parts_pl/body/pl_robodog_b.png
new file mode 100644
index 0000000..dc84143
Binary files /dev/null and b/parts_pl/body/pl_robodog_b.png differ
diff --git a/parts_pl/body/pl_robodog_c.png b/parts_pl/body/pl_robodog_c.png
new file mode 100644
index 0000000..edaf794
Binary files /dev/null and b/parts_pl/body/pl_robodog_c.png differ
diff --git a/parts_pl/body/pl_robodog_d.png b/parts_pl/body/pl_robodog_d.png
new file mode 100644
index 0000000..17294d3
Binary files /dev/null and b/parts_pl/body/pl_robodog_d.png differ
diff --git a/parts_pl/body/pl_rocket.png b/parts_pl/body/pl_rocket.png
new file mode 100644
index 0000000..a2d76e7
Binary files /dev/null and b/parts_pl/body/pl_rocket.png differ
diff --git a/parts_pl/body/pl_rocket_b.png b/parts_pl/body/pl_rocket_b.png
new file mode 100644
index 0000000..5015bab
Binary files /dev/null and b/parts_pl/body/pl_rocket_b.png differ
diff --git a/parts_pl/body/pl_rocket_c.png b/parts_pl/body/pl_rocket_c.png
new file mode 100644
index 0000000..fcef357
Binary files /dev/null and b/parts_pl/body/pl_rocket_c.png differ
diff --git a/parts_pl/body/pl_rocket_d.png b/parts_pl/body/pl_rocket_d.png
new file mode 100644
index 0000000..9f80b6c
Binary files /dev/null and b/parts_pl/body/pl_rocket_d.png differ
diff --git a/parts_pl/body/pl_roo.png b/parts_pl/body/pl_roo.png
new file mode 100644
index 0000000..7b11dd8
Binary files /dev/null and b/parts_pl/body/pl_roo.png differ
diff --git a/parts_pl/body/pl_roo_b.png b/parts_pl/body/pl_roo_b.png
new file mode 100644
index 0000000..0be4de3
Binary files /dev/null and b/parts_pl/body/pl_roo_b.png differ
diff --git a/parts_pl/body/pl_roo_c.png b/parts_pl/body/pl_roo_c.png
new file mode 100644
index 0000000..0a617e2
Binary files /dev/null and b/parts_pl/body/pl_roo_c.png differ
diff --git a/parts_pl/body/pl_roo_d.png b/parts_pl/body/pl_roo_d.png
new file mode 100644
index 0000000..530c091
Binary files /dev/null and b/parts_pl/body/pl_roo_d.png differ
diff --git a/parts_pl/body/pl_ropefist.png b/parts_pl/body/pl_ropefist.png
new file mode 100644
index 0000000..1d2d85c
Binary files /dev/null and b/parts_pl/body/pl_ropefist.png differ
diff --git a/parts_pl/body/pl_ropefist_b.png b/parts_pl/body/pl_ropefist_b.png
new file mode 100644
index 0000000..8843f5e
Binary files /dev/null and b/parts_pl/body/pl_ropefist_b.png differ
diff --git a/parts_pl/body/pl_ropefist_d.png b/parts_pl/body/pl_ropefist_d.png
new file mode 100644
index 0000000..2d4a2ad
Binary files /dev/null and b/parts_pl/body/pl_ropefist_d.png differ
diff --git a/parts_pl/body/pl_sandcastle.png b/parts_pl/body/pl_sandcastle.png
new file mode 100644
index 0000000..09ebdf0
Binary files /dev/null and b/parts_pl/body/pl_sandcastle.png differ
diff --git a/parts_pl/body/pl_sandcastle_b.png b/parts_pl/body/pl_sandcastle_b.png
new file mode 100644
index 0000000..7addd3c
Binary files /dev/null and b/parts_pl/body/pl_sandcastle_b.png differ
diff --git a/parts_pl/body/pl_sandcastle_c.png b/parts_pl/body/pl_sandcastle_c.png
new file mode 100644
index 0000000..d801b22
Binary files /dev/null and b/parts_pl/body/pl_sandcastle_c.png differ
diff --git a/parts_pl/body/pl_sandcastle_d.png b/parts_pl/body/pl_sandcastle_d.png
new file mode 100644
index 0000000..a3db0ec
Binary files /dev/null and b/parts_pl/body/pl_sandcastle_d.png differ
diff --git a/parts_pl/body/pl_scarab.png b/parts_pl/body/pl_scarab.png
new file mode 100644
index 0000000..be9bcdf
Binary files /dev/null and b/parts_pl/body/pl_scarab.png differ
diff --git a/parts_pl/body/pl_scarab_b.png b/parts_pl/body/pl_scarab_b.png
new file mode 100644
index 0000000..62ef5ff
Binary files /dev/null and b/parts_pl/body/pl_scarab_b.png differ
diff --git a/parts_pl/body/pl_scarab_c.png b/parts_pl/body/pl_scarab_c.png
new file mode 100644
index 0000000..58f58e8
Binary files /dev/null and b/parts_pl/body/pl_scarab_c.png differ
diff --git a/parts_pl/body/pl_scarab_d.png b/parts_pl/body/pl_scarab_d.png
new file mode 100644
index 0000000..6ebbeb2
Binary files /dev/null and b/parts_pl/body/pl_scarab_d.png differ
diff --git a/parts_pl/body/pl_scorpion.png b/parts_pl/body/pl_scorpion.png
new file mode 100644
index 0000000..de1e95c
Binary files /dev/null and b/parts_pl/body/pl_scorpion.png differ
diff --git a/parts_pl/body/pl_scorpion_b.png b/parts_pl/body/pl_scorpion_b.png
new file mode 100644
index 0000000..1b471f1
Binary files /dev/null and b/parts_pl/body/pl_scorpion_b.png differ
diff --git a/parts_pl/body/pl_scorpion_c.png b/parts_pl/body/pl_scorpion_c.png
new file mode 100644
index 0000000..551d0c4
Binary files /dev/null and b/parts_pl/body/pl_scorpion_c.png differ
diff --git a/parts_pl/body/pl_scorpion_d.png b/parts_pl/body/pl_scorpion_d.png
new file mode 100644
index 0000000..6839f62
Binary files /dev/null and b/parts_pl/body/pl_scorpion_d.png differ
diff --git a/parts_pl/body/pl_seacucumber.png b/parts_pl/body/pl_seacucumber.png
new file mode 100644
index 0000000..26f837f
Binary files /dev/null and b/parts_pl/body/pl_seacucumber.png differ
diff --git a/parts_pl/body/pl_seacucumber_b.png b/parts_pl/body/pl_seacucumber_b.png
new file mode 100644
index 0000000..6ace9f1
Binary files /dev/null and b/parts_pl/body/pl_seacucumber_b.png differ
diff --git a/parts_pl/body/pl_seacucumber_c.png b/parts_pl/body/pl_seacucumber_c.png
new file mode 100644
index 0000000..e54c0b9
Binary files /dev/null and b/parts_pl/body/pl_seacucumber_c.png differ
diff --git a/parts_pl/body/pl_seacucumber_d.png b/parts_pl/body/pl_seacucumber_d.png
new file mode 100644
index 0000000..407034a
Binary files /dev/null and b/parts_pl/body/pl_seacucumber_d.png differ
diff --git a/parts_pl/body/pl_seahorse.png b/parts_pl/body/pl_seahorse.png
new file mode 100644
index 0000000..433bbe7
Binary files /dev/null and b/parts_pl/body/pl_seahorse.png differ
diff --git a/parts_pl/body/pl_seahorse_b.png b/parts_pl/body/pl_seahorse_b.png
new file mode 100644
index 0000000..5ecf4a4
Binary files /dev/null and b/parts_pl/body/pl_seahorse_b.png differ
diff --git a/parts_pl/body/pl_seahorse_c.png b/parts_pl/body/pl_seahorse_c.png
new file mode 100644
index 0000000..a5c37db
Binary files /dev/null and b/parts_pl/body/pl_seahorse_c.png differ
diff --git a/parts_pl/body/pl_seahorse_d.png b/parts_pl/body/pl_seahorse_d.png
new file mode 100644
index 0000000..2570afe
Binary files /dev/null and b/parts_pl/body/pl_seahorse_d.png differ
diff --git a/parts_pl/body/pl_seal_b.png b/parts_pl/body/pl_seal_b.png
new file mode 100644
index 0000000..f67b000
Binary files /dev/null and b/parts_pl/body/pl_seal_b.png differ
diff --git a/parts_pl/body/pl_seal_c.png b/parts_pl/body/pl_seal_c.png
new file mode 100644
index 0000000..8730062
Binary files /dev/null and b/parts_pl/body/pl_seal_c.png differ
diff --git a/parts_pl/body/pl_seal_d.png b/parts_pl/body/pl_seal_d.png
new file mode 100644
index 0000000..75b34f9
Binary files /dev/null and b/parts_pl/body/pl_seal_d.png differ
diff --git a/parts_pl/body/pl_secretary.png b/parts_pl/body/pl_secretary.png
new file mode 100644
index 0000000..f396268
Binary files /dev/null and b/parts_pl/body/pl_secretary.png differ
diff --git a/parts_pl/body/pl_secretary_b.png b/parts_pl/body/pl_secretary_b.png
new file mode 100644
index 0000000..c355def
Binary files /dev/null and b/parts_pl/body/pl_secretary_b.png differ
diff --git a/parts_pl/body/pl_secretary_c.png b/parts_pl/body/pl_secretary_c.png
new file mode 100644
index 0000000..41de02f
Binary files /dev/null and b/parts_pl/body/pl_secretary_c.png differ
diff --git a/parts_pl/body/pl_secretary_d.png b/parts_pl/body/pl_secretary_d.png
new file mode 100644
index 0000000..df188d9
Binary files /dev/null and b/parts_pl/body/pl_secretary_d.png differ
diff --git a/parts_pl/body/pl_shoebill.png b/parts_pl/body/pl_shoebill.png
new file mode 100644
index 0000000..9e9e380
Binary files /dev/null and b/parts_pl/body/pl_shoebill.png differ
diff --git a/parts_pl/body/pl_shoebill_b.png b/parts_pl/body/pl_shoebill_b.png
new file mode 100644
index 0000000..4229781
Binary files /dev/null and b/parts_pl/body/pl_shoebill_b.png differ
diff --git a/parts_pl/body/pl_shoebill_c.png b/parts_pl/body/pl_shoebill_c.png
new file mode 100644
index 0000000..47f0401
Binary files /dev/null and b/parts_pl/body/pl_shoebill_c.png differ
diff --git a/parts_pl/body/pl_shoebill_d.png b/parts_pl/body/pl_shoebill_d.png
new file mode 100644
index 0000000..4a3bca6
Binary files /dev/null and b/parts_pl/body/pl_shoebill_d.png differ
diff --git a/parts_pl/body/pl_silverfish.png b/parts_pl/body/pl_silverfish.png
new file mode 100644
index 0000000..50db9f8
Binary files /dev/null and b/parts_pl/body/pl_silverfish.png differ
diff --git a/parts_pl/body/pl_silverfish_b.png b/parts_pl/body/pl_silverfish_b.png
new file mode 100644
index 0000000..3777205
Binary files /dev/null and b/parts_pl/body/pl_silverfish_b.png differ
diff --git a/parts_pl/body/pl_silverfish_c.png b/parts_pl/body/pl_silverfish_c.png
new file mode 100644
index 0000000..79f4c1d
Binary files /dev/null and b/parts_pl/body/pl_silverfish_c.png differ
diff --git a/parts_pl/body/pl_silverfish_d.png b/parts_pl/body/pl_silverfish_d.png
new file mode 100644
index 0000000..d01c7b5
Binary files /dev/null and b/parts_pl/body/pl_silverfish_d.png differ
diff --git a/parts_pl/body/pl_skullbat.png b/parts_pl/body/pl_skullbat.png
new file mode 100644
index 0000000..b556ab9
Binary files /dev/null and b/parts_pl/body/pl_skullbat.png differ
diff --git a/parts_pl/body/pl_skullbat_b.png b/parts_pl/body/pl_skullbat_b.png
new file mode 100644
index 0000000..0b37b89
Binary files /dev/null and b/parts_pl/body/pl_skullbat_b.png differ
diff --git a/parts_pl/body/pl_skullbat_c.png b/parts_pl/body/pl_skullbat_c.png
new file mode 100644
index 0000000..cf5377e
Binary files /dev/null and b/parts_pl/body/pl_skullbat_c.png differ
diff --git a/parts_pl/body/pl_skywhale.png b/parts_pl/body/pl_skywhale.png
new file mode 100644
index 0000000..7a23dd3
Binary files /dev/null and b/parts_pl/body/pl_skywhale.png differ
diff --git a/parts_pl/body/pl_skywhale_b.png b/parts_pl/body/pl_skywhale_b.png
new file mode 100644
index 0000000..2392b03
Binary files /dev/null and b/parts_pl/body/pl_skywhale_b.png differ
diff --git a/parts_pl/body/pl_skywhale_c.png b/parts_pl/body/pl_skywhale_c.png
new file mode 100644
index 0000000..331bb68
Binary files /dev/null and b/parts_pl/body/pl_skywhale_c.png differ
diff --git a/parts_pl/body/pl_skywhale_d.png b/parts_pl/body/pl_skywhale_d.png
new file mode 100644
index 0000000..4c4d511
Binary files /dev/null and b/parts_pl/body/pl_skywhale_d.png differ
diff --git a/parts_pl/body/pl_sleepsheep.png b/parts_pl/body/pl_sleepsheep.png
new file mode 100644
index 0000000..040d043
Binary files /dev/null and b/parts_pl/body/pl_sleepsheep.png differ
diff --git a/parts_pl/body/pl_sleepsheep_b.png b/parts_pl/body/pl_sleepsheep_b.png
new file mode 100644
index 0000000..7fb4bc1
Binary files /dev/null and b/parts_pl/body/pl_sleepsheep_b.png differ
diff --git a/parts_pl/body/pl_sleepsheep_c.png b/parts_pl/body/pl_sleepsheep_c.png
new file mode 100644
index 0000000..e27a15d
Binary files /dev/null and b/parts_pl/body/pl_sleepsheep_c.png differ
diff --git a/parts_pl/body/pl_sleepsheep_d.png b/parts_pl/body/pl_sleepsheep_d.png
new file mode 100644
index 0000000..58693c6
Binary files /dev/null and b/parts_pl/body/pl_sleepsheep_d.png differ
diff --git a/parts_pl/body/pl_slime_b.png b/parts_pl/body/pl_slime_b.png
new file mode 100644
index 0000000..cab36d3
Binary files /dev/null and b/parts_pl/body/pl_slime_b.png differ
diff --git a/parts_pl/body/pl_slime_c.png b/parts_pl/body/pl_slime_c.png
new file mode 100644
index 0000000..6f28eec
Binary files /dev/null and b/parts_pl/body/pl_slime_c.png differ
diff --git a/parts_pl/body/pl_slime_d.png b/parts_pl/body/pl_slime_d.png
new file mode 100644
index 0000000..56902cf
Binary files /dev/null and b/parts_pl/body/pl_slime_d.png differ
diff --git a/parts_pl/body/pl_slinky.png b/parts_pl/body/pl_slinky.png
new file mode 100644
index 0000000..1b2d5d6
Binary files /dev/null and b/parts_pl/body/pl_slinky.png differ
diff --git a/parts_pl/body/pl_slinky_b.png b/parts_pl/body/pl_slinky_b.png
new file mode 100644
index 0000000..01712c0
Binary files /dev/null and b/parts_pl/body/pl_slinky_b.png differ
diff --git a/parts_pl/body/pl_slinky_c.png b/parts_pl/body/pl_slinky_c.png
new file mode 100644
index 0000000..77a8102
Binary files /dev/null and b/parts_pl/body/pl_slinky_c.png differ
diff --git a/parts_pl/body/pl_sloth.png b/parts_pl/body/pl_sloth.png
new file mode 100644
index 0000000..5173c2a
Binary files /dev/null and b/parts_pl/body/pl_sloth.png differ
diff --git a/parts_pl/body/pl_sloth_b.png b/parts_pl/body/pl_sloth_b.png
new file mode 100644
index 0000000..4747c76
Binary files /dev/null and b/parts_pl/body/pl_sloth_b.png differ
diff --git a/parts_pl/body/pl_sloth_c.png b/parts_pl/body/pl_sloth_c.png
new file mode 100644
index 0000000..febfc19
Binary files /dev/null and b/parts_pl/body/pl_sloth_c.png differ
diff --git a/parts_pl/body/pl_sloth_d.png b/parts_pl/body/pl_sloth_d.png
new file mode 100644
index 0000000..0537322
Binary files /dev/null and b/parts_pl/body/pl_sloth_d.png differ
diff --git a/parts_pl/body/pl_sludgerat.png b/parts_pl/body/pl_sludgerat.png
new file mode 100644
index 0000000..905a0b5
Binary files /dev/null and b/parts_pl/body/pl_sludgerat.png differ
diff --git a/parts_pl/body/pl_sludgerat_b.png b/parts_pl/body/pl_sludgerat_b.png
new file mode 100644
index 0000000..02c6146
Binary files /dev/null and b/parts_pl/body/pl_sludgerat_b.png differ
diff --git a/parts_pl/body/pl_sludgerat_c.png b/parts_pl/body/pl_sludgerat_c.png
new file mode 100644
index 0000000..4dc8b59
Binary files /dev/null and b/parts_pl/body/pl_sludgerat_c.png differ
diff --git a/parts_pl/body/pl_sludgerat_d.png b/parts_pl/body/pl_sludgerat_d.png
new file mode 100644
index 0000000..2ab07ab
Binary files /dev/null and b/parts_pl/body/pl_sludgerat_d.png differ
diff --git a/parts_pl/body/pl_smog.png b/parts_pl/body/pl_smog.png
new file mode 100644
index 0000000..988489f
Binary files /dev/null and b/parts_pl/body/pl_smog.png differ
diff --git a/parts_pl/body/pl_smog_b.png b/parts_pl/body/pl_smog_b.png
new file mode 100644
index 0000000..04ef839
Binary files /dev/null and b/parts_pl/body/pl_smog_b.png differ
diff --git a/parts_pl/body/pl_smog_c.png b/parts_pl/body/pl_smog_c.png
new file mode 100644
index 0000000..c30d80d
Binary files /dev/null and b/parts_pl/body/pl_smog_c.png differ
diff --git a/parts_pl/body/pl_snail.png b/parts_pl/body/pl_snail.png
new file mode 100644
index 0000000..e65a1d8
Binary files /dev/null and b/parts_pl/body/pl_snail.png differ
diff --git a/parts_pl/body/pl_snail_b.png b/parts_pl/body/pl_snail_b.png
new file mode 100644
index 0000000..7fca08a
Binary files /dev/null and b/parts_pl/body/pl_snail_b.png differ
diff --git a/parts_pl/body/pl_snail_c.png b/parts_pl/body/pl_snail_c.png
new file mode 100644
index 0000000..f3cf2dc
Binary files /dev/null and b/parts_pl/body/pl_snail_c.png differ
diff --git a/parts_pl/body/pl_snail_d.png b/parts_pl/body/pl_snail_d.png
new file mode 100644
index 0000000..9ca21df
Binary files /dev/null and b/parts_pl/body/pl_snail_d.png differ
diff --git a/parts_pl/body/pl_snake_b.png b/parts_pl/body/pl_snake_b.png
new file mode 100644
index 0000000..e17d34d
Binary files /dev/null and b/parts_pl/body/pl_snake_b.png differ
diff --git a/parts_pl/body/pl_snake_c.png b/parts_pl/body/pl_snake_c.png
new file mode 100644
index 0000000..bac4a76
Binary files /dev/null and b/parts_pl/body/pl_snake_c.png differ
diff --git a/parts_pl/body/pl_snake_d.png b/parts_pl/body/pl_snake_d.png
new file mode 100644
index 0000000..9956ae9
Binary files /dev/null and b/parts_pl/body/pl_snake_d.png differ
diff --git a/parts_pl/body/pl_snowcat.png b/parts_pl/body/pl_snowcat.png
new file mode 100644
index 0000000..20133ec
Binary files /dev/null and b/parts_pl/body/pl_snowcat.png differ
diff --git a/parts_pl/body/pl_snowcat_b.png b/parts_pl/body/pl_snowcat_b.png
new file mode 100644
index 0000000..528e307
Binary files /dev/null and b/parts_pl/body/pl_snowcat_b.png differ
diff --git a/parts_pl/body/pl_snowcat_c.png b/parts_pl/body/pl_snowcat_c.png
new file mode 100644
index 0000000..c88eee6
Binary files /dev/null and b/parts_pl/body/pl_snowcat_c.png differ
diff --git a/parts_pl/body/pl_snowcat_d.png b/parts_pl/body/pl_snowcat_d.png
new file mode 100644
index 0000000..f5eb759
Binary files /dev/null and b/parts_pl/body/pl_snowcat_d.png differ
diff --git a/parts_pl/body/pl_snowman.png b/parts_pl/body/pl_snowman.png
new file mode 100644
index 0000000..036fbdd
Binary files /dev/null and b/parts_pl/body/pl_snowman.png differ
diff --git a/parts_pl/body/pl_snowman_b.png b/parts_pl/body/pl_snowman_b.png
new file mode 100644
index 0000000..6e686eb
Binary files /dev/null and b/parts_pl/body/pl_snowman_b.png differ
diff --git a/parts_pl/body/pl_snowman_c.png b/parts_pl/body/pl_snowman_c.png
new file mode 100644
index 0000000..9144082
Binary files /dev/null and b/parts_pl/body/pl_snowman_c.png differ
diff --git a/parts_pl/body/pl_snowman_d.png b/parts_pl/body/pl_snowman_d.png
new file mode 100644
index 0000000..fa3830e
Binary files /dev/null and b/parts_pl/body/pl_snowman_d.png differ
diff --git a/parts_pl/body/pl_snowmonkey.png b/parts_pl/body/pl_snowmonkey.png
new file mode 100644
index 0000000..6019fc2
Binary files /dev/null and b/parts_pl/body/pl_snowmonkey.png differ
diff --git a/parts_pl/body/pl_snowmonkey_b.png b/parts_pl/body/pl_snowmonkey_b.png
new file mode 100644
index 0000000..d6399ec
Binary files /dev/null and b/parts_pl/body/pl_snowmonkey_b.png differ
diff --git a/parts_pl/body/pl_snowmonkey_c.png b/parts_pl/body/pl_snowmonkey_c.png
new file mode 100644
index 0000000..932b828
Binary files /dev/null and b/parts_pl/body/pl_snowmonkey_c.png differ
diff --git a/parts_pl/body/pl_sockeye.png b/parts_pl/body/pl_sockeye.png
new file mode 100644
index 0000000..cd35742
Binary files /dev/null and b/parts_pl/body/pl_sockeye.png differ
diff --git a/parts_pl/body/pl_sockeye_b.png b/parts_pl/body/pl_sockeye_b.png
new file mode 100644
index 0000000..9c565bc
Binary files /dev/null and b/parts_pl/body/pl_sockeye_b.png differ
diff --git a/parts_pl/body/pl_sockeye_c.png b/parts_pl/body/pl_sockeye_c.png
new file mode 100644
index 0000000..d21eb44
Binary files /dev/null and b/parts_pl/body/pl_sockeye_c.png differ
diff --git a/parts_pl/body/pl_sockeye_d.png b/parts_pl/body/pl_sockeye_d.png
new file mode 100644
index 0000000..a8263c8
Binary files /dev/null and b/parts_pl/body/pl_sockeye_d.png differ
diff --git a/parts_pl/body/pl_sockworm.png b/parts_pl/body/pl_sockworm.png
new file mode 100644
index 0000000..5ab13b1
Binary files /dev/null and b/parts_pl/body/pl_sockworm.png differ
diff --git a/parts_pl/body/pl_sockworm_b.png b/parts_pl/body/pl_sockworm_b.png
new file mode 100644
index 0000000..7a3a0a6
Binary files /dev/null and b/parts_pl/body/pl_sockworm_b.png differ
diff --git a/parts_pl/body/pl_sockworm_c.png b/parts_pl/body/pl_sockworm_c.png
new file mode 100644
index 0000000..5823d75
Binary files /dev/null and b/parts_pl/body/pl_sockworm_c.png differ
diff --git a/parts_pl/body/pl_sockworm_d.png b/parts_pl/body/pl_sockworm_d.png
new file mode 100644
index 0000000..b7e266c
Binary files /dev/null and b/parts_pl/body/pl_sockworm_d.png differ
diff --git a/parts_pl/body/pl_solenodon.png b/parts_pl/body/pl_solenodon.png
new file mode 100644
index 0000000..93dc9e8
Binary files /dev/null and b/parts_pl/body/pl_solenodon.png differ
diff --git a/parts_pl/body/pl_solenodon_b.png b/parts_pl/body/pl_solenodon_b.png
new file mode 100644
index 0000000..2f8480c
Binary files /dev/null and b/parts_pl/body/pl_solenodon_b.png differ
diff --git a/parts_pl/body/pl_solenodon_c.png b/parts_pl/body/pl_solenodon_c.png
new file mode 100644
index 0000000..58fcc38
Binary files /dev/null and b/parts_pl/body/pl_solenodon_c.png differ
diff --git a/parts_pl/body/pl_solenodon_d.png b/parts_pl/body/pl_solenodon_d.png
new file mode 100644
index 0000000..26f76d4
Binary files /dev/null and b/parts_pl/body/pl_solenodon_d.png differ
diff --git a/parts_pl/body/pl_solifuge.png b/parts_pl/body/pl_solifuge.png
new file mode 100644
index 0000000..5c9f322
Binary files /dev/null and b/parts_pl/body/pl_solifuge.png differ
diff --git a/parts_pl/body/pl_solifuge_b.png b/parts_pl/body/pl_solifuge_b.png
new file mode 100644
index 0000000..e860428
Binary files /dev/null and b/parts_pl/body/pl_solifuge_b.png differ
diff --git a/parts_pl/body/pl_solifuge_c.png b/parts_pl/body/pl_solifuge_c.png
new file mode 100644
index 0000000..d48c974
Binary files /dev/null and b/parts_pl/body/pl_solifuge_c.png differ
diff --git a/parts_pl/body/pl_solifuge_d.png b/parts_pl/body/pl_solifuge_d.png
new file mode 100644
index 0000000..d770f75
Binary files /dev/null and b/parts_pl/body/pl_solifuge_d.png differ
diff --git a/parts_pl/body/pl_spectercat.png b/parts_pl/body/pl_spectercat.png
new file mode 100644
index 0000000..2360c92
Binary files /dev/null and b/parts_pl/body/pl_spectercat.png differ
diff --git a/parts_pl/body/pl_spectercat_b.png b/parts_pl/body/pl_spectercat_b.png
new file mode 100644
index 0000000..e28bee5
Binary files /dev/null and b/parts_pl/body/pl_spectercat_b.png differ
diff --git a/parts_pl/body/pl_spectercat_c.png b/parts_pl/body/pl_spectercat_c.png
new file mode 100644
index 0000000..0f2490e
Binary files /dev/null and b/parts_pl/body/pl_spectercat_c.png differ
diff --git a/parts_pl/body/pl_spectercat_d.png b/parts_pl/body/pl_spectercat_d.png
new file mode 100644
index 0000000..930eece
Binary files /dev/null and b/parts_pl/body/pl_spectercat_d.png differ
diff --git a/parts_pl/body/pl_sphynx.png b/parts_pl/body/pl_sphynx.png
new file mode 100644
index 0000000..749a3ef
Binary files /dev/null and b/parts_pl/body/pl_sphynx.png differ
diff --git a/parts_pl/body/pl_sphynx_b.png b/parts_pl/body/pl_sphynx_b.png
new file mode 100644
index 0000000..f5fc6c7
Binary files /dev/null and b/parts_pl/body/pl_sphynx_b.png differ
diff --git a/parts_pl/body/pl_sphynx_c.png b/parts_pl/body/pl_sphynx_c.png
new file mode 100644
index 0000000..5a6d8fd
Binary files /dev/null and b/parts_pl/body/pl_sphynx_c.png differ
diff --git a/parts_pl/body/pl_sphynx_d.png b/parts_pl/body/pl_sphynx_d.png
new file mode 100644
index 0000000..849aaf5
Binary files /dev/null and b/parts_pl/body/pl_sphynx_d.png differ
diff --git a/parts_pl/body/pl_spider.png b/parts_pl/body/pl_spider.png
new file mode 100644
index 0000000..5ffa80e
Binary files /dev/null and b/parts_pl/body/pl_spider.png differ
diff --git a/parts_pl/body/pl_spider_b.png b/parts_pl/body/pl_spider_b.png
new file mode 100644
index 0000000..b86472c
Binary files /dev/null and b/parts_pl/body/pl_spider_b.png differ
diff --git a/parts_pl/body/pl_spider_c.png b/parts_pl/body/pl_spider_c.png
new file mode 100644
index 0000000..767f33f
Binary files /dev/null and b/parts_pl/body/pl_spider_c.png differ
diff --git a/parts_pl/body/pl_spider_d.png b/parts_pl/body/pl_spider_d.png
new file mode 100644
index 0000000..36fccd7
Binary files /dev/null and b/parts_pl/body/pl_spider_d.png differ
diff --git a/parts_pl/body/pl_spittle.png b/parts_pl/body/pl_spittle.png
new file mode 100644
index 0000000..19fa070
Binary files /dev/null and b/parts_pl/body/pl_spittle.png differ
diff --git a/parts_pl/body/pl_spittle_b.png b/parts_pl/body/pl_spittle_b.png
new file mode 100644
index 0000000..8e91fb6
Binary files /dev/null and b/parts_pl/body/pl_spittle_b.png differ
diff --git a/parts_pl/body/pl_spittle_c.png b/parts_pl/body/pl_spittle_c.png
new file mode 100644
index 0000000..fe93d6e
Binary files /dev/null and b/parts_pl/body/pl_spittle_c.png differ
diff --git a/parts_pl/body/pl_spittle_d.png b/parts_pl/body/pl_spittle_d.png
new file mode 100644
index 0000000..f70cedf
Binary files /dev/null and b/parts_pl/body/pl_spittle_d.png differ
diff --git a/parts_pl/body/pl_springtail.png b/parts_pl/body/pl_springtail.png
new file mode 100644
index 0000000..d2fad6e
Binary files /dev/null and b/parts_pl/body/pl_springtail.png differ
diff --git a/parts_pl/body/pl_springtail_b.png b/parts_pl/body/pl_springtail_b.png
new file mode 100644
index 0000000..3c7bb32
Binary files /dev/null and b/parts_pl/body/pl_springtail_b.png differ
diff --git a/parts_pl/body/pl_springtail_c.png b/parts_pl/body/pl_springtail_c.png
new file mode 100644
index 0000000..39d8c62
Binary files /dev/null and b/parts_pl/body/pl_springtail_c.png differ
diff --git a/parts_pl/body/pl_springtail_d.png b/parts_pl/body/pl_springtail_d.png
new file mode 100644
index 0000000..2cc0256
Binary files /dev/null and b/parts_pl/body/pl_springtail_d.png differ
diff --git a/parts_pl/body/pl_sprite_b.png b/parts_pl/body/pl_sprite_b.png
new file mode 100644
index 0000000..8ba9811
Binary files /dev/null and b/parts_pl/body/pl_sprite_b.png differ
diff --git a/parts_pl/body/pl_sprite_c.png b/parts_pl/body/pl_sprite_c.png
new file mode 100644
index 0000000..ca626ac
Binary files /dev/null and b/parts_pl/body/pl_sprite_c.png differ
diff --git a/parts_pl/body/pl_sprite_d.png b/parts_pl/body/pl_sprite_d.png
new file mode 100644
index 0000000..94a0ddb
Binary files /dev/null and b/parts_pl/body/pl_sprite_d.png differ
diff --git a/parts_pl/body/pl_starfish.png b/parts_pl/body/pl_starfish.png
new file mode 100644
index 0000000..0a9b515
Binary files /dev/null and b/parts_pl/body/pl_starfish.png differ
diff --git a/parts_pl/body/pl_starfish_b.png b/parts_pl/body/pl_starfish_b.png
new file mode 100644
index 0000000..824466a
Binary files /dev/null and b/parts_pl/body/pl_starfish_b.png differ
diff --git a/parts_pl/body/pl_starfish_c.png b/parts_pl/body/pl_starfish_c.png
new file mode 100644
index 0000000..389b408
Binary files /dev/null and b/parts_pl/body/pl_starfish_c.png differ
diff --git a/parts_pl/body/pl_starfish_d.png b/parts_pl/body/pl_starfish_d.png
new file mode 100644
index 0000000..6d6af82
Binary files /dev/null and b/parts_pl/body/pl_starfish_d.png differ
diff --git a/parts_pl/body/pl_stick.png b/parts_pl/body/pl_stick.png
new file mode 100644
index 0000000..16170c6
Binary files /dev/null and b/parts_pl/body/pl_stick.png differ
diff --git a/parts_pl/body/pl_stick_b.png b/parts_pl/body/pl_stick_b.png
new file mode 100644
index 0000000..62bd090
Binary files /dev/null and b/parts_pl/body/pl_stick_b.png differ
diff --git a/parts_pl/body/pl_stick_c.png b/parts_pl/body/pl_stick_c.png
new file mode 100644
index 0000000..74f032e
Binary files /dev/null and b/parts_pl/body/pl_stick_c.png differ
diff --git a/parts_pl/body/pl_stonefish.png b/parts_pl/body/pl_stonefish.png
new file mode 100644
index 0000000..7861039
Binary files /dev/null and b/parts_pl/body/pl_stonefish.png differ
diff --git a/parts_pl/body/pl_stonefish_b.png b/parts_pl/body/pl_stonefish_b.png
new file mode 100644
index 0000000..bdf0c10
Binary files /dev/null and b/parts_pl/body/pl_stonefish_b.png differ
diff --git a/parts_pl/body/pl_stonefish_c.png b/parts_pl/body/pl_stonefish_c.png
new file mode 100644
index 0000000..fd1b02b
Binary files /dev/null and b/parts_pl/body/pl_stonefish_c.png differ
diff --git a/parts_pl/body/pl_stonefish_d.png b/parts_pl/body/pl_stonefish_d.png
new file mode 100644
index 0000000..93d0170
Binary files /dev/null and b/parts_pl/body/pl_stonefish_d.png differ
diff --git a/parts_pl/body/pl_strider.png b/parts_pl/body/pl_strider.png
new file mode 100644
index 0000000..34c51d3
Binary files /dev/null and b/parts_pl/body/pl_strider.png differ
diff --git a/parts_pl/body/pl_strider_b.png b/parts_pl/body/pl_strider_b.png
new file mode 100644
index 0000000..531e6a8
Binary files /dev/null and b/parts_pl/body/pl_strider_b.png differ
diff --git a/parts_pl/body/pl_strider_c.png b/parts_pl/body/pl_strider_c.png
new file mode 100644
index 0000000..e610ae3
Binary files /dev/null and b/parts_pl/body/pl_strider_c.png differ
diff --git a/parts_pl/body/pl_strider_d.png b/parts_pl/body/pl_strider_d.png
new file mode 100644
index 0000000..6ef1b2e
Binary files /dev/null and b/parts_pl/body/pl_strider_d.png differ
diff --git a/parts_pl/body/pl_tadpole.png b/parts_pl/body/pl_tadpole.png
new file mode 100644
index 0000000..f238f27
Binary files /dev/null and b/parts_pl/body/pl_tadpole.png differ
diff --git a/parts_pl/body/pl_tadpole_b.png b/parts_pl/body/pl_tadpole_b.png
new file mode 100644
index 0000000..d13cdff
Binary files /dev/null and b/parts_pl/body/pl_tadpole_b.png differ
diff --git a/parts_pl/body/pl_tadpole_c.png b/parts_pl/body/pl_tadpole_c.png
new file mode 100644
index 0000000..782b0e9
Binary files /dev/null and b/parts_pl/body/pl_tadpole_c.png differ
diff --git a/parts_pl/body/pl_taiko.png b/parts_pl/body/pl_taiko.png
new file mode 100644
index 0000000..3c07b09
Binary files /dev/null and b/parts_pl/body/pl_taiko.png differ
diff --git a/parts_pl/body/pl_taiko_b.png b/parts_pl/body/pl_taiko_b.png
new file mode 100644
index 0000000..c3c56c3
Binary files /dev/null and b/parts_pl/body/pl_taiko_b.png differ
diff --git a/parts_pl/body/pl_taiko_c.png b/parts_pl/body/pl_taiko_c.png
new file mode 100644
index 0000000..215f82d
Binary files /dev/null and b/parts_pl/body/pl_taiko_c.png differ
diff --git a/parts_pl/body/pl_taiko_d.png b/parts_pl/body/pl_taiko_d.png
new file mode 100644
index 0000000..6b789d6
Binary files /dev/null and b/parts_pl/body/pl_taiko_d.png differ
diff --git a/parts_pl/body/pl_tapir.png b/parts_pl/body/pl_tapir.png
new file mode 100644
index 0000000..a33aa57
Binary files /dev/null and b/parts_pl/body/pl_tapir.png differ
diff --git a/parts_pl/body/pl_tapir_b.png b/parts_pl/body/pl_tapir_b.png
new file mode 100644
index 0000000..ff33381
Binary files /dev/null and b/parts_pl/body/pl_tapir_b.png differ
diff --git a/parts_pl/body/pl_tapir_c.png b/parts_pl/body/pl_tapir_c.png
new file mode 100644
index 0000000..6814458
Binary files /dev/null and b/parts_pl/body/pl_tapir_c.png differ
diff --git a/parts_pl/body/pl_tapir_d.png b/parts_pl/body/pl_tapir_d.png
new file mode 100644
index 0000000..b0f2a44
Binary files /dev/null and b/parts_pl/body/pl_tapir_d.png differ
diff --git a/parts_pl/body/pl_tardigrade.png b/parts_pl/body/pl_tardigrade.png
new file mode 100644
index 0000000..da3874d
Binary files /dev/null and b/parts_pl/body/pl_tardigrade.png differ
diff --git a/parts_pl/body/pl_tardigrade_b.png b/parts_pl/body/pl_tardigrade_b.png
new file mode 100644
index 0000000..1a5fe8b
Binary files /dev/null and b/parts_pl/body/pl_tardigrade_b.png differ
diff --git a/parts_pl/body/pl_tardigrade_c.png b/parts_pl/body/pl_tardigrade_c.png
new file mode 100644
index 0000000..2f7dad4
Binary files /dev/null and b/parts_pl/body/pl_tardigrade_c.png differ
diff --git a/parts_pl/body/pl_tardigrade_d.png b/parts_pl/body/pl_tardigrade_d.png
new file mode 100644
index 0000000..450f23c
Binary files /dev/null and b/parts_pl/body/pl_tardigrade_d.png differ
diff --git a/parts_pl/body/pl_tarotcard.png b/parts_pl/body/pl_tarotcard.png
new file mode 100644
index 0000000..a99e5a0
Binary files /dev/null and b/parts_pl/body/pl_tarotcard.png differ
diff --git a/parts_pl/body/pl_tarotcard_b.png b/parts_pl/body/pl_tarotcard_b.png
new file mode 100644
index 0000000..4bbabbc
Binary files /dev/null and b/parts_pl/body/pl_tarotcard_b.png differ
diff --git a/parts_pl/body/pl_tarotcard_c.png b/parts_pl/body/pl_tarotcard_c.png
new file mode 100644
index 0000000..f1d86fd
Binary files /dev/null and b/parts_pl/body/pl_tarotcard_c.png differ
diff --git a/parts_pl/body/pl_tarotcard_d.png b/parts_pl/body/pl_tarotcard_d.png
new file mode 100644
index 0000000..d6dfe55
Binary files /dev/null and b/parts_pl/body/pl_tarotcard_d.png differ
diff --git a/parts_pl/body/pl_tasdevil.png b/parts_pl/body/pl_tasdevil.png
new file mode 100644
index 0000000..3b97435
Binary files /dev/null and b/parts_pl/body/pl_tasdevil.png differ
diff --git a/parts_pl/body/pl_tasdevil_b.png b/parts_pl/body/pl_tasdevil_b.png
new file mode 100644
index 0000000..d04153a
Binary files /dev/null and b/parts_pl/body/pl_tasdevil_b.png differ
diff --git a/parts_pl/body/pl_tasdevil_c.png b/parts_pl/body/pl_tasdevil_c.png
new file mode 100644
index 0000000..5042b6b
Binary files /dev/null and b/parts_pl/body/pl_tasdevil_c.png differ
diff --git a/parts_pl/body/pl_tasdevil_d.png b/parts_pl/body/pl_tasdevil_d.png
new file mode 100644
index 0000000..9446c47
Binary files /dev/null and b/parts_pl/body/pl_tasdevil_d.png differ
diff --git a/parts_pl/body/pl_tatzel.png b/parts_pl/body/pl_tatzel.png
new file mode 100644
index 0000000..dfca30a
Binary files /dev/null and b/parts_pl/body/pl_tatzel.png differ
diff --git a/parts_pl/body/pl_tatzel_b.png b/parts_pl/body/pl_tatzel_b.png
new file mode 100644
index 0000000..2293b0e
Binary files /dev/null and b/parts_pl/body/pl_tatzel_b.png differ
diff --git a/parts_pl/body/pl_tatzel_c.png b/parts_pl/body/pl_tatzel_c.png
new file mode 100644
index 0000000..66f9086
Binary files /dev/null and b/parts_pl/body/pl_tatzel_c.png differ
diff --git a/parts_pl/body/pl_tatzel_d.png b/parts_pl/body/pl_tatzel_d.png
new file mode 100644
index 0000000..73955b5
Binary files /dev/null and b/parts_pl/body/pl_tatzel_d.png differ
diff --git a/parts_pl/body/pl_teapot.png b/parts_pl/body/pl_teapot.png
new file mode 100644
index 0000000..1e00fe8
Binary files /dev/null and b/parts_pl/body/pl_teapot.png differ
diff --git a/parts_pl/body/pl_teapot_b.png b/parts_pl/body/pl_teapot_b.png
new file mode 100644
index 0000000..b0ce7e0
Binary files /dev/null and b/parts_pl/body/pl_teapot_b.png differ
diff --git a/parts_pl/body/pl_teapot_c.png b/parts_pl/body/pl_teapot_c.png
new file mode 100644
index 0000000..57ec1d2
Binary files /dev/null and b/parts_pl/body/pl_teapot_c.png differ
diff --git a/parts_pl/body/pl_teslacoil.png b/parts_pl/body/pl_teslacoil.png
new file mode 100644
index 0000000..1523fea
Binary files /dev/null and b/parts_pl/body/pl_teslacoil.png differ
diff --git a/parts_pl/body/pl_teslacoil_c.png b/parts_pl/body/pl_teslacoil_c.png
new file mode 100644
index 0000000..7fcca92
Binary files /dev/null and b/parts_pl/body/pl_teslacoil_c.png differ
diff --git a/parts_pl/body/pl_tombstone.png b/parts_pl/body/pl_tombstone.png
new file mode 100644
index 0000000..8944d10
Binary files /dev/null and b/parts_pl/body/pl_tombstone.png differ
diff --git a/parts_pl/body/pl_tombstone_b.png b/parts_pl/body/pl_tombstone_b.png
new file mode 100644
index 0000000..58eded5
Binary files /dev/null and b/parts_pl/body/pl_tombstone_b.png differ
diff --git a/parts_pl/body/pl_tombstone_c.png b/parts_pl/body/pl_tombstone_c.png
new file mode 100644
index 0000000..c60adcf
Binary files /dev/null and b/parts_pl/body/pl_tombstone_c.png differ
diff --git a/parts_pl/body/pl_tombstone_d.png b/parts_pl/body/pl_tombstone_d.png
new file mode 100644
index 0000000..c6a2c5f
Binary files /dev/null and b/parts_pl/body/pl_tombstone_d.png differ
diff --git a/parts_pl/body/pl_topiary.png b/parts_pl/body/pl_topiary.png
new file mode 100644
index 0000000..af470dc
Binary files /dev/null and b/parts_pl/body/pl_topiary.png differ
diff --git a/parts_pl/body/pl_topiary_b.png b/parts_pl/body/pl_topiary_b.png
new file mode 100644
index 0000000..0b2bf90
Binary files /dev/null and b/parts_pl/body/pl_topiary_b.png differ
diff --git a/parts_pl/body/pl_topiary_c.png b/parts_pl/body/pl_topiary_c.png
new file mode 100644
index 0000000..929ad94
Binary files /dev/null and b/parts_pl/body/pl_topiary_c.png differ
diff --git a/parts_pl/body/pl_topiary_d.png b/parts_pl/body/pl_topiary_d.png
new file mode 100644
index 0000000..9f84cc5
Binary files /dev/null and b/parts_pl/body/pl_topiary_d.png differ
diff --git a/parts_pl/body/pl_tortoise.png b/parts_pl/body/pl_tortoise.png
new file mode 100644
index 0000000..e2a09cb
Binary files /dev/null and b/parts_pl/body/pl_tortoise.png differ
diff --git a/parts_pl/body/pl_tortoise_b.png b/parts_pl/body/pl_tortoise_b.png
new file mode 100644
index 0000000..7280057
Binary files /dev/null and b/parts_pl/body/pl_tortoise_b.png differ
diff --git a/parts_pl/body/pl_tortoise_c.png b/parts_pl/body/pl_tortoise_c.png
new file mode 100644
index 0000000..91c52b5
Binary files /dev/null and b/parts_pl/body/pl_tortoise_c.png differ
diff --git a/parts_pl/body/pl_trilobite.png b/parts_pl/body/pl_trilobite.png
new file mode 100644
index 0000000..c25366a
Binary files /dev/null and b/parts_pl/body/pl_trilobite.png differ
diff --git a/parts_pl/body/pl_trilobite_b.png b/parts_pl/body/pl_trilobite_b.png
new file mode 100644
index 0000000..c27b1a9
Binary files /dev/null and b/parts_pl/body/pl_trilobite_b.png differ
diff --git a/parts_pl/body/pl_trilobite_c.png b/parts_pl/body/pl_trilobite_c.png
new file mode 100644
index 0000000..55ce912
Binary files /dev/null and b/parts_pl/body/pl_trilobite_c.png differ
diff --git a/parts_pl/body/pl_trilobite_d.png b/parts_pl/body/pl_trilobite_d.png
new file mode 100644
index 0000000..01bb404
Binary files /dev/null and b/parts_pl/body/pl_trilobite_d.png differ
diff --git a/parts_pl/body/pl_urchin.png b/parts_pl/body/pl_urchin.png
new file mode 100644
index 0000000..f64a79d
Binary files /dev/null and b/parts_pl/body/pl_urchin.png differ
diff --git a/parts_pl/body/pl_urchin_b.png b/parts_pl/body/pl_urchin_b.png
new file mode 100644
index 0000000..0ec4a8c
Binary files /dev/null and b/parts_pl/body/pl_urchin_b.png differ
diff --git a/parts_pl/body/pl_urchin_c.png b/parts_pl/body/pl_urchin_c.png
new file mode 100644
index 0000000..19b2958
Binary files /dev/null and b/parts_pl/body/pl_urchin_c.png differ
diff --git a/parts_pl/body/pl_urchin_d.png b/parts_pl/body/pl_urchin_d.png
new file mode 100644
index 0000000..3a1b259
Binary files /dev/null and b/parts_pl/body/pl_urchin_d.png differ
diff --git a/parts_pl/body/pl_velvetmite.png b/parts_pl/body/pl_velvetmite.png
new file mode 100644
index 0000000..c889487
Binary files /dev/null and b/parts_pl/body/pl_velvetmite.png differ
diff --git a/parts_pl/body/pl_velvetmite_b.png b/parts_pl/body/pl_velvetmite_b.png
new file mode 100644
index 0000000..2734335
Binary files /dev/null and b/parts_pl/body/pl_velvetmite_b.png differ
diff --git a/parts_pl/body/pl_velvetmite_c.png b/parts_pl/body/pl_velvetmite_c.png
new file mode 100644
index 0000000..10f8d58
Binary files /dev/null and b/parts_pl/body/pl_velvetmite_c.png differ
diff --git a/parts_pl/body/pl_velvetmite_d.png b/parts_pl/body/pl_velvetmite_d.png
new file mode 100644
index 0000000..c645fd4
Binary files /dev/null and b/parts_pl/body/pl_velvetmite_d.png differ
diff --git a/parts_pl/body/pl_ventangler.png b/parts_pl/body/pl_ventangler.png
new file mode 100644
index 0000000..cdb86f9
Binary files /dev/null and b/parts_pl/body/pl_ventangler.png differ
diff --git a/parts_pl/body/pl_ventangler_b.png b/parts_pl/body/pl_ventangler_b.png
new file mode 100644
index 0000000..a595ed5
Binary files /dev/null and b/parts_pl/body/pl_ventangler_b.png differ
diff --git a/parts_pl/body/pl_ventangler_c.png b/parts_pl/body/pl_ventangler_c.png
new file mode 100644
index 0000000..4f5df8f
Binary files /dev/null and b/parts_pl/body/pl_ventangler_c.png differ
diff --git a/parts_pl/body/pl_ventangler_d.png b/parts_pl/body/pl_ventangler_d.png
new file mode 100644
index 0000000..b21b75d
Binary files /dev/null and b/parts_pl/body/pl_ventangler_d.png differ
diff --git a/parts_pl/body/pl_vine.png b/parts_pl/body/pl_vine.png
new file mode 100644
index 0000000..c6d90d9
Binary files /dev/null and b/parts_pl/body/pl_vine.png differ
diff --git a/parts_pl/body/pl_vine_b.png b/parts_pl/body/pl_vine_b.png
new file mode 100644
index 0000000..fe62ea4
Binary files /dev/null and b/parts_pl/body/pl_vine_b.png differ
diff --git a/parts_pl/body/pl_vine_c.png b/parts_pl/body/pl_vine_c.png
new file mode 100644
index 0000000..d41e744
Binary files /dev/null and b/parts_pl/body/pl_vine_c.png differ
diff --git a/parts_pl/body/pl_vine_d.png b/parts_pl/body/pl_vine_d.png
new file mode 100644
index 0000000..46fa44e
Binary files /dev/null and b/parts_pl/body/pl_vine_d.png differ
diff --git a/parts_pl/body/pl_volcano.png b/parts_pl/body/pl_volcano.png
new file mode 100644
index 0000000..af0511e
Binary files /dev/null and b/parts_pl/body/pl_volcano.png differ
diff --git a/parts_pl/body/pl_volcano_b.png b/parts_pl/body/pl_volcano_b.png
new file mode 100644
index 0000000..30b661f
Binary files /dev/null and b/parts_pl/body/pl_volcano_b.png differ
diff --git a/parts_pl/body/pl_volcano_c.png b/parts_pl/body/pl_volcano_c.png
new file mode 100644
index 0000000..3361b01
Binary files /dev/null and b/parts_pl/body/pl_volcano_c.png differ
diff --git a/parts_pl/body/pl_volcano_d.png b/parts_pl/body/pl_volcano_d.png
new file mode 100644
index 0000000..7a35110
Binary files /dev/null and b/parts_pl/body/pl_volcano_d.png differ
diff --git a/parts_pl/body/pl_walrus.png b/parts_pl/body/pl_walrus.png
new file mode 100644
index 0000000..1111635
Binary files /dev/null and b/parts_pl/body/pl_walrus.png differ
diff --git a/parts_pl/body/pl_walrus_b.png b/parts_pl/body/pl_walrus_b.png
new file mode 100644
index 0000000..2694c84
Binary files /dev/null and b/parts_pl/body/pl_walrus_b.png differ
diff --git a/parts_pl/body/pl_walrus_c.png b/parts_pl/body/pl_walrus_c.png
new file mode 100644
index 0000000..9a1e3c4
Binary files /dev/null and b/parts_pl/body/pl_walrus_c.png differ
diff --git a/parts_pl/body/pl_walrus_d.png b/parts_pl/body/pl_walrus_d.png
new file mode 100644
index 0000000..bcca957
Binary files /dev/null and b/parts_pl/body/pl_walrus_d.png differ
diff --git a/parts_pl/body/pl_weevil.png b/parts_pl/body/pl_weevil.png
new file mode 100644
index 0000000..de1b37f
Binary files /dev/null and b/parts_pl/body/pl_weevil.png differ
diff --git a/parts_pl/body/pl_weevil_b.png b/parts_pl/body/pl_weevil_b.png
new file mode 100644
index 0000000..04a67b3
Binary files /dev/null and b/parts_pl/body/pl_weevil_b.png differ
diff --git a/parts_pl/body/pl_weevil_c.png b/parts_pl/body/pl_weevil_c.png
new file mode 100644
index 0000000..b38e53d
Binary files /dev/null and b/parts_pl/body/pl_weevil_c.png differ
diff --git a/parts_pl/body/pl_weevil_d.png b/parts_pl/body/pl_weevil_d.png
new file mode 100644
index 0000000..dd0dd3b
Binary files /dev/null and b/parts_pl/body/pl_weevil_d.png differ
diff --git a/parts_pl/body/pl_wisp_b.png b/parts_pl/body/pl_wisp_b.png
new file mode 100644
index 0000000..439ce1f
Binary files /dev/null and b/parts_pl/body/pl_wisp_b.png differ
diff --git a/parts_pl/body/pl_wisp_c.png b/parts_pl/body/pl_wisp_c.png
new file mode 100644
index 0000000..46d21a5
Binary files /dev/null and b/parts_pl/body/pl_wisp_c.png differ
diff --git a/parts_pl/body/pl_wisp_d.png b/parts_pl/body/pl_wisp_d.png
new file mode 100644
index 0000000..ad32385
Binary files /dev/null and b/parts_pl/body/pl_wisp_d.png differ
diff --git a/parts_pl/body/pl_wolverine.png b/parts_pl/body/pl_wolverine.png
new file mode 100644
index 0000000..fd76b35
Binary files /dev/null and b/parts_pl/body/pl_wolverine.png differ
diff --git a/parts_pl/body/pl_wolverine_b.png b/parts_pl/body/pl_wolverine_b.png
new file mode 100644
index 0000000..2369c27
Binary files /dev/null and b/parts_pl/body/pl_wolverine_b.png differ
diff --git a/parts_pl/body/pl_wolverine_c.png b/parts_pl/body/pl_wolverine_c.png
new file mode 100644
index 0000000..c544a66
Binary files /dev/null and b/parts_pl/body/pl_wolverine_c.png differ
diff --git a/parts_pl/body/pl_wolverine_d.png b/parts_pl/body/pl_wolverine_d.png
new file mode 100644
index 0000000..250e579
Binary files /dev/null and b/parts_pl/body/pl_wolverine_d.png differ
diff --git a/parts_pl/body/pl_wombat.png b/parts_pl/body/pl_wombat.png
new file mode 100644
index 0000000..122a350
Binary files /dev/null and b/parts_pl/body/pl_wombat.png differ
diff --git a/parts_pl/body/pl_wombat_b.png b/parts_pl/body/pl_wombat_b.png
new file mode 100644
index 0000000..a58384d
Binary files /dev/null and b/parts_pl/body/pl_wombat_b.png differ
diff --git a/parts_pl/body/pl_wombat_c.png b/parts_pl/body/pl_wombat_c.png
new file mode 100644
index 0000000..a5a0281
Binary files /dev/null and b/parts_pl/body/pl_wombat_c.png differ
diff --git a/parts_pl/body/pl_wombat_d.png b/parts_pl/body/pl_wombat_d.png
new file mode 100644
index 0000000..3caaef4
Binary files /dev/null and b/parts_pl/body/pl_wombat_d.png differ
diff --git a/parts_pl/body/pl_worm_b.png b/parts_pl/body/pl_worm_b.png
new file mode 100644
index 0000000..48c42ee
Binary files /dev/null and b/parts_pl/body/pl_worm_b.png differ
diff --git a/parts_pl/body/pl_worm_c.png b/parts_pl/body/pl_worm_c.png
new file mode 100644
index 0000000..9c9f97f
Binary files /dev/null and b/parts_pl/body/pl_worm_c.png differ
diff --git a/parts_pl/body/pl_worm_d.png b/parts_pl/body/pl_worm_d.png
new file mode 100644
index 0000000..01f3ac5
Binary files /dev/null and b/parts_pl/body/pl_worm_d.png differ
diff --git a/parts_pl/body/pl_wyrm_b.png b/parts_pl/body/pl_wyrm_b.png
new file mode 100644
index 0000000..fe39da1
Binary files /dev/null and b/parts_pl/body/pl_wyrm_b.png differ
diff --git a/parts_pl/body/pl_wyrm_c.png b/parts_pl/body/pl_wyrm_c.png
new file mode 100644
index 0000000..95b742e
Binary files /dev/null and b/parts_pl/body/pl_wyrm_c.png differ
diff --git a/parts_pl/body/pl_wyrm_d.png b/parts_pl/body/pl_wyrm_d.png
new file mode 100644
index 0000000..a5bf906
Binary files /dev/null and b/parts_pl/body/pl_wyrm_d.png differ
diff --git a/parts_pl/body/pl_x_bagworm.png b/parts_pl/body/pl_x_bagworm.png
new file mode 100644
index 0000000..f39aeaf
Binary files /dev/null and b/parts_pl/body/pl_x_bagworm.png differ
diff --git a/parts_pl/body/pl_x_bagworm_b.png b/parts_pl/body/pl_x_bagworm_b.png
new file mode 100644
index 0000000..bc1a5a5
Binary files /dev/null and b/parts_pl/body/pl_x_bagworm_b.png differ
diff --git a/parts_pl/body/pl_x_bagworm_c.png b/parts_pl/body/pl_x_bagworm_c.png
new file mode 100644
index 0000000..d2912c0
Binary files /dev/null and b/parts_pl/body/pl_x_bagworm_c.png differ
diff --git a/parts_pl/body/pl_x_bagworm_d.png b/parts_pl/body/pl_x_bagworm_d.png
new file mode 100644
index 0000000..5124034
Binary files /dev/null and b/parts_pl/body/pl_x_bagworm_d.png differ
diff --git a/parts_pl/body/pl_x_basilisk.png b/parts_pl/body/pl_x_basilisk.png
new file mode 100644
index 0000000..688faf6
Binary files /dev/null and b/parts_pl/body/pl_x_basilisk.png differ
diff --git a/parts_pl/body/pl_x_basilisk_b.png b/parts_pl/body/pl_x_basilisk_b.png
new file mode 100644
index 0000000..4bd2db8
Binary files /dev/null and b/parts_pl/body/pl_x_basilisk_b.png differ
diff --git a/parts_pl/body/pl_x_basilisk_c.png b/parts_pl/body/pl_x_basilisk_c.png
new file mode 100644
index 0000000..a13c8f9
Binary files /dev/null and b/parts_pl/body/pl_x_basilisk_c.png differ
diff --git a/parts_pl/body/pl_x_basilisk_d.png b/parts_pl/body/pl_x_basilisk_d.png
new file mode 100644
index 0000000..a76f869
Binary files /dev/null and b/parts_pl/body/pl_x_basilisk_d.png differ
diff --git a/parts_pl/body/pl_x_bison.png b/parts_pl/body/pl_x_bison.png
new file mode 100644
index 0000000..2aa3a8c
Binary files /dev/null and b/parts_pl/body/pl_x_bison.png differ
diff --git a/parts_pl/body/pl_x_bison_b.png b/parts_pl/body/pl_x_bison_b.png
new file mode 100644
index 0000000..5a0d611
Binary files /dev/null and b/parts_pl/body/pl_x_bison_b.png differ
diff --git a/parts_pl/body/pl_x_bison_c.png b/parts_pl/body/pl_x_bison_c.png
new file mode 100644
index 0000000..dcf0ef8
Binary files /dev/null and b/parts_pl/body/pl_x_bison_c.png differ
diff --git a/parts_pl/body/pl_x_bison_d.png b/parts_pl/body/pl_x_bison_d.png
new file mode 100644
index 0000000..3b5ab58
Binary files /dev/null and b/parts_pl/body/pl_x_bison_d.png differ
diff --git a/parts_pl/body/pl_x_cactus.png b/parts_pl/body/pl_x_cactus.png
new file mode 100644
index 0000000..c8cda47
Binary files /dev/null and b/parts_pl/body/pl_x_cactus.png differ
diff --git a/parts_pl/body/pl_x_cactus_b.png b/parts_pl/body/pl_x_cactus_b.png
new file mode 100644
index 0000000..e4270c6
Binary files /dev/null and b/parts_pl/body/pl_x_cactus_b.png differ
diff --git a/parts_pl/body/pl_x_cactus_c.png b/parts_pl/body/pl_x_cactus_c.png
new file mode 100644
index 0000000..717a6ae
Binary files /dev/null and b/parts_pl/body/pl_x_cactus_c.png differ
diff --git a/parts_pl/body/pl_x_cactus_d.png b/parts_pl/body/pl_x_cactus_d.png
new file mode 100644
index 0000000..b59984e
Binary files /dev/null and b/parts_pl/body/pl_x_cactus_d.png differ
diff --git a/parts_pl/body/pl_x_chili.png b/parts_pl/body/pl_x_chili.png
new file mode 100644
index 0000000..69af018
Binary files /dev/null and b/parts_pl/body/pl_x_chili.png differ
diff --git a/parts_pl/body/pl_x_chili_b.png b/parts_pl/body/pl_x_chili_b.png
new file mode 100644
index 0000000..d63f639
Binary files /dev/null and b/parts_pl/body/pl_x_chili_b.png differ
diff --git a/parts_pl/body/pl_x_chili_c.png b/parts_pl/body/pl_x_chili_c.png
new file mode 100644
index 0000000..a76c508
Binary files /dev/null and b/parts_pl/body/pl_x_chili_c.png differ
diff --git a/parts_pl/body/pl_x_chili_d.png b/parts_pl/body/pl_x_chili_d.png
new file mode 100644
index 0000000..1ea497f
Binary files /dev/null and b/parts_pl/body/pl_x_chili_d.png differ
diff --git a/parts_pl/body/pl_x_clam.png b/parts_pl/body/pl_x_clam.png
new file mode 100644
index 0000000..8b2f831
Binary files /dev/null and b/parts_pl/body/pl_x_clam.png differ
diff --git a/parts_pl/body/pl_x_clam_b.png b/parts_pl/body/pl_x_clam_b.png
new file mode 100644
index 0000000..d3961df
Binary files /dev/null and b/parts_pl/body/pl_x_clam_b.png differ
diff --git a/parts_pl/body/pl_x_clam_c.png b/parts_pl/body/pl_x_clam_c.png
new file mode 100644
index 0000000..5652c10
Binary files /dev/null and b/parts_pl/body/pl_x_clam_c.png differ
diff --git a/parts_pl/body/pl_x_clam_d.png b/parts_pl/body/pl_x_clam_d.png
new file mode 100644
index 0000000..ff9c2d8
Binary files /dev/null and b/parts_pl/body/pl_x_clam_d.png differ
diff --git a/parts_pl/body/pl_x_dragturtle.png b/parts_pl/body/pl_x_dragturtle.png
new file mode 100644
index 0000000..fd8b5f4
Binary files /dev/null and b/parts_pl/body/pl_x_dragturtle.png differ
diff --git a/parts_pl/body/pl_x_dragturtle_c.png b/parts_pl/body/pl_x_dragturtle_c.png
new file mode 100644
index 0000000..68b4af1
Binary files /dev/null and b/parts_pl/body/pl_x_dragturtle_c.png differ
diff --git a/parts_pl/body/pl_x_dragturtle_d.png b/parts_pl/body/pl_x_dragturtle_d.png
new file mode 100644
index 0000000..4e61f3f
Binary files /dev/null and b/parts_pl/body/pl_x_dragturtle_d.png differ
diff --git a/parts_pl/body/pl_x_hedgehog.png b/parts_pl/body/pl_x_hedgehog.png
new file mode 100644
index 0000000..8c89351
Binary files /dev/null and b/parts_pl/body/pl_x_hedgehog.png differ
diff --git a/parts_pl/body/pl_x_hedgehog_b.png b/parts_pl/body/pl_x_hedgehog_b.png
new file mode 100644
index 0000000..37305ce
Binary files /dev/null and b/parts_pl/body/pl_x_hedgehog_b.png differ
diff --git a/parts_pl/body/pl_x_hedgehog_c.png b/parts_pl/body/pl_x_hedgehog_c.png
new file mode 100644
index 0000000..be70750
Binary files /dev/null and b/parts_pl/body/pl_x_hedgehog_c.png differ
diff --git a/parts_pl/body/pl_x_hedgehog_d.png b/parts_pl/body/pl_x_hedgehog_d.png
new file mode 100644
index 0000000..eaeab7c
Binary files /dev/null and b/parts_pl/body/pl_x_hedgehog_d.png differ
diff --git a/parts_pl/body/pl_x_ibex.png b/parts_pl/body/pl_x_ibex.png
new file mode 100644
index 0000000..4787cb5
Binary files /dev/null and b/parts_pl/body/pl_x_ibex.png differ
diff --git a/parts_pl/body/pl_x_ibex_b.png b/parts_pl/body/pl_x_ibex_b.png
new file mode 100644
index 0000000..2e8a8b8
Binary files /dev/null and b/parts_pl/body/pl_x_ibex_b.png differ
diff --git a/parts_pl/body/pl_x_ibex_c.png b/parts_pl/body/pl_x_ibex_c.png
new file mode 100644
index 0000000..92e8789
Binary files /dev/null and b/parts_pl/body/pl_x_ibex_c.png differ
diff --git a/parts_pl/body/pl_x_ibex_d.png b/parts_pl/body/pl_x_ibex_d.png
new file mode 100644
index 0000000..d4d6b20
Binary files /dev/null and b/parts_pl/body/pl_x_ibex_d.png differ
diff --git a/parts_pl/body/pl_x_lionfish.png b/parts_pl/body/pl_x_lionfish.png
new file mode 100644
index 0000000..0ec93e7
Binary files /dev/null and b/parts_pl/body/pl_x_lionfish.png differ
diff --git a/parts_pl/body/pl_x_lionfish_b.png b/parts_pl/body/pl_x_lionfish_b.png
new file mode 100644
index 0000000..ae69b95
Binary files /dev/null and b/parts_pl/body/pl_x_lionfish_b.png differ
diff --git a/parts_pl/body/pl_x_lionfish_c.png b/parts_pl/body/pl_x_lionfish_c.png
new file mode 100644
index 0000000..0f1302b
Binary files /dev/null and b/parts_pl/body/pl_x_lionfish_c.png differ
diff --git a/parts_pl/body/pl_x_lionfish_d.png b/parts_pl/body/pl_x_lionfish_d.png
new file mode 100644
index 0000000..a80ecab
Binary files /dev/null and b/parts_pl/body/pl_x_lionfish_d.png differ
diff --git a/parts_pl/body/pl_x_loris.png b/parts_pl/body/pl_x_loris.png
new file mode 100644
index 0000000..126ca08
Binary files /dev/null and b/parts_pl/body/pl_x_loris.png differ
diff --git a/parts_pl/body/pl_x_loris_b.png b/parts_pl/body/pl_x_loris_b.png
new file mode 100644
index 0000000..20f796d
Binary files /dev/null and b/parts_pl/body/pl_x_loris_b.png differ
diff --git a/parts_pl/body/pl_x_loris_c.png b/parts_pl/body/pl_x_loris_c.png
new file mode 100644
index 0000000..eea502e
Binary files /dev/null and b/parts_pl/body/pl_x_loris_c.png differ
diff --git a/parts_pl/body/pl_x_loris_d.png b/parts_pl/body/pl_x_loris_d.png
new file mode 100644
index 0000000..904e9c6
Binary files /dev/null and b/parts_pl/body/pl_x_loris_d.png differ
diff --git a/parts_pl/body/pl_x_moai.png b/parts_pl/body/pl_x_moai.png
new file mode 100644
index 0000000..3019732
Binary files /dev/null and b/parts_pl/body/pl_x_moai.png differ
diff --git a/parts_pl/body/pl_x_moai_b.png b/parts_pl/body/pl_x_moai_b.png
new file mode 100644
index 0000000..44cb042
Binary files /dev/null and b/parts_pl/body/pl_x_moai_b.png differ
diff --git a/parts_pl/body/pl_x_moai_c.png b/parts_pl/body/pl_x_moai_c.png
new file mode 100644
index 0000000..c047d58
Binary files /dev/null and b/parts_pl/body/pl_x_moai_c.png differ
diff --git a/parts_pl/body/pl_x_moai_d.png b/parts_pl/body/pl_x_moai_d.png
new file mode 100644
index 0000000..6897ef1
Binary files /dev/null and b/parts_pl/body/pl_x_moai_d.png differ
diff --git a/parts_pl/body/pl_x_mummy.png b/parts_pl/body/pl_x_mummy.png
new file mode 100644
index 0000000..37c52b3
Binary files /dev/null and b/parts_pl/body/pl_x_mummy.png differ
diff --git a/parts_pl/body/pl_x_mummy_b.png b/parts_pl/body/pl_x_mummy_b.png
new file mode 100644
index 0000000..069acac
Binary files /dev/null and b/parts_pl/body/pl_x_mummy_b.png differ
diff --git a/parts_pl/body/pl_x_mummy_c.png b/parts_pl/body/pl_x_mummy_c.png
new file mode 100644
index 0000000..034513a
Binary files /dev/null and b/parts_pl/body/pl_x_mummy_c.png differ
diff --git a/parts_pl/body/pl_x_mummy_d.png b/parts_pl/body/pl_x_mummy_d.png
new file mode 100644
index 0000000..27e7fa9
Binary files /dev/null and b/parts_pl/body/pl_x_mummy_d.png differ
diff --git a/parts_pl/body/pl_x_potato.png b/parts_pl/body/pl_x_potato.png
new file mode 100644
index 0000000..40433a6
Binary files /dev/null and b/parts_pl/body/pl_x_potato.png differ
diff --git a/parts_pl/body/pl_x_potato_b.png b/parts_pl/body/pl_x_potato_b.png
new file mode 100644
index 0000000..200bff8
Binary files /dev/null and b/parts_pl/body/pl_x_potato_b.png differ
diff --git a/parts_pl/body/pl_x_potato_c.png b/parts_pl/body/pl_x_potato_c.png
new file mode 100644
index 0000000..4557295
Binary files /dev/null and b/parts_pl/body/pl_x_potato_c.png differ
diff --git a/parts_pl/body/pl_x_potato_d.png b/parts_pl/body/pl_x_potato_d.png
new file mode 100644
index 0000000..848de1d
Binary files /dev/null and b/parts_pl/body/pl_x_potato_d.png differ
diff --git a/parts_pl/body/pl_x_puffin.png b/parts_pl/body/pl_x_puffin.png
new file mode 100644
index 0000000..b93c14e
Binary files /dev/null and b/parts_pl/body/pl_x_puffin.png differ
diff --git a/parts_pl/body/pl_x_puffin_b.png b/parts_pl/body/pl_x_puffin_b.png
new file mode 100644
index 0000000..44dc9e3
Binary files /dev/null and b/parts_pl/body/pl_x_puffin_b.png differ
diff --git a/parts_pl/body/pl_x_toucan.png b/parts_pl/body/pl_x_toucan.png
new file mode 100644
index 0000000..af7b68b
Binary files /dev/null and b/parts_pl/body/pl_x_toucan.png differ
diff --git a/parts_pl/body/pl_x_toucan_b.png b/parts_pl/body/pl_x_toucan_b.png
new file mode 100644
index 0000000..c67d983
Binary files /dev/null and b/parts_pl/body/pl_x_toucan_b.png differ
diff --git a/parts_pl/body/pl_x_toucan_c.png b/parts_pl/body/pl_x_toucan_c.png
new file mode 100644
index 0000000..0a1e26a
Binary files /dev/null and b/parts_pl/body/pl_x_toucan_c.png differ
diff --git a/parts_pl/body/pl_x_toucan_d.png b/parts_pl/body/pl_x_toucan_d.png
new file mode 100644
index 0000000..acf0af1
Binary files /dev/null and b/parts_pl/body/pl_x_toucan_d.png differ
diff --git a/parts_pl/body/pl_y_ammonite.png b/parts_pl/body/pl_y_ammonite.png
new file mode 100644
index 0000000..44323cf
Binary files /dev/null and b/parts_pl/body/pl_y_ammonite.png differ
diff --git a/parts_pl/body/pl_y_ammonite_b.png b/parts_pl/body/pl_y_ammonite_b.png
new file mode 100644
index 0000000..b4bf9a9
Binary files /dev/null and b/parts_pl/body/pl_y_ammonite_b.png differ
diff --git a/parts_pl/body/pl_y_ammonite_d.png b/parts_pl/body/pl_y_ammonite_d.png
new file mode 100644
index 0000000..ddd3652
Binary files /dev/null and b/parts_pl/body/pl_y_ammonite_d.png differ
diff --git a/parts_pl/body/pl_y_anemone.png b/parts_pl/body/pl_y_anemone.png
new file mode 100644
index 0000000..53e3a05
Binary files /dev/null and b/parts_pl/body/pl_y_anemone.png differ
diff --git a/parts_pl/body/pl_y_anemone_b.png b/parts_pl/body/pl_y_anemone_b.png
new file mode 100644
index 0000000..352b3bf
Binary files /dev/null and b/parts_pl/body/pl_y_anemone_b.png differ
diff --git a/parts_pl/body/pl_y_anemone_c.png b/parts_pl/body/pl_y_anemone_c.png
new file mode 100644
index 0000000..ccacf09
Binary files /dev/null and b/parts_pl/body/pl_y_anemone_c.png differ
diff --git a/parts_pl/body/pl_y_anemone_d.png b/parts_pl/body/pl_y_anemone_d.png
new file mode 100644
index 0000000..8b22d13
Binary files /dev/null and b/parts_pl/body/pl_y_anemone_d.png differ
diff --git a/parts_pl/body/pl_y_broccoli.png b/parts_pl/body/pl_y_broccoli.png
new file mode 100644
index 0000000..7d470fe
Binary files /dev/null and b/parts_pl/body/pl_y_broccoli.png differ
diff --git a/parts_pl/body/pl_y_broccoli_b.png b/parts_pl/body/pl_y_broccoli_b.png
new file mode 100644
index 0000000..a0f44ec
Binary files /dev/null and b/parts_pl/body/pl_y_broccoli_b.png differ
diff --git a/parts_pl/body/pl_y_broccoli_c.png b/parts_pl/body/pl_y_broccoli_c.png
new file mode 100644
index 0000000..5289e23
Binary files /dev/null and b/parts_pl/body/pl_y_broccoli_c.png differ
diff --git a/parts_pl/body/pl_y_broccoli_d.png b/parts_pl/body/pl_y_broccoli_d.png
new file mode 100644
index 0000000..95e40ab
Binary files /dev/null and b/parts_pl/body/pl_y_broccoli_d.png differ
diff --git a/parts_pl/body/pl_y_candle.png b/parts_pl/body/pl_y_candle.png
new file mode 100644
index 0000000..b7b861c
Binary files /dev/null and b/parts_pl/body/pl_y_candle.png differ
diff --git a/parts_pl/body/pl_y_candle_b.png b/parts_pl/body/pl_y_candle_b.png
new file mode 100644
index 0000000..ca0064e
Binary files /dev/null and b/parts_pl/body/pl_y_candle_b.png differ
diff --git a/parts_pl/body/pl_y_candle_c.png b/parts_pl/body/pl_y_candle_c.png
new file mode 100644
index 0000000..c10b095
Binary files /dev/null and b/parts_pl/body/pl_y_candle_c.png differ
diff --git a/parts_pl/body/pl_y_candle_d.png b/parts_pl/body/pl_y_candle_d.png
new file mode 100644
index 0000000..f4a728e
Binary files /dev/null and b/parts_pl/body/pl_y_candle_d.png differ
diff --git a/parts_pl/body/pl_y_dragonfruit.png b/parts_pl/body/pl_y_dragonfruit.png
new file mode 100644
index 0000000..3f9ea44
Binary files /dev/null and b/parts_pl/body/pl_y_dragonfruit.png differ
diff --git a/parts_pl/body/pl_y_dragonfruit_b.png b/parts_pl/body/pl_y_dragonfruit_b.png
new file mode 100644
index 0000000..8078e75
Binary files /dev/null and b/parts_pl/body/pl_y_dragonfruit_b.png differ
diff --git a/parts_pl/body/pl_y_dragonfruit_c.png b/parts_pl/body/pl_y_dragonfruit_c.png
new file mode 100644
index 0000000..46cd9d2
Binary files /dev/null and b/parts_pl/body/pl_y_dragonfruit_c.png differ
diff --git a/parts_pl/body/pl_y_dragonfruit_d.png b/parts_pl/body/pl_y_dragonfruit_d.png
new file mode 100644
index 0000000..defc2de
Binary files /dev/null and b/parts_pl/body/pl_y_dragonfruit_d.png differ
diff --git a/parts_pl/body/pl_y_dungbeetle.png b/parts_pl/body/pl_y_dungbeetle.png
new file mode 100644
index 0000000..629f88f
Binary files /dev/null and b/parts_pl/body/pl_y_dungbeetle.png differ
diff --git a/parts_pl/body/pl_y_dungbeetle_b.png b/parts_pl/body/pl_y_dungbeetle_b.png
new file mode 100644
index 0000000..a4127ab
Binary files /dev/null and b/parts_pl/body/pl_y_dungbeetle_b.png differ
diff --git a/parts_pl/body/pl_y_dungbeetle_c.png b/parts_pl/body/pl_y_dungbeetle_c.png
new file mode 100644
index 0000000..d081a3e
Binary files /dev/null and b/parts_pl/body/pl_y_dungbeetle_c.png differ
diff --git a/parts_pl/body/pl_y_dungbeetle_d.png b/parts_pl/body/pl_y_dungbeetle_d.png
new file mode 100644
index 0000000..eef72d5
Binary files /dev/null and b/parts_pl/body/pl_y_dungbeetle_d.png differ
diff --git a/parts_pl/body/pl_y_frilldrake.png b/parts_pl/body/pl_y_frilldrake.png
new file mode 100644
index 0000000..9e15e08
Binary files /dev/null and b/parts_pl/body/pl_y_frilldrake.png differ
diff --git a/parts_pl/body/pl_y_frilldrake_b.png b/parts_pl/body/pl_y_frilldrake_b.png
new file mode 100644
index 0000000..774c7b0
Binary files /dev/null and b/parts_pl/body/pl_y_frilldrake_b.png differ
diff --git a/parts_pl/body/pl_y_frilldrake_c.png b/parts_pl/body/pl_y_frilldrake_c.png
new file mode 100644
index 0000000..e863e55
Binary files /dev/null and b/parts_pl/body/pl_y_frilldrake_c.png differ
diff --git a/parts_pl/body/pl_y_frilldrake_d.png b/parts_pl/body/pl_y_frilldrake_d.png
new file mode 100644
index 0000000..5cc1324
Binary files /dev/null and b/parts_pl/body/pl_y_frilldrake_d.png differ
diff --git a/parts_pl/body/pl_y_gull.png b/parts_pl/body/pl_y_gull.png
new file mode 100644
index 0000000..2d95454
Binary files /dev/null and b/parts_pl/body/pl_y_gull.png differ
diff --git a/parts_pl/body/pl_y_gull_b.png b/parts_pl/body/pl_y_gull_b.png
new file mode 100644
index 0000000..affbf07
Binary files /dev/null and b/parts_pl/body/pl_y_gull_b.png differ
diff --git a/parts_pl/body/pl_y_gull_c.png b/parts_pl/body/pl_y_gull_c.png
new file mode 100644
index 0000000..cf937cb
Binary files /dev/null and b/parts_pl/body/pl_y_gull_c.png differ
diff --git a/parts_pl/body/pl_y_icecube.png b/parts_pl/body/pl_y_icecube.png
new file mode 100644
index 0000000..f47edeb
Binary files /dev/null and b/parts_pl/body/pl_y_icecube.png differ
diff --git a/parts_pl/body/pl_y_icecube_b.png b/parts_pl/body/pl_y_icecube_b.png
new file mode 100644
index 0000000..f690224
Binary files /dev/null and b/parts_pl/body/pl_y_icecube_b.png differ
diff --git a/parts_pl/body/pl_y_icecube_c.png b/parts_pl/body/pl_y_icecube_c.png
new file mode 100644
index 0000000..4c11bda
Binary files /dev/null and b/parts_pl/body/pl_y_icecube_c.png differ
diff --git a/parts_pl/body/pl_y_icecube_d.png b/parts_pl/body/pl_y_icecube_d.png
new file mode 100644
index 0000000..3ea2bbb
Binary files /dev/null and b/parts_pl/body/pl_y_icecube_d.png differ
diff --git a/parts_pl/body/pl_y_ladybug.png b/parts_pl/body/pl_y_ladybug.png
new file mode 100644
index 0000000..0dfd567
Binary files /dev/null and b/parts_pl/body/pl_y_ladybug.png differ
diff --git a/parts_pl/body/pl_y_ladybug_b.png b/parts_pl/body/pl_y_ladybug_b.png
new file mode 100644
index 0000000..feeeac4
Binary files /dev/null and b/parts_pl/body/pl_y_ladybug_b.png differ
diff --git a/parts_pl/body/pl_y_ladybug_c.png b/parts_pl/body/pl_y_ladybug_c.png
new file mode 100644
index 0000000..5033942
Binary files /dev/null and b/parts_pl/body/pl_y_ladybug_c.png differ
diff --git a/parts_pl/body/pl_y_ladybug_d.png b/parts_pl/body/pl_y_ladybug_d.png
new file mode 100644
index 0000000..6e9175e
Binary files /dev/null and b/parts_pl/body/pl_y_ladybug_d.png differ
diff --git a/parts_pl/body/pl_y_lotus.png b/parts_pl/body/pl_y_lotus.png
new file mode 100644
index 0000000..48b1b2e
Binary files /dev/null and b/parts_pl/body/pl_y_lotus.png differ
diff --git a/parts_pl/body/pl_y_lotus_b.png b/parts_pl/body/pl_y_lotus_b.png
new file mode 100644
index 0000000..636705f
Binary files /dev/null and b/parts_pl/body/pl_y_lotus_b.png differ
diff --git a/parts_pl/body/pl_y_lotus_c.png b/parts_pl/body/pl_y_lotus_c.png
new file mode 100644
index 0000000..58a0bb1
Binary files /dev/null and b/parts_pl/body/pl_y_lotus_c.png differ
diff --git a/parts_pl/body/pl_y_match.png b/parts_pl/body/pl_y_match.png
new file mode 100644
index 0000000..35ce1ae
Binary files /dev/null and b/parts_pl/body/pl_y_match.png differ
diff --git a/parts_pl/body/pl_y_match_b.png b/parts_pl/body/pl_y_match_b.png
new file mode 100644
index 0000000..305fa1f
Binary files /dev/null and b/parts_pl/body/pl_y_match_b.png differ
diff --git a/parts_pl/body/pl_y_match_c.png b/parts_pl/body/pl_y_match_c.png
new file mode 100644
index 0000000..b580e32
Binary files /dev/null and b/parts_pl/body/pl_y_match_c.png differ
diff --git a/parts_pl/body/pl_y_match_d.png b/parts_pl/body/pl_y_match_d.png
new file mode 100644
index 0000000..2b54f73
Binary files /dev/null and b/parts_pl/body/pl_y_match_d.png differ
diff --git a/parts_pl/body/pl_y_mongoose.png b/parts_pl/body/pl_y_mongoose.png
new file mode 100644
index 0000000..78fea19
Binary files /dev/null and b/parts_pl/body/pl_y_mongoose.png differ
diff --git a/parts_pl/body/pl_y_mongoose_b.png b/parts_pl/body/pl_y_mongoose_b.png
new file mode 100644
index 0000000..d1f09c5
Binary files /dev/null and b/parts_pl/body/pl_y_mongoose_b.png differ
diff --git a/parts_pl/body/pl_y_mongoose_c.png b/parts_pl/body/pl_y_mongoose_c.png
new file mode 100644
index 0000000..b37a417
Binary files /dev/null and b/parts_pl/body/pl_y_mongoose_c.png differ
diff --git a/parts_pl/body/pl_y_mongoose_d.png b/parts_pl/body/pl_y_mongoose_d.png
new file mode 100644
index 0000000..db5c420
Binary files /dev/null and b/parts_pl/body/pl_y_mongoose_d.png differ
diff --git a/parts_pl/body/pl_y_opossum.png b/parts_pl/body/pl_y_opossum.png
new file mode 100644
index 0000000..32cdd58
Binary files /dev/null and b/parts_pl/body/pl_y_opossum.png differ
diff --git a/parts_pl/body/pl_y_opossum_b.png b/parts_pl/body/pl_y_opossum_b.png
new file mode 100644
index 0000000..2f3e34e
Binary files /dev/null and b/parts_pl/body/pl_y_opossum_b.png differ
diff --git a/parts_pl/body/pl_y_opossum_c.png b/parts_pl/body/pl_y_opossum_c.png
new file mode 100644
index 0000000..7bec303
Binary files /dev/null and b/parts_pl/body/pl_y_opossum_c.png differ
diff --git a/parts_pl/body/pl_y_opossum_d.png b/parts_pl/body/pl_y_opossum_d.png
new file mode 100644
index 0000000..d4b8ae0
Binary files /dev/null and b/parts_pl/body/pl_y_opossum_d.png differ
diff --git a/parts_pl/body/pl_y_toadstool.png b/parts_pl/body/pl_y_toadstool.png
new file mode 100644
index 0000000..2a34d6e
Binary files /dev/null and b/parts_pl/body/pl_y_toadstool.png differ
diff --git a/parts_pl/body/pl_y_toadstool_b.png b/parts_pl/body/pl_y_toadstool_b.png
new file mode 100644
index 0000000..fbe64f8
Binary files /dev/null and b/parts_pl/body/pl_y_toadstool_b.png differ
diff --git a/parts_pl/body/pl_y_toadstool_c.png b/parts_pl/body/pl_y_toadstool_c.png
new file mode 100644
index 0000000..d3fc671
Binary files /dev/null and b/parts_pl/body/pl_y_toadstool_c.png differ
diff --git a/parts_pl/body/pl_y_toadstool_d.png b/parts_pl/body/pl_y_toadstool_d.png
new file mode 100644
index 0000000..b22fc0e
Binary files /dev/null and b/parts_pl/body/pl_y_toadstool_d.png differ
diff --git a/parts_pl/body/pl_y_toaster.png b/parts_pl/body/pl_y_toaster.png
new file mode 100644
index 0000000..f49bcb2
Binary files /dev/null and b/parts_pl/body/pl_y_toaster.png differ
diff --git a/parts_pl/body/pl_y_toaster_b.png b/parts_pl/body/pl_y_toaster_b.png
new file mode 100644
index 0000000..0b6f18a
Binary files /dev/null and b/parts_pl/body/pl_y_toaster_b.png differ
diff --git a/parts_pl/body/pl_y_toaster_c.png b/parts_pl/body/pl_y_toaster_c.png
new file mode 100644
index 0000000..41349d8
Binary files /dev/null and b/parts_pl/body/pl_y_toaster_c.png differ
diff --git a/parts_pl/body/pl_y_toaster_d.png b/parts_pl/body/pl_y_toaster_d.png
new file mode 100644
index 0000000..760bd6c
Binary files /dev/null and b/parts_pl/body/pl_y_toaster_d.png differ
diff --git a/parts_pl/body/pl_yeti.png b/parts_pl/body/pl_yeti.png
new file mode 100644
index 0000000..5b72105
Binary files /dev/null and b/parts_pl/body/pl_yeti.png differ
diff --git a/parts_pl/body/pl_yeti_b.png b/parts_pl/body/pl_yeti_b.png
new file mode 100644
index 0000000..ffefc12
Binary files /dev/null and b/parts_pl/body/pl_yeti_b.png differ
diff --git a/parts_pl/body/pl_yeti_c.png b/parts_pl/body/pl_yeti_c.png
new file mode 100644
index 0000000..9a54f71
Binary files /dev/null and b/parts_pl/body/pl_yeti_c.png differ
diff --git a/parts_pl/body/pl_yeti_d.png b/parts_pl/body/pl_yeti_d.png
new file mode 100644
index 0000000..cf30a8d
Binary files /dev/null and b/parts_pl/body/pl_yeti_d.png differ
diff --git a/parts_pl/body/pl_zenfrog.png b/parts_pl/body/pl_zenfrog.png
new file mode 100644
index 0000000..72697a8
Binary files /dev/null and b/parts_pl/body/pl_zenfrog.png differ
diff --git a/parts_pl/body/pl_zenfrog_b.png b/parts_pl/body/pl_zenfrog_b.png
new file mode 100644
index 0000000..48be466
Binary files /dev/null and b/parts_pl/body/pl_zenfrog_b.png differ
diff --git a/parts_pl/body/pl_zenfrog_c.png b/parts_pl/body/pl_zenfrog_c.png
new file mode 100644
index 0000000..e133f6e
Binary files /dev/null and b/parts_pl/body/pl_zenfrog_c.png differ
diff --git a/parts_pl/body/pl_zenfrog_d.png b/parts_pl/body/pl_zenfrog_d.png
new file mode 100644
index 0000000..943fa10
Binary files /dev/null and b/parts_pl/body/pl_zenfrog_d.png differ
diff --git a/parts_pl/head_top/pl_acorn_cap.png b/parts_pl/head_top/pl_acorn_cap.png
new file mode 100644
index 0000000..bb29e92
Binary files /dev/null and b/parts_pl/head_top/pl_acorn_cap.png differ
diff --git a/parts_pl/head_top/pl_antenna_heart.png b/parts_pl/head_top/pl_antenna_heart.png
new file mode 100644
index 0000000..b79ca89
Binary files /dev/null and b/parts_pl/head_top/pl_antenna_heart.png differ
diff --git a/parts_pl/head_top/pl_antennae_pompom.png b/parts_pl/head_top/pl_antennae_pompom.png
new file mode 100644
index 0000000..8faf2dc
Binary files /dev/null and b/parts_pl/head_top/pl_antennae_pompom.png differ
diff --git a/parts_pl/head_top/pl_bandana.png b/parts_pl/head_top/pl_bandana.png
new file mode 100644
index 0000000..1a9b3a1
Binary files /dev/null and b/parts_pl/head_top/pl_bandana.png differ
diff --git a/parts_pl/head_top/pl_beanie.png b/parts_pl/head_top/pl_beanie.png
new file mode 100644
index 0000000..fbb1ca7
Binary files /dev/null and b/parts_pl/head_top/pl_beanie.png differ
diff --git a/parts_pl/head_top/pl_beret.png b/parts_pl/head_top/pl_beret.png
new file mode 100644
index 0000000..002ccd3
Binary files /dev/null and b/parts_pl/head_top/pl_beret.png differ
diff --git a/parts_pl/head_top/pl_blowhole_spout.png b/parts_pl/head_top/pl_blowhole_spout.png
new file mode 100644
index 0000000..508d02b
Binary files /dev/null and b/parts_pl/head_top/pl_blowhole_spout.png differ
diff --git a/parts_pl/head_top/pl_bonsai.png b/parts_pl/head_top/pl_bonsai.png
new file mode 100644
index 0000000..2111191
Binary files /dev/null and b/parts_pl/head_top/pl_bonsai.png differ
diff --git a/parts_pl/head_top/pl_bow_ribbon.png b/parts_pl/head_top/pl_bow_ribbon.png
new file mode 100644
index 0000000..b076082
Binary files /dev/null and b/parts_pl/head_top/pl_bow_ribbon.png differ
diff --git a/parts_pl/head_top/pl_brain_dome.png b/parts_pl/head_top/pl_brain_dome.png
new file mode 100644
index 0000000..8539961
Binary files /dev/null and b/parts_pl/head_top/pl_brain_dome.png differ
diff --git a/parts_pl/head_top/pl_candle_flame.png b/parts_pl/head_top/pl_candle_flame.png
new file mode 100644
index 0000000..dfe34c1
Binary files /dev/null and b/parts_pl/head_top/pl_candle_flame.png differ
diff --git a/parts_pl/head_top/pl_chef_hat.png b/parts_pl/head_top/pl_chef_hat.png
new file mode 100644
index 0000000..7ee1757
Binary files /dev/null and b/parts_pl/head_top/pl_chef_hat.png differ
diff --git a/parts_pl/head_top/pl_cherries.png b/parts_pl/head_top/pl_cherries.png
new file mode 100644
index 0000000..3edf52f
Binary files /dev/null and b/parts_pl/head_top/pl_cherries.png differ
diff --git a/parts_pl/head_top/pl_cowlick_curl.png b/parts_pl/head_top/pl_cowlick_curl.png
new file mode 100644
index 0000000..73f81b0
Binary files /dev/null and b/parts_pl/head_top/pl_cowlick_curl.png differ
diff --git a/parts_pl/head_top/pl_crown_gold.png b/parts_pl/head_top/pl_crown_gold.png
new file mode 100644
index 0000000..2125489
Binary files /dev/null and b/parts_pl/head_top/pl_crown_gold.png differ
diff --git a/parts_pl/head_top/pl_dragon_mane.png b/parts_pl/head_top/pl_dragon_mane.png
new file mode 100644
index 0000000..54e0e94
Binary files /dev/null and b/parts_pl/head_top/pl_dragon_mane.png differ
diff --git a/parts_pl/head_top/pl_earmuffs.png b/parts_pl/head_top/pl_earmuffs.png
new file mode 100644
index 0000000..b4cf065
Binary files /dev/null and b/parts_pl/head_top/pl_earmuffs.png differ
diff --git a/parts_pl/head_top/pl_ears_cat.png b/parts_pl/head_top/pl_ears_cat.png
new file mode 100644
index 0000000..ab6e122
Binary files /dev/null and b/parts_pl/head_top/pl_ears_cat.png differ
diff --git a/parts_pl/head_top/pl_ears_round.png b/parts_pl/head_top/pl_ears_round.png
new file mode 100644
index 0000000..043c7d7
Binary files /dev/null and b/parts_pl/head_top/pl_ears_round.png differ
diff --git a/parts_pl/head_top/pl_eyestalks.png b/parts_pl/head_top/pl_eyestalks.png
new file mode 100644
index 0000000..fb7c1f3
Binary files /dev/null and b/parts_pl/head_top/pl_eyestalks.png differ
diff --git a/parts_pl/head_top/pl_goggles.png b/parts_pl/head_top/pl_goggles.png
new file mode 100644
index 0000000..4779df7
Binary files /dev/null and b/parts_pl/head_top/pl_goggles.png differ
diff --git a/parts_pl/head_top/pl_hair_buns.png b/parts_pl/head_top/pl_hair_buns.png
new file mode 100644
index 0000000..bed1ded
Binary files /dev/null and b/parts_pl/head_top/pl_hair_buns.png differ
diff --git a/parts_pl/head_top/pl_headgear_boxing.png b/parts_pl/head_top/pl_headgear_boxing.png
new file mode 100644
index 0000000..e9867ef
Binary files /dev/null and b/parts_pl/head_top/pl_headgear_boxing.png differ
diff --git a/parts_pl/head_top/pl_headphones.png b/parts_pl/head_top/pl_headphones.png
new file mode 100644
index 0000000..1b46c33
Binary files /dev/null and b/parts_pl/head_top/pl_headphones.png differ
diff --git a/parts_pl/head_top/pl_hibiscus.png b/parts_pl/head_top/pl_hibiscus.png
new file mode 100644
index 0000000..803c027
Binary files /dev/null and b/parts_pl/head_top/pl_hibiscus.png differ
diff --git a/parts_pl/head_top/pl_horn_unicorn.png b/parts_pl/head_top/pl_horn_unicorn.png
new file mode 100644
index 0000000..287526a
Binary files /dev/null and b/parts_pl/head_top/pl_horn_unicorn.png differ
diff --git a/parts_pl/head_top/pl_jester_hat.png b/parts_pl/head_top/pl_jester_hat.png
new file mode 100644
index 0000000..10ee4c6
Binary files /dev/null and b/parts_pl/head_top/pl_jester_hat.png differ
diff --git a/parts_pl/head_top/pl_kabuto.png b/parts_pl/head_top/pl_kabuto.png
new file mode 100644
index 0000000..236f704
Binary files /dev/null and b/parts_pl/head_top/pl_kabuto.png differ
diff --git a/parts_pl/head_top/pl_ladybug_cap.png b/parts_pl/head_top/pl_ladybug_cap.png
new file mode 100644
index 0000000..c913f90
Binary files /dev/null and b/parts_pl/head_top/pl_ladybug_cap.png differ
diff --git a/parts_pl/head_top/pl_laurel.png b/parts_pl/head_top/pl_laurel.png
new file mode 100644
index 0000000..16971ea
Binary files /dev/null and b/parts_pl/head_top/pl_laurel.png differ
diff --git a/parts_pl/head_top/pl_lure_bulb.png b/parts_pl/head_top/pl_lure_bulb.png
new file mode 100644
index 0000000..2189a19
Binary files /dev/null and b/parts_pl/head_top/pl_lure_bulb.png differ
diff --git a/parts_pl/head_top/pl_miner_helmet.png b/parts_pl/head_top/pl_miner_helmet.png
new file mode 100644
index 0000000..c892e6e
Binary files /dev/null and b/parts_pl/head_top/pl_miner_helmet.png differ
diff --git a/parts_pl/head_top/pl_mohawk.png b/parts_pl/head_top/pl_mohawk.png
new file mode 100644
index 0000000..f755644
Binary files /dev/null and b/parts_pl/head_top/pl_mohawk.png differ
diff --git a/parts_pl/head_top/pl_nightcap.png b/parts_pl/head_top/pl_nightcap.png
new file mode 100644
index 0000000..2679664
Binary files /dev/null and b/parts_pl/head_top/pl_nightcap.png differ
diff --git a/parts_pl/head_top/pl_ossicones.png b/parts_pl/head_top/pl_ossicones.png
new file mode 100644
index 0000000..25068a3
Binary files /dev/null and b/parts_pl/head_top/pl_ossicones.png differ
diff --git a/parts_pl/head_top/pl_party_hat.png b/parts_pl/head_top/pl_party_hat.png
new file mode 100644
index 0000000..beea76b
Binary files /dev/null and b/parts_pl/head_top/pl_party_hat.png differ
diff --git a/parts_pl/head_top/pl_propeller_cap.png b/parts_pl/head_top/pl_propeller_cap.png
new file mode 100644
index 0000000..e9c06db
Binary files /dev/null and b/parts_pl/head_top/pl_propeller_cap.png differ
diff --git a/parts_pl/head_top/pl_pumpkin_hat.png b/parts_pl/head_top/pl_pumpkin_hat.png
new file mode 100644
index 0000000..85a7cb8
Binary files /dev/null and b/parts_pl/head_top/pl_pumpkin_hat.png differ
diff --git a/parts_pl/head_top/pl_skull_cap.png b/parts_pl/head_top/pl_skull_cap.png
new file mode 100644
index 0000000..25bc5ae
Binary files /dev/null and b/parts_pl/head_top/pl_skull_cap.png differ
diff --git a/parts_pl/head_top/pl_sombrero.png b/parts_pl/head_top/pl_sombrero.png
new file mode 100644
index 0000000..48eaba0
Binary files /dev/null and b/parts_pl/head_top/pl_sombrero.png differ
diff --git a/parts_pl/head_top/pl_spore_puffs.png b/parts_pl/head_top/pl_spore_puffs.png
new file mode 100644
index 0000000..37faa5a
Binary files /dev/null and b/parts_pl/head_top/pl_spore_puffs.png differ
diff --git a/parts_pl/head_top/pl_sprouts_twin.png b/parts_pl/head_top/pl_sprouts_twin.png
new file mode 100644
index 0000000..f0ebc80
Binary files /dev/null and b/parts_pl/head_top/pl_sprouts_twin.png differ
diff --git a/parts_pl/head_top/pl_star_glasses.png b/parts_pl/head_top/pl_star_glasses.png
new file mode 100644
index 0000000..46bf9d6
Binary files /dev/null and b/parts_pl/head_top/pl_star_glasses.png differ
diff --git a/parts_pl/head_top/pl_stone_stack.png b/parts_pl/head_top/pl_stone_stack.png
new file mode 100644
index 0000000..29799fc
Binary files /dev/null and b/parts_pl/head_top/pl_stone_stack.png differ
diff --git a/parts_pl/head_top/pl_straw_hat.png b/parts_pl/head_top/pl_straw_hat.png
new file mode 100644
index 0000000..ec05c29
Binary files /dev/null and b/parts_pl/head_top/pl_straw_hat.png differ
diff --git a/parts_pl/head_top/pl_tesla_coil.png b/parts_pl/head_top/pl_tesla_coil.png
new file mode 100644
index 0000000..b1dec08
Binary files /dev/null and b/parts_pl/head_top/pl_tesla_coil.png differ
diff --git a/parts_pl/head_top/pl_tophat.png b/parts_pl/head_top/pl_tophat.png
new file mode 100644
index 0000000..f592c66
Binary files /dev/null and b/parts_pl/head_top/pl_tophat.png differ
diff --git a/parts_pl/head_top/pl_viking_helmet.png b/parts_pl/head_top/pl_viking_helmet.png
new file mode 100644
index 0000000..474fdb9
Binary files /dev/null and b/parts_pl/head_top/pl_viking_helmet.png differ
diff --git a/parts_pl/head_top/pl_volcano_head.png b/parts_pl/head_top/pl_volcano_head.png
new file mode 100644
index 0000000..c4c9deb
Binary files /dev/null and b/parts_pl/head_top/pl_volcano_head.png differ
diff --git a/parts_pl/head_top/pl_winged_ears.png b/parts_pl/head_top/pl_winged_ears.png
new file mode 100644
index 0000000..6caf9ef
Binary files /dev/null and b/parts_pl/head_top/pl_winged_ears.png differ
diff --git a/parts_pl/head_top/pl_witch_hat.png b/parts_pl/head_top/pl_witch_hat.png
new file mode 100644
index 0000000..58a2237
Binary files /dev/null and b/parts_pl/head_top/pl_witch_hat.png differ
diff --git a/parts_pl/tail/pl_tail_anchor.png b/parts_pl/tail/pl_tail_anchor.png
new file mode 100644
index 0000000..e6f2987
Binary files /dev/null and b/parts_pl/tail/pl_tail_anchor.png differ
diff --git a/parts_pl/tail/pl_tail_armadillo.png b/parts_pl/tail/pl_tail_armadillo.png
new file mode 100644
index 0000000..eba820e
Binary files /dev/null and b/parts_pl/tail/pl_tail_armadillo.png differ
diff --git a/parts_pl/tail/pl_tail_beaver.png b/parts_pl/tail/pl_tail_beaver.png
new file mode 100644
index 0000000..db81a22
Binary files /dev/null and b/parts_pl/tail/pl_tail_beaver.png differ
diff --git a/parts_pl/tail/pl_tail_bell.png b/parts_pl/tail/pl_tail_bell.png
new file mode 100644
index 0000000..4c4e593
Binary files /dev/null and b/parts_pl/tail/pl_tail_bell.png differ
diff --git a/parts_pl/tail/pl_tail_blossom.png b/parts_pl/tail/pl_tail_blossom.png
new file mode 100644
index 0000000..1bff1d4
Binary files /dev/null and b/parts_pl/tail/pl_tail_blossom.png differ
diff --git a/parts_pl/tail/pl_tail_bone.png b/parts_pl/tail/pl_tail_bone.png
new file mode 100644
index 0000000..a0b408c
Binary files /dev/null and b/parts_pl/tail/pl_tail_bone.png differ
diff --git a/parts_pl/tail/pl_tail_boulders.png b/parts_pl/tail/pl_tail_boulders.png
new file mode 100644
index 0000000..55c2206
Binary files /dev/null and b/parts_pl/tail/pl_tail_boulders.png differ
diff --git a/parts_pl/tail/pl_tail_bow.png b/parts_pl/tail/pl_tail_bow.png
new file mode 100644
index 0000000..59ff408
Binary files /dev/null and b/parts_pl/tail/pl_tail_bow.png differ
diff --git a/parts_pl/tail/pl_tail_candy_cane.png b/parts_pl/tail/pl_tail_candy_cane.png
new file mode 100644
index 0000000..c9355a2
Binary files /dev/null and b/parts_pl/tail/pl_tail_candy_cane.png differ
diff --git a/parts_pl/tail/pl_tail_cattail.png b/parts_pl/tail/pl_tail_cattail.png
new file mode 100644
index 0000000..967f3b4
Binary files /dev/null and b/parts_pl/tail/pl_tail_cattail.png differ
diff --git a/parts_pl/tail/pl_tail_chain.png b/parts_pl/tail/pl_tail_chain.png
new file mode 100644
index 0000000..7e464df
Binary files /dev/null and b/parts_pl/tail/pl_tail_chain.png differ
diff --git a/parts_pl/tail/pl_tail_comet.png b/parts_pl/tail/pl_tail_comet.png
new file mode 100644
index 0000000..48de606
Binary files /dev/null and b/parts_pl/tail/pl_tail_comet.png differ
diff --git a/parts_pl/tail/pl_tail_coral.png b/parts_pl/tail/pl_tail_coral.png
new file mode 100644
index 0000000..4e1beea
Binary files /dev/null and b/parts_pl/tail/pl_tail_coral.png differ
diff --git a/parts_pl/tail/pl_tail_croc.png b/parts_pl/tail/pl_tail_croc.png
new file mode 100644
index 0000000..82ce0a0
Binary files /dev/null and b/parts_pl/tail/pl_tail_croc.png differ
diff --git a/parts_pl/tail/pl_tail_crystal_tip.png b/parts_pl/tail/pl_tail_crystal_tip.png
new file mode 100644
index 0000000..5f30925
Binary files /dev/null and b/parts_pl/tail/pl_tail_crystal_tip.png differ
diff --git a/parts_pl/tail/pl_tail_eastern_dragon.png b/parts_pl/tail/pl_tail_eastern_dragon.png
new file mode 100644
index 0000000..b252211
Binary files /dev/null and b/parts_pl/tail/pl_tail_eastern_dragon.png differ
diff --git a/parts_pl/tail/pl_tail_fluke.png b/parts_pl/tail/pl_tail_fluke.png
new file mode 100644
index 0000000..e673ee7
Binary files /dev/null and b/parts_pl/tail/pl_tail_fluke.png differ
diff --git a/parts_pl/tail/pl_tail_glove.png b/parts_pl/tail/pl_tail_glove.png
new file mode 100644
index 0000000..8210b85
Binary files /dev/null and b/parts_pl/tail/pl_tail_glove.png differ
diff --git a/parts_pl/tail/pl_tail_glowbulb.png b/parts_pl/tail/pl_tail_glowbulb.png
new file mode 100644
index 0000000..f0ed352
Binary files /dev/null and b/parts_pl/tail/pl_tail_glowbulb.png differ
diff --git a/parts_pl/tail/pl_tail_heart.png b/parts_pl/tail/pl_tail_heart.png
new file mode 100644
index 0000000..5cdb514
Binary files /dev/null and b/parts_pl/tail/pl_tail_heart.png differ
diff --git a/parts_pl/tail/pl_tail_horsetail.png b/parts_pl/tail/pl_tail_horsetail.png
new file mode 100644
index 0000000..8cbbe99
Binary files /dev/null and b/parts_pl/tail/pl_tail_horsetail.png differ
diff --git a/parts_pl/tail/pl_tail_key.png b/parts_pl/tail/pl_tail_key.png
new file mode 100644
index 0000000..013ddeb
Binary files /dev/null and b/parts_pl/tail/pl_tail_key.png differ
diff --git a/parts_pl/tail/pl_tail_kite.png b/parts_pl/tail/pl_tail_kite.png
new file mode 100644
index 0000000..62caee1
Binary files /dev/null and b/parts_pl/tail/pl_tail_kite.png differ
diff --git a/parts_pl/tail/pl_tail_lobster.png b/parts_pl/tail/pl_tail_lobster.png
new file mode 100644
index 0000000..5156eb6
Binary files /dev/null and b/parts_pl/tail/pl_tail_lobster.png differ
diff --git a/parts_pl/tail/pl_tail_lollipop.png b/parts_pl/tail/pl_tail_lollipop.png
new file mode 100644
index 0000000..d228d40
Binary files /dev/null and b/parts_pl/tail/pl_tail_lollipop.png differ
diff --git a/parts_pl/tail/pl_tail_octopus.png b/parts_pl/tail/pl_tail_octopus.png
new file mode 100644
index 0000000..a726fd4
Binary files /dev/null and b/parts_pl/tail/pl_tail_octopus.png differ
diff --git a/parts_pl/tail/pl_tail_paintbrush.png b/parts_pl/tail/pl_tail_paintbrush.png
new file mode 100644
index 0000000..a9e02e2
Binary files /dev/null and b/parts_pl/tail/pl_tail_paintbrush.png differ
diff --git a/parts_pl/tail/pl_tail_pencil.png b/parts_pl/tail/pl_tail_pencil.png
new file mode 100644
index 0000000..da6c9c9
Binary files /dev/null and b/parts_pl/tail/pl_tail_pencil.png differ
diff --git a/parts_pl/tail/pl_tail_plug.png b/parts_pl/tail/pl_tail_plug.png
new file mode 100644
index 0000000..67d30bd
Binary files /dev/null and b/parts_pl/tail/pl_tail_plug.png differ
diff --git a/parts_pl/tail/pl_tail_propeller.png b/parts_pl/tail/pl_tail_propeller.png
new file mode 100644
index 0000000..a865633
Binary files /dev/null and b/parts_pl/tail/pl_tail_propeller.png differ
diff --git a/parts_pl/tail/pl_tail_quill.png b/parts_pl/tail/pl_tail_quill.png
new file mode 100644
index 0000000..76663ea
Binary files /dev/null and b/parts_pl/tail/pl_tail_quill.png differ
diff --git a/parts_pl/tail/pl_tail_ringed.png b/parts_pl/tail/pl_tail_ringed.png
new file mode 100644
index 0000000..b38509e
Binary files /dev/null and b/parts_pl/tail/pl_tail_ringed.png differ
diff --git a/parts_pl/tail/pl_tail_rope.png b/parts_pl/tail/pl_tail_rope.png
new file mode 100644
index 0000000..362c637
Binary files /dev/null and b/parts_pl/tail/pl_tail_rope.png differ
diff --git a/parts_pl/tail/pl_tail_shovel.png b/parts_pl/tail/pl_tail_shovel.png
new file mode 100644
index 0000000..168f7ca
Binary files /dev/null and b/parts_pl/tail/pl_tail_shovel.png differ
diff --git a/parts_pl/tail/pl_tail_slime.png b/parts_pl/tail/pl_tail_slime.png
new file mode 100644
index 0000000..63f0eac
Binary files /dev/null and b/parts_pl/tail/pl_tail_slime.png differ
diff --git a/parts_pl/tail/pl_tail_spring.png b/parts_pl/tail/pl_tail_spring.png
new file mode 100644
index 0000000..21b768e
Binary files /dev/null and b/parts_pl/tail/pl_tail_spring.png differ
diff --git a/parts_pl/tail/pl_tail_sunflower.png b/parts_pl/tail/pl_tail_sunflower.png
new file mode 100644
index 0000000..0be50e7
Binary files /dev/null and b/parts_pl/tail/pl_tail_sunflower.png differ
diff --git a/parts_pl/tail/pl_tail_swallow.png b/parts_pl/tail/pl_tail_swallow.png
new file mode 100644
index 0000000..fead171
Binary files /dev/null and b/parts_pl/tail/pl_tail_swallow.png differ
diff --git a/parts_pl/tail/pl_tail_tassel.png b/parts_pl/tail/pl_tail_tassel.png
new file mode 100644
index 0000000..dbae1df
Binary files /dev/null and b/parts_pl/tail/pl_tail_tassel.png differ
diff --git a/parts_pl/tail/pl_tail_trident.png b/parts_pl/tail/pl_tail_trident.png
new file mode 100644
index 0000000..86640fd
Binary files /dev/null and b/parts_pl/tail/pl_tail_trident.png differ
diff --git a/parts_pl/tail/pl_tail_twin.png b/parts_pl/tail/pl_tail_twin.png
new file mode 100644
index 0000000..1a7256a
Binary files /dev/null and b/parts_pl/tail/pl_tail_twin.png differ
diff --git a/parts_pl/tail/pl_tail_wrench.png b/parts_pl/tail/pl_tail_wrench.png
new file mode 100644
index 0000000..a8fe753
Binary files /dev/null and b/parts_pl/tail/pl_tail_wrench.png differ
diff --git a/parts_pl/tail/pl_tail_yarn.png b/parts_pl/tail/pl_tail_yarn.png
new file mode 100644
index 0000000..6d7422e
Binary files /dev/null and b/parts_pl/tail/pl_tail_yarn.png differ
diff --git a/parts_pl_src/back/pl_backpack.txt b/parts_pl_src/back/pl_backpack.txt
new file mode 100644
index 0000000..d565395
--- /dev/null
+++ b/parts_pl_src/back/pl_backpack.txt
@@ -0,0 +1,20 @@
+# pl_backpack: pixellab_src/pl_pangolin/pl_backpack.png minus base.png
+# pivot at (38, 38)
+....ooo................
+.....bco.....oooooooo..
+.....zbbo.o.oaaaa..abo.
+....ooocb3ooooaabbbbbo.
+......oobooccoabbbbbbbo
+.......ocbocco.bbbbbbbo
+.......oocbccboabyxx.oo
+........ocbccboooyzxooo
+........oobPcboccyzycbo
+.........obocbobbzzzbbo
+.........o.ocbobbcccbco
+........ob.occocbbbbcoo
+......oobbooccocccooo..
+.....oocbooo.ooooo.....
+....obbco..............
+.ooobbco...............
+obbbooo................
+oo.oo..................
diff --git a/parts_pl_src/back/pl_barbell.txt b/parts_pl_src/back/pl_barbell.txt
new file mode 100644
index 0000000..6ffdb85
--- /dev/null
+++ b/parts_pl_src/back/pl_barbell.txt
@@ -0,0 +1,25 @@
+# pl_barbell: pixellab_src/pl_shoebill/pl_barbell.png minus base.png
+# pivot at (32, 34)
+......oooooooo............................ooooooo.......
+.....obbobbccco..........................obboobbco......
+....obbobbccccco........................obboobbccco.....
+...obbobaccooocco......................obbbobbccocco....
+...oacbaccooooocco.....................oaaoobbcoooooo...
+..oaaoaacoooooooco....................obaaobacooobboo...
+..oaooaccooooooocoo...................oaaooaacoobbcooo..
+.obaobaocooooooooco...................oaaocaccoobaoooo..
+.obbobbocoooooooocoooooooo..oooooooooobbbobaccooaooooo..
+oobbobbocooozyyyyyyyyyyyyyyyyyyyyyyyzobbbobbocooaoooyyo.
+oobbobbocooozyyyyyyyyyyyyyyyyyyyyyyyyobbbobbocoobooyxzzo
+oobbobbocooozzzzzzzzzzzzzzzzzzzzzzzzzobbbobbocooboozyzzo
+.obbobbocoooozoooooooooooooooooooooooobbbobbocoobooczzo.
+.oobobbocoooooo......................obbbobbocoocoooooo.
+..oooooocoooooo......................oobboobocooocoooo..
+..ooooooccooooo.......................ooooooocooooccoo..
+...oooooocooooo.........................ooooocooooooo...
+...ooooooocoooo.........................oooooocoooooo...
+....oooooooccco...........................ooooocoooo....
+.....ooooooooo............................oooooocco.....
+..........................................oooooooo......
+........................................................
+...........................P............................
diff --git a/parts_pl_src/back/pl_bedroll.txt b/parts_pl_src/back/pl_bedroll.txt
new file mode 100644
index 0000000..8937023
--- /dev/null
+++ b/parts_pl_src/back/pl_bedroll.txt
@@ -0,0 +1,35 @@
+# pl_bedroll: pixellab_src/pl_pangolin/pl_bedroll.png minus base.png
+# pivot at (38, 38)
+....oooo...oooo.....ooo........
+..ooaaaboooozyooooooozyooooo...
+.ocaaaaaaaaaozyoaaaaaoyyoaabo..
+.oaboooaaaaaaozyoaaaaaoyoaaaco.
+oaboaaooaaaaacoyoaaaaaoyyoaaao.
+oaoaooaoaaaaaacoyoaaaaaoyobaaco
+oaoaoaaoaaaaaacoyoaaaaaoyobaaco
+oaoaaoaoaaoaaacoyoaaaacozobaaco
+oaoacoaoaacca.cozocaaccozobccco
+oacoaacoabobcc.ozocccccozoocco.
+.oacoooa.oc.ccozoccc.cozzoocoo.
+.ooaaaaacooocozzocccccozocooo..
+..oobbooccooozzooooooozoooo....
+....oooooo..ooozzo..ozzo.......
+..............ooyo..oozo.......
+...............o.yo..ooyo......
+................oyoo..oyo......
+................oyyo..oyo......
+................oyyo..ooy......
+.................oyo...oyo.....
+.................oPo...oyo.....
+.................oyo....oyo....
+.................oyo....oyo....
+.................oyo....oyo....
+.................oyo....oyo....
+.................ozo....ozo....
+.................ozo....ozo....
+.................ozo....ozo....
+.................ozo....ozo....
+................ozzo...ozo.....
+................ozoo...ozo.....
+.................oo...oco......
+.......................oo......
diff --git a/parts_pl_src/back/pl_bell_collar.txt b/parts_pl_src/back/pl_bell_collar.txt
new file mode 100644
index 0000000..2a3acc6
--- /dev/null
+++ b/parts_pl_src/back/pl_bell_collar.txt
@@ -0,0 +1,17 @@
+# pl_bell_collar: pixellab_src/pl_meerkat/pl_bell_collar.png minus base.png
+# pivot at (32, 34)
+.......P.....
+.............
+oo.........oo
+ocoo.....ooco
+oabcooooocbbo
+obaaa.c.aaabo
+oobbbozobbcoo
+..oooozoooo..
+...yozzzzo...
+...ozxzzzzo..
+...ozzzzzzo..
+...ozzzzzzo..
+...ozzzzzzo..
+....ozzzzo...
+....oooooo...
diff --git a/parts_pl_src/back/pl_bindle.txt b/parts_pl_src/back/pl_bindle.txt
new file mode 100644
index 0000000..8dc2973
--- /dev/null
+++ b/parts_pl_src/back/pl_bindle.txt
@@ -0,0 +1,19 @@
+# pl_bindle: pixellab_src/pl_meerkat/pl_bindle.png minus base.png
+# pivot at (32, 34)
+......................P......................
+........................................ooo..
+.......................................oaaao.
+...................................ooooaaaao.
+ooooooooooooooooo..ooooo..oooooooooaaoaaaaaco
+oxxxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzoaaoccaaaao
+.ooooooooooooooooooooooooooooooooooacoaaaacao
+..................................occoccaacco
+..................................oooooccccco
+..................................ocoo.occco.
+..................................oaoo..ooo..
+.................................oaaoco......
+.................................oaaoco......
+.................................oaaoco......
+.................................oaaoco......
+.................................occoo.......
+..................................oo.........
diff --git a/parts_pl_src/back/pl_bow_gift.txt b/parts_pl_src/back/pl_bow_gift.txt
new file mode 100644
index 0000000..41c1304
--- /dev/null
+++ b/parts_pl_src/back/pl_bow_gift.txt
@@ -0,0 +1,37 @@
+# pl_bow_gift: pixellab_src/pl_teapot/pl_bow_gift.png minus base.png
+# pivot at (32, 39)
+...oooo.............oooo...
+..obaabo...........obaabo..
+..obabbbo.........obbbabo..
+..obabbbco.......ocbbbabo..
+.ocaabbbbcoo...oocbbbbbabo.
+obbabbbbccco...occcbbbbabbo
+obooobbbcccooooocccbbbooobo
+occccoobbbcobbboocbbbocccoo
+.occccoocccobbbocccoooccco.
+..occcoooooocccooooocccco..
+...oooooo.coooooc.oooooo...
+......obbccccccoccbco......
+....oobbbbcocccocbbbboo....
+....obbbbcoobbboobbbbco....
+....obbbbooobbbooobbbbo....
+...obbbbo..obPbo..obbbbo...
+...ooocbo..obbbo..ocbooo...
+......bo...obbbo...ob......
+......oo...obbbo...oo......
+...........obbbo...........
+...........obbbo...........
+...........obbbo...........
+...........obbbo...........
+...........obbbo...........
+...........obbbo...........
+...........obbco...........
+...........occco...........
+...........oc.co...........
+...........o...o...........
+...........oc.co...........
+...........occco...........
+...........occco...........
+...........occco...........
+...........occco...........
+...........ooooo...........
diff --git a/parts_pl_src/back/pl_brambles_back.txt b/parts_pl_src/back/pl_brambles_back.txt
new file mode 100644
index 0000000..562bc4f
--- /dev/null
+++ b/parts_pl_src/back/pl_brambles_back.txt
@@ -0,0 +1,28 @@
+# pl_brambles_back: pixellab_src/pl_sloth/pl_brambles_back.png minus base.png
+# pivot at (33, 35)
+................o.......................
+...............ozo.....o................
+..............ozxo....ozo...............
+...........oooozxooooozzo...............
+.........oozzzzxxzzzzzxzo...o...........
+....o...ozzxxxxxxxxxxxxzoo.ozo..........
+...ozooozxxxxyyyyyyyyyxxzzozzo..........
+...ozxzzxyyyzzzzzzzzzyyyxxzxzo..........
+...ozxxxyzzyzooooooooyzzyyxxzoo.........
+...ozxxyzoozzo......ozzozyyyxzzo.oo.....
+...ozxyzoo.ozo.......ozoozzzyxxzozzo....
+..ozxyzozzoooo........o..ooozyxxzxzo....
+.oozxzozxxz................ozyzyxxzo....
+ozyxxzoxzzyz...............ozoozyxzo....
+.ozyxzoz.zyz................o..ozyxzo...
+..ozxzoozzyz...................ozyxzooo.
+...ozxzzzyz....................ozzyxzzzo
+...ozzxyyz......................ooyxxxo.
+....oozzz........................oyyxzo.
+.....o............................zyxzo.
+........................P.........zyxzo.
+..................................zyxzo.
+..................................zyyzo.
+.............................zxz..zyz.o.
+.............................zxxzzxz....
+..............................zzzzz.....
diff --git a/parts_pl_src/back/pl_cactus_back.txt b/parts_pl_src/back/pl_cactus_back.txt
new file mode 100644
index 0000000..9992561
--- /dev/null
+++ b/parts_pl_src/back/pl_cactus_back.txt
@@ -0,0 +1,27 @@
+# pl_cactus_back: pixellab_src/pl_pangolin/pl_cactus_back.png minus base.png
+# pivot at (38, 38)
+.....oo......
+...ooaaooo...
+..oaoaaoaao..
+..oaaoaoabo..
+...ooobooo...
+..o2111133o..
+.o111111133o.
+.o111111113o.
+o111111b1133o
+o11111111333o
+o3111b11133co
+o3c111113333o
+.o3311133c3o.
+.oo3333333oo.
+..oooooooo...
+.............
+.............
+.............
+.............
+.............
+.............
+.............
+.............
+.............
+..........P..
diff --git a/parts_pl_src/back/pl_coffin_back.txt b/parts_pl_src/back/pl_coffin_back.txt
new file mode 100644
index 0000000..2643975
--- /dev/null
+++ b/parts_pl_src/back/pl_coffin_back.txt
@@ -0,0 +1,32 @@
+# pl_coffin_back: pixellab_src/pl_manatee/pl_coffin_back.png minus base.png
+# pivot at (32, 34)
+.....ooooooooo.....
+....obaaaaaaaao....
+...obbccccccccbo...
+...obcbbbbbbbcbo...
+..obcbbbbbbbbbcbo..
+.obccbbbyxybbbbcco.
+.obcbbbbyxybbbbcbo.
+obcbbbbbyxybbbbbcbo
+obcbbbxxxxxxxbbbcbo
+obcbbbyyyxyyybbbcbo
+obcbbbbbyxybbbbbcbo
+obbbbbbbyxybbbbbbo.
+.obcbbbbyxybbbbcbo.
+.obcbbbbyxybbbbcbo.
+.obcbbbbyxybbbbcbo.
+.obcbbbbyyybbbbcco.
+.obcbbbbbbbbbbccco.
+..ocboooooooobcco..
+..ooo........ooco..
+...............oo..
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+.........P.........
diff --git a/parts_pl_src/back/pl_crescent_moon.txt b/parts_pl_src/back/pl_crescent_moon.txt
new file mode 100644
index 0000000..7a9358a
--- /dev/null
+++ b/parts_pl_src/back/pl_crescent_moon.txt
@@ -0,0 +1,54 @@
+# pl_crescent_moon: pixellab_src/pl_shoebill/pl_crescent_moon.png minus base.png
+# pivot at (32, 34)
+....................oooooooo....................
+..................oozzzzzzzzoooo................
+...............ooozzzxxxxxxxyzzzo...............
+.............oozzzyxxxxyyyyyyyyyzo..............
+............ozzyxxxxxxyyyyyzzzzzzo..............
+..........oozyyxxxxxyyyyzzzoooooo...............
+.........ozzxxxxxxxyyyyzzoo.....................
+........ozzyxxxxxxyyyzzoo.......................
+.......ozyxxxxxxxyyyzoo.........................
+.......ozxxxxxxyyyyzo...........................
+......ozyxxxxxyyyyzo............................
+.....ozyxxxxxxyyyzo.............................
+....ozyxxxxxxxyyyzo.............................
+....ozxxxxxxxyyyzo..............................
+...ozyxxxxxxyyyyzo..............................
+...ozyxxxxxxyyyzo...............................
+..ozyyxxxxxyyyyzo...............................
+..ozyyxxxxyyyyyzo...............................
+.ozyyyxxxxyyyyzo................................
+.ozyyxxxxxyyyyzo................................
+.ozyyxxxxxyyyyzo................................
+.ozyyxxxxxyyyyzo................................
+ozyyyyxxxxyyyoo.................................
+ozyyyyxxxxyyyo..................................
+ozyyyyxxxxyyyoo..............................oo.
+ozyyyyxxyyyyyyo.............................ozzo
+ozyyyyyxyyyyyo..............................ozzo
+ozyyyyyyyyyyyo.............................ozyzo
+ozyyyyyyyyyyo..............................ozyzo
+ozyyyyyyyyyo..............................ozyyzo
+.ozyyyyyyyyo............P.................ozyyzo
+.ozyyyyyyyyyo............................ozxyyzo
+.ozyyyyyyyyoo..........................oozxyyzo.
+..ozyyyyyyo...........................ozzyxyyzo.
+..ozyyyyyo............................ozyxxyzo..
+...ozyyyyo............................oyxxyyzo..
+...ozyyyo..............................oyyyzo...
+....ozyyo..............................oyyyzo...
+....ozzo...............................ooyzo....
+.....ozo................................ozo.....
+......oo................................ozo.....
+........................................oo......
+................................................
+................................................
+................................................
+................................................
+..........o.o...................................
+.........oo3oo..................................
+..........o33o..................................
+..........oo3o..................................
+...........oooo.................................
+............oo..................................
diff --git a/parts_pl_src/back/pl_drum_back.txt b/parts_pl_src/back/pl_drum_back.txt
new file mode 100644
index 0000000..9df321a
--- /dev/null
+++ b/parts_pl_src/back/pl_drum_back.txt
@@ -0,0 +1,35 @@
+# pl_drum_back: pixellab_src/pl_teapot/pl_drum_back.png minus base.png
+# pivot at (32, 39)
+.......ooooooooooooooooooo........
+...oooozzzyyyyyyyyyyyyyyzzooooo...
+..ozzzxxxxxxxxxxxxxxxxxyyyyyyyzoo.
+.ozxxxxxxxxxxxxxxxxxxxxxxyyyyyyyzo
+ozxyyyxxxxxxxxxxxxxxxxxxxyyyyyzzyo
+ozzzyyxyyyyyyyyyyyyyyyyyyyyyyyyzzo
+ozzzzyzyyzyyxxxxxxxxxxxyzzzzyzzzzo
+.oozzyzyyzyyyxyyyyyyyyyyzzyzyzzooo
+.occcczyyzyyyxyoooyyyyyzzyzzocoooo
+.ocbbbyzzycccco...occccczxcybbbcoo
+.ocbbyzccyzbbbo...obbbbbycccybbcoo
+.ocbyzcbbcyzbbo...obbbbycbbbcyccoo
+.ocyzcbbbbcyzoo...oobbyzcbbbbczcoo
+.ozzcbbbbbooo.......oooccbbbbbczzo
+.ozcbbbbbo.............obbbbbbcczo
+..occbboo...............oobbcccco.
+..ozccco.................occccczo.
+...ozzzo.................ozzzzzo..
+....ozo................oboozzooo..
+.....o...............oobbo.oo.....
+................P....obbo.........
+....................obbo..........
+...................oybo...........
+.................obbboo...........
+...............ooybooo............
+..............oyybo...............
+...........ooobbbo................
+............ybboo.................
+..........bbbboo..................
+......oobybbo.....................
+......obbboo......................
+.......boo........................
+......oo..........................
diff --git a/parts_pl_src/back/pl_fan_folding.txt b/parts_pl_src/back/pl_fan_folding.txt
new file mode 100644
index 0000000..e4b6e4d
--- /dev/null
+++ b/parts_pl_src/back/pl_fan_folding.txt
@@ -0,0 +1,32 @@
+# pl_fan_folding: pixellab_src/pl_meerkat/pl_fan_folding.png minus base.png
+# pivot at (32, 34)
+..........................oooo..........................
+.....................ooooozzyyoooooo....................
+...................oozyyyzzzyyyyyyzzo...................
+...............oooozzzyyyzzzyyyyyyzzzoooo...............
+...............oyyyzzzyyyzzzyyyyyyzzzyyyo...............
+..............ozyyyzzzzyyyzzyyyyyzzzzyyyzo..............
+...........ooozzzyyyzzzyyyzzyyyyyzzzyyyzzzooo...........
+..........ooyyzzzyyyzzzyyyzzyyyyyzzzyyyzzzyyoo..........
+..........oyyyyzzzyyyzzyyyzzyyyyyzzyyyzzzyyyyo..........
+.........ozzyyyzzzyyyzzzyyzzyyyyyzzyyyzzzyyyzzo.........
+.......oozzzzyyyzzzyyyzzyoooooyyzzzyyzzzyyyzzzzo........
+......ooyyzzzzyyyzzzyyzoo.....oozzyyyzzyyyyzzzyyoo......
+.....ooyyyyzzzzyyyzzyoo.........ooyyzzzyyyzzzyyyyoo.....
+.....ozzyyyyzzzzyyzzo.............oyzzyyyzzzyyyyzzo.....
+.....ozzzyyyyzzzzyyo...............ozyyyzzzyyyyzzzo.....
+....ozzzzzyyyyzzooo.................oooozzyyyyzzzzzo....
+...ooyyzzzzzyyyo........................oyyyzzzzzyyoo...
+..ooyyyyyzzzzyo..........................oyzzzzyyyyyoo..
+..ozzyyyyyzzzzo..........................ozzzzyyyyyzzo..
+..ozzzzyyyyyzzo..........................ozzyyyyyzzzzo..
+..ozzzzzzyyyyyzo........................ozyyyyyzzzzzzo..
+..oyyzzzzzzzyyyyo......................ozyyyzzzzzzyyyo..
+.oyyyyyyyzzzzzyyyo...................ooyyyzzzzzyyyyyyyo.
+.oyyyyyyyyyyzzzzzzo.........P.......oozzzzzzyyyyyyyyyyo.
+.ozzzyyyyyyyyyyzzozoo.............oozzozzzyyyyyyyyzzzzo.
+.ozzzzzzzzzzzyyyyooozoo.........oozzzoozyyyzzzzzzzzzzzo.
+oozzzzzzzzzzzzzzozzzzzo.........ozzzzzzozzzzzzzzzzzzzzo.
+oyyyyyyyyyyyyyyyoooozzo.........ozzzooooyyyyyyyyyyyyyyyo
+oyyyyyyyyyyyyyyyyzzzzo...........ozzzzzzzzzzzzzzzzzzzzzo
+oooooooooooooooooooooo...........ooooooooooooooooooooooo
diff --git a/parts_pl_src/back/pl_feather_tuft_back.txt b/parts_pl_src/back/pl_feather_tuft_back.txt
new file mode 100644
index 0000000..9d6d70e
--- /dev/null
+++ b/parts_pl_src/back/pl_feather_tuft_back.txt
@@ -0,0 +1,33 @@
+# pl_feather_tuft_back: pixellab_src/pl_meerkat/pl_feather_tuft_back.png minus base.png
+# pivot at (32, 34)
+........oo.........
+........oao........
+........oaao.......
+.........oao.......
+ooo......oaao..oo..
+oaao.....oaao..oao.
+oaaao...oaaao..oaao
+ooaao...oaaao..oaao
+.oaaao..oacao..oaao
+.ocaao.oaacco..oaao
+..oaccooaacao.oaaao
+..oacaooacaaooaaaao
+..oacaaoacaoooabbo.
+...obcaoacaoooacbo.
+...oaccobccooaccao.
+...occbooco.ocaco..
+....occoocooocco...
+.....ocoocoocoo....
+.....oo.....oo.....
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+...................
+..........P........
diff --git a/parts_pl_src/back/pl_flower_lei.txt b/parts_pl_src/back/pl_flower_lei.txt
new file mode 100644
index 0000000..f0c2146
--- /dev/null
+++ b/parts_pl_src/back/pl_flower_lei.txt
@@ -0,0 +1,22 @@
+# pl_flower_lei: pixellab_src/pl_manatee/pl_flower_lei.png minus base.png
+# pivot at (32, 34)
+....oo......................oo....
+...oco......................oco...
+..oca........................aco..
+.ocaa........................aaco.
+.ocac............P...........caco.
+.oczzc......................czzco.
+ocxxxc......................cxxxco
+ocxzzco....................oczzxco
+.ozzcccoo................ooccczyco
+.oocaaaco................ocbaccco.
+...cabccoo..............oocbbac.o.
+...cbczzxyo............ozxccbac...
+...oocxxzzcccoo....ooocczxxcbco...
+.....cxyzcabczo.oo.obcaaczyycco...
+.....czycbabcxxcaaczxccabczc..o...
+......cccbbcxxzcaaazzxcbbccc......
+........cbbcxzcaaaaczxcbbc........
+.........ccczzcbbbbczzccc.........
+............ccoobbcocc............
+..............o.cc.o..............
diff --git a/parts_pl_src/back/pl_gears.txt b/parts_pl_src/back/pl_gears.txt
new file mode 100644
index 0000000..f204361
--- /dev/null
+++ b/parts_pl_src/back/pl_gears.txt
@@ -0,0 +1,33 @@
+# pl_gears: pixellab_src/pl_manatee/pl_gears.png minus base.png
+# pivot at (32, 34)
+...........oo.ooo.oo............
+..........ozyoyyzozzo...........
+.........ooyxzzxyyxzoo..........
+........oyyyxxxxxxxyyzo.........
+........ozxxzzyxyyzxxzo.........
+.......ozyxzoozxzooyxyyo........
+.......ozxyo.oyxyo.ozxyo........
+.......ozxyooyyxxzoozxyo........
+......oyyxyyyyxzxxzyyxxzo.......
+......oyxxyxxyzozxzxxxxzo.......
+....oooyyxzzzyxxxyyzzxzyzooo....
+...ozyyyzyyooyyzzyooyyyyxyyyo...
+..ooyxxxxxxyyoyxzooyyxxxxxxzoo..
+.ozzyxyzyyxxxzyxyozyxxyyzzzxzyo.
+.oyxxzyyxzzxxyxxzyzxxzxyoyyzxyo.
+.oyxzoyyxzyzyyyxxxzxyzzxxyozxyo.
+ozxxyyzxyxyyyxxxzzxxyozxyxoyxxzo
+oyxxyozxyxyyyyzyyyzxyoyxxxyyxxzo
+.ozxyoyyxyyoyxoooooxyoyyzzxxxzo.
+.ozxxzyyxooxxyy....ooyyoooyxxzo.
+.oyyzxyyyyxxz........ooyzzxxzyo.
+..oozxxxxxxy..........ooxxxzoo..
+...oyyyzxzzz...........oxzzzo...
+....oo.zz...............oyoo....
+.........................o......
+................................
+................................
+................................
+................................
+................................
+...............P................
diff --git a/parts_pl_src/back/pl_gloves_slung.txt b/parts_pl_src/back/pl_gloves_slung.txt
new file mode 100644
index 0000000..aa187f2
--- /dev/null
+++ b/parts_pl_src/back/pl_gloves_slung.txt
@@ -0,0 +1,16 @@
+# pl_gloves_slung: pixellab_src/pl_tasdevil/pl_gloves_slung.png minus base.png
+# pivot at (41, 31)
+.P...........
+......oo.....
+....ooobo....
+....obbaoo...
+..ooooccbbo..
+.obabocbbbbo.
+.occcocbbbabo
+.obbbcobcbbao
+ocbbbbcocbbbo
+oc.b.bbocccco
+oc.b.bbocccoo
+occbbbcooooo.
+.occcco......
+..oooo.......
diff --git a/parts_pl_src/back/pl_honeycomb.txt b/parts_pl_src/back/pl_honeycomb.txt
new file mode 100644
index 0000000..01ec5d9
--- /dev/null
+++ b/parts_pl_src/back/pl_honeycomb.txt
@@ -0,0 +1,21 @@
+# pl_honeycomb: pixellab_src/pl_weevil/pl_honeycomb.png minus base.png
+# pivot at (36, 31)
+......ooo...............
+.....ozzzoooo...........
+....ozxxxzzzzoooo.......
+...ozxxyxxxxxzzzzo......
+...ozxyyyxxxxxxxxzooo...
+...ozxyyyxxxxxxyyxzzzo..
+..ozxxyyxxxxxxyyyyzxxzo.
+.ozxyyxxyxxxxxyyyyxxxxzo
+.ozxyyxyyyxxxyyyyxyyyxzo
+.ozxyyxyyyxyyyyxxxyyyxzo
+.ozyxxxyyyxyyyxyyxyyyxzo
+ozxyxyyxxxyxyxyyyyxxxzo.
+ozxyxyyyxyyxxxyyyyxyzzo.
+.ozxxyyxyxxxyxyyyxyyzo..
+.ozzzxxxyxxyyyxxxyyyzo..
+.....zzzzxxyyyxzyyyxzo..
+........zPxxxyzzxyyxzo..
+.........zzzzzzzxzzzo...
+..........o.....z..o....
diff --git a/parts_pl_src/back/pl_lantern_pack.txt b/parts_pl_src/back/pl_lantern_pack.txt
new file mode 100644
index 0000000..2f89ba1
--- /dev/null
+++ b/parts_pl_src/back/pl_lantern_pack.txt
@@ -0,0 +1,31 @@
+# pl_lantern_pack: pixellab_src/pl_meerkat/pl_lantern_pack.png minus base.png
+# pivot at (32, 34)
+.............ooo.....
+............obbbo....
+...........obbcbbo...
+..........obbcocbo...
+..........obco.obo...
+..........obo..obo...
+..........oco..oco...
+.........occo..ooo...
+.........obo....o....
+.........obo...ooo...
+.........obo..ozzzo..
+........obbo..ozzzo..
+........obo..ozyyyzo.
+........obo.ozyyyyyzo
+.......obbo.ozyxxxyzo
+.......obo..ozyxwwyzo
+.......obo..ozyxwxyzo
+......ocbo..ozyyyyyzo
+......oboo...ozzzzzo.
+.......oo.....ooooo..
+.....................
+.....................
+.....................
+.....................
+.....................
+.....................
+.....................
+.....................
+P....................
diff --git a/parts_pl_src/back/pl_moss_mantle.txt b/parts_pl_src/back/pl_moss_mantle.txt
new file mode 100644
index 0000000..eeee4ee
--- /dev/null
+++ b/parts_pl_src/back/pl_moss_mantle.txt
@@ -0,0 +1,22 @@
+# pl_moss_mantle: pixellab_src/pl_weevil/pl_moss_mantle.png minus base.png
+# pivot at (36, 31)
+...........oo...ooo..............
+.........oozzooozzzoooo..........
+.......oozzxxxyyxxxzzzzo.........
+.....oozzxxxxxxxxxxxxxxooo.......
+...oozzxabxxxxxxxxcaxxxxzzo......
+..ozzyxxccyxxxxxxxccxxxxxyzo.....
+.ozzxxyxxyxxx.bxxxxyxxxxxxzo.....
+.ozooyyyxxxxxccxxxxxxxxcaxzo.....
+ozo..oyyyxxxxyyPxxxyxxxccxxzoo...
+ozo...oyyyxxxxxxxxcabxxyyxxxzzo..
+ozo...oozyyyyxyxxxyccxxxxabxzzo..
+.o......ozzyyyyxxxxyyxxxxccxxyzo.
+.........oo.zzyyxxxxxxxxxxxxxxzo.
+...........o.zyyyxxxyyxxxxyyxyzzo
+............ozzyyyyyyyxyyxyyxyzzo
+............o..zzyyyzyyyyyyyyyzzo
+...............zzyyzzyyyyzzyyzzzo
+.................zzo.zzyy.zyyooo.
+...................o..zzz..zzo...
+.............................o...
diff --git a/parts_pl_src/back/pl_parasol.txt b/parts_pl_src/back/pl_parasol.txt
new file mode 100644
index 0000000..1b21872
--- /dev/null
+++ b/parts_pl_src/back/pl_parasol.txt
@@ -0,0 +1,38 @@
+# pl_parasol: pixellab_src/pl_teapot/pl_parasol.png minus base.png
+# pivot at (32, 39)
+..................ooo..................
+..................ozo..................
+................ooozo..................
+.............ooozzzzzooooo.............
+...........ooyyyzzyyyzzyzzoo...........
+.........ooyxxyzzxyyyyyzyyzzoo.........
+........oyxxxyzyxyyyyyyyzyyzzzoo.......
+.......oyxxyyyzxxyyyyyyyzzyyzzzzo......
+......oyxxyyyzxxyyyyyyyyyzyyyzzzzo.....
+.....oyxyyyyzyxxyyyyyyyyyzzyyyzzzzo....
+....oyxyyyyyzyxyyyyyyyyyyyzyyyyzzzzo...
+...oyxyyyyyzyxyyyyyyyyyyyyzzyyyzzzzoo..
+..oyxyyyyyyzyxyyyyyyyyyyyyzzyyzzzzzzo..
+.oyxyyyyyyzyyyyyyyyyyyyyyyzzzzzzzzzzzo.
+.oyyyzzzyyzyyyyzzzzzzzzzyyyzzzzzzzzzzo.
+.oyzoooozzzyyzzooooooooozzyzzzzoooozzzo
+ozoo....oooyzoo...ozo...oozzooo....oozo
+oo........ooo.....ozo.....ooo........oo
+..................ozo..................
+..................ozo..................
+..................ozo..................
+..................oyo..................
+..................oyzo.................
+..................oyzo.................
+...................yzo.................
+...................yzo.................
+.................o.yzo.................
+.................ozzzo.................
+..................zzz..................
+.......................................
+.......................................
+.......................................
+.......................................
+.......................................
+.......................................
+...................P...................
diff --git a/parts_pl_src/back/pl_pennant.txt b/parts_pl_src/back/pl_pennant.txt
new file mode 100644
index 0000000..aea17f0
--- /dev/null
+++ b/parts_pl_src/back/pl_pennant.txt
@@ -0,0 +1,25 @@
+# pl_pennant: pixellab_src/pl_dodo/pl_pennant.png minus base.png
+# pivot at (41, 36)
+.oo...........
+oyzoo.........
+oyzyxooo......
+oyzyyyxxooo...
+oyzyyyyxxxyoo.
+oyzyyyyxxxyyyo
+oyzyyyyyyyyooo
+oyzyyyzzooo...
+oyzyyooo......
+oyooo.........
+oyo...........
+oyo...........
+oyo...........
+oyo...........
+ozo...........
+ozo...........
+ozo...........
+ozo...........
+ozo...........
+oPo...........
+ozo...........
+oz............
+.o............
diff --git a/parts_pl_src/back/pl_pinwheel.txt b/parts_pl_src/back/pl_pinwheel.txt
new file mode 100644
index 0000000..368c3fb
--- /dev/null
+++ b/parts_pl_src/back/pl_pinwheel.txt
@@ -0,0 +1,36 @@
+# pl_pinwheel: pixellab_src/pl_meerkat/pl_pinwheel.png minus base.png
+# pivot at (32, 34)
+...........o............
+..........ozo...........
+.........ozzo...........
+........ozyzo...........
+........ozzzzo.ooooo....
+.......ozyzzzoozzzzzo...
+.......ozxzzzozyxyzzzo..
+.......ozyyzzzyyzzzzzzo.
+........ozyyzzzzzzzzzzzo
+....oooooozybabzzzzoooo.
+...ozzzzzzzzbbbyzoo.....
+...ozzzzzzzyzzzyyo......
+....ozyzzzyzzzzzxzo.....
+.....ozzyxzzcozzzzo.....
+......oozzzbcozzzzo.....
+........oobbcozzzzo.....
+.........obbcozzzo......
+.........obcoozzo.......
+.........ooo.ozo........
+..............o.........
+........................
+........................
+........................
+........................
+........................
+.........oo.............
+P.......oco.............
+......ooco..............
+.....oobco..............
+.....obbco..............
+.....obbco..............
+.....obco...............
+.....obco...............
+......oo................
diff --git a/parts_pl_src/back/pl_potion_flasks.txt b/parts_pl_src/back/pl_potion_flasks.txt
new file mode 100644
index 0000000..cd93009
--- /dev/null
+++ b/parts_pl_src/back/pl_potion_flasks.txt
@@ -0,0 +1,38 @@
+# pl_potion_flasks: pixellab_src/pl_weevil/pl_potion_flasks.png minus base.png
+# pivot at (36, 31)
+.....ooo..................
+....oyyzo.................
+....o111o.................
+....o11oo........oo.......
+....o11o........oxyo......
+...o1111oo.....o1yzo......
+..o1x11111o....o212o......
+.o1xxx11x11oooo112o.......
+.oxxxxxxxx1o11111o........
+.obabbbbcco11xx11o........
+ozyyzoccxcobaxx111o.......
+ooozzyycco.cccbxx1o.......
+....ozzyzo.cxcccaco.......
+......oPyo.c.ccxzoo.......
+.......ozyo.cccyy1o.......
+........ozyo.co.12ooo.....
+.........ozoooo211o11oo...
+..........oyo...1111111o..
+..........oyo...1111x1x1o.
+...........oyo...x11xx11o.
+...........oyo..xxxxxxbb1o
+...........oyoo.aabbbbbc1o
+...........ozyo1cabbbxcc1o
+...........ozzo.caaccccc2o
+...........ozz.o.ccxccc2o.
+...........ozz..o2cccc2o..
+...........oyo3.oo2222oo..
+...........oyo....oooo....
+...........oyo............
+...........ozo............
+..........oyo.............
+..........oyo.............
+.........oyzo.............
+........ozzoo.............
+.........ozo..............
+..........oo..............
diff --git a/parts_pl_src/back/pl_quills_gold.txt b/parts_pl_src/back/pl_quills_gold.txt
new file mode 100644
index 0000000..fd45b0d
--- /dev/null
+++ b/parts_pl_src/back/pl_quills_gold.txt
@@ -0,0 +1,45 @@
+# pl_quills_gold: pixellab_src/pl_manatee/pl_quills_gold.png minus base.png
+# pivot at (32, 34)
+...........................o..........................
+...........................o..........................
+...........................o..........................
+....................oo....oo.....oo...................
+....................oo....oyo....oo...................
+...............o....ozo...oxo...oyo....oo.............
+...............oo...oyo...oxo...oxo...ozo.............
+...............oo...oyo..oyxzo..oxo...ozo.............
+...............ozo..oyyo.oyxyo.oyxo..oyo..............
+...............oyo..oyxo.oyxyo.oxyo..oxo..............
+.........oo....oyyo.oyxo.oyxyo.oxyo.oyxo....oo........
+.........ozo...oyxoooyxyooyxyooyxyoozxyo...ozo........
+.........ozzo..oyxyooyxyooyxyooyxyooyxzo..oxoo........
+..........oxyo..oyxzozxxzoyxyozyxzozxxo..oyxo.........
+..........ozxyo.oyxyozyxzoyxyozyxzozxzo.oyxzo.........
+...........oyxyooyyxyzyxzzyxyyzxxzzxxzooyxyo..........
+....ooo....ozxxyooyxxzyxzzyxyyyxyzyxyzozxxzo....ooo...
+....ozyoo...oyxxyoyxxyyxxyyxyyyxyyxxzooyxzo...oozzo...
+.....ozxyoo.ozzxyyyxxxyxxzxxyyxxyyxxzzyxzzo.oozxzo....
+......ozxxyo.ozxxyyyxxyooooooooxyyxyzyxxzo.oyxxyo.....
+.......oyxxyoozyxxyyxoo........ooyxyyyxzzoozxxyo......
+........ozyxxzzyyxyyo............ooyyxxzzzyxxzo.......
+.........ozyxxyzyxxo..............ooxxyzyxxxzo........
+.oooooooo.ozzxxxyyo................oxyyyxxzzo...oooooo
+.oozxxxyyooozyxxxo..................oyyxxyzoooooxxxzoo
+...oyyxxxxyyzyyxo....................oxxyzozzyxxxyyo..
+....oooyyxxxxyyyo....................oxyzzyxxxyyyoo...
+.......oyyyyxxxo......................oyyxxxzzzoo.....
+........oooyyyxo......................oxxxyyooo.......
+...oooooyyyyyyo........................oyyyyyyoooooo..
+ooozxxxxxxxxxxo........................oxxxxxxxxxxxzoo
+ooooooyyyyyyyyo............P...........oxyyyyyyyyooooo
+......oooozyyo..........................oyyyyoooo.....
+.......oozzxxo..........................oxxyyoo.......
+......ozyxxxo............................oxxxxzoo.....
+....ooxxxxyyo............................ooyzxxxzoo...
+...ozxyyoozz..............................oyyzzzxzzo..
+...ooooooyxo..............................oxxooooooo..
+.......oyxo................................oxzo.......
+......ozxyo................................ozxyo......
+.....ozxooo................................ooozxo.....
+....ozoo......................................ooyo....
+....ooo........................................ooo....
diff --git a/parts_pl_src/back/pl_ruff_feather.txt b/parts_pl_src/back/pl_ruff_feather.txt
new file mode 100644
index 0000000..0e7c3f3
--- /dev/null
+++ b/parts_pl_src/back/pl_ruff_feather.txt
@@ -0,0 +1,55 @@
+# pl_ruff_feather: pixellab_src/pl_shoebill/pl_ruff_feather.png minus base.png
+# pivot at (32, 34)
+.........................ooo.....................
+........................oabo.....................
+......................ooaabo.....................
+...............oo.....oaaao....oooo..............
+..............occo...ocaaco...oaaao..............
+..............ocaoo..oaaaco.ooaaaco..............
+..............ocaco.obaaacoooaaaaco..............
+..............ocaaooobaaacooaaaaco...............
+......oooo....ocaacoobaaacocaaaaco...ooooo.......
+......occcoo..ocaaccobaaacccaaacco.oocaaaao......
+......ocaacco.ocaaaccbaaaccaaaaccoocaaaacco......
+......ocaaaccoocbaaacbaacccaaacccocaaaaaco.......
+.......ocaaaccoccaaaccaacccaaaccccbaaaccco.......
+.......ocaaaaccccaaaccaacccaaacccaaaabcoo........
+........ocaaaaccccaaccooooooacccaaaacccoooooo....
+..ooooooooaaaaacccacco.....occccaaacccccccaaaoo..
+..obacccocccaaaccccco......oooccaacccccaaaaaaaao.
+..ocaaaccccccaaacccco........occaccccaaaaaaaaaoo.
+...ocaaaaaaccccacoooo........occccccaaaaacccco...
+....occaaaaaaccco............ooccccaaaaacccco....
+.....occaaaaacoo...............occcaaaaaccco.....
+.....occccaaoo..................occcaacccco......
+...oooccccaao....................cccccccccoo.....
+.oocaaaacaacoo...................occccaaaccco....
+obcaaaaaaaacco....................ocaaaaaaaaaoo..
+ooccccaaaacco.....................occaaaaaaaaaco.
+..oocccccccco.....................occccaaacccaao.
+...oooccccco......................occaaacccccccco
+...occaaaco.......................cccaaaccccoooco
+..ocaaaaaco............P.........occccaaaaaoo..oo
+.obaaccaacco.....................cccccaaaaaao....
+ocaacccccccco...................occaaaccccccco...
+occcccccaacco................ooocccaaacccccccbo..
+ooooocaaacco................ooccccccaaaaccooooo..
+...ocaaaaco................ooccccccccaaaaaoo.....
+...oaaacao.................occcaaaccccaaaaaco....
+..ocacccco................occcccaaacccccbaaao....
+..occccco................occccccaaacccocccaaao...
+..ocoocao................occaacccaaac.ooocccao...
+..ocooa.o...............occcaaacccaaco..ooocao...
+..oo.oa.o..............occcccaaccccaao.....oo....
+.....oaco.............occacccaacoccaao...........
+.....oaco............occaabccaacoocbao...........
+.....oboo.o........oocccaabcccacooobao...........
+.....ooooacoooooooocccccaaboccaco.ooco...........
+........oaccccccccccccccaaboocaco..ooo...........
+........oacccccccccccccccaboooaco................
+.........ocooocccocccccocabo.oboo................
+.........oco.occcoccccoocaoo.ooo.................
+..........oo.occooocccooobo......................
+..............oco.oocoo.ooo......................
+...............oo..oco...........................
+....................oo...........................
diff --git a/parts_pl_src/back/pl_saddle_riding.txt b/parts_pl_src/back/pl_saddle_riding.txt
new file mode 100644
index 0000000..ff84cf0
--- /dev/null
+++ b/parts_pl_src/back/pl_saddle_riding.txt
@@ -0,0 +1,19 @@
+# pl_saddle_riding: pixellab_src/pl_pangolin/pl_saddle_riding.png minus base.png
+# pivot at (38, 38)
+..ooo........ooo....
+.ozyyo......oczyo...
+ozcczyo....ocbacyo..
+o..oczyoooo...acyo..
+....ozyc.aaaa.acyo..
+....ozyccaaaaacczo..
+.....zzycaaaac.zo...
+.....ozzy.ccccyzo...
+.....oozz.yyyyzcyo..
+......oozccccccccy..
+.......oycaaaa.acy.o
+.......ozcaaaaaacyyo
+.......ozyaaaaaccyo.
+.......ooyyPaacccyo.
+........ozzybacyyo..
+.........oozzzzzo...
+..........ooooo.....
diff --git a/parts_pl_src/back/pl_satchel.txt b/parts_pl_src/back/pl_satchel.txt
new file mode 100644
index 0000000..0cf8e09
--- /dev/null
+++ b/parts_pl_src/back/pl_satchel.txt
@@ -0,0 +1,24 @@
+# pl_satchel: pixellab_src/pl_pangolin/pl_satchel.png minus base.png
+# pivot at (38, 38)
+..ooooooooooo......
+.ocaaaaaaaaaao.....
+occcabbbbbbbbao....
+obbcbbbbbbbbbbo....
+obbcbbbbbbbbbbo....
+obbccbbcyybbbco....
+obbcbcczzzyccco....
+obbcbbbzyzybbbo....
+obbcbbbzyyybbbo....
+obbc..bbzzbbbco....
+oo.ccb.bcc..boo....
+..obooooooooooboo..
+..ocbooaaabbbbbbao.
+...ocbocabbb.b...ao
+...oocb.bbbbbbb...o
+....oobc.bbbccbbbbo
+.....obccbbcyyybbco
+.....obcbcc.zzyccbo
+.....obcbcczyyycbbo
+.....obcbbbb.zbbbbo
+.....ooccPbbccbbbo.
+.......ooooooooooo.
diff --git a/parts_pl_src/back/pl_scallop_shell.txt b/parts_pl_src/back/pl_scallop_shell.txt
new file mode 100644
index 0000000..3014852
--- /dev/null
+++ b/parts_pl_src/back/pl_scallop_shell.txt
@@ -0,0 +1,20 @@
+# pl_scallop_shell: pixellab_src/pl_weevil/pl_scallop_shell.png minus base.png
+# pivot at (36, 31)
+........ooo.......
+.....ooozzzoo.....
+....oyyzxxyzzo....
+..oozxxxxxyxxzo...
+.ozyyxxxxyyxxyzo..
+.ozxyxxyxyyxxyxzo.
+ozxyyxxyxyxxyxxzo.
+ozxyyxyyxyxxyxxzzo
+ozyxyxyyyyxyxxyyzo
+ozzxyxyyyyyyxzyyzo
+.ozyyyyyyyyyzyyyzo
+.ozzyyyyyyyzzyzzo.
+..ozzyyyyyyzyzzo..
+..o.zyyyyyzzzoo...
+.....zzzzzzzz.....
+.......oP2222.....
+........o.2222....
+.........o........
diff --git a/parts_pl_src/back/pl_scuba_tank.txt b/parts_pl_src/back/pl_scuba_tank.txt
new file mode 100644
index 0000000..93c9ada
--- /dev/null
+++ b/parts_pl_src/back/pl_scuba_tank.txt
@@ -0,0 +1,34 @@
+# pl_scuba_tank: pixellab_src/pl_shoebill/pl_scuba_tank.png minus base.png
+# pivot at (32, 34)
+........oooooooo.....
+.......oxxxxoxxyo....
+......oyyzzzoyyzo....
+......oyzooooooo.....
+......ozo...ozxzoo...
+......ozo..ozyyzzo...
+......ooo.oyyxxyyzo..
+.........oyyxxxyyzzo.
+.........oyyxxxyyyzo.
+..........oyxxxyyzzo.
+...........oxxxyzzzo.
+...........ooooooooco
+..........ooozzzzzcco
+........ooozcozzzzoo.
+.......oozzzcooooozo.
+......ozzcooooyyyzzo.
+P....ozzco...oyxxyzo.
+.....ozco....oyxxyzo.
+....ozzo....oyyxxyzo.
+....ozco....oyyxxyzoo
+....ozoo.....ooooooco
+....ozo.......ozzzcco
+....ozo........oooooo
+....ozo........oyzzzo
+....ozo........ooyzzo
+....ozo.........oyzzo
+....oczo........oyzoo
+....oozo........ozzo.
+.....ozco.......ooo..
+.....ooco............
+......3oo............
+.......o.............
diff --git a/parts_pl_src/back/pl_shell_hex.txt b/parts_pl_src/back/pl_shell_hex.txt
new file mode 100644
index 0000000..179fc99
--- /dev/null
+++ b/parts_pl_src/back/pl_shell_hex.txt
@@ -0,0 +1,26 @@
+# pl_shell_hex: pixellab_src/pl_y_dungbeetle/pl_shell_hex.png minus base.png
+# pivot at (31, 35)
+.............oooooooo.............
+...........ooyxxxxxxyoo...........
+.........oozzyxxxxxxyyzooo........
+.......ooyxzzyyxxxxyyzzxxyo.......
+......oyyyxxzzyyyyyyyzyxxyyo......
+.....oyyyyxxzzzzzzzzzzyxyyyyo.....
+....ozyyyyyzzyxxxxxxyzzyyyyyyo....
+....ozyyyyzzyyyyyyyyyyzzyyyyyzo...
+...oxzzyyzzyyooooooooyyzzyyyzzzo..
+..oyxxzzzzzoo........ooozzzzzzxo..
+..oyyxzzxoo.............ooyzzxxyo.
+.oyyyxzxo.................ozzxyyo.
+.oyyyzzo...................ozyyyo.
+.ozyyzo.........P...........ozyyzo
+ozzyyo.......................oyyzo
+ozzzzo.......................ozyzo
+ozzzo.........................ozzo
+ozzzo.........................ozzo
+ozzzo.........................ozzo
+.ozzo..........................ozo
+.ozzo..........................ozo
+..ozo..........................oo.
+..ozo.............................
+...oo.............................
diff --git a/parts_pl_src/back/pl_shoulder_pads.txt b/parts_pl_src/back/pl_shoulder_pads.txt
new file mode 100644
index 0000000..c6539e5
--- /dev/null
+++ b/parts_pl_src/back/pl_shoulder_pads.txt
@@ -0,0 +1,20 @@
+# pl_shoulder_pads: pixellab_src/pl_weevil/pl_shoulder_pads.png minus base.png
+# pivot at (36, 31)
+........ooo....................
+...oo.ooaaooo..................
+..oxyocaccccco..ooooooo........
+..oxcacccooooooocaaccxxoo......
+.occacooo.....oaaccccxxcco.....
+ocoooo........oacc..accaccoo...
+oo...........oPacbb..aaaccxyo..
+.............oaccbbaaaaaacxyo..
+............ocaccxxaaaaaacyco..
+............ocaccyyaaaaaaaccco.
+............ocaccccaaaaaacccco.
+............ocacccc.caaxx..ccco
+............ocacccc.cccyy..ccao
+.............ocaccccccccc..ccco
+.............occaacccccccccaaco
+..............occbaaaaaaaaaaooo
+...............ooooccccccccoo..
+..................ooooooooo....
diff --git a/parts_pl_src/back/pl_smokestack.txt b/parts_pl_src/back/pl_smokestack.txt
new file mode 100644
index 0000000..1089304
--- /dev/null
+++ b/parts_pl_src/back/pl_smokestack.txt
@@ -0,0 +1,33 @@
+# pl_smokestack: pixellab_src/pl_teapot/pl_smokestack.png minus base.png
+# pivot at (32, 39)
+..........o........
+.........ogo.......
+.........oggo......
+.........ogggo.....
+.........ogggo.....
+........ogggggo....
+........ogggggo....
+.....oo.ogggggoo...
+....oggoogggggogo..
+....oggoggggggogo..
+...oggggggggggoggo.
+...ogggggggfgggggo.
+...oggggggffggggggo
+...ogggfgfffggggggo
+....oggffffffggggo.
+....ogggfffffggggo.
+.....ogggfffggggo..
+.....oooogffgggo...
+.....ohggoooooo....
+.....ohhggggggo....
+......oooohggho....
+......ohhhooooo....
+......oghghhho.....
+......ohhhhhho.....
+.......ogghgo......
+........oohho......
+.........ogho......
+.........ohho......
+..........oho......
+...........oo......
+P..................
diff --git a/parts_pl_src/back/pl_snowflake_back.txt b/parts_pl_src/back/pl_snowflake_back.txt
new file mode 100644
index 0000000..0c25cdf
--- /dev/null
+++ b/parts_pl_src/back/pl_snowflake_back.txt
@@ -0,0 +1,40 @@
+# pl_snowflake_back: pixellab_src/pl_meerkat/pl_snowflake_back.png minus base.png
+# pivot at (32, 34)
+....................oo....................
+...................ojjo...................
+..................ojijjo..................
+..................ojijjo..................
+.................ojiijjko.................
+.................oiiijjjo.................
+................ojiiijjjko................
+................ojjiijjkko................
+...............oijjiijjkjko...............
+...............oiiiiijjjjko...............
+...............ojiiiijjjkko...............
+..oooooo.oo.....ojjiijjkko.....oo.ooooooo.
+.oiiiiijoijo.....ojiijjko.....oiioiiiiiiio
+ojiiiiijjiijo...ojiiijjjko...ojiijiiiiijjo
+ojjjiiiiiiijoooojiiiijjjjkoooojiiiiiijjjo.
+.ojjjiiiiiijoiiojjiiijjjkkoiiojiiiiijjjjo.
+.okjjjjiiiiijiijojjiijjkkojiijjiiijjjjjo..
+..ojjjjjiiijiiijoojiijkkoojiiiiiijjjjjko..
+...okkkjjjiiiiijo.ooooooojjiiiijjjkkkko...
+....okjjjjjjjiijo.......ojjiijjjjjjjko....
+....ojjjkkkjjjoo.........oojjjjkkkjjko....
+....okkkkokjjo.............ojjjkokkko.....
+.....oooookko...............ojjjoooo......
+.........ooo.................oooo.........
+..........................................
+..........................................
+.....ooo..........................oo......
+....ojjo..........................ojo.....
+....oiiio........................oiijo....
+....ojjiio......................oiijoo....
+...ojjjiiio...................ooiiiijjo...
+..ojiiiiijjo.........P.......ojjjiiiiijo..
+.ojiiiiijjjko..............ookkjjjjiiiio..
+.ojiiijjjjjko.............okkokjjjjjiiijo.
+ojiijjjjkjjko..............oookjjkjjjjiio.
+oijjjjjkkjjo.................okjjkjjjjjjko
+okkkkkkkokko..................okkokkkkkkko
+.ooooooo.oo....................oo.ooooooo.
diff --git a/parts_pl_src/back/pl_solar_panels.txt b/parts_pl_src/back/pl_solar_panels.txt
new file mode 100644
index 0000000..c8520f6
--- /dev/null
+++ b/parts_pl_src/back/pl_solar_panels.txt
@@ -0,0 +1,16 @@
+# pl_solar_panels: pixellab_src/pl_teapot/pl_solar_panels.png minus base.png
+# pivot at (32, 39)
+.........oooooooo..........................oooooooo.........
+........o11111111oooooo..............oooooo11211111o........
+.......o1xyyxyyxzzyy122o............o2211xyxxxzzxzz1o.......
+......o1yxyxyyyzzzyzzz1o............o3yyxxyxzxzzzzyz2o......
+.....ooxxxxyyzxzzyzzz13o............o33yxxxzzzxzzyzzzoo.....
+.....o1xxxxxxxyyyyyyy33o............oo31xxxxxxxxxyyyyyo.....
+....o1yxyxzzzxzzyzzz13oo.............oo31xyxzzzxzzyzzz1o....
+...ooxxzxzzzxzzyzzzy3oo...............oo3zxxxzzzxzzyzzzoo...
+...o1xxxxxxxyyyyyyy13o.................o31xxxxxxxyyyyyzyo...
+..o1xxzxzzzyzzyzzz133o.................o33xxzxzzzyzzyzzz1o..
+.o2xxzzzzzyzooozzz33o...................o33oooozzzzzzyzzz2o.
+o2zzzzyyyyzoo..oz33o.....................oo....ozzzyyyzyyz2o
+o113333322o.....o3o...........P.................o3333333311o
+.oooooooooo.....ooo..............................oooooooooo.
diff --git a/parts_pl_src/back/pl_sprouts_back.txt b/parts_pl_src/back/pl_sprouts_back.txt
new file mode 100644
index 0000000..5594740
--- /dev/null
+++ b/parts_pl_src/back/pl_sprouts_back.txt
@@ -0,0 +1,30 @@
+# pl_sprouts_back: pixellab_src/pl_weevil/pl_sprouts_back.png minus base.png
+# pivot at (36, 31)
+...................ooooo..............
+............ooooo.o11111oo............
+...........o11111o31111113o...........
+..........o1111113333333123o..........
+.........o11111333331111113o..........
+.........o11113111133111113o..........
+.........o11111111113111113o..........
+.........o31111111111311133o..........
+.........o3311111111131133o...........
+..........o333111111133333o...........
+...........oo33333333333oo............
+.............ooooo33333o..............
+...ooooooo.......oooooo...oooo........
+..o1111113oo.....o3o.....o3311ooooo...
+.o1111333333o....o3o....o3313311111o..
+o111133311113o...o2o...o311333311111o.
+o111311111113o...o1o...o3111111331113o
+o113111111133o...o1o...o3311111131113o
+o31111111333o....o1o....o311111113113o
+o331113333oo.....o1o.....o33111111133o
+.o333333ooo......o1o......oo33331133o.
+..oooooo.oo......o3o.......oooo3333o..
+.........o3o.....o3o......o3o..oooo...
+.........o1o.....o3o.....o1o..........
+.........o1o.....o.o.....o1o..........
+.........o3o.............o.o..........
+.........o.o..........................
+....................P.................
diff --git a/parts_pl_src/back/pl_swords_crossed.txt b/parts_pl_src/back/pl_swords_crossed.txt
new file mode 100644
index 0000000..df2869b
--- /dev/null
+++ b/parts_pl_src/back/pl_swords_crossed.txt
@@ -0,0 +1,43 @@
+# pl_swords_crossed: pixellab_src/pl_weevil/pl_swords_crossed.png minus base.png
+# pivot at (36, 31)
+................................o.......
+..oo...........................oaoo.....
+.oaao..........................oaaao....
+oaabo..........................ocbco....
+occco.........................occcoo....
+.oocao.......................ocaco......
+..occao......................occo.......
+...ocaco....................ocaco.......
+....ocao...................ocaco........
+....occao...oo........oo...oaco.........
+.....occao.oxxo......oxxo.ocaco.........
+......occaoxxyyo....oyyxxocaco..........
+.......ocaxxyoo......ooyxxyao...........
+.......oyxxyo..........oyxxyo...........
+......oxxxyxxo.........oyyxxxo..........
+.....oxxyyyyxxo.......oxxyyyxxo.........
+....oyyyooyyyxoooooo.oxxyyyoyyxo........
+.....oyo..oxyozyyyyyooxxyyo.oyxo........
+......o...oooooozzyyyoxyyyo..oo.........
+................oozzyzoyyoo.............
+..................oPzyyzozo.............
+...................ooozyyzo.............
+......................ozyzo.............
+.......................ozzo.............
+.......................ozyyo............
+........................ozyo............
+........................ozyzo...........
+.........................oyzxo..........
+.........................oyzxxo.........
+.........................oyzyxxo........
+.........................oyzyyxxoo......
+.........................oyzyyyxxo......
+.........................oyzoyyyxxo.....
+........................oyyo.oyyyxxo....
+........................oyyo..oyyyxxo...
+.......................oyyzo...oyyyxxo..
+......................oyyzo.....oyyyxxo.
+....................ooyyyo.......oyyyxo.
+..................oozyyzo.........oyyyyo
+..................oyzzooo..........ooooo
+..................oooo..................
diff --git a/parts_pl_src/back/pl_tufts_shoulder.txt b/parts_pl_src/back/pl_tufts_shoulder.txt
new file mode 100644
index 0000000..b2d01d2
--- /dev/null
+++ b/parts_pl_src/back/pl_tufts_shoulder.txt
@@ -0,0 +1,23 @@
+# pl_tufts_shoulder: pixellab_src/pl_pangolin/pl_tufts_shoulder.png minus base.png
+# pivot at (38, 38)
+........ooo.......................
+.......o211o..............o...ooo.
+....o.o1111o............oo2ooo111o
+...o1o21112o.........o.o112111111o
+...o12111122o.......o1o1111111112o
+..o111111122o.......o12111111112oo
+..o111111122o......o111111111122o.
+.o11112111222o....o1111111111222o.
+.o21112111222o...oo1111112111122o.
+o221112112222o...o11111122112122o.
+o22221221222o....o.2211122121122o.
+o3122122222o........21..2222133o..
+o3322222ooo.....o....1....22333o..
+.o33222o........o3...1....3.33oo..
+.o33322.........o3.2222...3..oo...
+..o33ooo........oo3.3223..3.......
+...oo.............o3...3333.......
+...................o...3..3o......
+......................3..ooo......
+......................3o..........
+.....................ooP..........
diff --git a/parts_pl_src/back/pl_windup_key.txt b/parts_pl_src/back/pl_windup_key.txt
new file mode 100644
index 0000000..1f7aafb
--- /dev/null
+++ b/parts_pl_src/back/pl_windup_key.txt
@@ -0,0 +1,15 @@
+# pl_windup_key: pixellab_src/pl_meerkat/pl_windup_key.png minus base.png
+# pivot at (32, 34)
+P...................
+....................
+....................
+..............ooo...
+.............ozzzo..
+............ozzzzzo.
+.......ooooozzzzzzo.
+......ozzzzzxzzozxzo
+.......ozzzzzzzozzzo
+.......ooooozzzzzzo.
+............ozzzzo..
+.............ozzo...
+..............oo....
diff --git a/parts_pl_src/back/pl_wings_butterfly.txt b/parts_pl_src/back/pl_wings_butterfly.txt
new file mode 100644
index 0000000..6d8b0df
--- /dev/null
+++ b/parts_pl_src/back/pl_wings_butterfly.txt
@@ -0,0 +1,33 @@
+# pl_wings_butterfly: pixellab_src/pl_velvetmite/pl_wings_butterfly.png minus base.png
+# pivot at (32, 36)
+..oooooo......................................oooooo..
+.ozzzzzzoo...................................ozzzzzzo.
+ozzyyyyyzzo................................oozyxyyyzzo
+ozyybcyxxyzo..............................ozyxyybbyyzo
+ozycaacyyxxzo............................ozyxyycaacyzo
+ozycaacyyyxxzo..........................ozyxyyycaacyzo
+ozyzcczyyyyxxzo........................ozyxyyyyycczyzo
+ozyyyyyyyyyyyxzo......................ozyxyyyyyyyyyyzo
+.ozyyyyybbcyyyyzo....................ozzyyybbbyyyyyzo.
+..ozyyycaaacyyyzo....................ozyyycaabcyyyzzo.
+..ozyyycaaacyyyyzo..................ozyyyycaabcyyyzo..
+..ozyxycaaccyyzzo....................ozzyycaaacyxyzo..
+..ozyxxycccyyzzo......................ozzyycccyyxyzo..
+..ozyyyyyyyyyzoo......................oozyyyyyyyyxzo..
+..ozycayyyyyzzo........................ozzyyyyybayzo..
+..ozycayyyyzzo..........................ozzyyyyccyo...
+...ozyyyyyyzo............................ozyyyyyyzo...
+....ozyyyyzzo............................ozzyyyyzo....
+.....oozzzzzo............................ozzzzzoo.....
+.......ooooo..............................ooooo.......
+......ozzzzo...............P..............ozzzzo......
+.....ozyyyzo..............................ozyyyzo.....
+....ozyyyyo................................ozyyxzo....
+...ozyabyyo................................ozycaxzo...
+...ozxccyzo................................ozyccxzo...
+...ozyyyyzo................................ozyyyxzo...
+...ozycayzo................................ozyaayzo...
+....oycbyzo................................ozyccyo....
+....ozyyzzo................................ozyyyzo....
+.....oozzoo................................ozzzoo.....
+.......ooo.................................oooo.......
diff --git a/parts_pl_src/back/pl_wings_fairy.txt b/parts_pl_src/back/pl_wings_fairy.txt
new file mode 100644
index 0000000..b62d238
--- /dev/null
+++ b/parts_pl_src/back/pl_wings_fairy.txt
@@ -0,0 +1,17 @@
+# pl_wings_fairy: pixellab_src/pl_x_loris/pl_wings_fairy.png minus base.png
+# pivot at (31, 41)
+.oooo......................................oooo.
+ozzyzoo..................................oozyyyo
+ozxxxzoo................................ooyxxxyo
+ozxxyyyooooo........................oooooyyyxxzo
+.oyxxyyyxxyo........................oyyxyyyxxxzo
+.ozyxxxyyyyoo..........P...........ooyyyyxxxxzo.
+..ozyxxxyyyyoo....................oozyyyxxxxzo..
+...ozzxxxyyyzoo..................oozyyyxxxzzo...
+....oozzzyyyzzo..................ozzyyyzzzoo....
+......oooozzzo....................ozzzzooo......
+.......ozzxyo......................oyxyzo.......
+......ozzxyyo......................oyyxxzo......
+......ozxyyyo......................oyyyxzo......
+......ozzzzzo......................ozzzzzo......
+.......ooooo........................ooooo.......
diff --git a/parts_pl_src/back/pl_wings_ice.txt b/parts_pl_src/back/pl_wings_ice.txt
new file mode 100644
index 0000000..b11e51b
--- /dev/null
+++ b/parts_pl_src/back/pl_wings_ice.txt
@@ -0,0 +1,21 @@
+# pl_wings_ice: pixellab_src/pl_x_basilisk/pl_wings_ice.png minus base.png
+# pivot at (32, 38)
+oooo..........................................oooo
+ojijoo......................................ooiiio
+ojiijjo..................................oooiiiijo
+ojjiiiiooo..............................oojiiiijjo
+.oijiiiiko............................ookiiiiijio.
+.oijjjiiio............................ojjiiijjiio.
+..ojjjjio..............................oiiijjjio..
+..ojjjjio..............................oiijjjjjo..
+...oojjjioo...........................oiijjjioo...
+...ojjijjio.........................ooiijjjijjo...
+..ojiiijjo..........................oiijjjiiiiko..
+...ojjiijo..........................ojjjjjiijjo...
+....ojjijo...............P..........ojjjiijjjo....
+.....ojkkko........................ojjjjjjjoo.....
+......okkkjo......................ojkjjkjoo.......
+......oookkko....................okkkkkko.........
+.........ookko...................okkkkoo..........
+..........ooo.....................ooko............
+....................................o.............
diff --git a/parts_pl_src/back/pl_wings_leaf.txt b/parts_pl_src/back/pl_wings_leaf.txt
new file mode 100644
index 0000000..67136ad
--- /dev/null
+++ b/parts_pl_src/back/pl_wings_leaf.txt
@@ -0,0 +1,36 @@
+# pl_wings_leaf: pixellab_src/pl_pangolin/pl_wings_leaf.png minus base.png
+# pivot at (38, 38)
+..oo.................................ooo.
+..oxo...............................oyxyo
+.oxxo..............................oyxxyo
+.oxyyo...........................ooxxzxyo
+.oxyxyo........................ooyxxzxxyo
+.oxzxyo.......................oyxxxzxxxo.
+.oxzxyo.....................ooxyxxxzxxxo.
+ozxzxyzo...................oyxxyxxzxxxyo.
+ozxzyyyo..................oyxxxyxzyxxxo..
+oyxxzyyzo................oxzxxxyzyxxxzo..
+oyxxzyzyo...............ooxzxxxzxxxxxo...
+oyzxyyzyyo.............oyxyzxxzyxxxxzo...
+oyyzyyzyyzo...........ozxyyzxxzxxxyyo....
+oxyyzzzyyzo...........oxyyyzxzyxzzxxxo...
+oxyyyzzyyzo..........oxzyyyzxzzzxxxxyo...
+oyyyyyzyzyo.........oyxzyyyzzxxxxxxxo....
+.oyzyyzyzyzo........oxyzyyyzyxxyzxxyo....
+.oyyzyyzyyzo........oxyzyyyzxzzyyxzo.....
+.ozyyzzzyyzo.......oxyyzyyzzzyyyyzo......
+..oyyyyzyzzo.......oxyyzyzzyyyyzzo.......
+..oyyyyzyzzo......oxyyyzyzyyyyyoo........
+..ozyzyyzzzo......oxyyyzzyyyyyyyo........
+...oyzyyzooo.....oyyyyyzyyyyyzyzo........
+...oyyzzo........oxzyyzzzzzyyyzo.........
+....ozzo.........oyz..yyyyyyzzo..........
+....ooo.........ozyzzzyyyyyzoo...........
+................ozzzzzzzzyyzo............
+...............ozzzyzzyyyzoo.............
+................o.zzzzoooo...............
+..................ooooo..................
+.........................................
+.........................................
+.........................................
+...................P.....................
diff --git a/parts_pl_src/back/pl_wings_origami.txt b/parts_pl_src/back/pl_wings_origami.txt
new file mode 100644
index 0000000..66854b6
--- /dev/null
+++ b/parts_pl_src/back/pl_wings_origami.txt
@@ -0,0 +1,17 @@
+# pl_wings_origami: pixellab_src/pl_shoebill/pl_wings_origami.png minus base.png
+# pivot at (32, 34)
+oooo.........................................oooo
+oyxxooo...................................oooxxyo
+.ozyxxxooo............................ooooxxxxyo.
+.ozzyxxxyzo..........................oyxxxxxyzzo.
+..oyzyxxyzyo........................ozyxxxxzzyo..
+..oxxzzyyzyo.......................oyzyxxyzyyoo..
+...oxxzzyzo........................oxzyxzzyyxo...
+...oyxxyzo........................oxxzyzzyxxxo...
+....oyyyzo............P..........oyxxzzzxxxxoo...
+....oozzzzo......................oxxxzzyyyyyo....
+.....ozyyoo......................oxxyzzzzzzo.....
+......oyo.......................oozzzyyxxyoo.....
+.......o.........................3.zyyyyyyo......
+....................................oyyyooo......
+.....................................ooo.........
diff --git a/parts_pl_src/back/pl_wings_tattered.txt b/parts_pl_src/back/pl_wings_tattered.txt
new file mode 100644
index 0000000..65a725a
--- /dev/null
+++ b/parts_pl_src/back/pl_wings_tattered.txt
@@ -0,0 +1,20 @@
+# pl_wings_tattered: pixellab_src/pl_armor/pl_wings_tattered.png minus base.png
+# pivot at (31, 38)
+..........oo................................oo..........
+.........ooao..............................oboo.........
+.......oooaao..............................obaaoo.......
+......ooaacao..............................obccaoo......
+.....ooacccao..............................obcccaoo.....
+....ooacbccao..............................obccccaoo....
+....oacbbccao..............................obcccbcbo....
+...obbbbcbcao.............................oobcccbbbbo...
+..oobbbbcbccao............................obccbcbbcbo...
+..oabbbccbccbboo........................oobbccbcbbcbao..
+.oaaccbcbbcccbbo........................obbbccbbcbbbaao.
+.oaccbbcbbbccbbo........................obbccbbbcbbbcao.
+oabcoaccbbbcbcco........................obcccbbbccbocaao
+oacooaccbbcbbcco........................occbbbbbccboocao
+oao.oacbboobbbco...........P............ocbcbobbbcao.oao
+oco..oobboobbbco........................ocbcboooboo..oao
+oo....obo..ooocco......................occoobo.oco....oo
+......oo......ooo......................ooo..o...oo......
diff --git a/parts_pl_src/body/pl_aardvark.txt b/parts_pl_src/body/pl_aardvark.txt
new file mode 100644
index 0000000..67d1e2f
--- /dev/null
+++ b/parts_pl_src/body/pl_aardvark.txt
@@ -0,0 +1,46 @@
+# pl_aardvark: from pixellab_src/pl_aardvark/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 42)
+# head_top at (29, 28) (from part/probe)
+# back at (41, 33) (from part/probe)
+# tail at (49, 49) (from part/probe)
+.......oo.................oo..............
+......o32o...............o23o.............
+......o32o..............o1ooo.............
+......o312o............o11oco.............
+......o312o...........o213cco.............
+......oo112o........ooo11occo.............
+......oc3113o..o..oo2o21occcoooo..........
+......oco113o.o2oo^22o11occco112o.........
+......obco223oo12123o21occbco112oo........
+......obco2233211111o11oocbco11113o.......
+.......oco2311311111312oocbo2221111o......
+.......occo211111111112oocco21121233o.....
+........oo21111111111123cco222B1111o......
+.........o111121111111123o2221112111o.....
+........o11132212111111122o2221111211o....
+........o123322321111311122o2211111222o...
+.......o32233222o21131o21122o22221112o....
+........oooo2222ooooooo11a2o2211112122o...
+........owoo21123wwwwwo111332112212222o...
+.......oa3oo11113owwwo111aao21111112o23o..
+........oaob1111a3333111aao2211111222o3o..
+.........ob111111aaaaA22oo221111122223o...
+........ob1111111aaooo2222221121222223o...
+.......ob1111111aao3222222211222233223o...
+......ob11111111aao3222232211122333223o...
+.....o111111111aaoo3322332211132333233o...
+..ooooooo11111aao333a3c3221111o33333ooo...
+.obaabbbbo111aao333aaa33211112o3o3333o....
+obaabbbbbcoaaaooc23cc3321111222o33333oT...
+obbbbbbbbcoaao33o3aaabo2111212oo3333oao...
+ocobbbobccoao2333occc3o2111122oo333ocaao..
+ococccocccooo2333ooocco2111222ooooooaaao..
+.occccccco..o23333ooooo2222223o333oo3a1ao.
+..ooooooo...oooo33oo.ooooo233o33333o33a1o.
+...........o3333o3o..o3333o33oaoca3oo332o.
+..........o131333oooo222222ooocoaco..ooooo
+.........o1311o133oo13112123o.oooo........
+.........oaoao1aooo1ao11o1aoo.............
+..........oooooo...ooaao1aoo..............
+.....................Poooo................
diff --git a/parts_pl_src/body/pl_aardvark_b.txt b/parts_pl_src/body/pl_aardvark_b.txt
new file mode 100644
index 0000000..7a1fe89
--- /dev/null
+++ b/parts_pl_src/body/pl_aardvark_b.txt
@@ -0,0 +1,42 @@
+# pl_aardvark_b: from pixellab_src/pl_aardvark_b/base.png (variant of pl_aardvark) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 42)
+# head_top at (29, 26)
+# back at (41, 33)
+# tail at (52, 49)
+.......ooo.........ooocoooooooo............
+......o122o...oooo^222o2221occ2ooo.........
+.....o22222ooo22222ooo222222oc22ccoo.......
+....o22bbo3o321111222o23bb323oc21ccoo......
+....o2bbcco322112222233ccbb33occ12ccoo.....
+....o3bbco2221122222223ccbb33occ22cc2oo....
+....o33bo222222222222223cbb33occc22c22o....
+.....o3o32222222222222233b33oo2cc22cc23o...
+......o32222222222222222333o32Bcc22cc23o...
+......o322222222222222222oo33222c222c22oo..
+......oo22232222322223o222333222c2222222o..
+......ooo3332223o222ooo222233222c2222222oo.
+......o3woo322233oooww3222233222222222223o.
+......o3wooa111a3wooww22222o3222222222223o.
+......o33oa11111a3ooo221122o3222222222223oo
+......o3oa1111111aa32211223o3222222222233oo
+.......oa11111111aa22222223o32222222333333o
+......oa111111111aa222A233o322222223322233o
+..ooooooo1111111ao1b222333o322222233222223o
+.obaaabbbo1111aaaoc333333o3222222232222223o
+obaabbbbbco11aaooaa3333oo33223222322222223o
+obbbbbbbbbo1aaooaaa3ooo3332223222322222223o
+obobbboobboaaoooooooo333222223333322222223o
+ocobbbooccooo33333333333222223o3332222223o.
+.occcccccoo3333333333333222223o33o3222223T.
+..ooooooo33333aaaaaa3o33222223o33o3322233o.
+.......o3333o3aaaaaaao32222233o33o333333o..
+........o2333o3aaaaaao22222233o3ooo33333o..
+........o22333ooaaaao32222233ooooooooo33o..
+........oo22333ooccco32222233oooo33ooo33o..
+.........o33333oooooo3222233oo..o3333333o..
+.........o333333oo.oo332222oo..oooaa333o...
+........oaoaoaa3oo.o3222223oo..oaoaaoaao...
+........oaoaoaaoo.oao11o113o....ooooooo....
+.........oooooo...oao11oaao................
+...................ooPoooo.................
diff --git a/parts_pl_src/body/pl_aardvark_c.txt b/parts_pl_src/body/pl_aardvark_c.txt
new file mode 100644
index 0000000..ee65a54
--- /dev/null
+++ b/parts_pl_src/body/pl_aardvark_c.txt
@@ -0,0 +1,48 @@
+# pl_aardvark_c: from pixellab_src/pl_aardvark_c/base.png (variant of pl_aardvark) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (34, 40)
+# head_top at (29, 25)
+# back at (41, 33)
+# tail at (52, 49)
+.........oo...............oo...................
+........o32o.............o23o..................
+........oo1o............o23oo..................
+........oo1o............o1oco..................
+........oo11o..........o12oco..................
+........oc31o.........oo1occo..................
+........oco21o..o...^oo1occco..................
+........oboo13oo2ooo22o1ocbcoo.................
+........obco23oo12113o12ocbco1oooooooo.........
+........occo233211111o12ocbo2122cc1111o........
+.........occ321211111312ocbo1111cc1bb11o.......
+.........oco211111111112ccco1111111bb212o......
+..........o11111111111122oo2111bb11bb1112o.....
+.........o2112212211121123o2211bb111111122o....
+.........o2o3222222ooo1112o22111B1b11bb122o....
+.........oowo32222owwwo1112o211111b11bb11c3o...
+.........owwoo222owowwo1112o211111111111123o...
+.........owwoo222owowwo11a32211111111111b2o3o..
+..oo......oww3111oowwo111a32211211122111b2o3o..
+.o1ao.....oooa111a333211aao22113212221bb12obo..
+o11o.......oa11111aaa122oo222113222321bb12ob1o.
+o11o......oa111111aaa2oo3A2221232233211112o31o.
+o11o.....ob111111aaaoo333322112o333o2111bco31o.
+o11o....ob111111aaaoca333321112o333o3111bco3ao.
+oa11ooooa111111aaco3oob33321112ooooo31111cooao.
+oaa11111111111aaco333ooooo21112oo3ooo31112ooao.
+.oaaa1111111aaaoo3333o...o21122o33o.o32112o.oao
+..oaaaa111aaaao.o3333o...o2112o333o..o2122o.ooo
+...oaaaaaaaooo..o3333o...o2112o333o...o222o....
+....ooooooo.....o3333o...o2112oo33o...o3323o...
+................o3333o...o2112oo333o...o322T...
+................o133o....o2113oo333o...o322o...
+................o133o....o211o.o333o...o222o...
+................o133o....o111o.o33o....o222o...
+................o133o....o111o.333o....o222o...
+................o333o....o111oo333o....o222o...
+................o333o....o111oc3a3o...o2222o...
+...............o3333o...o3111ocoa3o..o2a212o...
+..............o2aa33o..o21111ooooo...ooaoa3o...
+..............ooaoa3o.oao1112o........ooooo....
+...............ooooo..oaoaoa3o.................
+.......................Pooooo..................
diff --git a/parts_pl_src/body/pl_alien.txt b/parts_pl_src/body/pl_alien.txt
new file mode 100644
index 0000000..a349210
--- /dev/null
+++ b/parts_pl_src/body/pl_alien.txt
@@ -0,0 +1,49 @@
+# pl_alien: from pixellab_src/pl_alien/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 38)
+# head_top at (32, 21) (from part/probe)
+# back at (30, 42) (from part/probe)
+# tail at (39, 47) (from part/probe)
+..........oooooooo.........
+.......o3o11111113ooo......
+.....oo11111111111133oo....
+....oc11111111^11111b33o...
+...ob11111111111111ab333o..
+..o3a1111111111111abb333o..
+..o1a11111111111111b233b3o.
+.o11a1111111111111122233bo.
+.o1111111111111333322233b3o
+o23o3111111113oooo33a233b3o
+o3ooo11111111oooooo33bbb33o
+oowoo3111111oowooooo323bb3o
+oowwoo111111owwooooo3233b3o
+oooooo111111oooooooo3333b3o
+oooooo222222oooooocc333bbbo
+oocooo222222ooooocco2bb33bo
+.oocco222222o3cccco23b333o.
+.o2oo32222222ooooo233b33bo.
+..o3222oooo22222233bbbbbo..
+...o33332223333333b33bbo...
+....o33333333A3333b33oo....
+.....ooo33333bb333boo......
+........ooooooooooo........
+...........o333o...........
+..........o3B333o..........
+.........o3233bbboo........
+.........o1a111333o........
+.......oo11a111ooboo.......
+......o3o11a11o333o3oo.....
+....oo233o1a11o223o3cTo....
+....o22b3o3b23o223o3cc3o...
+...o223coo3b33o123o3333o...
+...o123o.ooob3o123oo3333o..
+...o233o..o3ooo123o.o33bo..
+...o23o...o33oo223o.o33bo..
+...o23o...o33oo2a3o..o33o..
+...o23o...o33oo223o..o33o..
+...o23o..o3333o223o..o333o.
+..o223o..ob333o223ooo33333o
+.o22333o..oooo32233oob3b33o
+oaa3b33o.....o31323o.ooooo.
+.oooooo......oa3b3bo.......
+..............Poooo........
diff --git a/parts_pl_src/body/pl_alien_b.txt b/parts_pl_src/body/pl_alien_b.txt
new file mode 100644
index 0000000..4a99377
--- /dev/null
+++ b/parts_pl_src/body/pl_alien_b.txt
@@ -0,0 +1,63 @@
+# pl_alien_b: from pixellab_src/pl_alien_b/base.png (variant of pl_alien) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 27)
+# head_top at (32, 4)
+# back at (30, 42)
+# tail at (38, 47)
+...........ooo^ooo...........
+........ooo2222223ooo........
+......oo2112222222233oo......
+.....o32111122222222333o.....
+....oc211111222222222c33o....
+...oc211111122222222ac333o...
+..o3a11111122222222acc333o...
+..o2a111112222222222c233c3o..
+.o22a11122222222222222233co..
+.o22222222222222222222233cco.
+.o22222222222222333322233c3o.
+o23o32222222223oooo33a233c33o
+o3ooo222222222ooooo333ccc333o
+ooooo322222223ooooooo323cc33o
+oowooo2222222oowooooo3233c33o
+oowwoo2222222owwooooo3233c33o
+oooooo2222222oooooooo3233c3co
+oooooo2222222oooooobb333cccco
+oobooo2222222ooooobbo2cc33co.
+.oobbo2222222obbbbbo22c333co.
+.o2oo322222222ooooo223c333co.
+..o2222ooooo222222223ccccco..
+..o3222ooooo22222223cccccco..
+...oc222222222A2222c33ccco...
+...o3a2222222222233c333co....
+....o33222222222233c333o.....
+.....o3a222222aa333c333o.....
+......oc222222aa33cc33o......
+.......o3a2222223333co.......
+.......o32222222c333o........
+........o3222223c33o.........
+........oooooooooooo.........
+........o2111122333o.........
+........o3222223333o.........
+........o2111112222o.........
+.........o22222222o..........
+..........o333333o...........
+...........o1223o............
+...........oB223oo...........
+..........o2oooocco..........
+..........o2a222333o.........
+.........o21a222223o.........
+.........o1a2222o223o........
+.........o2a2222o122T........
+.........o3c2223o122o........
+........o3oc3333o122o........
+.......o213oc33oo123o........
+......o2133ooooo2233o........
+......o123o...o1223o.........
+......o23o....o123o..........
+......o33o....o323o..........
+......o333o....o333o.........
+.......o33o....o333o.........
+......o2233o....o333o........
+.....oaa333o...o3223o........
+......ooooo....oac33o........
+................Pooo.........
diff --git a/parts_pl_src/body/pl_alien_c.txt b/parts_pl_src/body/pl_alien_c.txt
new file mode 100644
index 0000000..db00484
--- /dev/null
+++ b/parts_pl_src/body/pl_alien_c.txt
@@ -0,0 +1,58 @@
+# pl_alien_c: from pixellab_src/pl_alien_c/base.png (variant of pl_alien) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 28)
+# head_top at (32, 9)
+# back at (30, 42)
+# tail at (39, 47)
+...............ooooooo^ooooo................
+.............oo2222222222223ooo.............
+...........oo211222222222222233oo...........
+.........oo2211112222222222222a33oo.........
+........o221111112222222222222ac333o........
+......o32a1111112222222222222acc3333oo......
+.....o32211111112222222222222ac2233333o.....
+....o3212211111222222222222222c22233333o....
+....o21122222222222222222222222222333333o...
+...o2211222222222222222222222222222333333o..
+..o222222222222222222222222222222223333c3o..
+.o222222222aaa2222222222222222222223333c33o.
+.o2a2222222aaa22222222222a2222222223333c33o.
+o22a2222222cccc2222222222a2222222223accc333o
+o22a22222333cc33333333333332222222333cccc33o
+o2222a33333ooooooooooooo3333333322333cccc33o
+oa223333oooooo33333333owoooooo333333ccc3333o
+o33333oooowooo3333333owwoooooooooo3333c3333o
+o333oo33owwoooo222222ooooooooo33ccooo33333o.
+.o333333ooooooo222222Aoooooobo33cco33oo333o.
+..oo3c33ooooooo222222ooooobbb3333co333o33o..
+....oo3coobooo32222223obbbbbo33c33o333ooo...
+......ooo2oooo22222222oooooo233c3coooo......
+........o3222222ooo2222222233cccco..........
+.........o333333322333333333c33oo...........
+..........ooo3333333333cc33cooo.............
+.............ooooooooooooooo................
+..................o3333o....................
+.................o3333cco...................
+................o33333333o..................
+................o22a22222ao.................
+...............o222a222322o.................
+...............o321a2223322o................
+..............o2321aB223332o................
+..............o2o21a22233o22o...............
+..............o2o22a22233o22o...............
+.............o23o32c22333o22co..............
+.............o23o33c3333co223o..............
+............o123o23c3332co223T..............
+............o123o23ooo322o223o..............
+............o22co23o.o322o123o..............
+............o33oo13o..o22oo3co..............
+.............oooo13o..o123ooo...............
+................o13o..o123..................
+................o23o..o22a..................
+................o2co...o22o.................
+................o23o...o22o.................
+................o23o...o22o.................
+...............o223o...o22o.................
+..............oa333o...o212o................
+..............ooooo....o3cco................
+........................Poo.................
diff --git a/parts_pl_src/body/pl_alien_d.txt b/parts_pl_src/body/pl_alien_d.txt
new file mode 100644
index 0000000..28c48c5
--- /dev/null
+++ b/parts_pl_src/body/pl_alien_d.txt
@@ -0,0 +1,57 @@
+# pl_alien_d: from pixellab_src/pl_alien_d/base.png (variant of pl_alien) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 31)
+# head_top at (32, 9)
+# back at (30, 42)
+# tail at (39, 47)
+..............ooooooo^ooooo...............
+............ooo222222222223ooo............
+...........o222222222222223333oo..........
+.........oo222222222222222223333o.........
+........o222111122222222222223333oo.......
+.......o222111111222222222222233333o......
+......o22111111111222222222222233333o.....
+.....o2211111111112222222222222233333o....
+....o22111111111112222222222222223333o....
+...o2221111111111222222222222222233333o...
+...o2221111111112222222222222222223333o...
+..o22222111111122222222222222222223333bo..
+..o22222221112222222222222222222223333bo..
+.oa2222222222222222222222222222222233bbbo.
+.o22222222222222222222222222222222233bbbo.
+.o22222222222222222222222222222222223bbbo.
+.o22233333222222222222222233333222223bb33o
+o2233ooooo322222222222222oooooo3222233333o
+o223ooooooo2222222222222ooooooooo22233333o
+o23oowwooooo22222222222oowwoooooo32233333o
+o2oowwwooooo22222222222owwwooooooo3233333o
+o2ooowwoooooo222222222oowwwooooooo3233333o
+o2ooooooooooo22222222Aoooooooooooo3233333o
+o2ooooooooooo222222222oooooooooooo323333bo
+o2oocoooooooo222222222ooooooooooco323333bo
+o23occoooocco222222222ooooooooocco22333bbo
+.o2ocbcooobco222222222ooccoooobbco2233bbo.
+.o22occcccco22222222223occcccccco22333bbo.
+.o223occcco3222222222223occcccco323333bbo.
+..o222oooo322222222222223oooooo22233bbbo..
+..obb22222222222ooo22222222222aa2333bbbo..
+...ob3222222222222222222222222aa3333bbo...
+....o3b322222222222222222222223333bbbo....
+.....oob33222222222B22222222333333bbo.....
+.......ob3333332222222223333333333oo......
+........ooo333333333333333333333oo........
+...........oooo33333333333333ooo..........
+..............ooooooooooooooo.............
+.............o33333333333333T.............
+............o333333333333333bo............
+...........o323o2222222233o32o............
+...........o22oo2222222233o322o...........
+...........o23o32222222233oo22o...........
+...........ob3o33222222332oob2o...........
+...........oboo2333b333322oob3o...........
+............ooo223oo33322bo.oo............
+..............o2233ooo322bo...............
+...............o333o.o3333o...............
+..............oo333o..o3333o..............
+..............o1113o..o3113o..............
+...............oooP....oooo...............
diff --git a/parts_pl_src/body/pl_alpaca.txt b/parts_pl_src/body/pl_alpaca.txt
new file mode 100644
index 0000000..f7d8a89
--- /dev/null
+++ b/parts_pl_src/body/pl_alpaca.txt
@@ -0,0 +1,48 @@
+# pl_alpaca: from pixellab_src/pl_alpaca/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 41)
+# head_top at (30, 25) (from part/probe)
+# back at (32, 37) (from part/probe)
+# tail at (41, 45) (from part/probe)
+...c......oo.............
+..o1o....o11o............
+..cyo....o11o............
+..ca1ooo3o131o...........
+..oa3222231ayo...........
+..o31121233ayo...........
+..322112233^y3o..........
+.o322223233a333o.........
+.o33333cc333133o.........
+..ooocz11z3233o..........
+..ozyyooo1c2233o.........
+.o111y1w1z32223o.........
+o33o11111zo223o..........
+oy3113111zc223o..........
+.oz33zzzcc3333o..........
+..oooocoo33233o..........
+....333333333o...........
+....o333332233...........
+.....33322222B...........
+....o33222122o...........
+....o32222222............
+....322232223o...........
+....3222222A3oooooo..oo..
+....33222223b332222oo22o.
+....b33322aa33222122232o.
+....obaaba332222222122o3o
+...o33c333222232222212Too
+...o3aa3222222222222212o.
+...o3aa3222222222222222o.
+...o3baa322322222232222o.
+....obaa3232222322322233o
+....o3333322222333322233.
+....oo333o32222o33o32333o
+....o3o33o32223o3o33333o.
+.....o3ooo33333ooo3a3a3o.
+.....o333oo3bb3oooo3333o.
+......ooooo3333ooo.oooo..
+.......33o.oooocao..33o..
+.......oyo..33co3o..oyo..
+......o3oc..oyooo..o3oo..
+.....oooo..o3oo....ooo...
+...........oPo...........
diff --git a/parts_pl_src/body/pl_alpaca_b.txt b/parts_pl_src/body/pl_alpaca_b.txt
new file mode 100644
index 0000000..173fd9d
--- /dev/null
+++ b/parts_pl_src/body/pl_alpaca_b.txt
@@ -0,0 +1,50 @@
+# pl_alpaca_b: from pixellab_src/pl_alpaca_b/base.png (variant of pl_alpaca) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 39)
+# head_top at (30, 17)
+# back at (31, 36)
+# tail at (43, 45)
+......ooooo^.............
+....oo222222oo...........
+...o2111122223o..........
+..o211122222123o.........
+.o31312322222223o........
+.o32323332222213o........
+.o3c323bb32222223o.......
+..oa33zzzb3222223o.......
+..o111zoozbo12323o.......
+.o1111zooz1o22323o.......
+oaao1111111o23333o.......
+o1c1111111ao2333o........
+o1c11c111aao3333o........
+.ozcczzaaao3333o.........
+..oooccoo3o33o3o.........
+......caa3oc33o..........
+......caz333o............
+......czz333o............
+......c11333o............
+......c11z33B............
+......c1122o.............
+.....oz1122o.............
+.....o11122Ao............
+.....o1112a2o............
+....o11112b23oooooo..oo..
+....oz1112b2322bb22oo22o.
+....ozzz1222222baa22232o.
+....o2zz2222222bbb2222o3o
+...o2222222222222222222oT
+...o2122222222222222aa2o.
+...o3222222222222222aa2o.
+...o33222232aa222232ba2o.
+....o3322332aa2322322233o
+....o3323332bb2333322233.
+....oo333o32222o33332333o
+....o3o33o32223o3o33b33o.
+.....o3ooo33b33ooo33bb3o.
+.....o333oo3bb3oooo3333o.
+......ooooo3333ooo.oooo..
+.......33o.oooooao..33o..
+.......ozo..33cozo..ozo..
+......o3oc..ozooo..o3oo..
+.....oooo..o3oo....ooo...
+...........oPo...........
diff --git a/parts_pl_src/body/pl_alpaca_c.txt b/parts_pl_src/body/pl_alpaca_c.txt
new file mode 100644
index 0000000..a526414
--- /dev/null
+++ b/parts_pl_src/body/pl_alpaca_c.txt
@@ -0,0 +1,48 @@
+# pl_alpaca_c: from pixellab_src/pl_alpaca_c/base.png (variant of pl_alpaca) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (30, 19)
+# back at (32, 37)
+# tail at (46, 45)
+.....c......o^................
+....o1o....o11o...............
+....cyoooooo11o...............
+....cb3222231b1o..............
+....o32121221byo..............
+...o31221222zby3o.............
+..o32322222223332o............
+..o332322332232223............
+...o33333cc3232122o...........
+....o33cc11z322222o...........
+....ozyyooo1c22223o...........
+...o111y1a1z322223o...........
+..o33o11111zo32222o...........
+..oy3113111zc32223o...........
+...oz33zzzcc322123ooo.........
+....ooooooo3322233323ooo......
+...o33233332222333222333o.....
+...o322222222233332222133o....
+...o33222323233B2222222133o...
+..o333333333332222213222122o..
+.o3222333332222222222222222o..
+.o32222222222322222222222223o.
+o3221122222222A32222222112213o
+o3222222222222222221222112223o
+o3222222212222222222222212323o
+o3322222212222232222222232223o
+o3323222322222322222222222223T
+o3322322232222222222212222223o
+o3332222222222222222223222233o
+.o333322222222222222222222333o
+..o3333322223222223322222333o.
+..o3333322233222233222333333o.
+...o333333333333333333333333o.
+....oo33333333333333333333oo..
+......o3333o333333333o333o....
+.......ooooo333o33oooooooo....
+........b33ooo333obo.obbb.....
+........bbbo.obabobo.obab.....
+........oybo.ocbbo3o.obbo.....
+.......o3oo..o1booo..o3oo.....
+.......oooo..o3oo....ooo......
+.............oPo..............
diff --git a/parts_pl_src/body/pl_alpaca_d.txt b/parts_pl_src/body/pl_alpaca_d.txt
new file mode 100644
index 0000000..ca2bdc1
--- /dev/null
+++ b/parts_pl_src/body/pl_alpaca_d.txt
@@ -0,0 +1,50 @@
+# pl_alpaca_d: from pixellab_src/pl_alpaca_d/base.png (variant of pl_alpaca) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 39)
+# head_top at (30, 17)
+# back at (32, 37)
+# tail at (43, 45)
+........oooo^.............
+......oo22222oo...........
+....oo111122222oo.........
+...o2211222221222o........
+..o311222222222222o.......
+.o31122222222222123o......
+.o21222222222222222o......
+.3222222222212212222o.....
+o3322222222221222222o.....
+o3332222223222222222o.....
+o333o3222333222222223o....
+.o3333333313322222213o....
+.o23oyyyyoo1332222233.....
+o323o1111oo1y3222223o.....
+o32baac1111132222233o.....
+o32c2b11a1133222223oo.....
+.o22cbb333332222333o......
+..o333333322222333o.......
+..o33333222223333o........
+...oo33333333oooo.........
+.....o3333ooo3B...........
+......o3333333o...........
+......o22222A3oooooo......
+.....o22222223o32222oo....
+.....o2222222333222222o...
+.....o22222223222222222o..
+.....o222222322222222222o.
+.....o222222222222222222o.
+....o22222222222222222222T
+....o22222222222222222222o
+....o22222222222222222222o
+....o22222222222222222222o
+....o32222222222222222223o
+....o33222222222222222233o
+.....o3322222222232223333o
+.....oo33333222223333333o.
+......oo3333222233333333o.
+......o3oooo22223ooo3333o.
+......o333oo22223ooo333o..
+.......o33o.o223o3o.o33o..
+.......o11o.o33oo3o.o11o..
+.......o33o.o11ooo..o33o..
+.......ooo..o33o....ooo...
+............Poo...........
diff --git a/parts_pl_src/body/pl_amber.txt b/parts_pl_src/body/pl_amber.txt
new file mode 100644
index 0000000..0fb19f4
--- /dev/null
+++ b/parts_pl_src/body/pl_amber.txt
@@ -0,0 +1,48 @@
+# pl_amber: from pixellab_src/pl_amber/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 41)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (46, 50)
+..............oooo..............
+.............o1122o.............
+............o111122o............
+...........o11111223o...........
+..........o1111111223o..........
+..........o1111111222o..........
+.........o111111111223o.........
+........o11111111112223o........
+.......o1111111111112223o.......
+.......o1111111^11112222o.......
+......o111111111111112223o......
+.....o1111111o1111o1122223o.....
+....o1111111111aa1111122223o....
+....o111ooo1111111111ooo222o....
+...o111o1ooo11111111ooo1o223o...
+...o11o3owooo111111owooo3o22o...
+..o111o1ooooo111111ooooo1o223o..
+..o111owcoooo11B111oooocwo222o..
+.o111113woo2111111113oow322222o.
+.o111131211113oooo1111132o2222o.
+.o111aaa1112oooooooo1111aaa222o.
+o12111112ooooooooooooo111222222o
+o121111ooooooooAooooooooo222232o
+o12111oooooooooccooooooooo22232o
+o13113ooco33ocbbbcoo3ooooo32232o
+o13213ooocoocaabbboooooooo32332o
+o2321ooo3oooccbbbcooooooooo3332o
+o2331o33333ooccccoooo333ooo3332o
+o2233o3333oooooooooooo33ooo3332o
+o3233o333ooocbcoocboooo33ooo323o
+.o23ooo3oooocobooboooooooooo32o.
+.o23oooooooooocoocoooooooooo22T.
+..o23oooo3o3oooooooo3oooooo32o..
+..o323oooooooooooooooooooo323o..
+...o3233oooooooooooooooo3323o...
+....oo223oooooooooooooo322oo....
+.....ooo22333oooooo33322ooo.....
+.......oooo2222222223oooo.......
+......o1333oooooooooo3333o......
+......o2113o........o3223o......
+......o2233o........o3223o......
+.......oooP..........oooo.......
diff --git a/parts_pl_src/body/pl_amber_b.txt b/parts_pl_src/body/pl_amber_b.txt
new file mode 100644
index 0000000..43fb8e9
--- /dev/null
+++ b/parts_pl_src/body/pl_amber_b.txt
@@ -0,0 +1,48 @@
+# pl_amber_b: from pixellab_src/pl_amber_b/base.png (variant of pl_amber) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 40)
+# head_top at (31, 19)
+# back at (31, 36)
+# tail at (46, 50)
+............ooo^oooo............
+...........o12222221o...........
+..........o1122222212o..........
+.........o111222222122o.........
+........o11112222221322o........
+.......o111112222212222o........
+......o11111111111122223o.......
+.....o1111112222222222233o......
+.....o11111232222222223333o.....
+....o211111332222222213333o.....
+...o11222123222222222233332o....
+..o2112213222o2222o222333222o...
+..o211113322222aa22222223222o...
+..o22133ooo3222222223ooo22221o..
+..o2223o2ooo32222223ooo2o23122o.
+..o222o3o1ooo222222o1ooo3o2222o.
+..o222o1ooooo222212ooooo1o2222o.
+..o322o1coooo22B112ooooc1o2322o.
+..3332231oo3222111223oo1332333o.
+.o23323232222211111222333o2333o.
+.o223aaa22111ooooooo2222aaa333o.
+.o222322211oooooAoooooo2222333o.
+.o22223211ooooooocoooooo2233333o
+o2122221oooooobabooooooo3233333o
+o1122221oooooabbooooooooo233333o
+o1122211ooooobobocboooooo233322o
+o112221oooooaboocbboooooo232222o
+o111221ooooobbbobbcoooooo232222o
+o333221ooooocboooocoooooo232222o
+o3333313oooocoobbboooo22o232222o
+.o3333322ooooooccoooo2221333333o
+.o33333322oooooooooo2221333333T.
+..o3333332oooooooo22221333333o..
+..o33333322ooooo2222113333333o..
+...o333333222211111113333333o...
+....o3333333333333333333333o....
+.....ooo33333333333333333oo.....
+.......oooo3333333333oooo.......
+......o2333oooooooooo3333o......
+......o3223o........o3333o......
+......o3333o........o3333o......
+.......oooP..........oooo.......
diff --git a/parts_pl_src/body/pl_amber_c.txt b/parts_pl_src/body/pl_amber_c.txt
new file mode 100644
index 0000000..8c3fcea
--- /dev/null
+++ b/parts_pl_src/body/pl_amber_c.txt
@@ -0,0 +1,60 @@
+# pl_amber_c: from pixellab_src/pl_amber_c/base.png (variant of pl_amber) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 37)
+# head_top at (31, 7)
+# back at (31, 36)
+# tail at (51, 50)
+....................o^ooo....................
+...................o21223o...................
+..................o2112223o..................
+.................o111111222o.................
+................o21111112223o................
+...............o2111111122223o...............
+...............o1111111112223o...............
+..............o211111111122223o..............
+.............o31111111111122233o.............
+............o211111111111122223o.............
+...........o21111111111111222223o............
+..........o2111111111111111222223o...........
+..........o11111111111111112222223o..........
+.........o311111111111111112222223o..........
+........o21111111111111111111222223o.........
+........o11111111111111111111222223o.........
+.......o2111111111o111111o1112222223o........
+......o21111111111111aaa1111112222223o.......
+......o11111ooo21111122211111oooo2222o.......
+.....o21111ooooo1111111111111oooo22223o......
+....o31111oo1oooo1111111111ooooo1o2223o......
+....o3111o3oowoooo11111111oowoooo3o2223o.....
+...o21111o1ooooooo11111111ooooooo1o22233o....
+...o11111o1ooooooo11111111ooooooo1o22233o....
+...o11111owccooooo11111111oooooocwo22322o....
+..o111111132wooo3111111111123ooow32222222o...
+..o1111113133111111111111111111232o222222o...
+..o1111223213111113333333331111133o3322223o..
+..o1111baaa2113333222222222222111aaaa22223o..
+.o2211111111113333222B212222231111222222333o.
+.o12111111333322221222Aw2222321331222222333o.
+o21211111322222w122222222222311323322223333o.
+o112111132222221122222222w22311322232223333o.
+o1131111322222221222ooo222222332w3223333333o.
+o2132113322w1222222obcoo2222222222223333333o.
+o22331132221122222oocoooo222222222222333333o.
+o223311322222222ooowbboooo222ooo22222333333o.
+o32331132222222obbobbbbbooo2ooco22w12233333o.
+o3223332w12222obwbbobbbbbooooco222112233333o.
+.o33333211222obbobbocccbcoooooo22222223333o..
+.o32223222222obbbbbobboccoooooo22222223323o..
+.o322232222222obbbooobocooooobo222w1223223o..
+..o222322w22222oooooooooooo2oobo221123322o...
+..o2223321222222oooooooooo222ooo222223223T...
+...o32232222222212oooo222222222222223222o....
+...o322232221w11222ooo2222222w2222233223o....
+....o32233221112222222222w1221222223223o.....
+.....oo21332122222w2222221122222233223o......
+.oooo3331222332222222222222222233222233oooo..
+o2111121112222333333333333333332223322222333o
+o221111112222222222333333332222233333333333oo
+.oo2222222233322222222222111111233oooooooooo.
+...oooooooo...oooooooooooooo33333oo..........
+............................Poooo............
diff --git a/parts_pl_src/body/pl_amber_d.txt b/parts_pl_src/body/pl_amber_d.txt
new file mode 100644
index 0000000..4d364f2
--- /dev/null
+++ b/parts_pl_src/body/pl_amber_d.txt
@@ -0,0 +1,52 @@
+# pl_amber_d: from pixellab_src/pl_amber_d/base.png (variant of pl_amber) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 40)
+# head_top at (31, 15)
+# back at (31, 36)
+# tail at (46, 50)
+.................^o.................
+................oabo................
+................oabo................
+................obbo..cc............
+............cc..obbo.oac............
+............cacoobcoobac............
+............cbco3booobcc............
+............obc11oo22bco............
+............obc11331223o............
+.......oo...obc11121222o.ooo........
+.......oao.o111111111223obbo........
+.......oboo11111111112223bo.........
+........co1111111111112223o.........
+.....ooo.o1111111111112222o.ooo.....
+.....o11o111111111111112223o11o.....
+.....o313111111o1111o112222312o.....
+...ooo33311111111bb1111122233o.oo...
+...o11o111ooo1111111111ooo222o31o...
+...o11311o1ooo11111111ooo1o22312o...
+....o331o3oaooo111111oaooo3o2323....
+..ccc111o1ooooo111111ooooo1o222333..
+..cabc11oacoooo11B111oooocao222113..
+..cccc1113aoo2111111113ooa32222223..
+...o2211c1211113oooo1111132o2222o...
+...o111bbb1112oooooooo1111bbb222o...
+33312111112ooooooAoooooo111222223ooo
+311121111oooooooooooooooooo22223311o
+.3332111oooooooooccooooooooo2223322o
+ooo13113ooco33ocbbbcoo3ooooo32232oo.
+o1113213ooocoocaabbboooooooo3233111o
+o132321ooo3oooccbbbcooooooooo333221o
+.oo2331o33333ooccccoooo333ooo33322o.
+..o2233o3333oooooooooooo33ooo3332o..
+..o3233o333ooocbcoocboooo33ooo322o..
+...o23ooo3oooocobooboooooooooo32o...
+...o23oooooooooocoocoooooooooo22T...
+....o233ooo3o3oooooooo3oooooo32o....
+....o323oooooooooooooooooooo323o....
+.....o3233oooooooooooooooo3323o.....
+......oo223oooooooooooooo322oo......
+.......ooo22333oooooo33322ooo.......
+.........oooo2222222223oooo.........
+........o1333oooooooooo3333o........
+........o2113o........o3223o........
+........o2233o........o3223o........
+.........oooP..........oooo.........
diff --git a/parts_pl_src/body/pl_ankylo.txt b/parts_pl_src/body/pl_ankylo.txt
new file mode 100644
index 0000000..59c3c2b
--- /dev/null
+++ b/parts_pl_src/body/pl_ankylo.txt
@@ -0,0 +1,40 @@
+# pl_ankylo: from pixellab_src/pl_ankylo/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 45)
+# head_top at (27, 34) (from part/probe)
+# back at (35, 36) (from part/probe)
+# tail at (47, 51) (from part/probe)
+...................ooo....................
+...........ooo....o122o...................
+...........b12o..o1223o...oooo............
+..........o1123o.o23ooo.oo21abo...........
+..........o12233ooo11booo22aa3o...........
+..........o2233o22o1123o222223o...........
+.....oooo.o22oo221o2223o222233o...........
+.....o123o23o1ao^132233322233o..ooo.......
+.....o12223o21a3o12oooo2oooo2oo3111o......
+.....o12223o1133o112222oB112o22o222o......
+.....o22232o22233211112o22222o2co33o......
+.....o32322o22333211112o22bbbo3bo3o.......
+......o32112oooo32ooooo33333o333ooo.......
+....o3o2111112222o21122oo33o33o33oooo.....
+....o2o3311111122o222aboooo333o33o222o....
+...ooo22233311112o22333323oo3o2212o33o....
+...o2111222332112o3333o33322oo2111o33o....
+..o211111122332222o33o23o3111o222bboo.....
+.o21211111122332oo33A333o32223333b3oo.....
+.o2211211222233o222o3223o333bbo333o22o....
+.o3221222ooo223o2212o3333333o33333o33o....
+.oo2222oowo1223333b1o22223oooooo32o3oo....
+o3112222oobw2233oooooooooo3333333o3oo2o...
+o21122222aa22a3o333333333333322233o33oooo.
+o322o2222222a33o333322333cc3222223o3T3223o
+.o222223oooo33occ33211233aa3211223o33333o.
+..o333333333ooccco3222233aa3322233obccoo..
+...ooooooooocaaaco3222333oo333333boooo....
+.......o3333ooooooo3333b3oooooo333o.......
+.......o22333o...o3222223o.o333333o.......
+......o333333o...o2222233o.ooo3333o.......
+......o313133o...o332323o..o1o131oo.......
+.......oooooo....o313133o...oooooo........
+..................ooPooo..................
diff --git a/parts_pl_src/body/pl_ankylo_b.txt b/parts_pl_src/body/pl_ankylo_b.txt
new file mode 100644
index 0000000..29d30d3
--- /dev/null
+++ b/parts_pl_src/body/pl_ankylo_b.txt
@@ -0,0 +1,47 @@
+# pl_ankylo_b: from pixellab_src/pl_ankylo_b/base.png (variant of pl_ankylo) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 41)
+# head_top at (27, 23)
+# back at (35, 36)
+# tail at (52, 51)
+...........ooo.............oo................
+...........oacoo.........ooao................
+...........oaaa3o.......oo1aco...............
+...........oaa122^......o1123o...............
+...........o211223oooooo11123o...............
+...........o21133322222233333o....oooo.......
+...........o31332111111111122oo..o31ao.......
+...........o3311111111111112233oo1113o.......
+...........o31111111111111112233o1113o.......
+..........o2211111111111111122233o133o.......
+..oooooo.o22111111111111111122233333o........
+..oa1111oo21111111111111111122233333o........
+..o3a111o22111111111111111222223333oo........
+..o33211o2211111111111112222223333ooooooo....
+...o3332o221111111111112oooo23333o211111aaoo.
+....o333322211111111112o211aoo333o11111111abo
+.....oo333222111111112o21B111ao33o1111111ccco
+...oooo333322111111122o11111cco33o111112333o.
+oooo111o33333333222222o11111cco33o11123333o..
+oa11111o32111112332222o11133c3o33o3333333oo..
+occ2112o21111111123222o223333o333o333333o....
+.o33333333111111112322A333333o2333o333oo.....
+..o33oo2223331111123222o3333o333333ooo3o.....
+...oo2111222332111223222oooo3333333333ooooo..
+...o2111111223322122o222233333333oooo321111oo
+..o21211111122232222o2222oooo333o211o32111aco
+..o22112112222223222o222o2111o33o2112o33333co
+..o3221222ooo2223233o333o2111o33o21112o333oo.
+..oo2222oowo122223oo3333o21111o3o211aaooooo..
+.o3112222oocw2232oooooooo2211aoooo3333oo.....
+.o21122222aa22a3o33333333o22aco223oooooooo...
+.o322o2222222a33o333322333ooooo2223o333223T..
+..o222222oooo33occ33211233bb3211223o33333o...
+...o333333333ooccco3222233bb3322233occcoo....
+....ooooooooocbbbco3222333oo333333coooo......
+........o3333ooooooo3333c3oooooo333o.........
+........o22333o...o3222233o.o333333o.........
+.......o333333o...o2222233o.ooo3333o.........
+.......o313133o...o332323o..o1o131oo.........
+........oooooo....o313133o...oooooo..........
+...................oooPoo....................
diff --git a/parts_pl_src/body/pl_ankylo_c.txt b/parts_pl_src/body/pl_ankylo_c.txt
new file mode 100644
index 0000000..74c41ce
--- /dev/null
+++ b/parts_pl_src/body/pl_ankylo_c.txt
@@ -0,0 +1,37 @@
+# pl_ankylo_c: from pixellab_src/pl_ankylo_c/base.png (variant of pl_ankylo) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 44)
+# head_top at (27, 31)
+# back at (35, 36)
+# tail at (46, 51)
+........................oooooooo.......................
+...................o^ooo11111111ooooo..................
+...............oooo111113333331111111oooo..............
+...........oooo11111133331111333331111111ooo...........
+........ooo111111133111111111111333322333333ooooo......
+.....ooo1113333333333331111111111133cc33331111111ooo...
+...oo11111111331111133333cc1B33333333333111111111111oo.
+..o11111113331111111111133b333311111111133311111111111o
+..oa3333333111111111111b33333111111111111113311111133bo
+..oaaabb3333311111133333111113b11111111111111333333bbbo
+...ooobb33caa3333333111111111133111111111113333bbbbooo.
+......oooo222aaa331111111111111131111113333bb33booo....
+.......o211122223333111111111111133333bbbbbooooo.......
+......o21111112222aa33111111113333bbbbboooo............
+.....o212111111222oaaaa11A11333333ooooo................
+.....o2211211222222ooaaa333bbbbboo3333o................
+.....o2221222ooo22232ooaaabboooo2222223o...............
+.....oo2222oowo12223222ooooo22222222222o...............
+....o1112222oobw22232222222222222222222o...............
+..o3111222222aa222232222222222222222222o...............
+.o11122222222222222o222222222bb22222222o...............
+o2112222oooo2ooo22o3b22222222aao2112222T...............
+o21222oo22222222oobbb22222223oao211222o................
+.o22o33ooooooooobbbbbo2222223oao222222o................
+..o3ooo....oo222oaaabo3222222oo332222bo................
+..oo.......o2222ooooooo3222b2oooooo222o................
+...........o22222o...oo222222o.o222222o................
+..........o222322o...o2222222o.ooo3332o................
+..........o313132o...o232222o..o1o131oo................
+...........oooooo....o313122o...oooooo.................
+......................oooooP...........................
diff --git a/parts_pl_src/body/pl_ankylo_d.txt b/parts_pl_src/body/pl_ankylo_d.txt
new file mode 100644
index 0000000..048e2b6
--- /dev/null
+++ b/parts_pl_src/body/pl_ankylo_d.txt
@@ -0,0 +1,58 @@
+# pl_ankylo_d: from pixellab_src/pl_ankylo_d/base.png (variant of pl_ankylo) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (33, 34)
+# head_top at (27, 12)
+# back at (35, 36)
+# tail at (49, 51)
+.........................oooo....................
+..............ooo.......o1233o...................
+.............ob12o....o312233o...................
+.............ob123o...o322233o....ooooo..........
+............o212233^..o322oooo...o221aco.........
+............o222233ooooooo311co.o322aa3o.........
+............o222233332222o21233o3322233o.........
+............o22233ooo2222o22233o3322233o.........
+.....oooooo.o3333o1aao112o22233o3322333o.........
+.....ob1123o3322o21aa3o11o22233o3333333o.........
+.....ob11233o323211a333o12ooo333333333oooooooo...
+.....o221223oo1o1123333o122223322oooooooo21223o..
+.....o222223321o1122233o2222222223331112o33333o..
+.....o222233321o2222233332111222o32211122o3333o..
+......o32332211o3223333332111222o32222aaco3333o..
+......oo3322113o3333333332222222o32223cccoc33o...
+.....o3o322233333333332232222222o3333333o3c3o....
+....o33332332211111111333322222223oo333o33ooo....
+oooooo3333211111111111223332222oooooo333333o.....
+o11122o32211111111111122222322o332111oo3oooooooo.
+o2222o322211111111111222222332o32211122o3332o322o
+o322oo222111111111122222222333332221acco33222o33o
+.o33o22222111111112222222222333322233coo33221o33o
+..o3o112222111112222211222223333333333oo3332ccoo.
+..oo211122222222222211122222333o3333oo3o3333cco..
+...o2221222222222221122222223333oooo333oo3333oo..
+...oooo222222222222222oooA223333333222o33ooooo...
+...oowoo222222222222ooo11o223333o332112o3333o....
+...oowooo2222222222owoowwo2B3333o3321112o3333o...
+...oowooo2222222222oooowwo223333o33222222o3333...
+..o2owcoo2222222222ooocww2223333o33333ccco33cao..
+..o222bb22222222222bbbb222aa3333oo33333oo333cco..
+..o3aa2222222222222222222aaa333ooooo3333oooooo...
+...o3a2222o2222o222222222aa333oo3oooo3333o.......
+....o2222222222222222222223333o33oooooo33o.......
+.....o32222222222222222333333o333333333oo........
+......o3333222222222333333ooo33333222333oo...oo..
+.......ooo333333333333oooo33333322222233o3ooo2o..
+..........oooooooooooo333333333322222222o33223o..
+...........o33obbbbbb3333332223323321112o3333o...
+...........o33o3bbbbbb333322222oao3211123o33co...
+...........o333o1bbbbbb33222222oao3211123occo....
+..........o223333111111o3222222oco3221123ooo.....
+..........o22233ob11111o3211222ooo3222223T.......
+..........o21223ooaa11bo3211223ooo3322233o.......
+..........o212233oo3aabo3211223ooo3333333o.......
+..........o322233ooooooo3222223oooo333333o.......
+..........o333333ooo33oo3222223oo.oo33333o.......
+.........o3333333oooo3o33222223o.ooo33333o.......
+.........o3w3w333o.oooo33322233o.oo13131oo.......
+..........ooooooo.....o33w3w23o...ooooooo........
+.......................oPooooo...................
diff --git a/parts_pl_src/body/pl_ant.txt b/parts_pl_src/body/pl_ant.txt
new file mode 100644
index 0000000..956006c
--- /dev/null
+++ b/parts_pl_src/body/pl_ant.txt
@@ -0,0 +1,46 @@
+# pl_ant: from pixellab_src/pl_ant/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 41)
+# head_top at (26, 27) (from part/probe)
+# back at (38, 35) (from part/probe)
+# tail at (47, 45) (from part/probe)
+...............oo................
+......oooo....oabo...............
+....ooocbo...oooco...............
+...o113oooo.o12oo................
+..o22oo.oooo12o3o................
+.obaoo...ooo2oo3o................
+oo3oo....oo^aoooooo..............
+o23o...oo2o3ao2222oo.............
+o33o..o211o23o111223o............
+.oo..oo111o33o1122223o...........
+.....oo1111oo112oo322oo..........
+....oooo111111oo21oo23o..........
+....oowo111113owo11223oo.........
+....oooo22222ooooo12233o.........
+....oooo22222ooooo12233B.........
+....o1o122222waoa1o2233ooooo.....
+....oooo22222ooooo22333o111oo....
+....o2222222o222222233oo2221oo...
+....oo222oooo222222333oo2222aoo..
+.....oo3333co22333333ooo2222a31o.
+......oo33333333A33ooo3o3222a32o.
+........oooooooooooo3o3o33222322o
+....oooooooo3333oooo3o3o33322322o
+....oaacoooo2223oooooo3o33333333o
+..oocaocboooo22oo2ooooo33333c333T
+..o1ocbccoo2oooo23oooo333333b333o
+..o3obcoo222oooaaoooooooooo3b333o
+...oooccoo33oooooo3ooooo222oo33oo
+....ooooooooooooo33ooooooo22oo3o.
+........o33oo...o33o3333ooooooo..
+.......o33oo....o3oooooo33oooco..
+.......o3oo....o3oo.oooooooobco..
+.......oo3oo...o3oo........oooo..
+........o33o...oo3oo......oooo...
+.........o33o...o32o......oooo...
+........ooo3o....o33o.....ooooo..
+........ooooo....oo3o.....ooooo..
+........oooo....ooooo......ooo...
+................ooooo............
+.................Poo.............
diff --git a/parts_pl_src/body/pl_ant_b.txt b/parts_pl_src/body/pl_ant_b.txt
new file mode 100644
index 0000000..ada2c46
--- /dev/null
+++ b/parts_pl_src/body/pl_ant_b.txt
@@ -0,0 +1,57 @@
+# pl_ant_b: from pixellab_src/pl_ant_b/base.png (variant of pl_ant) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 35)
+# head_top at (26, 14)
+# back at (38, 35)
+# tail at (48, 45)
+...................oo...............
+........oooo......oaco..............
+.....oooocco.....oocco..............
+....o1133333o...o13oo...............
+...o22ooo.ooo^.o12o3o...............
+..ocaoo....oooo22oo3o...............
+.o3aoo......ooo2ooo3o...............
+o33oo.......ooabooooooo.............
+o33o......ooo3aco22222ooo...........
+o33o....oo21o3co111112223o..........
+.oo....o2111o33o1111112223o.........
+......o22111o33o11111112223o........
+.....o2211111oo1111133322223o.......
+.....oo211111111113oooo32223o.......
+....oooo2111111113oo211322233o......
+...oo1ooo11111113o1oo111222233o.....
+...o2oooo2111111o2oooo11222233o.....
+...o2oooo2222223o2oooo11222233o.....
+...oo2o2322222233o2oo111222233o.....
+..o22ooo222222222ooo1112222233o.....
+..o222222222222222222222222233o.....
+..ooooooooooooooooooo222222333o.....
+...o11oooooooooo11oooo22223333o.....
+...o11oooooooooo11ooooo223333oo.....
+....oo.oooooooooooooooo223333o......
+....o..oooobbbbbbbAoooo23B333o......
+...o1ooooaabbbbbbbbboo233333oooo....
+...o11ooaaaaaaao11bbbo23333oo2boo...
+..oo11oaaaaaaaao11boo23333ooc2ca2o..
+..o2ooooooooooooooo223333oocc22a2o..
+...o2222222222222333333ooo33a22aa2o.
+....oo3333333333333ooooo3332ac2ca2o.
+......oooooooooooooooo3o3333ac2ca22o
+......oooooooo3333oooo3o3333cc2cc23o
+......oaacoooo2223oooooo3333c33cc33o
+....oocaoccoooo22oo2ooo33333c33cc33T
+....o1occccoo2oooo23ooo3333cc33cc33o
+....o3occoo222oooaaooo33333c333c33oo
+.....oooccoo33oooooo3o33333c33cc33o.
+......ooooooooooooo33o3333cc33c33oo.
+..........o33oo...o33o333cc333c33o..
+.........o33oo....o3ooo33c333cooo...
+.........o3oo....o3oo.oooooooooco...
+.........oo3oo...o3oo........oooo...
+..........o33o...oo3oo......oooo....
+...........o33o...o32o......oooo....
+..........ooo3o....o33o.....ooooo...
+..........ooooo....oo3o.....ooooo...
+..........oooo....ooooo......ooo....
+..................ooooo.............
+...................Poo..............
diff --git a/parts_pl_src/body/pl_ant_c.txt b/parts_pl_src/body/pl_ant_c.txt
new file mode 100644
index 0000000..8363839
--- /dev/null
+++ b/parts_pl_src/body/pl_ant_c.txt
@@ -0,0 +1,61 @@
+# pl_ant_c: from pixellab_src/pl_ant_c/base.png (variant of pl_ant) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 28)
+# head_top at (26, 6)
+# back at (37, 35)
+# tail at (35, 45)
+.....oo^...ooo............
+...oooco..oooo............
+..o12ooooo12o.............
+.322ooooo32o3.............
+ooooo..oocooooo...........
+o3o..oo2oco222oo..........
+o3o..o11o3o11223o.........
+.o..oo11o3o112223.........
+...ooo111o1ooooo2o........
+...ooo11113ow1122oo.......
+...ooo2222oooo1223o.......
+...ooo2222oooo1223o.......
+...o1o2222wao1o223oooo....
+...o22222o2222223oo221oo..
+...oo22ooo2222233oo222ao..
+....oo333o223333ooo222a3o.
+.....o333333333oo3o322a3o.
+......oooooooooo33o332232o
+...oooooo2223oo3o3o333333o
+.oocaocooo22o2oooo3333c33o
+.o1occcoooooo3o3o2o333c33o
+.o3ocoo22o33ao33o2oo33c3oo
+..ooocoo3oooA3133o2o33c3oo
+...oooooo33331133oao33c3o.
+.......oob111ab33o2o33c3o.
+........o1111ab33o2o33co..
+........o11a1133o23o3oo...
+........oo11133oo23oo.....
+.........oo333ooo3o.......
+........o3oooo33ooB.......
+........o23o.o23o.........
+........o13o.o13o.........
+........o13o.o13o.........
+........o13o.o13o.........
+........o13o.o13o.........
+........o1o..o13o.........
+........o1o..o13o.........
+........o1o..o13o.........
+........o1o..o13o.........
+........o1o..o13T.........
+........o3o..o3oo.........
+.........oo...ooo.........
+.........o3o..o3o.........
+.........o3o..o3o.........
+.........o3o..o3o.........
+.........o3o..o11o........
+.........o3o..o11o........
+.........o3o...o1o........
+.........o3o...o1o........
+.........o3o...o1o........
+.........o3o...o1o........
+........oo3o...o1o........
+.......o33oo..o11o........
+.......oooo...o1oo........
+...............Po.........
diff --git a/parts_pl_src/body/pl_ant_d.txt b/parts_pl_src/body/pl_ant_d.txt
new file mode 100644
index 0000000..b61ec79
--- /dev/null
+++ b/parts_pl_src/body/pl_ant_d.txt
@@ -0,0 +1,43 @@
+# pl_ant_d: from pixellab_src/pl_ant_d/base.png (variant of pl_ant) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (26, 24)
+# back at (38, 35)
+# tail at (47, 45)
+..........^oooo.................
+.......ooo11111oo...............
+......oo111111b22oo.............
+.....o1111111a11222o............
+.....o111111a1111122o...........
+....o111111a11322112oo..........
+....o2a111a113ooo3123o..........
+....ooa111a13ooz1o112o..........
+...o1oaaaa33oowo11112o..........
+...o1o222322oooo11132oo.........
+...o3o111122oooo11222oooo.......
+..ooo111111oooa111ooooB1o.......
+.oo1o11111o13o323oaa3oo1ooo.....
+.o13o11113o113o2oa1122o1a31o....
+o113oo1132o313o3c111133oa311o...
+o13ooo2222oo13ooc311223oc111bo..
+o13o.ooooooo13ooc231223oc1111oo.
+o33o..oo322o33o2oc3333coc2111ao.
+.o3o...oo12o3o3Aooaaooo2c2111a1o
+.oooooooob1oo111o2222o32c2121a1o
+...oaaco3oa1111aoo112o3222221a1o
+.oocaoccooooaaooaoocooc222223a1T
+.o1occccoo1ooo112coooocc2222223o
+.o2occoo11121o222co2ooocc223c23o
+..oooccoo2222o2ooo223ooocc2c22co
+...ooooooooooooo112ccoooooccccoo
+.......oo223o23o113co22o2oooooo.
+......oaa32o.oooo32oooooo2oo2oo.
+......o11oo...o11o2o...oo13oo...
+......o133o...o11oo.....o122o...
+.......oc2co..oc1oco.....oc22o..
+........oc2o...oo21o......o22o..
+........oo2o....o112o.....oooo..
+.......o222o....oa12o....o212o..
+.......ooooo....ooooo....ooooo..
+...............o112o............
+...............Poooo............
diff --git a/parts_pl_src/body/pl_antlion.txt b/parts_pl_src/body/pl_antlion.txt
new file mode 100644
index 0000000..3f5424c
--- /dev/null
+++ b/parts_pl_src/body/pl_antlion.txt
@@ -0,0 +1,45 @@
+# pl_antlion: from pixellab_src/pl_antlion/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 27) (from part/probe)
+# back at (29, 31) (from part/probe)
+# tail at (49, 51)
+....................oo....................
+...............ooooo13ooooo...............
+.............oo113111111311oo.............
+..........ooo1111113333111111o.o..........
+.........o11111133311113331111.1o.........
+........oo1111oo1111^11111oo1111o.........
+......oo11123311113o33oo111133111oo.......
+.......1111o1111oo111111oo111131113o......
+.....o2211o2111o11aaaaaa11o111231121o.....
+.....o222o1121o1bbBoooobbb1o1211o113o.....
+...o.222o1111o3bboo11113obc3o11113222o....
+...o122o213oo3cco111111123cc3ooo12o221o...
+...o332o2obaacoo21aaaaaa12oocaabo2o233o...
+...o22322ococac32baaaaabb2ocaccco22322o...
+..o222o212ooocco2bbbaabbb2occooo212o222o..
+.o222o22213cooob32bbbbbb23boooc32222o223o.
+..o32o2223bowoocc2bbbbbb2ccoowob3222o23o..
+..o33o2223bowwooc32bbbb23coowwob3222o33o..
+..o33232233oowo3c32bbbb23c3owoo33223233o..
+.o23o2232333oo33obo2222obo33oo3332322o32o.
+o33333333o33o3213co2A22oc3123o33o33333333o
+.o33o3333coo3oo323222222313oo3ooc3333o33o.
+.o33o333bc3o3cco3222cc2223occ3o3cb333o33o.
+.o33o233ccoocccco32222223occccoocc332o33o.
+.o3o333a3o3occcco33222233occcco3o3a33333o.
+.o33o333o3oobbcoo31333313oocbboo3o333o33o.
+..o33o333o3obbco3ow3333wo3ocbbo3o333o33o..
+...o33oobcooaabo33o3333o33obbboocboo33o...
+...o33oocc3oaaboooooooooooobbbo3ccoo33o...
+...o33o13ooocaacocoooooococabbooo31o33T...
+...ooobbb3oocbabooccccccoobabcoo3bbbooo...
+.....obb33bbocbbc3oooooo3cbbcobb33bbo.....
+.....o13oobbbocbbo333333obbcobbboo31o.....
+....oc3oo1bb3o3obbo3333obbcoo3bb1oo3co....
+...oabcoo113o333ooco33occo333o311oocbao...
+..o1c3oooc33oooo3333333333oooo33cooo3c1o..
+...ooooocc1cooooooooooooooooooc1ccooooo...
+.......ob1cooooooooooooooooooooc2bo.......
+.......oooooo..oooooPoooooo..oooooo.......
diff --git a/parts_pl_src/body/pl_antlion_b.txt b/parts_pl_src/body/pl_antlion_b.txt
new file mode 100644
index 0000000..11bbb88
--- /dev/null
+++ b/parts_pl_src/body/pl_antlion_b.txt
@@ -0,0 +1,63 @@
+# pl_antlion_b: from pixellab_src/pl_antlion_b/base.png (variant of pl_antlion) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 37)
+# head_top at (31, 4)
+# back at (29, 31)
+# tail at (46, 51)
+.............oo^ooo..............
+............o211112o.............
+...........o22111122o............
+..........o221222222o............
+.........o32222222222o...........
+.........o32222222222o...........
+.........o32o222222o2o...........
+.........o32o222222o2o...........
+.........o32o222222o2o...........
+.........o322222222222o..........
+.........o3223oooo2222o..........
+.........o322occcoo222o..........
+.........o322o2222o222o..........
+.........oo322ooo2222oo..........
+.........o3o32222223o3o..........
+.........o33o333333o33oo.........
+........o3333oooooo3233o.........
+........o33222333322233o.........
+........o33222222222233o.........
+.........occ22222222cco..........
+.........occcc3333cccco..........
+.........occaaccccaacco..........
+........o33ccaaaaaaac33o.........
+........o3322aabbb22233o.........
+........o33222222222233o.........
+.........oc3222222223co..........
+.........occc33333cccco..........
+.........ocaaBbbbbaacco..........
+........o333aaaaaaaa33o..........
+........o3322211112223o..........
+........ooc2222222223co..........
+.........ocbbb2222bbcco..........
+........o33bbbbbbbbb33o..........
+........o3322111A12233o..........
+........o3322221122223o..........
+........occ322222222cco..........
+.......oocccac3333bbcco..........
+.......o332caaacccbbc33o.........
+.......o332221111111223o.........
+.......occ3222222222233co........
+......o33ccaa222222aacc33o.......
+.....o33233caaaaaaaac32333o......
+....o3322222333333332222333o.....
+....oca23222222222222222333o.....
+....o3aa322222222222222233ao.....
+....o33222222222222222223aa3o....
+...oo333322222222222222333333o...
+..o1o3oo22222222222222233oo322T..
+..o1oo213222222222222223o22o31o..
+..o3o21123222222222222332212o3o..
+..oco22233332222222233333312o3o..
+..o3o2223o32322222233333o322o3o..
+.obboaabo333333333333333ocaaobbo.
+oa23o223ooo33333333333ooo322o32ao
+oooocaa3o.ooo3333333oo..o3bbboooo
+...oa223o....ooooooo....o322ao...
+...oooooP...............oooooo...
diff --git a/parts_pl_src/body/pl_antlion_c.txt b/parts_pl_src/body/pl_antlion_c.txt
new file mode 100644
index 0000000..d80d821
--- /dev/null
+++ b/parts_pl_src/body/pl_antlion_c.txt
@@ -0,0 +1,60 @@
+# pl_antlion_c: from pixellab_src/pl_antlion_c/base.png (variant of pl_antlion) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 36)
+# head_top at (31, 7)
+# back at (29, 31)
+# tail at (52, 51)
+.........................^o.........................
+.........................o1....oo...................
+...................ooo..o31o..o3o...................
+....................o3o.o31o.o13o...................
+....................o31oo31oo113....................
+..............ooooo.o311o11o311o..oooo..............
+..............33311oo3113113111ooo1133o.............
+............oooo33113311111311133113oooo............
+..........oo1111333111111111111111331111ooo.........
+.........o31111113311111111111111331113333o.........
+.........ooo3311111111bbbbb1111111111133ooo.........
+.......oo111111111112bbbooo3bbbb11111111111oo.......
+......o3111111111113bb33111133bc3111111111111o......
+.....o333333311ooo3cco111111113cc3ooo111133oooo.....
+.......o311111obaacoo11bbaabb11oocbabo111111oo......
+......o3111111occbbc31bbaaabbb1ocbccco11111111o.....
+.....o3111111112oocco1bbaaabbb1ocbooo1111331113o....
+....o3333311111ocoobb3bbbabbb13boooc31111111333o....
+....o3311111112cowwooc1bbabbb1cowooo3b11111111oo....
+..oo2112111112bowwwoooo1bbbb1ooowoowob3111111311o...
+..o11312211112bowoooooo1bbbb1oooooowob22111333331o..
+.o333331111122bow1oo1ob311113bowoo1wob122111133333o.
+.ooo3111111222bco111ooc311113coo111o3b122111111oooo.
+..o11133111122bccooo33c111112c33oooc3b22111113111o..
+.oo13331111122bbbc33311B1121121o333bcc22111113331oo.
+.o1333111111222cccooo3111111113ccoccc2222111113331o.
+o333311111111222ccccco21111112occo3c322221121113333o
+o3o311331111222223ccco22111122occc322323111122113o3o
+ooo11332111112222obbco21222212ocbbo223231111133112o.
+.o313311111111233obbo3ow22A2wo3cbbo333111111113312o.
+.o213311112111223obbo3oo2222oo3cbbo3231111121133122o
+o3233121121111222obac33oooooo33cbbo3221111113313332o
+o3o31121311111133obaac33333333cabbo33111121113313o3o
+o3o312213111111223obac3333333ocbboo33211111112213o3o
+ooo222213112111113oobbo333333obbco33111111o2122233o.
+o.o2222331131111133oobbo3333obboo33111111113122o23o.
+..o2o22o3113111111333oobo33ocoo3331111121113222oo2o.
+..o2o22o31331111111233333333o333111131113113o222o3o.
+..oo3o3331331211111111223333331111111111331333o2oo..
+...o3o3333331o11121111112222111111111111331333o2o...
+...o3o3333331o11131111111111111111133111331333o3o...
+...o3o3333333o33131111131111311113133111333333ooo...
+...ooo33o33333331311113311113111131333333o3333ooo...
+.....o33o33oo3333331133311113111231333333oo333o.....
+.....oo3o33oo33333331333311331133333333o3oo33oT.....
+......o3o33ooo33o333133331233113333333oo3oo3oo......
+......oo.o3oco33o33333333133333333o333ocooo3o.......
+.......o.ooo2co3oo3333o33333333333o33oc2ooooo.......
+........oo3o1ccooo3333o3333333333oooocc2o33o........
+........oc3o11233oo333oo3333o333ooo33211o33oo.......
+.......o1cooc2223o.oo3oo3333o33oo.o3222cooc1o.......
+........ooocc1cc3o..ooo.o33o.oo...o3cc1ccoooo.......
+..........ob1co13o......o33o......o31oc1bo..........
+..........oooooooo.......Po.......oooooooo..........
diff --git a/parts_pl_src/body/pl_ape.txt b/parts_pl_src/body/pl_ape.txt
new file mode 100644
index 0000000..a55caed
--- /dev/null
+++ b/parts_pl_src/body/pl_ape.txt
@@ -0,0 +1,42 @@
+# pl_ape: from pixellab_src/pl_ape/base.png (pixellab_library.py extract)
+# pivot at (43, 60)
+# aura at (32, 44)
+# head_top at (29, 33) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (51, 46) (from part/probe)
+..................ooo.....................
+.................o222o....................
+................o11122o...................
+...............o2112222o..................
+..............o212222223o.................
+.............o2222222223o.................
+.............o22222222233o................
+.......oooooo32b2b22B2333ooooooooo........
+......o21112o33222^333333o33221112o.......
+.....o11112ooab333byac3oao332211112o......
+....o112222oooaacyyooc3coao322221112o.....
+....o22aa223ocoooooooc3aoao222aa2111o.....
+....o22aa223ocwocc3woc33ao3222aa2211o.....
+....o2222c23o3ccycacc323o3322a222222o.....
+....o3222223o3yyyaaa3123o33222222223oo....
+....o3333333o3ooooooc233oo33322222333o....
+...o233333333obyyyybc33o3o333333333321o...
+...o223333oo33ocbbbc3oo333o333333332211o..
+..o22222233o3ccoooooooccc33oo3322222221o..
+..o22222233occaabbcbbAaacc3oo3322222222o..
+.o222222233oocaaaacaaaaaccoooo3322232221o.
+.o21233333o..occccccccccco33ooo333332221T.
+o212223ooo....o3333333333333oo.ooo3222112o
+o2122233oo....o3aaacaaa2333ooo..o33222112o
+o21222333o....oobbccccbc33o333o.o33222112o
+o21222233o...o33obb3bbbc33o333o.o32221113o
+o22222233o...o223occcccc3o32222oo32221223o
+o32222233o..o22233oocccoo3322a2oo32221223o
+.o322233o...o22333oooooooo33222oo3222223o.
+.o3322222o..o3333oo.......o3333o33222233o.
+.o332223bbo..oooooo.......oooooc22223333o.
+.o333a233bo.oaabbbbo......obbboa3222233o..
+..oacaacocooacbbooo.......occaoco2a2333o..
+..ooacaboo..oooo...........ooooccaac3coo..
+....oooo.......................obacacao...
+................................Pooooo....
diff --git a/parts_pl_src/body/pl_ape_b.txt b/parts_pl_src/body/pl_ape_b.txt
new file mode 100644
index 0000000..fcdfbeb
--- /dev/null
+++ b/parts_pl_src/body/pl_ape_b.txt
@@ -0,0 +1,50 @@
+# pl_ape_b: from pixellab_src/pl_ape_b/base.png (variant of pl_ape) (pixellab_library.py extract)
+# pivot at (43, 60)
+# aura at (32, 42)
+# head_top at (29, 18)
+# back at (31, 32)
+# tail at (51, 46)
+...................oooo...................
+.................o^1112o..................
+................o1112222o.................
+...............o111222333o................
+...............o11222333oo................
+..............o21222333o..................
+..............o2222233o...................
+.............o22222233o...................
+.............o22222233o...................
+.............o222222233o..................
+.............o2222222333ooooo.............
+............o32b2b222333ocaacoo...........
+...........o333222333333occaaaco..........
+...........oczb333zzac33occccaaco.........
+...........ocozaczzooc333occccccco........
+.......oooooc1oocoo1Bc3oaooooooooo........
+......o2111occzczcc1cc3aoao3221112o.......
+.....o11112o3cczczzcc33aoao22211111o......
+....o112222ozzzzzzzzc233ao3222221111o.....
+....o22aa2ozaaaaaaaaz323o33222aa21111o....
+....o22aa22oa2oooo1oza32o33222aa22111o....
+....o2222c2ooaooooooza32o3322a2222222o....
+....o32222ooooobbbboaa23o332222222233o....
+....o3333oo1oobbbbb1ao33o333322222333o....
+...o23333oz1azzzzzo1ao3o33333333333321o...
+...o22333ozaaaaaazzzbAo3333333333332211o..
+..o2222223obbbbbbbbaooccc33oo3322222221o..
+..o22222233oooooooooaaaacc3oo3322222222o..
+.o222222233oocaaaacaaaaaccoooo3322232221o.
+.o21233333o..occccccccccc333ooo333332221T.
+o212223ooo....o3333333333333oo.ooo3222112o
+o2122233oo....o3aaacaaa2333ooo..o33222112o
+o21222333o....oobbccccbc33o333o.o33222112o
+o21222233o...o33obb3bbbc33o333o.o32221113o
+o22222233o...o223occcccc3o32222oo32221223o
+o32222233o..o22233oocccoo3322a2oo32221223o
+.o322233o...o22333oooooooo33222oo3222223o.
+.o3322222o..o3333oo.......o3333o33222233o.
+.o332223bbo..oooooo.......oooooc22223333o.
+.o333a233bo.oaaabbbo......obbboa3222233o..
+..oacaacocooacaaooo.......occaoco2a2333o..
+..ooacaaoo..oooo...........ooooccaac3coo..
+....oooo.......................obacacao...
+................................Pooooo....
diff --git a/parts_pl_src/body/pl_ape_c.txt b/parts_pl_src/body/pl_ape_c.txt
new file mode 100644
index 0000000..843b40d
--- /dev/null
+++ b/parts_pl_src/body/pl_ape_c.txt
@@ -0,0 +1,51 @@
+# pl_ape_c: from pixellab_src/pl_ape_c/base.png (variant of pl_ape) (pixellab_library.py extract)
+# pivot at (43, 60)
+# aura at (32, 40)
+# head_top at (29, 16)
+# back at (31, 32)
+# tail at (53, 46)
+..................^ooo.....................
+.................o2222o....................
+................o111222o...................
+...............o21122222o..................
+..............o2122222223o.................
+.............o22222222223o.................
+.............o222222222233o................
+............o322b2b2222333o................
+............o3bb2222ccc333o................
+...........ooaaab33caaac3cao...............
+..........ob3cooaccaoooc3boaoo.............
+..........ob3ccooooococc3boao3oooooo.......
+......oooooo3ccwoccowocc33ao33321111o......
+.....o21112oo3acc11cocc333o3332211112o.....
+....o1111223o1c3c1c13c3223o33322221112o....
+...o11222223o2b1313z1c3223o33222aa21112o...
+...o11aa2223o3111111B1o323o33222aa22112o...
+...o22aa222333111111113o33o3322a2222212o...
+...o2222c223331z3333313o3o3332222222223o...
+...o3222222333311111a13oo33333222222233o...
+...o33222333333111113bbo3333333222223333o..
+...o33333333333333333bo33333333333333332o..
+..o1223333o33ccoooooooccccc33o33333332222o.
+..o1222223o3ccaaccc3cccaaacc3oo3322222212o.
+.o21222223o3caaaaaacaAaaaaccooo3322222212o.
+.o222222233ocaaaaaacaaaaaacco3o3322222222o.
+.o222222333oocaaaaacaaaaacco33o3332222222o.
+oaooo223333o.occcccccccccc3333oo33322oooobo
+oaaaaooo33o..o332222222233333o.o3ooooaaabbo
+oaaaaaabooo...o32222222223333o..obbaaaaaabo
+oaaaaaabcco...o3aaacaaac2333oo..obbaaaaaabT
+oaaaaaaccco...o3bbccccbc3333oo..obbaaaaabbo
+oooooacccco...o3obb3bbbc33o333o.obbaaooooo.
+o2122ooooo...o333obbbbcc3o3322o.ooooo1113o.
+o2122233oo...o2233oocccco332222oo33221113o.
+o2122233o...o222333oooooo3322a2oo32221233o.
+o3122233o...o22333oo.....o33222oo32221233o.
+.o322233o...o33333o......o33333oo3222223o..
+.o3322222o..o33333o.......o3333o33222233o..
+.o332223bbo..oooooo.......oooooc22223333o..
+.o333a233bo.oaabbbbo......obbboa3222233o...
+..oacaacocooacbbooo.......occaoco2a2333o...
+..ooacaboo..oooo...........ooooccaac3coo...
+....oooo.......................obacacao....
+................................Pooooo.....
diff --git a/parts_pl_src/body/pl_ape_d.txt b/parts_pl_src/body/pl_ape_d.txt
new file mode 100644
index 0000000..06b0996
--- /dev/null
+++ b/parts_pl_src/body/pl_ape_d.txt
@@ -0,0 +1,62 @@
+# pl_ape_d: from pixellab_src/pl_ape_d/base.png (variant of pl_ape) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 31)
+# head_top at (29, 6)
+# back at (31, 32)
+# tail at (45, 46)
+.....................oo...................
+...................oo22o..................
+................oo^2222ooooo..............
+............oooo123222221111oo............
+...........o222212222222212223oo..........
+.........oo221222222222222211133o.........
+........oo21112222222222222222123oo.......
+.......o211211222222222222222222233o......
+......o21112222222222222222222222223o.....
+.....o2211122222222222222222222222223o....
+....o22122122222222222222222222222223o....
+....o211222222222222222222222222222233o...
+...o2211222222222222222222222222222223o...
+...o22212222222222222222222222222222233o..
+..o2222222222222222222222222222222222333o.
+..o2222222222222222222222222222222222233o.
+.o22222222222222222222222222222222222233o.
+.o22222222222222222222222222222222222233o.
+.o222222222222232222222222222222222222333o
+o2222222223333333222322233333322222222233o
+o32222223oooooo333323333ooooo332222222233o
+.o222222oy11z1zo333333311z1z1333222222333o
+.o22222o1zz11z1zzzz11111111111z322222233o.
+o222223zzbbooozz1zzazz1zooobbzz3222222233o
+o322223zzbo11oooaaaaaaooo11obbza322222233o
+.o2222oybo11wooooooooowooo11obzz322222233o
+o22222oybowwooooo3333ooooowwobzz322222333o
+o33222ozbowwooocobbb3Aooocwwob1z322222333o
+.o3222oz1owwooobobbbBoooobwwobzz322222333o
+.o322223ybowwccoz111z1occwwobby332222333o.
+.o3322233yboooozoazbo1zoooobby3322222333o.
+.o33222233zzzoa1bo1ob1za3bbzz33222223333o.
+..o332222333o111zaza111zb33333222223333o..
+...o33222223a1zz1zz1zzz1ao3222222223333...
+...o3322223o11zz1zz111zz1ao3222222333oo...
+...o3333223ozzzooooooz11zao3222223333o....
+....o333323oz11az111zozzzao3222333333o....
+.....o333333oz111z111azzao332333333oo.....
+......oo33333ozz11zz1zzao333333333oo......
+........oo3333ooaaaaaaao33333333oo........
+..........oo3333ooooooo333333oooo.........
+..........o3ooooo33oo33oooooo3333o........
+.........o2333o33oooooo3333o332223T.......
+.........o222o31133333331333o32222o.......
+........o2223o31111111111133o332223o......
+.......o22223o31111111111133oo32223o......
+.......o22223o31111111111133oo32222o......
+.......o3222oo3111111111133ooo22222o......
+.......o322bboo3111111111333ooa2223o......
+........obyoo22o3311111333322ooybbo.......
+.........oooo222oo333333o32223oooo........
+............o22223oooooo332223o...........
+............o33333o.....o33333o...........
+............oozzbbo.....oby1ybo...........
+...........oycybbbo.....oyczcyo...........
+............oooooP.......ooooo............
diff --git a/parts_pl_src/body/pl_aphid.txt b/parts_pl_src/body/pl_aphid.txt
new file mode 100644
index 0000000..db86777
--- /dev/null
+++ b/parts_pl_src/body/pl_aphid.txt
@@ -0,0 +1,40 @@
+# pl_aphid: from pixellab_src/pl_aphid/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 44)
+# head_top at (27, 33) (from part/probe)
+# back at (38, 34) (from part/probe)
+# tail at (44, 40) (from part/probe)
+..........ooo.....................
+..oo.....o111o....................
+.o11o....o1122o........ooo........
+o1123o....ooo2o........o1o...ooo..
+o12o33o......o2o......o1o...o11o..
+ooo.o33o..oooo2ooo....oo....o1o...
+.....o3ooo11^o2o33ooo..o...o2o....
+......oo1111132o23bccooB...o1o....
+.....o11111113oo22baacco..o2o.....
+....o11w111111222223aaccoo32o.....
+...o2111111111222223aaaco3oo......
+..o211111111122222223aacco3o......
+..o331111112333222223cacco33o.....
+..o3o3211122oooo32222bacc3o33T....
+.o31co22222owc11o2222bcc33ob3o....
+.o1owo22222owocwo222223333oab3o...
+.owcoo22222ooocwo222233333oac3o...
+.o3wao22222ocawwA222233333occ33o..
+.o3332222222oooo2222233333occ33o..
+.o222222222222222222333333ob333o..
+..o222233222222aa223333333o3333o..
+..o32222222222222233o3333o3333o...
+...o322222222222333333333o3333o...
+....o3322222223333333333o2333o....
+.....o3333333333oo333ooo3333oo....
+......oo3333333oco333o3o33oo33....
+.....o2oooooo333c33ooo2ooo.o3o....
+.....o2o...ooooo22oooo32o...o3o...
+....o12o...o3o..22o33oo2o...o32oo.
+..oo12o...o33o.o1o.oo.oo2o...o333o
+.o222o.....oo..o1o.....o21o...oooo
+..ooo.........o12o......o22o......
+.............o22o........ooo......
+..............oP..................
diff --git a/parts_pl_src/body/pl_aphid_b.txt b/parts_pl_src/body/pl_aphid_b.txt
new file mode 100644
index 0000000..548c602
--- /dev/null
+++ b/parts_pl_src/body/pl_aphid_b.txt
@@ -0,0 +1,41 @@
+# pl_aphid_b: from pixellab_src/pl_aphid_b/base.png (variant of pl_aphid) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 42)
+# head_top at (27, 26)
+# back at (38, 34)
+# tail at (49, 40)
+...........oo^.ooooooo...oo.........
+...oo.....o111occaaaacooo3o....ooo..
+..o11o....o1122o2caaaaabboo...o11o..
+.o1123o.oo2ooo2o22ccaaaabb3oo.o2o...
+.o12o33o221111o2o112ccaaabc33o33o...
+.ooo.o33o11111o2o11122caabbc33oo....
+.....o33211111o2o111222baabc333o....
+....o211111111333111122baabbc333o...
+...o21111111111111111222Babbbc33o...
+...o21111111111111111222baabbc333o..
+..o2211111111111111122223aabbc333o..
+..o2221111111111111222222babbc3333o.
+.o22332111112333111222222babbc3333o.
+.o22oo3211112oooo22222222babbc3333o.
+.o231bo22222owb11o2222222ccccc33333T
+o221owo22222owobwo22222222222233333o
+o22wboo22222ooobwoA2222222222233333o
+o223wao22222obawwo22222222222233333o
+o223332222222oooo222222222222333333o
+o22a2222222222222222222222222333333o
+.o22222233222222aa2222222222333333o.
+.o22222222222222222222222223333333o.
+..o222222222222222222222222333333o..
+..o222222222222222222222223333333o..
+...o3222222222222222222223333333o...
+...o3322222222222222222233333333o...
+....o33322222222333222333333333o....
+.....o3333332222ooo23333oo3333oo....
+.....oo333333333o2o3333o2o33oo3o....
+.....o2ooo333333o2o3333o2ooo.o33oo..
+...oo12o..ooooo3o1o3333oo2o...o333o.
+..o222o.....ooooo1ooooo.o21o...oooo.
+...ooo.........o12o......o22o.......
+..............o22o........ooo.......
+...............oP...................
diff --git a/parts_pl_src/body/pl_aphid_c.txt b/parts_pl_src/body/pl_aphid_c.txt
new file mode 100644
index 0000000..0e47fd4
--- /dev/null
+++ b/parts_pl_src/body/pl_aphid_c.txt
@@ -0,0 +1,47 @@
+# pl_aphid_c: from pixellab_src/pl_aphid_c/base.png (variant of pl_aphid) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 41)
+# head_top at (27, 22)
+# back at (38, 34)
+# tail at (49, 40)
+.....ooooooo........................
+....oaac11aco.......................
+...o11b111ac3^......................
+..oa1111cc1133o.....................
+.obac11cac11ac3o....................
+.o1c111ccc12bc3o....................
+ooo11111ooo22233o...................
+oobo222ob11o2233o...................
+oowo222owowo2233o...................
+owoo222ooawo2333o...................
+o3322222ooo2333o....................
+.o22oo2222aa333o....................
+..o32222222333o.....................
+...o333333333o...........ooooo......
+....ooo33333o..........oB11111ooo...
+.......o3333o.........o1211111111o..
+.......o2233o........o112111111111o.
+.......o2233o.......o1111113311331o.
+.......32223o......o3311113311111o..
+......o222233o...oo111113331111111o.
+......o112223o..o131133ooo111311111T
+......o112223ooo1A11111o33333331121o
+......o1112233o111111oo222oo333331oo
+......o1112223o223ooo1111223o331133o
+......o211222233o11122311222oo31333o
+......o321222222o22122o21o2223o1333o
+.......o222222222oo1o22o1o2223o11o3o
+.......o3222322222o3o222oo2223331o3o
+........o322332322233222222223331oo.
+........oo3333o232222222222233o33oo.
+........ooo333o233322223222333o33o..
+........oooo33o2o33333o2o33333ooo...
+.......o3o..ooo1o33333o2o333ooo.....
+......o23o..ooo1ooooooo2ooooo3o.....
+......o2o...ooo1o...o3o32o..o33o....
+.....o13o...o3o1o..o33oo2o...o33oo..
+....o12o...oooo1o..ooo.oo1o...o333o.
+...o22o.....ooo1o.......o21o...oooo.
+...ooo.......o12o........o22o.......
+.............22o..........ooo.......
+.............oP.....................
diff --git a/parts_pl_src/body/pl_aphid_d.txt b/parts_pl_src/body/pl_aphid_d.txt
new file mode 100644
index 0000000..f16a3b6
--- /dev/null
+++ b/parts_pl_src/body/pl_aphid_d.txt
@@ -0,0 +1,41 @@
+# pl_aphid_d: from pixellab_src/pl_aphid_d/base.png (variant of pl_aphid) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 42)
+# head_top at (27, 27)
+# back at (38, 34)
+# tail at (47, 40)
+..............ooooooooo...........
+..........oo^oaaaaaabbboo.........
+..oo.....o111oaaaaaaaabbboo.......
+.o11o...oo1122oaaaaaaaabbbbo......
+o1123o.ooaooo2oaaaaaaaaabbbbo.....
+o12o33oocaaaao2oaaaaccaabooobo....
+ooo.o33occccco2oaaacaccabooobbo...
+.....o3ooooooo2oaaaccccaaboobbo...
+.....ooo1111132ocaaacccBabbbbbbo..
+....o11111111111ocaaaaaaaabbbbbo..
+....o3ooooooo2111ocaaaaaaabbbbbo..
+...oo21111122oo3111caaaaaabboooco.
+..o211111111122o3113caaaaabboooco.
+..o3311111123332o311caaaacbboooco.
+..o3o3211122oooo3o21occcoobccoccT.
+.o31bo22222owb11oo31occcoocccccco.
+.o1owo22222owobwoAo31occcccccccco.
+.owboo22222ooobwo2o311occcccccooo.
+.o3wbo22222obawwo22o311occcoccoco.
+.o3332222222oooo2222o311ooccoccooo
+.o2222222222222222223o311ooooooo1o
+..o222233222222aa22333oo1111ooo11o
+..o322222222222222333333oo111111o.
+..oo322222222222333333333oooooooo.
+...o33322222223333333333o333333o..
+....oo3333333333oo333ooo33333oo...
+......oo3333333obo333o3o33oo33....
+.....o2oooooo333b33ooo2ooo.o3o....
+.....o2o...ooooo22oooo32o...o2o...
+....o12o...o3o..22o33oo2o...o22oo.
+..oo12o...o33o.o1o.oo.oo2o...o333o
+.o222o.....oo..o1o.....o21o...oooo
+..ooo.........o12o......o22o......
+.............o22o........ooo......
+..............oP..................
diff --git a/parts_pl_src/body/pl_armor.txt b/parts_pl_src/body/pl_armor.txt
new file mode 100644
index 0000000..a34332e
--- /dev/null
+++ b/parts_pl_src/body/pl_armor.txt
@@ -0,0 +1,46 @@
+# pl_armor: from pixellab_src/pl_armor/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 41)
+# head_top at (30, 24) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (44, 54) (from part/probe)
+............oooooooooo............
+..........oo1111133333oo..........
+.........o1112o113o23333o.........
+........o11o12o^13o23o333o........
+.......o111o12o113o23o23o3o.......
+......o1211o12o113o23o23o33o......
+.....o12211o12o113o23o23o333o.....
+.....o12111o12o113o23o23o333o.....
+....o122211o12o123o23o23o3333o....
+....o122222o12o223o23o23o3333o....
+....o222222o22o223o23o23o3333o....
+....o22a222222222333333333b33o....
+....o22222233oooooooo33333333o....
+....o22223oooo333333oooo33333o....
+....o2233oo333222222333ooo333o....
+....o23oo3222222222222223oo33o....
+....o2oo323331111111233323oo3o....
+....o2oo21313311B111313312oo3o....
+....o12o213333111111333312o33o....
+.....o2o21a33a111111a33a12o3o.....
+...ooo22o11aa111A1111aa11o33ooo...
+..o122o2oa11111111111111bo3o333o..
+.o11112ooba1111oooo1111aboo32233o.
+o1211123oo32211111111222oo3322233o
+o2111222o3oo2222222222oo3o3332333o
+o22a2223o222oooooooooo333o3333b33o
+o3222233o2111223333333333o3333333o
+.o32233oo2111111122223333oo33333o.
+ooo333ooboo111111222223oocoo333ooo
+o22ooooocbaaaoooooooobccccooooo33o
+o22333ooocccbbaaabbbbbcccooo33333o
+.o333oo221oooccccccccooo333oo333o.
+..ooobo2111123oooooo2333333obooo..
+....oacoo22233o3333o22333oocbT....
+....oaccoooooo333333ooooooccbo....
+....oaccoo112oooooooo112ooccbo....
+....oacoo2ooo33o..o32ooo3oocbo....
+.....oo.oo123o3o..o3o322oo.oo.....
+........o22333o....o33233o........
+.........ooooP......ooooo.........
diff --git a/parts_pl_src/body/pl_armor_b.txt b/parts_pl_src/body/pl_armor_b.txt
new file mode 100644
index 0000000..e8c4283
--- /dev/null
+++ b/parts_pl_src/body/pl_armor_b.txt
@@ -0,0 +1,54 @@
+# pl_armor_b: from pixellab_src/pl_armor_b/base.png (variant of pl_armor) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 37)
+# head_top at (30, 13)
+# back at (31, 38)
+# tail at (48, 54)
+......................ooo^oooooo......................
+...................ooo2222222233ooo...................
+..................o1333333333333332o..................
+..................o111oooooooooo223o..................
+..................o2211111111111333o..................
+..................221112211322333333o.................
+.................o221o12o113o23o33o3o.................
+.................o221o12o113o23o23o3o.................
+................o2221o12o113o23o23o33o................
+................o2221o12o113o23o23o33o................
+................o2221o12o113o23o23o33o................
+..............ooo2221o12o113o23o23o33ooo..............
+........oooooo1oo2221o12o113o23o23o333o3oooooo........
+......oo32222311o3221o12o123o23o23o33o31332222oo......
+.....o3222222331o3222o12o123o23o23333o1332222223o.....
+....o221122222311o3a221222222222333bo213222112233o....
+...oo111112222331o332222222222223333o1332211112233o...
+...o2211122222331oo13333222222223333o1332111122233o...
+..o222112222223313o3111133333333333o313222111222333o..
+..o222222222223323oo33211122222333oo313222222222233o..
+.o2222222222223333o3ooo333333333oooo3232222222222333o.
+.o2222222222223333o333ooooooooooo33o3332222222222333o.
+.o2222222222233333o2222333333333222o3332222222223333o.
+.o3222222222333333o2222222222222222o33332222222233333o
+o33322222223333333o23331111A1123332o33333222223333333o
+o133a32222333b333oo1313311B111313312o3333a3333333b333o
+o313333333333333oo213333111111333312oo333333333333333o
+.o3111333333333ooo21a33b111111a33b12ooo3333333333333o.
+..o33111233333oo33o11aa11111111aa11o3ooo33333333333o..
+...oooo33333oo3o33ob11111111111111bo3oo3oo333333ooo...
+......ooooooo33o33oba1111oooo1111abo3oo33oooooooo.....
+.......o22ooo33o333o22211111111222oo3oo33boo32o.......
+......o1121oooooo333oo2222222222oo33ooooooo1333o......
+......o212132233oo2222oooooooooo3333oo333131333o......
+......o212132233oo221111233333333333oo332131333o......
+......o312132233ooo2111111122222333ooo333131333o......
+......ob122oooooooboo111111222223oocooooooo133bo......
+......o213o323oo.ocbaaaoooooooobcccco.oo223o333o......
+.......ooo22333o.oocccbbaaabbbbbcccoo.o33213ooo.......
+........o3223o3oo221oooccccccccooo333oo3o2133o........
+.........o333oobo2111123oooooo2333333oboo233o.........
+..........ooo.oacoo22233o3333o22333oocbo.ooT..........
+..............oaccoooooo333333ooooooccbo..............
+..............oaccoo112oooooooo112ooccbo..............
+..............oacoo2ooo33o..o32ooo3oocbo..............
+...............oo.oo123o3o..o3o322oo.oo...............
+..................o22333o....o33233o..................
+...................ooooP......ooooo...................
diff --git a/parts_pl_src/body/pl_armor_c.txt b/parts_pl_src/body/pl_armor_c.txt
new file mode 100644
index 0000000..c476088
--- /dev/null
+++ b/parts_pl_src/body/pl_armor_c.txt
@@ -0,0 +1,64 @@
+# pl_armor_c: from pixellab_src/pl_armor_c/base.png (variant of pl_armor) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 35)
+# head_top at (30, 5)
+# back at (31, 38)
+# tail at (38, 54)
+...........oo...........
+...........o3...........
+..........^13o..........
+..........o13o..........
+..........o13o..........
+.........o113o..........
+.........o1133o.........
+.........o1133o.........
+........o11233o.........
+........o112333o........
+........o112333o........
+.......o11123333o.......
+.......o11123333o.......
+.......o11223333o.......
+......o1112233333o......
+......o2222233333o......
+.....o1oooo23ooo3o......
+.....o1o1abooo333o......
+.....o1o1122333o3o......
+.....o12o112333o3o......
+.....o12o112333o2o......
+.....o12o312333o23o.....
+.....o22ooo133oo23o.....
+...ooo22oo3oo3oo23ooo...
+..o112o2oo3333oo2o233o..
+.o12223o33oooo33o32223o.
+o122223o22223322o322233o
+o2a2233o11112222o3322b3o
+o22233o2111122223o33333o
+o333oo311111222233o3333o
+.ooo3o321111222233ooooo.
+..333o331111222333o33o..
+.o223oo3333A33333oo32o..
+.o123oo3332233333oo323o.
+.o12o.o322112233oo.o23o.
+o1o3o.o2211B2223oo.o3o3o
+o12oo.oo221122233o.oo13o
+o123ooboo211223oocoo213o
+o123oocaaoooooocccooo13o
+o123occcaaaaaabcccooo13o
+ooooocbacccccccccccooooo
+o213ocaabaaabbbbccco223o
+o123ocaaaaaaaaaacoco323o
+o22oocabaaaaaaaacocoo23o
+.oocccaboaaaacabcccocoo.
+...ocbaaoaaaacobbccco...
+...oaac3oaabbo3bbccco...
+...oaao33oacco33occco...
+...oaoo23obcoo22o3oco...
+...ocoo233oo.o2213oo....
+...ooo2233o..o2213o.....
+.....o223o....o213T.....
+.....o223o....o213o.....
+.....ooo3o....o2ooo.....
+.....o22oo....o322o.....
+....o1223o....o1123o....
+....o2233o....o3223o....
+....ooooP......oooo.....
diff --git a/parts_pl_src/body/pl_armor_d.txt b/parts_pl_src/body/pl_armor_d.txt
new file mode 100644
index 0000000..c005021
--- /dev/null
+++ b/parts_pl_src/body/pl_armor_d.txt
@@ -0,0 +1,58 @@
+# pl_armor_d: from pixellab_src/pl_armor_d/base.png (variant of pl_armor) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 34)
+# head_top at (30, 9)
+# back at (31, 38)
+# tail at (45, 54)
+...............ooo^oooooo...............
+............ooo1111222233ooo............
+..........oo1122222222222333oo..........
+........oo12222222222222223333oo........
+.......o122222122222222222223333o.......
+......o12211222222222222222223333o......
+.....o1221111222222222222222223333o.....
+....o122111112222222222222222223333o....
+....o1221111222222222222222222233333o...
+...o12222111222222222222222222223333o...
+..o1222222222222222222222222222223333o..
+..o1221222222223333333322222222223333o..
+.o122222222223oooooooooo3222222223333o..
+.o1222222223oooooooooooooo322222223333o.
+.o122222223oooooooooooooooo32222223333o.
+.o12222223oooooooooooooooooo3222222333o.
+o12222223oooooooooooooooooooo3222223333o
+o1222222oooooooooooooooooooooo222223333o
+o122222oooooooooooooooooooooooo22223333o
+o122223oooooooooooooooooooooooo22223333o
+o122223ooooooooooooooooooooooooo2223333o
+o122223ooooooooooooooooooooooooo2223333o
+o322223ooooooooooooooooooooooooo2223333o
+o322223ooooooooooooooooooooooooo2233333o
+o332223ooooo333oooooooo3333ooooo2233333o
+.o32223ooooo3113ooooAoo3113ooooo223333o.
+.o33223ooooo2113ooooooo3213ooooo223333o.
+..o3222ooooo333ooooooooo333oooo223333o..
+..o33223ooooooooooooooooooooooo233333o..
+..o333223ooooooooooBoooooooooo233333o...
+...o33322oooooooooooooooooooo3233333o...
+....o333223ooooooooooooooooo3233333o....
+.....o333223ooooooooooooooo3233333o.....
+......o3333223ooooooooooo32233333o......
+......oo33333222ooooooo222333333oo......
+.....o12oo33333222222223333333o331o.....
+.....o1a23oooo3333333333333ooo32a1o.....
+.....o22223o22ooooooooooooo3o32221o.....
+......o3233o2222233333333333o3322oo.....
+.....o3ooooo2111111133333333oo33ooo.....
+.....o1233ocoo1111112222233ocooo221o....
+.....o1223ocbaaaooooooooaaaccoo3221o....
+.....o1233ooccaaaaaaaaaaccccooo3322o....
+......o33oo2ooooccccccccooo333oo33o.....
+......oooco1112obbccccco333333ocoo......
+......oaccoo212obbbbbbbo22233occaT......
+......oaccco3oooobbbbbboooooocccao......
+......oacooo33333oooooo33333ooooc.......
+.......oo..o1ooo33o..o31ooo3o...........
+...........o2122o3o..o3o1123o...........
+...........o22333o....o33133o...........
+............ooooP......ooooo............
diff --git a/parts_pl_src/body/pl_arowana.txt b/parts_pl_src/body/pl_arowana.txt
new file mode 100644
index 0000000..2a9f68a
--- /dev/null
+++ b/parts_pl_src/body/pl_arowana.txt
@@ -0,0 +1,29 @@
+# pl_arowana: from pixellab_src/pl_arowana/base.png (pixellab_library.py extract)
+# pivot at (32, 56)
+# aura at (32, 44)
+# head_top at (25, 36) (from part/probe)
+# back at (36, 38) (from part/probe)
+# tail at (50, 49)
+............oooooooooo.....oooooo.........
+.........ooo111aaaa2aaooo.o3b33bbo........
+.......ooaaaa1^11a2a2aaaaooc33a33bo.......
+......oaaa2111111a1a11a2a2aoob3ba32oooooo.
+...ooo2221111111121a11a2aBa2aob3b3oo111abo
+..o1112211ooo111121aaa2a2aa2a3co3oo11aa12o
+.o2111121owaao21112a1a11222a23aooo1aa1223o
+.o2222113wwoao21112a1a11322c2a3bo3a323abbo
+.o2oooa23waa1o2b211o2b22322c3a2bac3aabb2o.
+.ob1113a23ww1o1ab11o2b333c3b3a3b3bb33222o.
+oao11113a233211aa11obAa3a3a3b3bb3bbbbb2o..
+oao111113a21111bb12ob3a3a3a3b3o3b3b33cao..
+boo111111oao2a2bb22ob3b3b3b3b33ooo3bb33o..
+...o111111obbc2bb2o2b3b3b3b3bb3oooc3cbbo..
+....o1111111121113222b2b2b2b22oc3ooc33bo..
+.....o111111111o3co2222222222oc33boo3c3T..
+......o3333222o3cc3o2222222oocb3bb3oooo...
+.......oo2222222b2b2oo2222oc3b3b3bo.......
+.........oooo222oa2a22ooooc3b3b3bo........
+.........oc3coooooa2c22o22o3c3coo.........
+.........ob33c3o..oaa222oc2oo.............
+..........ob33co...ooab2boo...............
+...........ooooo.....Poooo................
diff --git a/parts_pl_src/body/pl_arowana_b.txt b/parts_pl_src/body/pl_arowana_b.txt
new file mode 100644
index 0000000..50c2172
--- /dev/null
+++ b/parts_pl_src/body/pl_arowana_b.txt
@@ -0,0 +1,37 @@
+# pl_arowana_b: from pixellab_src/pl_arowana_b/base.png (variant of pl_arowana) (pixellab_library.py extract)
+# pivot at (32, 56)
+# aura at (31, 42)
+# head_top at (25, 30)
+# back at (36, 38)
+# tail at (52, 49)
+...................ooooooo.................
+.................oo2a22222oo...............
+................oa22a222a32ao..............
+................o3bb322a33a33o.............
+.............o^oooooooooob3333o............
+.........oooo1aa12111ao33oo333bo...........
+.......oo2111111aa1211ao233oob3o...........
+......o1111111111a11111ao22o3oo3o..........
+.....o11111111111111111aoaao333oo..........
+....o11111111111131111ao11aao333o..........
+...o1111111111111311ooo21111ao33oo.....oooo
+..o11111111111111131aaao1111ao33ooo...o122o
+..o1111111ooo1111131111aoB11ao33o3o..o11aao
+.o1111111owbao1111131111o11a2ooo333oo1aa33o
+.o1111113wwobo3111231112o11bo33bo33o3aa3bbo
+o21111113waawo31111o111bo33o3333bo3o3o3bb3o
+o11111121oww1o31111oA11o333bo333bo3o3o3b33o
+o1oooo3211oo3111111ooooo3333o333boo33obbbo.
+ooaaaaoo11221111111o333o3333bo333o3o33333o.
+oaabbbbbo2111111113o333bo3333o3bo33o33bb3o.
+obbbbbbbbo31111113o3333bo333bo33333o3b3b3o.
+.obbbbbbbbo3111133o3333c3333o33333boo3b33o.
+.obbbbbbbbbo33333oc333bo33333ac3cbbo.o3b3o.
+..cbbbbbbbbboooooccc33oo3333aacccco...oooT.
+..ocbbbbbbbbbcccccco3b33occaccccco.........
+...occcbbbbbbbbbccco33b11occccccobo........
+....ooccccbbbbbcccco32a111occcco3bo........
+......occccccccccccco32aa21ocoo3bo.........
+.......oocccccccccccco322a2oo3bbo..........
+.........ooooccccccccco33aco.oooo..........
+.............ooooooooPooooo................
diff --git a/parts_pl_src/body/pl_arowana_c.txt b/parts_pl_src/body/pl_arowana_c.txt
new file mode 100644
index 0000000..a4eae6a
--- /dev/null
+++ b/parts_pl_src/body/pl_arowana_c.txt
@@ -0,0 +1,34 @@
+# pl_arowana_c: from pixellab_src/pl_arowana_c/base.png (variant of pl_arowana) (pixellab_library.py extract)
+# pivot at (20, 57)
+# aura at (30, 44)
+# head_top at (25, 34)
+# back at (36, 38)
+# tail at (50, 49)
+.....................ooooo.................
+..................oooaaaccoo...............
+.................oaaaaccaabco..............
+................oaccacccaccaco.............
+.............oo^ooooooocccbcbbo............
+..........ooo111aaaa2aaooocbccbo...........
+........ooaaaa1111a2a2aaaaooccbo...........
+.......oaaa2111111a1a11a2a2aoocbo....ooooo.
+....ooo2221111111121a11a2aBa2aocco..o111abo
+...o1112211ooo111121aaa2a2aa2a3oco.o11aa12o
+..o2111121owbao21112a1a11222b23booo1ab1223o
+..o2222113wwobo21112a1a11322c2b3bo3a323bbbo
+..o2oooa23waa1o2b211o2b21312c3b3bbc3bbbc2o.
+..ob111ooa3ww1o1ab11o2b333c3b3b3c3bb33322o.
+.oxo111oxa233211aa11Ab3b3b3b3b3bc3bcbbc2o..
+.oxo111oxbo21111bc12ob3b3b3b3b33oc3b33cbo..
+oxoo111oxo3ao2a2bb22ob3b3c3c3b33ooo3cb33o..
+oxo.o11oxo1obbc2bb2o2c3c3c3c3cc3oooc3cbbo..
+oxo.oo1oxo111121113222c2c2c2c22oo3ooc33co..
+oxo.ocooxo111111o3co2222222222oc33coo3c3T..
+oxo.ocooao33222o3cc3o3222222oooc3cc3oooo...
+oxo.ocooao2222222b2c2oo2223oc3c3c3co.......
+oxo.ocooaooooo222oa2b22ooooc3c3c3co........
+oao.ooooaooc3coooooa2c22o22o3c3coo.........
+oao.ooooaooc33c3o..oab222oc2oo.............
+.oa..oooao.oc33co...ooab2coo...............
+.oao..oooao.ooooo.....ooooo................
+..oo.....oP................................
diff --git a/parts_pl_src/body/pl_arowana_d.txt b/parts_pl_src/body/pl_arowana_d.txt
new file mode 100644
index 0000000..0557e02
--- /dev/null
+++ b/parts_pl_src/body/pl_arowana_d.txt
@@ -0,0 +1,49 @@
+# pl_arowana_d: from pixellab_src/pl_arowana_d/base.png (variant of pl_arowana) (pixellab_library.py extract)
+# pivot at (33, 56)
+# aura at (31, 35)
+# head_top at (25, 15)
+# back at (36, 38)
+# tail at (46, 49)
+..................ooooooooooo...................
+................o^aa11a111a11ooo................
+...............oa1a22bc33b221aa1oo..............
+..............oooooooooocc32cc21aao.............
+............ooo111aaa12booocc32bb11o............
+..........oo11111111a122aa2o33cc33bbo...........
+.........o1111111112a1112a22ooc33c22o...........
+........o11111111112a1a11a212bo3c32bbo..........
+.......o111111111111a1a113aa1b2oc3cc22o.........
+......o1111111111111b2a111ac1ac2occ22bo.........
+.....o1111111111111112a111ac1aa22oc3c22o........
+....o11111111111111112aa11ac1aa222oc322o........
+....o11111111ooo111112a21aa11aaaa22o33bo........
+...o11111111owaao11112a21a111a2aa22o3cco........
+...o1111111owwccao1111a21a11122aa222o33o........
+..o11111111owbccbo1121aa1a111122a2b2o3o....oooo.
+..o11111111owbbcwo11211c1a11112bb2b22oo...o11bbo
+.ooooo11111owwwwo211211c1b11112bb1b22oo..o1aa22o
+oaaaabo11111oooo2111311c1b111122b1bb2bo.o1ab222o
+obcccbbo11111222111131111b111122b12b2boo2a32222o
+oo22223o111111111111311oooo11122c12b2b2c2c22abbo
+.o11113211111111111322oAa2ao1222c1222b2bcccc22o.
+.o2222111111111111132ob21aao122bc1b22b2bc32222o.
+..o211111111111111132c31133o222bb2b2b32bc3222o..
+...o21111111111111322ccaa11oB22b2b22b3b3ccbbbo..
+...o22111111111113222c331ao3222b2b233c23c3222o..
+...o2222111111113322o3bb2bo22b3b2b233c33cc222o..
+....o2222111222322222oobbob22b3b3b2333oc3bbb22o.
+....o32222222222222222ooo2b22b3c3bb33oooc33bb2o.
+.....o22222222222222b22222b22b3b3bb33o..oc33bbo.
+......o3222222222222b2222bb22b2bb333oco..oc32bo.
+......o332222222222bb2222bb2bb22b33oc3o...o32co.
+.......o3332222222b222222bb22b23333oc3bo...ooo..
+.......o333333222b222222bb22223333oc3bbo........
+........o3333322b222c222233333333occ33bo........
+.........o3333333323c3b23333333ooc33bbT.........
+..........oo33333333c2b2o33333o3c3cc3co.........
+..........ocoo333333b1b11oo33oc3cc3cco..........
+..........oc3coo33333a2c112ooc3c3c3oo...........
+..........oc2c32ooooooa2c111ooocooo.............
+..........oc233co.....oac212booo................
+...........oc23o.......oobb2bo..................
+............ooo..........Pooo...................
diff --git a/parts_pl_src/body/pl_auger.txt b/parts_pl_src/body/pl_auger.txt
new file mode 100644
index 0000000..d138474
--- /dev/null
+++ b/parts_pl_src/body/pl_auger.txt
@@ -0,0 +1,48 @@
+# pl_auger: from pixellab_src/pl_auger/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 41)
+# head_top at (33, 22) (from part/probe)
+# back at (40, 24) (from part/probe)
+# tail at (51, 51)
+....................ooo.................
+.................ooo21oooo..............
+..............ooo311111131ooo...........
+.............o1121111^111311oo..........
+............o1112111111111o11oo.........
+...........o2111111111113113B33o........
+...........o21121111112o1113132o........
+.......oooo1o22111112oob113o232oo.......
+......oba11ooo311o13o3o222333222o.......
+.....o211z11o21113oo1o12ab32o222o.......
+....oaz111b123112331oo13ob3oo222o.......
+...o111a11bb1o22233222bo13oo23233o......
+..oz111aa22b22obbc3boo112oo22oo33o......
+.o11z112b22b22obbobb2223o333oo223o......
+o1112222b23b2coboooooooooooo3o22o.......
+o2223c22b23b3coo......oo22223o22o.......
+.ooccbbbb3cb3oo......oo3o2223o2bo.......
+...ooobb3cbb3o......oo33333oo23o........
+......ooobb3o......oo2222233223o........
+.........ooo.....oo33o22223o23o.........
+...............oo32222o222o23bo.........
+.............oo22232222o2o23bo..........
+............o1111123A22oo22bo...........
+..........oo22231122o232b3co3oo.........
+........ooo11111o233oo22coo3333ooo......
+......oo3o1111112o33333ooo33333323o.....
+.....o33oo2221122o32b3o2o333o333322oo...
+....o233o1111oo23332oocbo3cco33o21123o..
+....o112o111112oo33obocbo3ocobo321112o..
+...o223oo11111223booooooooooo3o3332322o.
+...o3112o11111233oo......oooooob1111o2o.
+...o21113oo2222oco..........ooo2111123o.
+..oo22221111ooooooooooooooooo2111211232T
+...o32o1111131111o1113111o11131111o223o.
+...o33o22113111112111211113111o112o23bo.
+....obb32223211131111121113111o2223bboo.
+....oo23o32o222232222232223223o23b33o...
+......o3bbo3bo32o22232o222o23bbbb3oo....
+.......oo33o3bb33b3ccobbbcccc33boo......
+.........o2oooo223bbo23b32acoooo........
+.............o3ooooo3ooooo2o............
+....................P...................
diff --git a/parts_pl_src/body/pl_auger_b.txt b/parts_pl_src/body/pl_auger_b.txt
new file mode 100644
index 0000000..19586e7
--- /dev/null
+++ b/parts_pl_src/body/pl_auger_b.txt
@@ -0,0 +1,49 @@
+# pl_auger_b: from pixellab_src/pl_auger_b/base.png (variant of pl_auger) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (31, 41)
+# head_top at (33, 17)
+# back at (40, 24)
+# tail at (52, 51)
+.....................o^o..................
+..................ooo21oooo...............
+...............ooo111111131ooo............
+..............o11111111111311oo...........
+.............o1111111111111o11oo..........
+............o211111111111311313oo.........
+............o21121111112o1113132o.........
+........oooowo22111112oob113oB32o.........
+.......oby11ooo311o12o1o22233o222o........
+......o211y11o21113oowow2yb32o222o........
+.....oyy111a12311233woow3ob3oo222o........
+....o111y11bb1o22233222co13oo2o222o.......
+...oy111ya22b22obbc3boo112o222o222o.......
+..o11y112b22b22obboaa1122oyb22o222o.......
+.o1112222b23b2coboooooooobbb22o22o........
+.o2223c22b23b3coo......ozyybo2o22o........
+..ooccbbbb3cb3oo......obbyyb2oo2bo........
+....ooobb3cbb3o.....oyyybbb22223o.........
+.......ooobb3o...ooozbyyyyb2o223o.........
+..........ooo...oyyyyybyy222o233o.........
+...............oyz11yyyb22222oco..........
+..........ooooy111zzyy11o2222booo.........
+.......ooo33oz1111yyo1111o2b2oo33ooo......
+.....oo222ooy1y11yy11o112oobo33oo333oo....
+...oo12o22oy111zyy21A1o222oo33o333ooo2o...
+..o11112o2o111111b31112obbo33o333o22111o..
+..oo33123oz1111yy11oo22oooo33o333o21ooooo.
+.o11113o3ozy111yy1112oocococcoc3oo2o11111o
+o1111111coy1zzzz221223coococcoccoco111111o
+o21113333oc111yy21oooozoooooooccoo2111111o
+o211o111111oyyyy22122oco....oooo111o11112o
+o22o1111133111yooooooooooooo11121111oo112o
+o22o1111o11111o11131111o11113111311111o12o
+oa2o221o111113111131111o111131111o1112o22o
+oaco222o1111o1111131111121111o1111o222oocT
+.o3oa22o2211o1111131111121111o1122o222oc3o
+.o3oaa2o2222o22211321111o2222o2222o22aoco.
+..oo3bbob222o22222o22222o2222o222aobbbo3o.
+...o333obbbboa2222o22222o2222obbabob33oo..
+....oooo2bb2obaaaaoaaaa2obaaao2cc3333oo...
+.......oo332o2aaa2o2bab2o2bb2o233oooo.....
+.........oooo22222o2333oo2222oooo.........
+.............oooooooPoooooooo.............
diff --git a/parts_pl_src/body/pl_auger_c.txt b/parts_pl_src/body/pl_auger_c.txt
new file mode 100644
index 0000000..7694150
--- /dev/null
+++ b/parts_pl_src/body/pl_auger_c.txt
@@ -0,0 +1,48 @@
+# pl_auger_c: from pixellab_src/pl_auger_c/base.png (variant of pl_auger) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 41)
+# head_top at (33, 29)
+# back at (34, 30)
+# tail at (51, 51)
+...............oo.....................................
+...........ooooabo....................................
+........ooo2111aboooo.................................
+.......o1131111111abo.................................
+......o111111111121b2oo...............................
+......o11211111o11311abo..............................
+......o221111oob113111boo.............................
+...ooo3o111oowo222321111ao.......................ooooo
+..oy11y13233wow2b2o22111abo....................oo122oo
+.o11y11b2223oobo12o322111bo....................o12oo..
+oy111b1b2bbooo122oo32o2111b^..................o12o....
+o1b22b2b2obb1122oo.oooo111abB................o21o.....
+.oobb33b2ooooooo....o22211abo................o23o.....
+...ooob2o............o332113o................o22o.....
+.....ooo.............o22211oao...............o222o....
+.....................o22211bbo................o21o....
+.....................o22211ao.................o211o...
+....................o2111122o..................o211o..
+....................o211112ao..................oa112o.
+...................o2111112bo..................o2112o.
+..................o2111112co..................oao112o.
+.................o11111122oooooooooooo......oooo1112o.
+................oo1111122bA3o3322oo22ooooooobb211122o.
+...............oo11111222co3o222332oooo22131a11111co..
+.............ooo11111121oo33o222222222oo2131111122co..
+............o22o1111112bo333o22o22231112o2221112b2o...
+...........o132o1111122oo333o33o22o212111oo222b2bo....
+..........o112o1111122bo3cc3bc3obco2221111oob2boo.....
+..........o112o1111122oo3cooooooccoco211112oooo.......
+.........o222oo211112boooo.....oooooo2321322o.........
+.........o3112o2211122oo...........ooc1111o2o.........
+.........o21113oo2222boo...........oo211112oo.........
+........oo22121111ooooooooooooooooo21112112o2T........
+.........o32o1111131111o1113111o11131111o22oo.........
+.........o33o22113111112111211113111o112o2oco.........
+..........ocbo2223211131111131113111o2223bboo.........
+..........oo23o32o222232222232223223o23b33o...........
+............o3bco3co32o22232o222o23bbbb3oo............
+.............oo33o3bbo3c3ccobbbcccc33boo..............
+...............o2oooo223bbo23b32aooooo................
+...................o3ooooo3ooooo3o....................
+..........................P...........................
diff --git a/parts_pl_src/body/pl_auger_d.txt b/parts_pl_src/body/pl_auger_d.txt
new file mode 100644
index 0000000..8998906
--- /dev/null
+++ b/parts_pl_src/body/pl_auger_d.txt
@@ -0,0 +1,49 @@
+# pl_auger_d: from pixellab_src/pl_auger_d/base.png (variant of pl_auger) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (33, 18)
+# back at (40, 24)
+# tail at (51, 51)
+.................o.o.^ooo...............
+...............oo1o1o1111oo.............
+..............o111111111111oo...........
+.............oo11111111111111o..........
+............o11211111113211113..........
+............o11211111111131111oo........
+...........o1112111111111131B111........
+...........o11111111112o11131111o.......
+.......oooo1o11111112ooc112331111o......
+......oca11oo1111o13o3o22223311113o.....
+.....o211z11o11113oo1o12ac23321111o.....
+....oaz111c122113331oo13oc33321113......
+...o111a11cc1o22333322bo1333321112o.....
+..oz111aa22c22occb3coo112o33322122o.....
+.o11z112c22c22occocc2222o333322133o.....
+o1112222c33c2bocoooooooo333322213o......
+o2223b22c33c3boo......o3332222233o......
+.oobbcccc3bc3oo......o33322222233o......
+...ooocc3bcc3o.....oo32222222333o.......
+......ooocc3o...ooo222222222233o........
+.........ooo..oo222222212222333o........
+.............o111111111122323co.........
+...........oo1111111111222333o..........
+..........oo11111111A122333coooo........
+........oo31111111111133333o3333ooo.....
+......oo23311111111122333oo33333322oo...
+.....o1223111111113133c3o33333222131o...
+....o11123111111123333oo3333322111111o..
+....o1133111111223333oc33333322111111o..
+...o1113311111123333o3c3333c3331111111o.
+..o111133311112233ooooooooo3c3311111112o
+..o211113332112233o........oo3321111132o
+..o3131111333323333ooooo...oo3111111132o
+..o323111111132133321111ooo111111111133T
+...o33121111111111311111111111111112133o
+...o3313111111111111111111111111112223o.
+....oc332113111111111111111111111122c3o.
+....oo3333231111311111111121111311233o..
+......o3c333c33332113111112221233333oo..
+.......oo3333cc3333333111222223c33oo....
+.........o3o333333c3333c22333333oo......
+............ooooooo33ooooo3oo3oo........
+...................Po...................
diff --git a/parts_pl_src/body/pl_axolotl.txt b/parts_pl_src/body/pl_axolotl.txt
index 25f2001..afc8fe0 100644
--- a/parts_pl_src/body/pl_axolotl.txt
+++ b/parts_pl_src/body/pl_axolotl.txt
@@ -1,8 +1,8 @@
# pl_axolotl: from pixellab_src/pl_axolotl/base.png (pixellab_library.py extract)
# pivot at (34, 60)
# aura at (31, 43)
-# head_top at (30, 32) (from part)
-# back at (38, 33) (from part)
+# head_top at (30, 32) (from part/probe)
+# back at (38, 33) (from part/probe)
# tail at (48, 52)
...........ooooooooo......................
.........oo222222222oo....................
diff --git a/parts_pl_src/body/pl_axolotl_b.txt b/parts_pl_src/body/pl_axolotl_b.txt
new file mode 100644
index 0000000..8905cc5
--- /dev/null
+++ b/parts_pl_src/body/pl_axolotl_b.txt
@@ -0,0 +1,60 @@
+# pl_axolotl_b: from pixellab_src/pl_axolotl_b/base.png (variant of pl_axolotl) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (33, 36)
+# head_top at (30, 7)
+# back at (38, 33)
+# tail at (49, 52)
+...................^ooo.....................
+..................obbbco....................
+.................obabbco....................
+...............oobabbbco...ooooo............
+...............obabbbcco..obbcco............
+..............obaabbbccooobaabco............
+..............oaabbbbccoobbabbco............
+.............obaabbbbccobaabbbco............
+............obaabbbbbcccbabbbco.............
+...........obbabbbbbccccbbbbcco.ooooo.......
+...........obabbbbbbccccbbbbccoocbbbco......
+...........obabbcbbbccccbbbbccocaaabco......
+..........obabbccbbbccccbbbcccbaabbbco......
+..........obabbccbbbccccbbbcccbbbbccoo......
+..........obbbbccbbccccccccccbbbbbcco.......
+..........obbbbcccccccccccccccbbbcccooo.....
+.........obabbbcccccccoooooocccccccbbbco....
+.........obabbcccccooo333333ooccccbbbaabo...
+........oobbbbcccco33322222233occbbbbbbbco..
+.......ooobbbbccco3222222222223occbbbbbcco..
+......o32ocbbccoo332222222bb2223occcbbcco...
+.....o311ocbcco3322ooo2222bb22223occccco....
+....o21111occo11111223o22222222223occccoo...
+...o3111111oo1111112222o322222bb223occcco...
+...o21111111111111122223o22222bbb23occccco..
+..o2211111111111112222233o3222bbb223ocbbcco.
+..o2221111111111222222233o3B22ccb223ocbbbco.
+.o321121111111211222223333o322222222occbbo..
+.oo21122111112111223333333o3322222223occo...
+.o1o2122222221112oo333A333o33222222b2occo...
+.o1coo222222212oooa3332233o3322222bb2occco..
+o21coo22222223oowow33111233o322222bb23occoo.
+o31wo321111223ocobw32112233o3222222223occo2o
+o32211111111123caw332222333o3222222223ocoo2o
+o33311o111311222222o3333333o3222222223oco32o
+o3332111111122222oo3333333o32222222233oco22o
+oo311ooooooooooooo11133323o32222222233oo2b2o
+o3o111occccccccoo11113222o3222222bbc33o2223o
+o23o211oobbbcco111122222o3322222bbbc33o2c3o.
+o223oo1111111111112222oo33222222bbbc33o333o.
+o2b233o3322222222233oo3332222222ccc33o333o..
+o2b2232ooooo22222ooo333322222322ccc33o333o..
+.o2221333oooooooo3222322222223333333oo32o...
+.o3223113222222322211322211123o33333oooo....
+..o323211111111111113322211123o3333o33o.....
+...o33321111111111112o22211123o33oo333T.....
+...oo3332111111111122o22211223o3oo333o......
+....ooooo322211111222o32222233oo33333o......
+....ooo33oo22222222223o3222333ooo33333o.....
+...o2223333ooo3222222oo333333oo3o333o3o.....
+..oo1331333o.oooooooo2332223o.oooo13ooo.....
+....ooooooo........o12311223o....ooo........
+...................oooo13323o...............
+.......................Poooo................
diff --git a/parts_pl_src/body/pl_axolotl_c.txt b/parts_pl_src/body/pl_axolotl_c.txt
new file mode 100644
index 0000000..b24543b
--- /dev/null
+++ b/parts_pl_src/body/pl_axolotl_c.txt
@@ -0,0 +1,49 @@
+# pl_axolotl_c: from pixellab_src/pl_axolotl_c/base.png (variant of pl_axolotl) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 39)
+# head_top at (30, 18)
+# back at (38, 33)
+# tail at (48, 52)
+.................oooo^ooooo.................
+..............ooo2222222222ooo..............
+............oo1111111111122222ooo...........
+...........o221111111111112222223oo.........
+.........oo211111111111111222222333o........
+........o321111111111111112222222333o.......
+.......o22211111111111111222222222333o......
+......o212211111111111121112222222233o......
+......o2122211111111122111122222223aa13o....
+......ooo222222222222211122322222aaac23o....
+......ooo222222222222222oooo32222accoo3o....
+..oooo11111111111222223oooa3222222cc3333o...
+.o211111111111111122223obcw3222222aaaao3o...
+o21111111o1111o1222222233333222223cccc1o3o..
+o21111111o1112o222222222222222223ccbooo33o..
+o3222222222222222222222222222B223ccao33333o.
+.oo222ooooooooooo2222222222ooo2233ca1o3333o.
+...ooo21111111111oooooooooo22223333ooo3333o.
+...o333o22222222222222222222233332333333333o
+...o3333oooooooooooooooooooo333222222233333o
+...o223222222222222222233333322222222233333o
+..o2221122222222222222A22332222222222233333o
+..o2221111111111111111111122222222222223333o
+..o2211111111111111111111112222222222223333o
+..o2211111111111111111111112222222222223333o
+..o2211111111111111111111111222222222233333o
+..o2211111111111111111111111122222222233333o
+..o2211111111111111111111111122222222333333o
+...o21111111111111111111111112222222333333o.
+...o21111111111111111111111111222222333333o.
+...o32111111111111111111111111222233333333o.
+....o321111111111111111111111122233333333o..
+....o332111111111111111111111123333333333o..
+.....o3321111111111111111111233333333333o...
+......o33221111111111111111233333333333T....
+......o23322211111111111222331223o3333o.....
+.......o3oo222222222222222o311223o333oo.....
+........o33oo2222222222222o311223oooo3oo....
+.........o333ooo2222222222o332233o33332o....
+........o13223o.oooooooooooo3333o.o32oo.....
+........ooo12oo...........o33322o..oo.......
+...........oo............o12oo12o...........
+.........................Poo..oo............
diff --git a/parts_pl_src/body/pl_axolotl_d.txt b/parts_pl_src/body/pl_axolotl_d.txt
new file mode 100644
index 0000000..e787adb
--- /dev/null
+++ b/parts_pl_src/body/pl_axolotl_d.txt
@@ -0,0 +1,59 @@
+# pl_axolotl_d: from pixellab_src/pl_axolotl_d/base.png (variant of pl_axolotl) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 34)
+# head_top at (30, 8)
+# back at (38, 33)
+# tail at (49, 52)
+.................oooo^ooooo..................
+...............oo2222222222ooo...............
+.............oo222222222222222oo.............
+...........oo1111111111112222223o............
+.........oo2111111111111111222223oo..........
+........o22111111111111111111222223o.........
+.......o2211111111111111111112222233o........
+......o221111111111111111111112222233o.......
+.....o22111111111111111111111122222233o......
+....o3211111111111111111111111222222333o.....
+...o32211111111111111111111111222222233o.....
+...o222111111111111111111111122222222333o....
+..o3222111111111111111111111122222222233o....
+..o3222211111111111111111111122222222233o....
+..o3b22211111111111111111112222222222b333o...
+..o3222221111111111111111222222222222b333o...
+.o33222221111111111111122222222222223b333o...
+.o3322111221111111111122111111222223333333o..
+.o3322111122111111111221111111122223333333o..
+.o3323311112111111111211222222222333333333o..
+.o333ooo11122111111122112ooooo322333333333o..
+.o33o1coo112222222222211ooocc1o33333333333o..
+.o3o1cowo22222222222222owwoccc1o3333333333o..
+.o3owcowoo222222222222oowwoccc1o3333333333o..
+.o3owccooo222222222222oooooccc1o3333333333o..
+.o3owccooo222222222222oooooccBwo3333333333o..
+.o3owccoco222222222222Accoocccwo3222233333o..
+.o2owcaoco221111111122occooaacwo222222333o...
+.o211baaao211111111122ocaaaaac11112222333o...
+o21133aaa31111111111113caaaaa331112222333o...
+o21bab333111o1111o11111333333bbb11122233o..o.
+o21abbb111111111111111111111bbbab1222233o.o3o
+.o2bbbb111122222222221111111bbbbb122233o.o23o
+.o32bb111122oooooooo211111111bba122233o..o23o
+..o3222222221111111o21111111112222233o..ob23o
+...o32222221111111111111112222222333o.oob223o
+....o3222221111111111111322233222oooooocb223o
+.....oooo332222222232222222233ooocbbboc22233o
+.........ooo33322233222333oooo333cbb2bo22233o
+..........oooooooooooooooo333333332bb2o3233o.
+..........o333322222222233332223222bb2o3333o.
+..........o3333222232233332222232222223o33o..
+.........o21133311111113o2221123o222112o3o...
+.........o21123o31111111o2211123o222112oo....
+........o211123oo3111113o2211123o3321123T....
+........o2112233oo311113o2211123o3322223o....
+........o211233oooo32223o2211123o3333333o....
+........o222233oooooo222o2211123ooo33333o....
+.......o222233ooo333ooooo3222223ooo33333o....
+.......o131333o.oooooo..o3222223ooo31313o....
+.......ooooooo..........o1322o21o.oooooo.....
+........................ooo12ooo.............
+...........................Po................
diff --git a/parts_pl_src/body/pl_balloon.txt b/parts_pl_src/body/pl_balloon.txt
new file mode 100644
index 0000000..a99a634
--- /dev/null
+++ b/parts_pl_src/body/pl_balloon.txt
@@ -0,0 +1,49 @@
+# pl_balloon: from pixellab_src/pl_balloon/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 37)
+# head_top at (31, 22) (from part/probe)
+# back at (31, 33) (from part/probe)
+# tail at (39, 47) (from part/probe)
+............oooooooo............
+.........ooobboooobbooo.........
+.......oooobao2222oaboooo.......
+.....ooo3baao222222oaab3ooo.....
+....oo23baao222^2222oaab22oo....
+...oo23baao2222222222oaab22oo...
+..oo11baab222222222223baab11oo..
+..o31ba1a22211111221222a1ab13o..
+.o333a11b22111111111222b11a333o.
+.o33ba11o22211111111222o11ab33o.
+o333baaao22221111112222oaaab333o
+o33baaab2ooo22222222ooo2baaab33o
+o33baaao2222222222222222oaaab33o
+o33baaao2oooo222222oooo2oaaab33o
+o33baaao2owzo222222owzo2oaaab33o
+oo3caaao2owoo22B222owoo2oaaac3oo
+oo3cbaao2boob222222boob2oaabc3oo
+oooobbao2oaao222222oaao2oabboooo
+oooobbbo3332222222222333obbboooo
+ooooobboo33ooo2A22ooo33ocbbooooo
+.oooobbooo3owwoooowwo3ooobboooo.
+.ooooobbooooobbbbbbooooobbooooo.
+..oooobbcoooooaaaaooooocbboooo..
+..ooooobboooooooooooooobbooooo..
+...oooobbooooooooooooocbboooo...
+....oooobboooooooooooobboooo....
+.....oooobboooooooooobboooo.....
+......ooxobboooooooobboxoo......
+.......oxooboooooooobooxo.......
+........oooobbbbbbbboooT........
+........oyoobbbbbbbbooyo........
+........oxozoooooooozoxo........
+.........ooco......ocoo.........
+.........oczo......ozco.........
+........oycoooooooooocyo........
+........oxzxzzzzzzzzxcxo........
+........ozyyxxxxxxxxyyzo........
+.........oczzyzzzzyzzzo.........
+.........ozyycyxxycyyzo.........
+.........ozcyxyccyxyczo.........
+.........ozzcyyxxyyczzo.........
+..........ooccczzcccoo..........
+............oooPoooo............
diff --git a/parts_pl_src/body/pl_balloon_c.txt b/parts_pl_src/body/pl_balloon_c.txt
new file mode 100644
index 0000000..8fc4b02
--- /dev/null
+++ b/parts_pl_src/body/pl_balloon_c.txt
@@ -0,0 +1,64 @@
+# pl_balloon_c: from pixellab_src/pl_balloon_c/base.png (variant of pl_balloon) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 31)
+# head_top at (31, 3)
+# back at (31, 33)
+# tail at (39, 47)
+..............o^oo..............
+.............o3333o.............
+............o322223o............
+...........o33111133o...........
+..........oo31111113oo..........
+..........o3311111133o..........
+.........oo3331111333oo.........
+........oo333331133333oo........
+........oo333333333333oo........
+.......ooca3333333333aboo.......
+.......obaa33ba33aa33aabo.......
+......obbaa3baa33aab3aabbo......
+......oboaabaaabbaaabaaobo......
+.....oboobaaacaaaacaaab3obo.....
+.....oo33baaaobaacobaab33oo.....
+....oo33aabbo22bb22obbaa33oo....
+....o33baabo222oc2222caaa33o....
+...oo33aaao2222222222oaaa33oo...
+...o33aaab22222222222obaaa33o...
+..o33aa1ao221111122122oa1aa33o..
+..o33a11b22111111111222b11a33o..
+..o3ba11b22211111111222b11aa3o..
+.o33baaao22221111112222oaaaa33o.
+.o33aaaco22222222222222obaaa33o.
+.o3baaao2222222222222222oaaab3o.
+o33baaa222222222222222222baab33o
+o33baac222222222222222222baab33o
+oo3baac222222222222222222baab3oo
+oo3baac22o22o22A222o22o22baab3oo
+ooooaac22oooo222222oooo22caacooo
+oooobac22222222B222222222caboooo
+oooobbo222222222222222222cbboooo
+oooobbo222222222222222222cbboooo
+oooobbbo2222222ooo222222obbboooo
+ooooobbo222222oaaao22222obbooooo
+.oooobbooo2222o222o222ooobboooo.
+.ooooobboooo22222222oooobbooooo.
+..oooobboooooooooooooooobboooo..
+..ooooobboooooooooooooobbooooo..
+...oooobboooooooooooooobboooo...
+....oooobboooooooooooobboooo....
+.....oooobboooooooooobboooo.....
+......oooobboooooooobboooo......
+.......oooobboooooobboooo.......
+........oooobbbbbbbboooT........
+........oxoobbbbbbbbooxo........
+........oxozoooooooozoxo........
+.........ooco......ocoo.........
+.........oczo......ozco.........
+........oycoooooooooocyo........
+........oxzxzzzzzzzzxcxo........
+........ozyyxxxxxxxxyyzo........
+.........oczzyzzzzyzzzo.........
+.........ozyycyxxycyyzo.........
+.........ozcyxyccyxyczo.........
+.........ozzcyyxxyyczzo.........
+..........ooccczzcccoo..........
+............oooPoooo............
diff --git a/parts_pl_src/body/pl_bamboo.txt b/parts_pl_src/body/pl_bamboo.txt
new file mode 100644
index 0000000..3be3f06
--- /dev/null
+++ b/parts_pl_src/body/pl_bamboo.txt
@@ -0,0 +1,42 @@
+# pl_bamboo: from pixellab_src/pl_bamboo/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 44)
+# head_top at (29, 28) (from part/probe)
+# back at (38, 33) (from part/probe)
+# tail at (44, 49) (from part/probe)
+.............oooo.....................
+...........oo2331oo...................
+..........o1233311oo........oo........
+.........o112211^22ooo....oo1o........
+........o1111111123oo3o..o212o........
+.......oo211111123o1o32oo212o.........
+.......o1o111223oo133o22o22o..........
+.......o13oooooo13223o32ooo...........
+......oo1111112222223o323B3o2.........
+.....o1o211122ooo1122o323o2212........
+.....o1oo2222ow3w1122o323oooo2........
+.....3132oooo1o3w112oo3obo............
+.....o21111111313122obobco............
+.....o2211111111222ooobcoo............
+......o22o22o22223ooo3333o.........ooo
+.......o2222222ooooo33333o.......o323o
+...oo...oooooooobbco23333.......o323o.
+...o1o.........o3ocaco33o.......o13o..
+...o21o.......o3323occoo.......o2oco..
+ooooo23o..oooco322A23ocoooooo..o123o..
+.o123o2ooo33o3aac22233o23b223ooo123o..
+..ooo2ocbo3o212oac2333oo1o113b3obo3o..
+....ooo3obco1122oac33o33oc3oc123ocoo..
+...obabo2oao22223obooooooo3c32123obo..
+..ob223oo3aao22333ococaco3oo3obTo3oo..
+..o31223o2oaaoo33ooo323bco3co323bo3o..
+..o212bco33obbbocoo32123bo3oo2123bo...
+..332aac3oo3ooooocbc1123boo3cb123bo...
+..o3oao223oobo3333aa32233o323bc33o....
+..o3bb2112oaa32222aac233oo123bc33o....
+...oao2221oaa11112oac333o2223co3o.....
+...oao3222aao22222obc33ob3333coo......
+....oo3333oao22233obo3obo333ooo.......
+......oo33oco33333oboocc33oo..........
+........ooooco33oooo.ooooo............
+...........ooooP......................
diff --git a/parts_pl_src/body/pl_bamboo_b.txt b/parts_pl_src/body/pl_bamboo_b.txt
new file mode 100644
index 0000000..3f4038f
--- /dev/null
+++ b/parts_pl_src/body/pl_bamboo_b.txt
@@ -0,0 +1,44 @@
+# pl_bamboo_b: from pixellab_src/pl_bamboo_b/base.png (variant of pl_bamboo) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 42)
+# head_top at (29, 25)
+# back at (38, 33)
+# tail at (48, 49)
+.......................oooo.............
+....................ooo1111oo...........
+...........ooooooo^o111111111ooooo......
+......ooooo111222111111111111o1111oo....
+...ooo111111111122111111111131o11111o...
+ooo222333111111111221111221131o11111o...
+o11111133331111131222222222222o22222o...
+.oo1111111133113332222oooo2222oooooo....
+...oooooo111333333oooo333oo22o..........
+.........ooooooooo22222o333oo...........
+........oo2222222222112o223B2o2.........
+.......o1o222222ooo1112o223o2212........
+.......o1oo1112ow3w1112o22coooo2........
+.......3132oooo1o3w112oococo............
+.......o21111111313122occcco............
+.......o22111111112223o2133o............
+........o22o22o22222oo31133o........oooo
+.........o2222222ooo3321233o.......o112o
+.....oo...ooooooooobco1223o.......o113o.
+.....o1o.........o3oAaco33o.......o13o..
+.....o21o.......o3121occoo.......oo1co..
+..ooooo23o..oooc3211223ocoooooo..o1ooo..
+...o123o2ooo33o3aac22233o23b223ooo122o..
+....ooo2ocbo3o212oac2333oo3o113b3o122o..
+......ooo3obco1122oac33o33oc33c123oc2o..
+.....obabo2oao22223obooo333o3c32123obo..
+....ob223oo3aao22333ococac33oo3obao3oT..
+....o31223o2oaaoo33ooo323bc33co323bo3o..
+....o212bco33obbbocoo32123bo3oo2123bo...
+....332aac3oo3ooooocbc1123boo3cb123bo...
+....o3oao223oobo3333aa32233o323bc33o....
+....o3bb2112oaa32222aac233oo123bc33o....
+.....oao2221oaa11112oac333o2223co3o.....
+.....oao3222aao22222obc33ob3333coo......
+......oo3333oao22233obo3obo333ooo.......
+........oo33oco33333oboocc33oo..........
+..........ooooco33oooo.ooooo............
+.............ooooP......................
diff --git a/parts_pl_src/body/pl_bamboo_c.txt b/parts_pl_src/body/pl_bamboo_c.txt
new file mode 100644
index 0000000..0e232f7
--- /dev/null
+++ b/parts_pl_src/body/pl_bamboo_c.txt
@@ -0,0 +1,63 @@
+# pl_bamboo_c: from pixellab_src/pl_bamboo_c/base.png (variant of pl_bamboo) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 36)
+# head_top at (29, 4)
+# back at (38, 33)
+# tail at (48, 49)
+................^o....................
+...............o1o....................
+...............o11o...................
+..............o111o....oo.............
+..........oo..o111o..oo1o.............
+.........o13o.o111o.o111o.............
+.........o211oo112oo1122o.............
+..........o11oo222o3122o..............
+..........o222oo2oo223o...............
+...........ooooooo33oo...cccc.........
+...........oo1331oooo..ccaaac.........
+..........o1233311oo..ccbaaboo........
+.........o112211112ooocbbccc1o........
+........o1111111112oo3occcoo2o........
+.......oo111111123o1o32ooo12o.........
+.......o1o111222oo133o22o22o..........
+.......o13oooooo13222o22ooo...........
+......oo1111112222222o222o2o2.........
+.....o1o211112ooo1112o322o2212........
+.....o1oo2222ow3w1112o322oooo2........
+.....3133oooo1o3w112oo322o............
+.....o21111111113122oo322o............
+.....o2211111111222ooo322o............
+......o22o22o22222oo3332cco...........
+.......o2222222ooooo33cccco...........
+........oooooooo..oo3bbcc3o...........
+..................oaaccc33o...........
+..................o3332233o...........
+..................o2222233o...........
+..................o112223Bo...........
+..................o112233co...........
+..................oac22cbco...........
+..................Aaabcbbco...........
+..................oabbbb33o...........
+.................o2122233o............
+.................o1122233o.........ooo
+.................o1222233o.......o323o
+...oo...........oaac2233o.......o323o.
+...o1o.........o33aaco33o.......o13o..
+...o21o.......o3112occoo.......o2oco..
+ooooo22o..oooc3312223ocoooooo..o123o..
+.o123o2ooo33ooabc22233o23b223ooo123o..
+..ooo2ocbo3o212oac2333oo1o113b3obo3o..
+....ooo3obco1122obc33o33oc3oc123ocoo..
+...obabo2oao22223obooooooo3c32123obo..
+..ob223oo3bao22333ococacoooo3obao3oT..
+..o31223o2obaoo33ooo32obco3co32obo3o..
+..o212bco33obbbocoo32123bo3oo2123bo...
+..332aac3oo3ooooocbc1123boo3cb123bo...
+..o3oao223oobo3333bao2233o32obc33o....
+..o3bb2112oaa32222bac233oo123bc33o....
+...obo2221oaa11112oac333o222oco3o.....
+...obo3222bao22222obc33ob3333coo......
+....oo3333oao22233obo3obo333ooo.......
+......oo33oco33333oboocc33oo..........
+........ooooco33oooo.ooooo............
+...........ooooP......................
diff --git a/parts_pl_src/body/pl_barrel.txt b/parts_pl_src/body/pl_barrel.txt
new file mode 100644
index 0000000..8777c44
--- /dev/null
+++ b/parts_pl_src/body/pl_barrel.txt
@@ -0,0 +1,48 @@
+# pl_barrel: from pixellab_src/pl_barrel/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 39)
+# head_top at (32, 23) (from part/probe)
+# back at (33, 38) (from part/probe)
+# tail at (47, 43) (from part/probe)
+..............oooooooooooooooo............
+..........ooo11111111111111111ooo.........
+.......ooo222oo3333o33o3333331111ooo......
+.....oo112o3o2222222222222222o3o1111oo....
+....o11133o222222o222^222222o111111111o...
+...o111o2o2oocccc2o222222222o111111111o...
+...o111o2o2ooooob2o22222223111111111111o..
+...o1111o3o21112co2222222o1111111122211o..
+..o1111111oo3o3333222222231111oooo32o22o..
+..o111211111111111o2222222o3o3332113o22o..
+..o222o111111111111o22222222221122ooo22o..
+...o22o11211111111o11111111122oooocbo22o..
+...o22o22oo1122o22oooooooooooocccccbo22o..
+...o12ooooo112oo22obbbbbbbbbcccbbccbo22o..
+...o12obbbo112oboobaaabbbaaaccbbbccbo22o..
+...oooo3aao112obbbaaabbbaaabccbbccboo22o..
+.....o3322o112obbaaabbbbaabbcbbbbo33o22o..
+.....o3221o112obaaabbbbaabbbc3333313o22o..
+.....oo321o112o1222222222222o22223ooo22o..
+......o333o222o1111111B1112221222o33o211o.
+......o332oo3o3322222A2222222ooo3333o211o.
+......o33222c1123o3o3333333333333333o222o.
+......o212221oooo222222222oooo333223oo2o..
+......o22o11o1222o2222222o1222o33333o.o...
+......o21o1o12wo2ao22222o12wo2ao3233T.....
+......oo222ow1oo1ao22222ow2oo1ao3333o.....
+.....o2o222ow1111wo22222ow1111wo333o3o....
+.....o13222aowwwwo222o222owwwwoa333o3o....
+.....o1321122oooo22ooaoo22oooo332223oo....
+.....o1332111122222222222222222112ooo.....
+....o11333331221111111111122222ooo33ooo...
+..oo111occ2233332222222222233o333obo211o..
+.o11123ocaa23o22o333333333333o3bccbo2111o.
+o111123obaabba3c222222222233ccbbccbo22111o
+o222223obacbbaaabbbaabbbaaabcbbccbboo2222o
+.oo2ooooobcbaaabbbaaabbbaabbcbbccbo..oooo.
+.........oobaabbbaaabbbaaabbbbbcoo........
+...........ooobbbaabbbaaabbbbooo..........
+...........o33ooooooooooooooobbo..........
+..........o2222oo.........ocaaaao.........
+..........o3223o...........ocaaco.........
+...........oooP.............oooo..........
diff --git a/parts_pl_src/body/pl_barrel_b.txt b/parts_pl_src/body/pl_barrel_b.txt
new file mode 100644
index 0000000..b65daf5
--- /dev/null
+++ b/parts_pl_src/body/pl_barrel_b.txt
@@ -0,0 +1,57 @@
+# pl_barrel_b: from pixellab_src/pl_barrel_b/base.png (variant of pl_barrel) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 37)
+# head_top at (32, 17)
+# back at (33, 38)
+# tail at (51, 43)
+............ooo...........................
+.........ooo112o..........................
+....ooooo111332ao.........................
+...o1111133333a2o.........................
+..o11111333333222o........................
+.o11111111333322oo........................
+.o113311111o3333cbo.......................
+.o13oo333111o233cbooo^oooooooo............
+o123o.o33311333bbo331111111112oooo........
+o123o..o33333aaboooooooooooooo1112o.......
+o33o..oobba3baao3333222222c222oooo2o......
+.oo...o3ooaaboo333332222ccccb2222oo2o.....
+......o33oooo33332222222aocc222222oao.....
+......oco22333322222222222c222222aabo.....
+......obbaa22222222222222222222aaccbo.....
+.....ocbbbabbabbbbbaaaaaaaaaaccbbccbo.....
+.....obbbaabbabbbbbaabbbbaaaccbbbccbbo....
+....obbbaaabbababbaaabbbbaabccbbbbccbo....
+...ooocaaabbaaabcaaaabbbaaabccbbbbcco3o...
+...o222oaacbaaabbaaabbbaaabbbcbbabooo33o..
+..ooo211111ccaabbaabbbaaabbbboooooo3223o..
+..o1oo22111bb1122222222222222obbbbb22o33o.
+..o12ooo3222b11111111111111221bbbbc33333o.
+..o22222333333332222222222222ooob33c3333o.
+..o222bb22222333ooooooooooooo222b223333bo.
+.o122boo222222222o2222222o222222b2223333o.
+.o12booob2222222o222222222o22222b2223333oo
+.o12boooo222222ooo22A2222oooo222222233b33o
+.o12bbooo222ooowooo222B2owwoooo2222bb3333o
+.o12bboob222owwoo2o22222owoo2wo2222oob333o
+.o12bbbb2222owww22o22222oww22wo222oooob3oo
+.o1222a322223owwwo3222223owwwo322boooob3o.
+.o222222222223ooo332222223ooo3222booob33o.
+.oo32222a22222222222ooo22233322222oob333T.
+o2o32222a2222222222o222o2222222222bb333o2o
+o1o3b32ab221222222o22222o22222221223333o2o
+o1oobb2bbb2112222222222222222222222332oo2o
+o12oob2bbb2222222222222222222222222222o22o
+o12ooooobbb11122222222222222ab222222ooo22o
+oa22oooooooo2111111111111111bb2ooooooo32bo
+o122oobcooooooooooooooooooooccoooooobo322o
+o12233occccoooo3222222222oobccoooccbo3222o
+o222ooocaacaaaa22222222222cccccbcccbo3222o
+.o22oooocacaaaabaaaabbbaaaccbbccccbooo22o.
+..ooo..ooccbaaabbaaabbbaaccbbbbccbo..ooo..
+.........ooccaabbbabbbaabccbbbccco........
+..........ooooccccbbbaaccccbboooo.........
+...........o33ooooooooooooooo33o..........
+..........o1222oo.........o33222o.........
+..........o222oo...........o3322o.........
+...........oooP.............oooo..........
diff --git a/parts_pl_src/body/pl_barrel_c.txt b/parts_pl_src/body/pl_barrel_c.txt
new file mode 100644
index 0000000..ac32fdf
--- /dev/null
+++ b/parts_pl_src/body/pl_barrel_c.txt
@@ -0,0 +1,61 @@
+# pl_barrel_c: from pixellab_src/pl_barrel_c/base.png (variant of pl_barrel) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 32)
+# head_top at (32, 6)
+# back at (33, 38)
+# tail at (46, 43)
+..............ooooooo^oooooooo............
+..........ooo11111111111111111ooo.........
+.......ooo222oooooooooooooooo1111ooo......
+.....oo113ooo3333333333333333ooo1111oo....
+....o111ooocccccco3332233333o111111111o...
+...o111o3ocooccccco333333333o111111111o...
+...o111o3ocooooobco3333333o111111111111o..
+...o1111oooc111cco3333333o1111111122211o..
+..o1111111oooooooo333333331111ooooo2o22o..
+..o111211111111111o3333333oooo332113o22o..
+..o222o111111111111o33333333331122ooo22o..
+...o22o11211111111o11111111122oooocbo22o..
+...o22o22oo1122o22ooooooooo31occcccbo22o..
+...o12ooooo112oo22obbbbbbbb31obbbccbo22o..
+...o12obbbo112oboobaaabbbaa31obbbccbo22o..
+...oooooaao112obbbaaabbbaao11obbccboo22o..
+.....o3333o112obbaaabbbbaao11obbbo33322o..
+.....o3321o112obaaabbbbaabo11oooo313322o..
+.....o3o21o112o133333333333oo22223ooo22o..
+......ooooo222o111111111112221222o33o211o.
+......oo33oo3ooo2222222222222ooo333oo211o.
+......o33333c113ooooooooooooo333333oo222o.
+......o33333311333333o333333o333223o.o2o..
+......o33o13311331111o333333o333333o..o...
+......o33o13o113311113333333o333233o......
+......o33o11o113311113333333o3333o3o......
+......o33o11311331111A333333o3333o3o......
+......o33o113ooo3111133333oooo333o3o......
+......o33o113ooooo1113333ooooo333o3o......
+......o33o11o1222o1113333o1222o33o3o......
+......o33o1o12wo2ao11333o12wo2ao3o3o......
+......o33o1ow1oo2ao11333ow2oo2ao3o3o......
+......o33o1ow1122wo113B3ow1122wo3o3o......
+......o33o1aowwwwo1113333owwwwoa3o3o......
+......o33o113oooo111133333oooo33333o......
+......o33o113333111113333333o333333o......
+......o33o11333oo111133333ooo333333o......
+......o33o1133ooooooooooooboo333333T......
+.....o3o3o11333obbbbbbbbbbo3o33333o3o.....
+.....oo2oo313333obbbbbbbbo33o3333o23o.....
+.....oo222o133333obaaaaao333o3333223o.....
+....o3oo2113333333oaaaao3333ooo312oooo....
+..oo312oo2111133333oooo33333333332o322oo..
+.ooo122ooooo1221111111111122223ooo3o211oo.
+oo11123occ33oooo22222222222ooo333obo2211oo
+o22222oocaa33o33ooooooooooo33oobccboo2222o
+ooo3oooobaabba3c3333333333o3ccbbccbooooooo
+.oo3oo.obacbbaaabbbaabbbaaabcbbccbbo.oooo.
+........obcbaaabbbaaabbbaabbcbbccbo.......
+.........oobaabbbaaabbbaaabbbbbcoo........
+...........ooobbbaabbbaaabbbbooo..........
+...........o33ooooooooooooooobbo..........
+..........o3333oo.........ocaaaao.........
+..........oo33oo...........ocaaco.........
+...........oooP.............oooo..........
diff --git a/parts_pl_src/body/pl_barreleye.txt b/parts_pl_src/body/pl_barreleye.txt
new file mode 100644
index 0000000..b314cc1
--- /dev/null
+++ b/parts_pl_src/body/pl_barreleye.txt
@@ -0,0 +1,44 @@
+# pl_barreleye: from pixellab_src/pl_barreleye/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (30, 27) (from part/probe)
+# back at (30, 39) (from part/probe)
+# tail at (48, 49) (from part/probe)
+..............ooooooooo.................
+............oo211111111ooo..............
+..........oo11111111111113oo............
+........oo111111111111111113o...........
+.......o3111111111^1111111121o..........
+......o31111111333333311133311o.........
+......o111111332222222333111231o........
+.....o11111331111112222223222313o.......
+....o311113211111112222222322311o.......
+....o111132111111112222222232231o.......
+....o1113221111111222222222322321o......
+...o311333221111222oooo3222232321o......
+...o11311o22222222o1111o322223221o......
+...o1311oo2222222o1ooo11o22223221o..oo..
+...o131o2o2222223111oo311o2223221o.o12o.
+...o131ooo22222231o2oo311o2222221oo122o.
+...o1313o322222231Booo211o2222321o22222o
+...o131223222222313oo3311o2222321o22aa2o
+....o1311322222231222211o22223313o2bba2o
+....o13332222222231A111o32223331occ3b22o
+....o313222222222233333222223321o3333b2o
+.....o1233322222222222bbb233311oo33c3bbo
+.....oo31113333333333333332113oooc33333o
+..oooooooo31111111111111113ooooooc3ccb3o
+.o211oo222ooooooooooooooooo33o111o33cco.
+.o122o2oo2222222222222233bc3o12221o333o.
+o1ab2o3c13222222ooo2222b333o1b22aa2oTo..
+o1abbo3c2311122o1aco222bc3o2232aaa2oo...
+o2a33o2o211111223abo22222o32bbbbb22o....
+o223bo222oooo1222oo2222bb3333333222o....
+o2bbbo22ooccoo222222222bb3o3ccbb3b2o....
+.o3b3oo2221112322222222233oo33333b2o....
+..o33oo32233322222222223cc3oo3cbb3o.....
+...ooo.o3222222222222223cc33oo3b33o.....
+........o322222222222333333ooooooo......
+.........o3333333333333333oo............
+..........ooo3333333333ooo..............
+.............ooooooPooo.................
diff --git a/parts_pl_src/body/pl_barreleye_b.txt b/parts_pl_src/body/pl_barreleye_b.txt
new file mode 100644
index 0000000..b6a9f4b
--- /dev/null
+++ b/parts_pl_src/body/pl_barreleye_b.txt
@@ -0,0 +1,56 @@
+# pl_barreleye_b: from pixellab_src/pl_barreleye_b/base.png (variant of pl_barreleye) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 35)
+# head_top at (30, 11)
+# back at (30, 39)
+# tail at (49, 49)
+................oooo^oooooo...............
+.............ooo11111111111ooo............
+...........oo11111111111111111oo..........
+.........oo111111111111111111311oo........
+.......oo1111111111111111111111311o.......
+......o1111111111111111111111113331o......
+.....o311111111111111111111111111331o.....
+....oo1111111111111111111111111111331o....
+....o111111111wcccccccc111111111113331o...
+...o1111111wwcbbbbbbbbbcc1111111111331o...
+...o111111wwcbbbbbbbbbbcbc1111111113331o..
+..o11111111cbbbaabbbbbbccbc111111111332o..
+..o11111111cbbaaabbbbbbbccbc111111113331o.
+.o11111111cbbaaaabbbbbbbcccc111111113331o.
+.o1111111cbbaaabbbbbbbbbbccbc11111111331o.
+.o1111111cbbaaabbbbbbbbbbbccc111111113331o
+.o111111cbbbaabbbbbbbbbbbbccbo11111113331o
+o1111111cbbbabbbbbbbbbbbbbccbo11111113331o
+o1211111cbbbbbbbbbbbbbbbbbccbo31111113331o
+o1211111cbbbbbbbbbbbbbbbbbccbo31111113331o
+o1211111cbbbbbbbbbbbbbbbbbccbo33111113331o
+o1221111cbcbbbbbbbbbbbbbbccbbo33111133331o
+o12221111cccbbbbbbbbbbbbcccbc223311133331o
+o222211133cccbbbbbbbbbbcccbc2223311133331o
+.o12221131cbccbbbbbbbAcccbbc2223311133331o
+.o12221311ocbccccbbbbcccbbo2222333113331o.
+.o1222231o3o3ccccccccccbbc1o222333333331o.
+..o122231ooo2ccbbbbbbbboo11o222333333331o.
+..o1222313o3222cccccBooo311o22233333331o2o
+..o212231233222222313oo3311o33333333331o2o
+...o1222311322222231222211o33333333332oa2o
+....o12233333222223311111o333333333331o22o
+....oo123b3333333333ooooo333333333311o3b2o
+.....oo21333333333333333bbb33333211ooc3bbo
+......ooo111133333333333333321113ooc33333o
+....oooooooo31111111111111113ooooooc3ccb3o
+...o211oo222ooooooooooooooooo33o111o33cco.
+...o122o2oo2222222222222233bc3o12221o333o.
+..o1ab2o3c13222222ooo2222b333o1b22aa2o3T..
+..o1abbo3c3311122o1aco222bc3o2232aaa2oo...
+..o2a33o2o211111223abo22223o32bbbbb22o....
+..o223bo222oooo1222oo2222bb3333333222o....
+..o3bbbo22ooccoo222222222bb3o3ccbb3b2o....
+...o3b3oo2221112322222222233oo33333b2o....
+....o33oo32233322222222223cc3oo3cbb3o.....
+.....ooo.o3222222222222233cc33oo3b33o.....
+..........o322222222222333333ooooooo......
+...........o3333333333333333oo............
+............ooo3333333333ooo..............
+...............oooooPoooo.................
diff --git a/parts_pl_src/body/pl_barreleye_c.txt b/parts_pl_src/body/pl_barreleye_c.txt
new file mode 100644
index 0000000..3efb9d7
--- /dev/null
+++ b/parts_pl_src/body/pl_barreleye_c.txt
@@ -0,0 +1,41 @@
+# pl_barreleye_c: from pixellab_src/pl_barreleye_c/base.png (variant of pl_barreleye) (pixellab_library.py extract)
+# pivot at (33, 51)
+# aura at (30, 36)
+# head_top at (30, 18)
+# back at (30, 39)
+# tail at (39, 49)
+.................ooooooo............................
+...............oo1111111^oo.........................
+.............oo111122222123o........................
+............o111111122222211o.......................
+...........o21111113332233321o......................
+..........o321113332223311132o......................
+..........o2223311112223322321o.....................
+.........o212321111122222322323o....................
+.........o222311111222222332322o....................
+.........3223221111ooo222232322o..oooo..............
+........o122322222o111o22233322o.o1112o.............
+........o12232222o11o31o2233322oob2221o..........ooo
+........o12232222oooo31o2333322ocb22322o........o11o
+........o12233223o3oo31o3333332oc33c3222.......o122o
+........o21223333322211o3333313oo333c32o......o1122o
+......oooo212233333111o3333113oc3oooo32o......o1b32o
+....oo1122oooo2222333331222ooocc322bboooo....obb322o
+...o211112222cooooooooooooo333cab22bb222aooo.ob332o.
+..o21111122222bac3333333ccc3332bb22bbb11bb22o3a3b2o.
+.o2111122oo222bbb2222223Acbc222bb322bb222b211333b2o.
+.o111122o11o22bbbb2222222bbb222bb322bb222b22223333o.
+o211112o1oo1o22bbb2222222bbb222bb322bb222bb22233b2o.
+o222222oooo1o22bbb222222Bbbb222bb322bb222ba33333b2o.
+o2222223oo31o22bbb2222222bbb222bb322bc22cc333333b22o
+o32222223ooo222bbb2222222bbb222bb322cc33cc33ooc33a2o
+o33322222222222bbb222233333o222bc33cco33ccoo.occc22o
+.o3332222222222bba2222333aa2o2ccc33cco3ooo....ocb22o
+..o33332222222bbb32333333aa22occ333ccoo3o......ob32o
+...o3333332222ccc33333oc33aa22oc3oooo3333o......oooo
+....oo3333333ccc3333333oc332a22ooo..oc33a2o.........
+......ooo333cccc333333ccoa322b22o....o3b22o.........
+.........oooccc333333ooooobb22b22o....oooo..........
+............ooooooooooo..oob222b2T..................
+..........................oo3b222o..................
+...........................Pooooo...................
diff --git a/parts_pl_src/body/pl_barreleye_d.txt b/parts_pl_src/body/pl_barreleye_d.txt
new file mode 100644
index 0000000..9b44dea
--- /dev/null
+++ b/parts_pl_src/body/pl_barreleye_d.txt
@@ -0,0 +1,57 @@
+# pl_barreleye_d: from pixellab_src/pl_barreleye_d/base.png (variant of pl_barreleye) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (32, 33)
+# head_top at (30, 9)
+# back at (30, 39)
+# tail at (47, 49)
+................ooooo^ooooooo..................
+..............oo3111111111113oo................
+............oo31111222222222111o...............
+..........oo11111112222222222221ooo............
+.........o3111111111222222222222113o...........
+........o311111111122222222222222213o..........
+......oo11111111112222222222222222213o.........
+......31111111111233333333332222222211o........
+.....o111111111333222222222333322222213o.......
+....o31111111332221111222222222322222213o......
+...o311111123221111111122222222233222221o......
+..o31111113322111111111122222222223222221o.....
+..o31111132221111111111122222222222322231o.....
+..o111112322111111111111222222222222322221o....
+.o1211113222111111111111222222222222332222o....
+.o1211132222211111111112222222222222232222o....
+.o1211132222211111111112222222222222223222o....
+o122212oooo322211111122222oooooo22222232222o...
+o12222o111133222222222223311111oo2222232222o...
+o1222o11oooo32222222222231oooo311o222233222o...
+o122oowwwooo132222222223wwwoooo31o222233222o...
+o122o13wwooo132222222223wwwoooo311o22233222o...
+o122ow3oooooo32222222223ooooooo3w1o22233222ooo.
+o122ow3oooooo32222222223ooooooo3w1o22333322o22o
+o122ow33oooo33222222222A3ooooo12w1o22333322o22o
+o122o1w32oo233222222222333ooo222w1o22333322o22o
+o3122oww2222132222222223w211222wwo222333323o22o
+.o1223owwww13222222222223w2222ww3322233332oaa2o
+.o12223oooo322222222222223wwwww33223333332oca2o
+..o12bbbb2222222oooo22222233333bb2333333233c22o
+..o11bbbb222222ooaaaoB2222222bbbbb3333332o3cao.
+...o12b3b322222222222222222222bbbb333332o33cao.
+....o22333332222222222222222233333333323o3333o.
+....o3223333332222222222233333333333223o3c33ao.
+.....oo3222333333333333333333333332233o33cccao.
+.......ooo2223333333333333333332223ooo33333cao.
+.........oooo222222222222222222oooo33333cc3c3o.
+...........oooooooooooooooooooo33o333333oo333o.
+..........o322o3333333333333333333o3333oo333o..
+..........o22o33333333333333333222o3333o.ooo...
+.........o222o3222222222222233o2223o33T........
+.........o222o3222222222222233o3222ooo.........
+.........o222o3322222222222233o32223o..........
+.........o223o3322222222222333o33223o..........
+.........o333oo3322222222233333o3333o..........
+..........ooo.o3333333333333333ooooo...........
+..............o3333333333333333o...............
+..............o223ooooooo332223o...............
+..............o22233o...o322223o...............
+..............o11233o....o11123o...............
+...............ooooo......Poooo................
diff --git a/parts_pl_src/body/pl_beaver.txt b/parts_pl_src/body/pl_beaver.txt
new file mode 100644
index 0000000..c026966
--- /dev/null
+++ b/parts_pl_src/body/pl_beaver.txt
@@ -0,0 +1,49 @@
+# pl_beaver: from pixellab_src/pl_beaver/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 41)
+# head_top at (29, 20) (from part/probe)
+# back at (24, 36) (from part/probe)
+# tail at (47, 52) (from part/probe)
+..............ooo.......................
+.......oo..ooo323o......ooo.............
+......o11o..22222^ooo..o112o............
+.....o2313oo321222222oo21322o...........
+.....o2b33213222111122o22ba2o...........
+.....o2bb1111111111112323ba2o...........
+......oo1111111111111223bbao............
+......o3c311111113c31122b22o............
+.....o3cbc2111113boc31122ooo............
+.....o2o1o222222o11oc111223oo...........
+....o11oc2111112obooc1112233oo..........
+...o11133aaaa1112ooo21y112233o..........
+...o21121aaab11111111yyy1122oo..........
+..o221211oco111111111yy111222oo.........
+..o322c112c2111122co2111122233o.........
+...o22o222o22222boco211122333oo.........
+...o322ocoaaooooocc2211222233o..........
+...oo322oo11aoobbcc2222233333oo.........
+....oo333oa1Bobbbc222222233333o.........
+.....oo33obbbbaab22222233332333o........
+.....oooo33bbaa2222233333322233o........
+....o2223oo2222233oo333321112233o.......
+...o111223oooooooo33331111112223o.......
+..o233323322222222Ao211111112323oo......
+.o32aazo332222222oaa3111111123333o......
+.o3azazo32222222oaaaa31111123o333o......
+.obzzoco32111122oboaaa3112223o3333o.....
+.ozobbo3321111111ocabz322233o33233o.....
+..obooo3211111111ocobzo33333o33233o.....
+...oooo32111111111oooo3333oo332223o.....
+....o333211111111112oooooo33332223o.ooo.
+...o222122111111111222333111122333oo222o
+....o21122211111112222311111112233o2222o
+..ooo21122222222222222111111112233o2223o
+ooaaooo1222222222222ooo11111122233oT233o
+oabzcaco32222222222ocaaoo2112223333333o.
+obccccoc3322222222oacbcbao2222333o333o..
+.occzzcc3332222222ozczzcco2222333o3oo...
+..oczzbco33o3333333ozzzzzc222333oooo....
+...obzzccoooo333333ozzzzzco3333oo.......
+....occcccoooooooooocbzzcco33ooo........
+.....ooooooo........occcccoooo..........
+.....................Pooooo.............
diff --git a/parts_pl_src/body/pl_beaver_b.txt b/parts_pl_src/body/pl_beaver_b.txt
new file mode 100644
index 0000000..dddfe42
--- /dev/null
+++ b/parts_pl_src/body/pl_beaver_b.txt
@@ -0,0 +1,49 @@
+# pl_beaver_b: from pixellab_src/pl_beaver_b/base.png (variant of pl_beaver) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 41)
+# head_top at (29, 19)
+# back at (24, 36)
+# tail at (52, 52)
+...............ooo........................
+........oo..ooo323^......ooo..............
+.......o11o.o222222ooo..o112o.............
+......o2313oo321222222oo21322o............
+......o2b33213222111112o22ba2o............
+......o2bb1111111111111223ba2o............
+.......oo1111111111111122bbao.............
+.......o3c311111113c31112b22o.............
+......o3cbc1111113boc31111oooo............
+.....oo2o1o111111o11oc11112233o...........
+....o331oc2111111obooc111112333o..........
+...o111133aaaa1112ooo1111112233o..........
+..o1111112aaab221111111111112233o.........
+..o1111131ccc2111111111111113233o.........
+..o11111311c31112323111111113233o.........
+..o11111333c33333c23111111113333o.........
+..o311113ccc3333c22311111113333obo........
+...o311133311113322331111133333bbo........
+...o333333233B333222333333333oobboo.......
+..oboo333222333323333333333oobbco33o......
+..obbbcoooo33333333333ooooobbboo333o......
+..oobbbbbboooooooooooocbbbbbooo33333o.....
+.o11oobaaabbbbbbbbbbabbboooo22223333o.....
+o11113obaaaaaaaaaaaAbboo1111112233333o....
+o1113aobbaaaaaaaaaaboo311111112233333o....
+o113aabobbaaaaaaaabbba311111122333333o....
+o31zaobobbbaaaaaabboaaa31111233o331333o...
+o33aabo3oobbaaabbbbobaaa3113333o311333o...
+oo3bbco311obbbbbbob3ocac333333o3311333o...
+o2oooo33111obbbbo3333obc3333oo22111133o...
+o22223311111oobo311133oooooo2211111133ooo.
+o1111331111111o33111113331111111111333o12o
+o1111333111111111111133311111111111333o22o
+o1111133111111111111133111111111113333o33o
+o31oooo33311111111113ooo1111111111333o333T
+.ooabzao333111111113ocaaoo11111111333o33o.
+.oaaccaco3333333333oacbcbao1111113333o3o..
+.occczzcc3333333333ozczzcco111113333o3o...
+..oczzzcco3333333333ozzzzzc11133333ooo....
+..oozzzbcoo333333333ozzzzzco333333oo......
+....occcccooo3333333ocbzzzco33333oo.......
+.....oooooooooooooooooccccco333ooo........
+......................Poooooooo...........
diff --git a/parts_pl_src/body/pl_beaver_c.txt b/parts_pl_src/body/pl_beaver_c.txt
new file mode 100644
index 0000000..925fd70
--- /dev/null
+++ b/parts_pl_src/body/pl_beaver_c.txt
@@ -0,0 +1,61 @@
+# pl_beaver_c: from pixellab_src/pl_beaver_c/base.png (variant of pl_beaver) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 36)
+# head_top at (29, 6)
+# back at (24, 36)
+# tail at (51, 52)
+.................^oo....................
+..............ooo12o....................
+.............o3o213ooo..................
+............o12112333o..................
+............o12112313ooo................
+.......oo...o1211221323o.ooo............
+......o11o.o3211122223ooo112o...........
+.....o2212oo32112222233oo1222o..........
+.....o2b22o113121111113311ba2o..........
+.....o3a321111221111111222ba2o..........
+.....o3ab2111111112211112bbaoo..........
+......o222111111122231111cb2o...........
+......o3oo31111122ooo3111233oo..........
+......o3owo111112owwoo1111333oo.........
+.....o32owo222222owwoo11111233oo........
+.....o11ooo111111ooooo111112222o........
+....oxx1o3aaaa1111ooo11xx11122oo........
+...o1xx111aaab11311111xxx111222oo.......
+..o3111111ccc111131111xx11112322o.......
+..o32112111c1111133o111111122333o.......
+...o211o111o1111133o21111112333oo.......
+...o211o13oooo3333o321111122333o........
+...oo311oo1111oooo3321111222333o........
+....o32131111113o33311112222333o........
+....o322121111113322112222333ooo........
+.....o33222333322222222223333oo.........
+.....oo32222222222222223333333o.........
+......oo3332222222233332322223oo........
+.....oo222333333333332222111233o........
+.....o1122122222222221121111133o........
+....oa112311B33332A11131111aa233o.......
+...oaa11311111111111113211aaa233o.......
+...o1111311111111111112311aaa233o.......
+..o2111331311111111111231111123ooo......
+..oaa11311311111111113311bb1a33o3o......
+..oa11131111111111111o111aa1a3oo3o......
+..o21333131111111111oa11111233o333o.....
+..o23aa313111111111oaaa111a233o333o.....
+..o3aaa31111111111oaaaa311233o3333o.....
+..obbao31111111111oaoaaa32333o3333o.....
+...oboo311111111111obcabb333o32333o.....
+....ooo3111111111113oobb33oo332233o.....
+....o22321111111111322oooo33322233o.ooo.
+...o112323111111111322331111122233oo223o
+...o111323311111133323311111112233o2223o
+..oo111332333333333223111111112233o2233o
+ooaaooo1322333333322ooo11111122233oo233T
+oabzcacoo2223232322ocaaoo2112222333333o.
+obccccccoo22223222oacbcbao2222333o333o..
+.occzzcc2oo2222222ozczzcco2222333o33o...
+..oczzcco33o3333333ozzzzzc222333oooo....
+...obzzccoooo333333ozzzzzco3333oo.......
+....occcccoooooooooocbzzcco33ooo........
+.....ooooooo........occcccoooo..........
+.....................Pooooo.............
diff --git a/parts_pl_src/body/pl_beaver_d.txt b/parts_pl_src/body/pl_beaver_d.txt
new file mode 100644
index 0000000..0f3ba75
--- /dev/null
+++ b/parts_pl_src/body/pl_beaver_d.txt
@@ -0,0 +1,50 @@
+# pl_beaver_d: from pixellab_src/pl_beaver_d/base.png (variant of pl_beaver) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 40)
+# head_top at (29, 17)
+# back at (24, 36)
+# tail at (51, 52)
+................o^......................
+.......oo..oo.oo11ooo...oo..............
+......o11ooo1o1111o11ooo11o.............
+.....o112233111111112oo1111o............
+....o12bb2111111111112222211o...........
+....o122211111111111112bbb21o...........
+....o22211111111111111112b22o...........
+.....o1111111111111111112223o...........
+....oo11c311111113c311111123o...........
+....o11cbc2111113boc311111133o..........
+...o111owo222222owwoc111111112o.........
+...o221oc2111112obooc122211222o.........
+..o111133aaaa1112ooo21111111122o........
+..1111112aaab221111111111121122o........
+.o1111211oco211111111111111212o.........
+.o1111c213c3111232o111111112122o........
+.o1111o333o33333boc31111113222oo........
+.o31111ocoaaooooocc31111113222oo........
+.o331133oowwaoobbcc3311113322ooo........
+..o333332oawBobbbc22333333222oooo.......
+...oo3222obbbbaab22123333222oo3ooo......
+...o3o32112bbaa22211222222222o333o......
+..o333o12122222211222332111122o333o.....
+.o111233o212111121A2o311111112o333o.....
+.o11112oo2o31121oooo2111111112oo3oo.....
+o1111333oo3o31ooooao2111111113oo333o....
+o1113aazo33cooccoaaa3111111333o33o3o....
+o313aaozo3ccccccoboaa32121133oo333o.....
+o3oaabcoocbbbbbccocabb2223333o22322o....
+.ooacoco3cbbbbbbbocobbo3233oo321332o....
+..ooboo3cbbbbbbbbcooooo3ooooo221133oooo.
+...oo3331cbbbbbbbbc3oooooo222222133o122o
+..o333211ccbbbbbbcc223ooo2212222223o112o
+..o3321111ccbbbbcc1123o111111122323o312o
+..oooo1211cccccccc11331111111122333o22oo
+ooaaooo2211ccccc1112ooo111111122333o22oT
+oabzcaco21111c11113ocaaoo111222233o333o.
+obccccoc3112111131oacbcbao12223333o33o..
+.occzzcc3322312131ozczzcco22233333o3o...
+..oczzbco332333332oozzzzzc222333oooo....
+...obzzcco3o33333ooozzzzzco3333oo.......
+....occccoooo3o33ooocbzzcco33ooo........
+.....oooooo..ooooo.oocccccoooo..........
+.....................Pooooo.............
diff --git a/parts_pl_src/body/pl_bee.txt b/parts_pl_src/body/pl_bee.txt
index f29f2cf..985320f 100644
--- a/parts_pl_src/body/pl_bee.txt
+++ b/parts_pl_src/body/pl_bee.txt
@@ -1,9 +1,9 @@
# pl_bee: from pixellab_src/pl_bee/base.png (pixellab_library.py extract)
# pivot at (36, 60)
# aura at (31, 44)
-# head_top at (31, 27) (from part)
-# back at (31, 35) (from part)
-# tail at (49, 45) (from part)
+# head_top at (31, 27) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (49, 45) (from part/probe)
.................oo...oo..................
...............oo23o^o23oo................
.............oo32222222233oo..............
diff --git a/parts_pl_src/body/pl_bee_b.txt b/parts_pl_src/body/pl_bee_b.txt
new file mode 100644
index 0000000..370f917
--- /dev/null
+++ b/parts_pl_src/body/pl_bee_b.txt
@@ -0,0 +1,42 @@
+# pl_bee_b: from pixellab_src/pl_bee_b/base.png (variant of pl_bee) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 43)
+# head_top at (31, 25)
+# back at (31, 35)
+# tail at (52, 45)
+..................oo^ooo..................
+...............ooo222222ooo...............
+.............oo222212222233oo.............
+............o2221111122222233o............
+...........o221111111122222233o...........
+..........o2111aa11111222aa2233o..........
+.........o2211occo111122occo2233o.........
+.........o211aawboo1112oawaoc233o.........
+........o2111oawboo1112oawboo2233o........
+.......o22111obbooo1112obbooo22333o.......
+.......o21111ooooco1B22ooooco22233o.......
+......o221111ocooco1122ocoooo222333o......
+......o2211111occo111222occo2222333o......
+.....o222222222221122222222222222333o.....
+.....o22222222222abooo2aa22222222333o.....
+....obb2222222222oco22oco22222222333co....
+..ooobbb222222222oo2222oo2222222233ccooo..
+.o22obbaa2222222222222222222222223ccco22o.
+o211ocbaaa2222222222A22222222222bcccco212o
+o212ocbaaaaa222222222222222222bbbbccco212o
+o212ocbbbaaaaaa222222222222bbbbbbcccco222T
+.o333ccbbbaaaaaaaaaaaaaaabbbbbbbbcccc333o.
+.oo33o3cbbbaaaaaaaaaaaaaabbbbbbbccc3o333o.
+..oooo3cccbbbbaaaaaaaabbbbbbbbbcccc3oooo..
+.....o332cccbbbbbbbbbbbbbbbbbcccc333o.....
+.....o333222cccbbbbbbbbbbbccccc33333o.....
+......o33222222cccccccccccc22223333o......
+......o333222222222222222222223333o.......
+.......o33322222222222222222233333o.......
+........o333322222222222222333333o........
+.........oo33333222222233333333oo.........
+..........oooo333333333333333ooo..........
+.........o2233oooo3333333ooo3222o.........
+........o2112233ooooooooo3322112o.........
+........o3223333o.......o3322223o.........
+.........ooooooo.........Poooooo..........
diff --git a/parts_pl_src/body/pl_bee_c.txt b/parts_pl_src/body/pl_bee_c.txt
new file mode 100644
index 0000000..e0a577b
--- /dev/null
+++ b/parts_pl_src/body/pl_bee_c.txt
@@ -0,0 +1,45 @@
+# pl_bee_c: from pixellab_src/pl_bee_c/base.png (variant of pl_bee) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 42)
+# head_top at (31, 23)
+# back at (31, 35)
+# tail at (53, 45)
+........................oo..................
+.....................^oo22o.................
+....................o22122o.................
+...............oo2222122223oo...............
+..............o22222112222223oo.............
+............o211122122222222233o............
+...........o21111111122222222223o...........
+..........o211111111112222aa22233o..........
+.........o211occo111111222occo2233o.........
+.....oooo221oawaco1111122oawaco2233o........
+...ocabbo21aawwwboo11112oawwwbo22333ooo.....
+...obaab221oawwwboo11112oawwwboo2333occoo...
+..ooobb2211oawwaooo11112oawwbooo22333cccbco.
+.obaaab2211oaaaoooo11B12oaaaoooo22333ccbcco.
+.obbaab2211oooooooo11122oooooooo22333ccccoo.
+.obaaab2221ooooooco11122ooooooco22333ccbcco.
+obaaaaab221ocoooooa11222booooooo2333cbbcccco
+obcbaaab2221ooccoo1122222ooccoo22333cbbbbcco
+occaaaabc322booooaa22222aaoooob2233cbbbbccco
+.ocabbaaac3222222babooobab22222233cbbbcbccco
+.obbcaaaaabb33222oco2A2oco2222233bbbbaccccco
+.occbaaaaaaabbb22oo22222oo223333bbbbaabccco.
+o22cbaaabaaaaaabb222bbbb2233bbbbbbbbbabc32o.
+o21cbbbcbaaaaaaaabbbaaaabbbbbbbbbabbccbc312T
+o32cbbccbbaabaaaaaaaaaaaabbbbbbbbbabccbc323o
+o33cccccbbabbaaaaaaaaaaaaabbbabccbbbc3cc333o
+.o3co33cbbccbaaabaabaaaacabbbabccbbbc33o33o.
+..ooo33cbcc3cbabcabbbaaccabcbbbc3ccc333ooo..
+....o33cc333cbbccbbbbabccaccbbbc33cc333o....
+....o3333322cbbccccbbbcccbcccbc3333333o.....
+.....o3322222cc33cccbbc3cc33cc32323333o.....
+.....o33232323332333ccc33322333233333o......
+......o33333223222333333223233333333o.......
+.......o33oooo33222233322333333oo33o........
+........oo3333o3333233323333ooo33oo.........
+.........o21223oo333333333oo33323o..........
+.........o2112333oo33333oo3332223o..........
+.........o3222333o.ooooo.o3333333o..........
+..........ooooooo.........Poooooo...........
diff --git a/parts_pl_src/body/pl_bee_d.txt b/parts_pl_src/body/pl_bee_d.txt
new file mode 100644
index 0000000..fbb98f2
--- /dev/null
+++ b/parts_pl_src/body/pl_bee_d.txt
@@ -0,0 +1,41 @@
+# pl_bee_d: from pixellab_src/pl_bee_d/base.png (variant of pl_bee) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 43)
+# head_top at (31, 26)
+# back at (31, 35)
+# tail at (52, 45)
+.................ooo^ooo..................
+...............oo1111223oo................
+.............oo33122222333oo..............
+............o222312222232233oo............
+...........o2aac311222232aac33o...........
+........ooo2occoc3111233bocco33ooo........
+......ooao3obwacoc33333bobwaco3oa1oo......
+......o2aooawwwboo11122oawwwbocoa12o......
+.....o12cooawwwboo11112oawwwboooa123o.....
+....o112cooawwbooo11B12oawwboooa12233o....
+....o1222cobbboooo11112obbbooooa12223o....
+...o12222coooooooo11122ooooooooa222223o...
+...o12222cooooooco11122ooooocooa222223o...
+..o112223co1ooooca11222cooooo1ob2222233o..
+..o11222co3211ooo1122222oooo122oc222333o..
+..oo113co3222213oooooooooo312223oc233coo..
+.o22occco22222311111111112322223oocccoo2o.
+o2123oo3222222311111A222223322233oooo3312o
+o21133o3222223311111122222332222333o33212o
+o21233o3333223o11111122223332222333o32222T
+.o333o22233333o31111122233o32333333o3322o.
+.oo3oo2222233o1233333333333o33333333o33oo.
+..oooo2222223o1222222222233o22223333oooo..
+....o22122223o1222222222223o22222333o.....
+.....o3331223o1122222222233o22222333o.....
+......o333333oo11111122233oo3223333o......
+......o1222333o333333333333o3333333o......
+......o1122223o222223333333o2332233o......
+......o3122233o122222222333o222223o.......
+.......ooo223oo111222222333oo22ooo........
+.........oooo3oo311112233oo33oooo.........
+........o211223ooooooooooo332112o.........
+........o2222333o.ooooo.o3322223o.........
+........oo333333o.......o333333oo.........
+.........ooooooo.........Poooooo..........
diff --git a/parts_pl_src/body/pl_beetle.txt b/parts_pl_src/body/pl_beetle.txt
index db412ab..feb6bf5 100644
--- a/parts_pl_src/body/pl_beetle.txt
+++ b/parts_pl_src/body/pl_beetle.txt
@@ -1,8 +1,8 @@
# pl_beetle: from pixellab_src/pl_beetle/base.png (pixellab_library.py extract)
# pivot at (21, 60)
# aura at (31, 42)
-# head_top at (31, 29) (from part)
-# back at (31, 25) (from part)
+# head_top at (31, 29) (from part/probe)
+# back at (31, 25) (from part/probe)
# tail at (50, 51)
...............oooooooooo...............
.............oo2222bb2222oo.............
diff --git a/parts_pl_src/body/pl_beetle_b.txt b/parts_pl_src/body/pl_beetle_b.txt
new file mode 100644
index 0000000..c56beb8
--- /dev/null
+++ b/parts_pl_src/body/pl_beetle_b.txt
@@ -0,0 +1,64 @@
+# pl_beetle_b: from pixellab_src/pl_beetle_b/base.png (variant of pl_beetle) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 34)
+# head_top at (31, 3)
+# back at (31, 25)
+# tail at (51, 51)
+....................^o....................
+...................o22o...................
+..................o2112o..................
+.................oo2112oo.................
+................ooo211233o................
+...............oooo2112333o...............
+..............ooooo2112o3ooo..............
+..............ooooo2112ooooo..............
+.............oooooo2112oooooo.............
+...........ooccaooo2112ooocccoo...........
+..........ocbaa22oo2112oo22babco..........
+.........oobbb2222o2112o2222bbbco.........
+........o33b222111o2222o111222bb3o........
+.......o332222111113aa311111222233o.......
+......o332222111111baa1111111222233o......
+......o332222111111baa1111111222223o......
+.....o333bbb2211111baa11111112aabc33o.....
+....o333baaab222111bab1111122baaabc33o....
+....o33cbaaab222222bbb2222222baaabc33o....
+...o333cbaab2222222bbb22222222baabcc33o...
+...o333cbbbb2222222bbb22222222bbbbcc33o...
+...o333cccc222222ooooooo2222222ccccc33o...
+...o333cccoo222o2111B1112o2222oocccc33o...
+..o3333222ozoo3211111111112oooz32222333o..
+..o3333222zyyz11111111111112zyyb2222333o..
+..o3333222ozz2111111111111112zzo2222333o..
+..o3333322oz221111111111111122zo2233333o..
+..o33333222o221111111111111122o22333333o..
+..ocbb33333o322111111111111223o333333bco..
+..occb3333o3o3221111111111223o3o3333bbco..
+..occcc333o32o222111111112233o3o3333ccco..
+...occc333o31oo22211A112223oo13o3333cco...
+...occc333o31oco3222222223oco13o3333cco...
+....oc333oo31o1oo222222233o1o13oo3333o....
+....oc333oo33baoo32222233ooab33oo3333o....
+.....oc33oo333abc22222223cca323oo333o.....
+......ooooo33233311111112333233oo3oo......
+.....oooooo23322111111111222332oooooo.....
+....o333oo3oo33211111111112332o3oooooo....
+....3333o333oo3311o111o11133oo333oo333....
+...o1133o3333oo331111111133oo3333oo322o...
+..o2113o22233oooo32222223oooo33222o3211o..
+.o21133o21123oooooo33333ooooo32111o33111o.
+o211133o11123ooooooooooooooooo2111o332112o
+o21123o11112oo333oooooooo333oo32111o33112o
+o2122oo11113oo33333oooo33333oo32111oo3312o
+oo22ooo11113o.ooo33333333ooo.o32111ooo33oo
+oooooooo1113o....oooooooo....o32111ooooooo
+.ooooooo1113o................o3211ooooooT.
+.ooooooo2223o................o2222ooooooo.
+..oooooo3222oo..............o32222oooooo..
+..ooooooo2223o..............o3222ooooooo..
+.oooooooo3333o..............o3333oooooooo.
+oo3oooooo2223o..............o3222oooooo3oo
+o1312ooo222223o............o332222ooo2131o
+.oooooo3222223o............o3222223oooooo.
+......o1311213o............o3121231o......
+.......ooooooP..............ooooooo.......
diff --git a/parts_pl_src/body/pl_beetle_c.txt b/parts_pl_src/body/pl_beetle_c.txt
new file mode 100644
index 0000000..d1ffb3a
--- /dev/null
+++ b/parts_pl_src/body/pl_beetle_c.txt
@@ -0,0 +1,37 @@
+# pl_beetle_c: from pixellab_src/pl_beetle_c/base.png (variant of pl_beetle) (pixellab_library.py extract)
+# pivot at (24, 48)
+# aura at (31, 33)
+# head_top at (31, 18)
+# back at (31, 25)
+# tail at (50, 48)
+.......................ooooo^oooooooo.....................
+....................ooobabbb111111111ooo..................
+..................oobaa11111111111111111oo................
+...............oooaa1111111111111111111111oo..............
+..............o3bb111111111111111111111111bboo............
+.............o3bb11111bbb11111111111111111baaco...........
+............oc3c2111bbaaaa1111111111111111baabbo..........
+...........o33c2111bbaaaaab1B11111111111111babbo..........
+....oo....o333c3111bbaaaaab1111111111111111bbbbbo.........
+...ozzo..o333c32111bbbaaabb111111111111111112ccc3o........
+...ozyoooooo33oo2111bbbbbc11111111aaaaab111122233o........
+...oz2111112ozyo221111bbb11111111aaaaaab1111222233o.......
+...o111111112yzo12211111111111111aaaaaabc112222233o.......
+..o1111111111zzo12222111111111111bbaaabbc1222222333o......
+.o2111111111123o21222222111111111ccbbbbbc22222223333o.....
+.o2211111111222o212222222222A22222cccccc2222222233333ooo..
+.o3221112oo2222o3112222222222222222222222222222233333212o.
+.o322122oc12222o32122222222222222222222222222222333331113o
+.o32223o1c122222o3212222222222222222222222222222222111133o
+.o11223oob122223o331112222222222222222222222222111111233o.
+o111111bbb222223oo332111122222222222222221111111113333oo..
+o11o111111122233oooo3322111111111111111112222223333ooo....
+o311111ooo222333o333oo3333333333333333333333333oooo.......
+.o3333222223333o3322333oooooooooooooooooooooooo3o3o.......
+..oo333333333oo3331133333ooooooooooooooooooo332233o.......
+....ooooooooo3ooo311133o3o333333333333333oo332112o2o......
+........oo3333o.obb1133ooooooooooooooooooooo31c11o1o......
+........o1233oo.o31113o....................o31122oo.......
+.........ooooo.oo22222o....................o322222o.......
+...............o112122o....................o312121o.......
+................oooooP......................oooToo........
diff --git a/parts_pl_src/body/pl_beetle_d.txt b/parts_pl_src/body/pl_beetle_d.txt
new file mode 100644
index 0000000..80aad19
--- /dev/null
+++ b/parts_pl_src/body/pl_beetle_d.txt
@@ -0,0 +1,47 @@
+# pl_beetle_d: from pixellab_src/pl_beetle_d/base.png (variant of pl_beetle) (pixellab_library.py extract)
+# pivot at (21, 60)
+# aura at (31, 41)
+# head_top at (31, 20)
+# back at (31, 25)
+# tail at (50, 51)
+....................^o....................
+..................oo11oo..................
+...............ooo111111ooo...............
+..............o223111111322o..............
+.........oo.oo11131111113122oo..o.........
+........oboo21111311B111311112oobo........
+.......obao31111131111113111113obco.......
+......oobao31111131111113111113oab3o......
+.....oo22ao31111131111113111113oa223o.....
+.....o222abo111113111111311111oaa211o.....
+....o11112boo1111o111111o11113ob21111o....
+...o211112bao3111o111111o1113oab211112o...
+..o21111112boooo1o111111o2ooooa21111113o..
+..o21111111bbooooo111111oooooac11111113o..
+..oo11111113boo12oo1111oo22oob31111111oo..
+.o3oo1111133boo111oo12oo212oob3111111o33o.
+.o322o211133boo1111oooo21123ob331111oo23o.
+oa2222ooo333boo11111oo111123ob3311oo2223bo
+ocaa2223o333co33111111111223ob333322222abo
+.oobaa22233ccob331111111122bobb3332222aoo.
+.o33ccbbb3cco3obb221111122bo3ocb33aaacc3o.
+.o2333cccbbo323obb21A111bbo223obbbccc332o.
+.o2222333ooo3223ooaa11bboo223o3ooo333222o.
+o2212223bco2o32223obbboo32233o3occ3322122o
+o2212223bcowoo32222ooo32223oo13occ3222122o
+ob122223bcowoco32223332223ocow3ocb32222abo
+.ocb2223bcowowo33222222233owow3ocb3222cco.
+..oobb33bco3baoo332222233ooab33ocb33bboo..
+....obbbboo33bbc322222223bba323oobbaco....
+...oooccooo32333211111112333233ococcooo...
+...o2ooooco33222111111111222332ocoooo2o...
+..o222ooocco332111111111112332occooo222T..
+..o22ooo23coo33111o1113o1133oooc32ooo22o..
+..ooooo2123oco3311111111133occo3212oo33o..
+.o1ooo21223obcooo3222223oooccco32112ooo1o.
+.o11oo22bb3cobcoooo333ooocccboc3bb22oo11o.
+..oooo22cc3coobbbcoooooocaaaooc3cc22oooo..
+.....o32233o..ooobccccccaooo..o33222o.....
+....o1o3233o.....ooaaaaoo.....o3322o1o....
+....o131233o.......oooo.......o331131o....
+.....oooooP....................oooooo.....
diff --git a/parts_pl_src/body/pl_betta.txt b/parts_pl_src/body/pl_betta.txt
new file mode 100644
index 0000000..0c444d3
--- /dev/null
+++ b/parts_pl_src/body/pl_betta.txt
@@ -0,0 +1,48 @@
+# pl_betta: from pixellab_src/pl_betta/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 40)
+# head_top at (33, 27) (from part/probe)
+# back at (38, 26) (from part/probe)
+# tail at (42, 50) (from part/probe)
+...................ooooo............
+................ooo22aao............
+................o2321bcoo...........
+...............o1231ccc2ao..........
+...............o131233222bo.........
+..............o223133123ccao........
+..............o2o333123222ao........
+.............oooooo32322Boo.........
+...........oo222222^o33o3ccoo.......
+..........o2111222233oo333cco.......
+.........o21111222c23cocoocoooo.....
+....oo..o2211112222b3ccoooooo33o....
+....o2o.32222222222bc33o2111o322o...
+...o212o3122221123333oo211111o322o..
+..oaa32oco122113oo233o213211o3222o..
+..ob33oo1oo22ooo1c23o33333boo33332o.
+.oaa12oooc3222oc1c23ooo211aao22211o.
+..o3333o3b22222ac23oo333322oo333222o
+..oc22ooo3332o22233ooo322211o322332o
+...o3333oo32223333ooo3232221o33222o.
+...o112o3ooo333ooooo33213aao3o3322o.
+..o111322oooooooacAo31321ooo32332o..
+...ooo11o33ocoooacoo31o211ooo2322o..
+.....o1333ooacoooacoo21oooooo32o2o..
+.....oooooo3acoooac3ooooooo3o322o...
+..........o3ccooooa3coooooo3o322o...
+..........oaboooooaa2oo3ooo32o22o...
+..........oacooooooaaoo3oo332o32o...
+..........ooo3ooooooa2o3oo3o2o3o....
+...........o23oooo3oooo3oo232oo.....
+..........o223oooo2o33o3oo232o......
+...ooooooo223oo3oo233332oo23T.......
+.oo211122233oo33o1232332o323o.......
+.oaab333333o333oo1222322o23o........
+oabbbb22222323oo1131332oo2o.........
+ooobccb333323oo21211322o3oo.........
+...oocb3bb33oo21211222oo3o..........
+.....ooo.ooo211221222ocao...........
+........oaa222a22222obco............
+.......oaaaabbba22aoooo.............
+.......oaaaooobbboo.................
+.......oooo...ooP...................
diff --git a/parts_pl_src/body/pl_betta_b.txt b/parts_pl_src/body/pl_betta_b.txt
new file mode 100644
index 0000000..c8dfa30
--- /dev/null
+++ b/parts_pl_src/body/pl_betta_b.txt
@@ -0,0 +1,62 @@
+# pl_betta_b: from pixellab_src/pl_betta_b/base.png (variant of pl_betta) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 34)
+# head_top at (33, 5)
+# back at (38, 26)
+# tail at (46, 50)
+..................ooo^o...............
+.................o22bbo...............
+................o112acoo..............
+...............o1122bccoooooo.........
+...............o1122bc3332aabo........
+..............o11222bc33212abo........
+..............o11222333211abco........
+.............o111223332112bccooo......
+.............o111223321122bc322bo.....
+.............o112223321122332222boo...
+............o1122223211223321112bbo...
+............o112223321223321112bcco...
+............o11222o22122o21122bccco...
+...........oo12222o2222o211222cc3co...
+..........ooo12322o222o311222333333o..
+.........o22o1232oo22oo212233322222bo.
+........oo32o1332o22oo2222332211122abo
+.......o1333o1333o22oo223332211122bbco
+.......o1133o133332oo33oo32222222bccco
+......oo323oo333333oo3oo322222333ccco.
+.....o1233o223332222oooo22333322333co.
+.....o123o211333222233o3o3B332221112o.
+.....o33o2111112222223ooo32221111112bo
+......oo2211112222222233333333222222bo
+......o2122222221122223333oooo333ccco.
+......o22122222112222233332222233ccoo.
+......ooo11222122oo22233oo22211123oo..
+......o1oo22223oo1c22233ooo32211112o..
+......o1co22223oc1c2233oo2oooo32112o..
+......o2c2222223c222A33oo3222oo321bo..
+.....oo222222222222333o32332112333bo..
+....o23o32222232223ooo332232211c33o3o.
+....o223o3222222333oo3332212c22coo33o.
+...o22133o33333333oo33222211coooo3333o
+..oo221233oooooooo3o33212221co33o3333o
+.oo2212223ccc333333oo3212oooo333o33cco
+.oo221222aaaa2222222o3311o3333233occco
+obo222222aaab22222222oooo33o322aooccco
+o2oaa2222aaa2222222223333333obaacocc3o
+o2obaaa22aaa2222222aabbcccccoaaacco33o
+o3oaaaaaaaaaaaaaaaaaaaacccccoa2222o33o
+.oo33aaaaaaaaaaaaaaaaabcccco222222o33o
+..o3322abaaaaaaaaaab2233333o222222o3o.
+..oo33222ccc222222223333333oo22222o3o.
+...o33332cccc222222333333333o22o3ooo..
+....o3o333cccc222333222223333oooo3T...
+.....o3333cccc3333321222233o333333o...
+......o3333ccc3333o2222223co33oooo....
+.......ooo33ccc333ocb22abccooooo......
+........ooooocccc3occbaacccooo........
+.......o3333ooooooooocccc33oo.........
+......obccc3oooo....o333223o..........
+......oaobccoooo...o3222223o..........
+......ooooooo.....oabcab233o..........
+..................obccac3oo...........
+..................Poooooo.............
diff --git a/parts_pl_src/body/pl_betta_c.txt b/parts_pl_src/body/pl_betta_c.txt
new file mode 100644
index 0000000..18edaf0
--- /dev/null
+++ b/parts_pl_src/body/pl_betta_c.txt
@@ -0,0 +1,60 @@
+# pl_betta_c: from pixellab_src/pl_betta_c/base.png (variant of pl_betta) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (34, 31)
+# head_top at (33, 6)
+# back at (38, 26)
+# tail at (44, 50)
+..................^oooo............
+...............ooo22aao............
+...............o2321ccoo...........
+..............o1231ccc2ao..........
+..............o131133222co.........
+.............o123133123ccao........
+.............o1o333123222ao........
+............oooooo32311ooo.........
+..........oo112222oo33o3ccoo.......
+.........o1111122233oo333ccao......
+........o11111112c23cocooocoo......
+...oo..o2111111112c3ccooooooooo....
+...o1o.32111111122cc33o1111occao...
+..o211o3121111113333oo111111ocbo...
+.obb21oco111113oo233o213211ooco....
+.oc33oo1oo22ooo1c23o33333coo3cooo..
+oaa113ooc3112oc1c13ooo111aao3ooaao.
+.o3333o3b11111bc13oo333211oo3oocco.
+.oc22ooo3322o11133ooo322211occoco..
+..o3333oo32223333ooo3232221oca3co..
+..o111o3ooo333ooooo2321Baao3c23ccoo
+.o111322ooooooobcoo21311ooo22233cbo
+..ooo11333ocooobcoo21o111o322113coo
+....o1333oobco.oacoo11ooo3322123co.
+....oooooo2bco.oac3oooooo3222bb3oo.
+.........o2cco..oa3Aocoooo22aaacoo.
+.........obco...oaa2ocoooo22aaacoco
+.........obco....oaaooooo332aaacoco
+.........ooo......oa2oo3oo2221aaoco
+...................oo.o3332221333o.
+......................o3322221113o.
+.......................oc22211113o.
+.......................occ221111co.
+.......................occ211111co.
+......................occ3211122co.
+......................occ2211122co.
+......................o322211122o..
+.....................o2222111133o..
+.....................o2122113cco...
+.....................o21211aacco...
+....................o111211aacco...
+....................o112111acco....
+...................o11111112cco....
+..................o111111113co.....
+.................o11111122233T.....
+................o11111112233o......
+..............oo11111112233o.......
+...........oooa111111222cco........
+...ooooooooooa111112222ccco........
+.oo1111111a111111112223cco.........
+o2111122222222113333333oo..........
+.ooo322223322233ccc33oo............
+...oooo33bboooocccooo..............
+.......ooooooooooP.................
diff --git a/parts_pl_src/body/pl_betta_d.txt b/parts_pl_src/body/pl_betta_d.txt
new file mode 100644
index 0000000..98fbc79
--- /dev/null
+++ b/parts_pl_src/body/pl_betta_d.txt
@@ -0,0 +1,49 @@
+# pl_betta_d: from pixellab_src/pl_betta_d/base.png (variant of pl_betta) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 41)
+# head_top at (33, 19)
+# back at (38, 26)
+# tail at (42, 50)
+....................oooo............
+..................o^112o............
+.................o12222o............
+................o112232o............
+...............o1222232o............
+...............o1222333oo...........
+..............o122o233312o..........
+..............o132o233333o..........
+.............oo133ooooooBoo.........
+...........oo2o23o222oooo33o.oooo...
+..........o222ooo2222222oo3oo1112o..
+.........o211o22222222222ooo21222o..
+........oo11oo1222222222ooo22332o...
+........oo22oo12222222oobboo3322o...
+.......ooooo2o111222ooab23co33232o..
+.......oo22112ooooooob22212co3322o..
+......o2o2211233333oa3221122co32ooo.
+......o2o2111o22223oa33222223o3211o.
+.....o3oo2112o1112ooaa3322233o22211o
+.....oo2o111oo1122oooa333333co33322o
+....o3o2333o32oooo2oooaa33a3co3322o.
+....o2o22oo2222o22223oaaaaacco333oo.
+....oo222o12222o22222ooooooooo332o..
+....ooo22o12222o12A2oooooooo3oo32o..
+....o2o2oo2222oo122oo33ooo3o33o32o..
+....o23oo2o12oo2ooooo33333oo33o3o...
+....o22o22ooo2o222223oo333o3o3o2o...
+.....o2o2222223o22222ooo33o33oo2o...
+.....o2o2222222o2222ooooooo33oo2o...
+.....o22o322223oo22oo2222oo33ooo....
+.....ooo3oo22oo33oooo2222oo33oo.....
+.....oooo33ooo333oo2o2122o3ooo......
+...oooooo333o333oo222o212oo3T.......
+..oo22ooooo3oo33o21112ooooooo.......
+.obco22ooooo3oooo221112ooooo........
+oaccoo22oooooooooo22122oooo.........
+ooocaco23ooooooooo3222ooooo.........
+...occcooooooo222oo22ooooo..........
+...ooooo...oooo222oooooo............
+..........oaaccoo23333o.............
+.........oaaccoac33oooo.............
+.........oacooaccoo.................
+.........ooo..ooP...................
diff --git a/parts_pl_src/body/pl_blobfish.txt b/parts_pl_src/body/pl_blobfish.txt
new file mode 100644
index 0000000..52a45b7
--- /dev/null
+++ b/parts_pl_src/body/pl_blobfish.txt
@@ -0,0 +1,41 @@
+# pl_blobfish: from pixellab_src/pl_blobfish/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 44)
+# head_top at (31, 29) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (47, 49) (from part/probe)
+................oooooo................
+.............ooo111211ooo.............
+...........oo111111111122oo...........
+..........o1111111^11111222o..........
+.........o211111111111111b22o.........
+........o2ba11111111111111ab2o........
+........o2bb11111111111111bb2o........
+.oo....o2222112211111222112222o....oo.
+o21o...o2222111122B12211112222o...o12o
+o21o..o222211111232232111112222o..o12o
+o221o.o223321112332233222222322o.o122o
+ob21o.o223333333333333333333322o.o12bo
+.o321o322233coc33222233coc332223o123o.
+.ob322322231aca13111231aca132223223bo.
+..o33322222311131111123111322222333o..
+....o22abb22333211111233332bba222o....
+...o222aab22223211111232222baa2222o...
+...o22aa222222321111123222222aa222o...
+...o22222222223211A112333222222222o...
+...o22222223ooo2111112oooo32222222o...
+....o222223o13o2111112obb3o322222o....
+....o22222oo13o2111112ooo11o22222o....
+....o32222ooo2o2211122o22ooo32223o....
+...o333222oo22o2222222o322oo322333T...
+...o3332223223o2222222o33223333333o...
+...o3332222333o2222222333333333333o...
+..o32333223333332222233333333333323o..
+..o12233322333332222233333322333222o..
+.o3222332222333232222333332222333223o.
+.o3333o211222332233333333222122o3333o.
+.o3333o222223333222223333322222o3333o.
+..ooooo222233333211222333332222ooooo..
+......o333333ooo222222ooo333333o......
+.......oooooo..o333332o..oooooo.......
+................ooPooo................
diff --git a/parts_pl_src/body/pl_blobfish_c.txt b/parts_pl_src/body/pl_blobfish_c.txt
new file mode 100644
index 0000000..1bb0947
--- /dev/null
+++ b/parts_pl_src/body/pl_blobfish_c.txt
@@ -0,0 +1,47 @@
+# pl_blobfish_c: from pixellab_src/pl_blobfish_c/base.png (variant of pl_blobfish) (pixellab_library.py extract)
+# pivot at (38, 59)
+# aura at (32, 40)
+# head_top at (31, 19)
+# back at (31, 34)
+# tail at (51, 49)
+..................oooo^ooooo...................
+...............ooo1111111112ooo................
+..............o1111111111111222o...............
+.............o111111111111111222o..............
+............o11111111111111111222o.............
+...........o2111111111111111111222o............
+..........o321111111111111111111222o...........
+.........obb21111111111111111111222co..........
+.........ocbb11111111111111111112bbcco.........
+.oo.....occbaab1111bbc111cbb1111bbbcc3o.....oo.
+o31o....o3cccbbbbbbbbc211cbbbbbbbccc33o....o13o
+o31o...o333ccccbbbbbcc111ccbbbbbccc333o....o13o
+o311o.o333333cccccccc31112ccccccc333333o..o133o
+o331o.o333333333coc331111133coc333333333o.o13bo
+.o331o3332222331aca133333331aca133222333oo133o.
+.ob3333322222233111311B111331113322222333333bo.
+..o3c33323aaa223333211111111333322aaa2233333o..
+...o3332aa1aaa2233311111111133322aaa1a2233oo...
+...o3332aaaaaa2233211o111o113332aaaaaa2233o....
+..o33332aaaaaa2233211o111o113332aaaaaa22333o...
+..o33332aaaaaa223331111111133332aaaaaa22333o...
+..o333332aaaaa232333311A113333322aaaa223333o...
+..o3333332222233233333333333323322222233333o...
+..o3332333333332233333333333322333333333333o...
+..o333223333332222333ooooo33222233333332333o...
+..o3332223333222222333333333222223333322333o...
+..o3332222222222222223333322222222222222333o...
+..o3332222222222222222222222222222222222333o...
+..o3333222222222222222222222222222222222333o...
+...o33322222222222222222222222222222222333o....
+...o33332222222222222222222222222222223333T....
+....o333322222222222222222222222222223333o.....
+.....o3333222222222222222222222222223333o......
+.....o3333333222222222222222222223333333o......
+......o33333333332222222222223333333333o.......
+.......oo3333333333333333333333333333oo........
+........o33oooo33333333333333333ooo33o.........
+.........oo3333ooo3333333333oooo333oo..........
+.........o33333333oooooooooo33333333o..........
+.........o3333333o..........o3333333o..........
+..........ooooooo............Poooooo...........
diff --git a/parts_pl_src/body/pl_blobfish_d.txt b/parts_pl_src/body/pl_blobfish_d.txt
new file mode 100644
index 0000000..3039240
--- /dev/null
+++ b/parts_pl_src/body/pl_blobfish_d.txt
@@ -0,0 +1,50 @@
+# pl_blobfish_d: from pixellab_src/pl_blobfish_d/base.png (variant of pl_blobfish) (pixellab_library.py extract)
+# pivot at (24, 59)
+# aura at (32, 40)
+# head_top at (31, 16)
+# back at (31, 34)
+# tail at (52, 49)
+....................oo^oooo...................
+.................ooo1111111ooo................
+...............oo1111111111222oo..............
+..............o11111111111111222o.............
+.............o2111111111111112222o............
+............o22111111111111111c222o...........
+...........o2cca111111111111111ac22o..........
+...........o2ccc111111111111111cc22o..........
+..........o2222211231111112221122222o.........
+...oo.....o3222211233311132221122222o....oo...
+..o31o....o3222211113322232111122222o...o13o..
+..o31o...o233221111123333321111123322o..o13o..
+..o321o..o233321111233333332222233332o.o123o..
+..oc31o..o333333333333333333333333333o.o13co..
+...o331oo3333333bob332222333bob3333333o133o...
+...oc32333333331aba131111231aba1333333333co...
+....o333322333331113111111231113333223333o....
+.....o3322333333333211111123333333332233o.....
+.....o3222acc333333211B1112333333cca2223o.....
+.....o3222aac23333321111112333333caa2223o.....
+.....o322aa222222332111111233322222aa223o.....
+.....o3322222222233211111123333322222233oo....
+...oo33332223333oo32111111233oo3332223333o....
+...o2333333333oo1c31111111133c1o3333333333o...
+...o2233333333oo3321111A11123oo1o3333333323o..
+..o22223333333ooo3213111131232ooo3333333323o..
+..o22222333333o22323311113323222o33333333223o.
+.o322322233333333332111113223332233333223223o.
+.o322322223333333332222222233333333322223223o.
+.o323322222333333333322222333333333222223333o.
+.o333322222223333333333333333333332222223333o.
+.o333332222222233333333333333333222222223333o.
+..o3333222222222233333333333322222222223333o..
+..o3333323333332222333333333222233333233333T..
+..o33333o3333333222223333322223333333333333o..
+.o333333o33333333222222222222333333333333333o.
+.o333333o32233333332222222223333332233333333o.
+o3113333o222233333333333333333333222233333213o
+o322333o211222333333333333333333222112o333223o
+o333333o211222333333333333333333222112o333333o
+o33333oo222223333333333333333333322222o333333o
+.ooooooo33333333oooooooooooooo33333333ooooooo.
+.......o33333333o............o33333333o.......
+........oooooooP..............oooooooo........
diff --git a/parts_pl_src/body/pl_boar.txt b/parts_pl_src/body/pl_boar.txt
index 98db567..f9e7bf5 100644
--- a/parts_pl_src/body/pl_boar.txt
+++ b/parts_pl_src/body/pl_boar.txt
@@ -1,9 +1,9 @@
# pl_boar: from pixellab_src/pl_boar/base.png (pixellab_library.py extract)
# pivot at (29, 60)
# aura at (30, 37)
-# head_top at (25, 17) (from part)
-# back at (27, 21) (from part)
-# tail at (48, 31) (from part)
+# head_top at (25, 17) (from part/probe)
+# back at (27, 21) (from part/probe)
+# tail at (48, 31) (from part/probe)
.................ooooo.....................
....oo........ooo11111oo...................
...o21oo....oo111^111111oo.....oooo........
diff --git a/parts_pl_src/body/pl_boar_b.txt b/parts_pl_src/body/pl_boar_b.txt
new file mode 100644
index 0000000..7d6543f
--- /dev/null
+++ b/parts_pl_src/body/pl_boar_b.txt
@@ -0,0 +1,56 @@
+# pl_boar_b: from pixellab_src/pl_boar_b/base.png (variant of pl_boar) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 36)
+# head_top at (25, 11)
+# back at (27, 21)
+# tail at (53, 31)
+................o^..oooo.......................
+...............o2o.o113o.oooo..................
+............o.o13oo1133oo112o..................
+...........o3o1133113331113oooooo..............
+...........o3o1131133311333111113o.............
+....oo....o13211113333333111133oo..............
+...o21oo.o11221122ccccc3311133ooooo............
+...oo111oo112213ccbbbbbc3333ooo1112o...........
+...oo1111o112c33bbbbcccccc3oo1111o2o...........
+...o3o111o21cb3bbbccbbbb3oo1111oo32oo..........
+...o2o111o33cbaabbcBbccco11111o3332oooooo......
+...o2o111o3cbaabbcbbccc311111o33322o11113o.....
+...o23o121ccaabbbccccc311112o33322o1113oo......
+...o23o311bbabbbcccc1131112o333222o11333oo.....
+...o23o31cbbabbcccc1111112o3oo2221o2111111o....
+...o13o11cbbbbccc111111133oo332211o22111111o...
+....o21111bbbbcc11111111oo3333221o3311113333o..
+.....o1111cbbcc11111111122oo22211o33311111ooo..
+....o11111cbbc111111111122222111ooo33331111o...
+....o111111ccc11111111112222oooooc1o33331111o..
+....o111111111111111111222223333oc11oo3331111T.
+....o11111111111111111oo22222223occ1cco3311333o
+....oo212222222211113obo222222211oc111c33113o3o
+....ooo222222223112oo1ao2223221111oc111c3311oo.
+....oboo22222222oooooc1o2222321331oc111c33311o.
+.o..o2ooaaaaa3222obcoboA11223311oooc1111o33323o
+o1oo12oaaaaaaa222oooo32111123311occc11111o3333o
+o11o2oaaaaaaaab32o1o2211111233211oc111111o33o3o
+o11ooaaaaaaaabbco11o1111112233311oc111111o33ooo
+o11boaaaaaabbbbco111o1111223333o2oc211211o333o.
+ob1oaaaaaabbcbcco111ooo2223332oooo2222222o333o.
+.oboaaaaabbcccooo111bbo2233332o2222223222o333o.
+..ooaaaaabcccoo1ob111booo33332o2222223211o33oo.
+..oaaaaaabcco3113obbbo33332oo3o2222233111o33o..
+..oaaaaabbcoo33333ooo333332o2o22322331111o33o..
+..oaaaaabcco33333333333233oo2222323331111o33o..
+.obaaaaabcoo333233332332ooo22222333321112o33o..
+.obaaaaabcoo3o3223332oo3oo222212o33o11113o3o...
+.obaaaaabco33o322333ooooo2221112o3o311123oo....
+..obaaabbco3oo332o3ooo333221112ooo3331133o.....
+..obbbbbcco333o33o3ooo321111112o.o333323o......
+...occccco22333ooooooo32111112o..o333323o......
+....ooooo3332233oo.oco32211112o..occcc33o......
+.........occo23oo..oco3333113o...occcbco.......
+........obcbbccoo.occoccc3323o..occcbbco.......
+........obcbbccoo.ooooccbb33o...occobbco.......
+.......obbcbbbco....obbcbbbco...occobbco.......
+.......obcobbcco....obbcbbbco....oooooo........
+........ooooooo.....obcobbbco..................
+.....................ooPoooo...................
diff --git a/parts_pl_src/body/pl_boar_c.txt b/parts_pl_src/body/pl_boar_c.txt
new file mode 100644
index 0000000..b79bb8a
--- /dev/null
+++ b/parts_pl_src/body/pl_boar_c.txt
@@ -0,0 +1,55 @@
+# pl_boar_c: from pixellab_src/pl_boar_c/base.png (variant of pl_boar) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 36)
+# head_top at (25, 12)
+# back at (27, 21)
+# tail at (51, 31)
+.................^oooooo......................
+.....ooo.......oo1111113oo....................
+....o111oo...oo11111111111o....ooooo..........
+....o21111o.o31111111112221o.oo11111o.........
+....o311111o311111111223322oo1111132o.........
+....o3o111o321111112333332o111113332o.........
+...o23o11oo32111122333oooo11111o3332o.........
+...o233o2o332211123ooo22o11111o33322o.........
+...o233o211o331133o22211o1111o33322o..........
+...o23o21112o333oo2B11111111o333222o..........
+...o2o1111112oooo2111111111oo332221o..........
+....o1111111111111111111111o3332211oo.........
+....o11111111111111111111112333221o13o........
+...o111111111111111111111112223111o111o.......
+...o11111111111111111111111122111ob1111o......
+..o111111111111111111111111122ooo1aa111abo....
+..o11111111111111111112111111233o11ab111ab....
+.o1oo21122222222211111oo111111333o1ab1111ao...
+.o1ooo21222222221111ooao111111333o1ab1111bbo..
+.o1o1ooo2222222233ooob1o111111333o1ab1111bbT..
+o111booo211111222ocoob1o111111233o1aa11111bbo.
+o1112bb2111111111occcb31111111233o2aaa1111bbo.
+o1aa22oaaaaab111113333baaa1111233o21aab111bbbo
+oaaaaoaaaaaaab1111111aaaaaa111233o211ab112bb2o
+oaaaoaaaaaaaaab111111aAaaaa111233321aab112bb2o
+o1aaoaacaaacaab111111aaaaaa11133o321bb1112222o
+o111oaacaaacaab11o1111aaaa111133o322bb1222222o
+o311oaaaaaaaaab22o11111111111333o322b2222222bo
+.o311oaaaaaaabboo11111111111333o3222bb2222bbbo
+.o3312obbbbbboo221111111113333o322222b2222bbco
+..o33333333333321111111113333o3222222b2222bbco
+...o33333333333233333333333oo3322222bb22222bo.
+....oo3333333333333333333oo33222222bb22222bbo.
+......oooo33333333333oooo3332222222bb2222bbbo.
+......o333ooooooooooo33333222222322b22222bbo..
+......o2333333333333333322211112322222232bbo..
+......o2333333333333333221111112o222223333bo..
+......o2233333333333332211111112o223333o33o...
+.......ob233333333333o211111111o333333o333o...
+.......obbb333o333333o21aaaa112o3333oo333o....
+........o223333oo3333o21aaaa12o333oo33333o....
+........o2223333oooooo31111112ooooo333333o....
+.........ccc3333o...oo3111113o....occccco.....
+........obbbccco...ococcccc13o...occbbbco.....
+........obcbbcco...ooocbbbbco....occobbco.....
+.......obbcbbcco....obbcabbco....occobbco.....
+.......obcobbcco....obbcabbco.....oooooo......
+........ooooooo.....obcoabbco.................
+.....................oPooooo..................
diff --git a/parts_pl_src/body/pl_boar_d.txt b/parts_pl_src/body/pl_boar_d.txt
new file mode 100644
index 0000000..7e72c1a
--- /dev/null
+++ b/parts_pl_src/body/pl_boar_d.txt
@@ -0,0 +1,52 @@
+# pl_boar_d: from pixellab_src/pl_boar_d/base.png (variant of pl_boar) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 37)
+# head_top at (25, 16)
+# back at (27, 21)
+# tail at (52, 31)
+...............o...ooo.........................
+....oo........oc.^oaaaoooo.....................
+...o11oo......ococaabbaaao.......ooo...........
+...o1111o...oocccaaaaaacccooo..oo111o..........
+...o31111o..oaacaaccaaccacccooo11111o..........
+...o331111oocaaaaacaaaaaccoo11111o21o..........
+...o3o3111oabaaaacaBacccco11112oo321o..........
+...o3o3312oaaaaacaaac2cco11111o33321o..........
+...o2o332ocaaaaacac3222o21112o33322oo..........
+...o23o3ooccaaacccc2212o3112o333322occco.......
+...o233o2occbaccc3212123313o3333221ocaacoooo...
+...o33o211occcc33111112233o33322211occaaaaao...
+....o3o211occc311111112223o3332221o1ooocccco...
+.....o22112cco11111122122333o22111o1111occo....
+....o122112cc111111211112233o3112o21122occco...
+...o211221111111122111111233o33oo2221111oocao..
+...o2112221111112211112222233oooo22222111ocaT..
+....o21122111122211112oo2222333o3221111222ocao.
+....oo212221122211123obo22233333oo2111111oocao.
+....ooo222222222112oo1ao221223333222112211occao
+...ooaoo21111222oooooc1o2211113oo2221112221ocao
+.o.o12o2111111122oaboao21111113o22212111222occo
+o1oo1232222211122oooo33A11111333o22112211222o..
+o11o2oaaaaa331112o1o221111112233o22211121122oo.
+o11ooaaaaaaab311o11o1111111112ooo21111121122co.
+o11oaaaaaaaaab31o111o1111112233o22111111111oco.
+ob1oaaaaaaaaaa31o111ooo113322o3o31111111211oco.
+.oboacoaaacoaab2o111bbo1133oooo3331112212212oo.
+..ooabcaaaccaab3ob111boo233oo333322113311312o..
+...obacaaabcaab3oobbbo3333ooo313323233111312o..
+....oaaaaaaaaabo33ooo33333o333123323o3111333o..
+.....obbbbaaabo33333333oooo31112o333o1121333o..
+......oooooooo33333333oo33311111o333o112133o...
+......o133o333333333o3o333211111o33oo112333o...
+......o123oo33333o33ooo331111111o3o3111233oo...
+......o1213o3o333o33oo3321111213oo33311333o....
+......o1211333o3o3oooo331111222ooo3333333o.....
+.......o2313333oo3oooo332111223o.o3o33333o.....
+.......o33323333ooooco33311122o..ooc3333o......
+........o3o3o33oo..oco3333133o...occco33o......
+........oococo3oo.occo3o3o333o..occcbbco.......
+........obcbbcco..ooooocooo3oo..occobbco.......
+.......obbcabbco....occcbbooo...occocbco.......
+.......obcoabcco....obbcbbbco....oooooo........
+........ooooooo.....obcobbbco..................
+.....................ooPoooo...................
diff --git a/parts_pl_src/body/pl_boatman.txt b/parts_pl_src/body/pl_boatman.txt
new file mode 100644
index 0000000..22347c6
--- /dev/null
+++ b/parts_pl_src/body/pl_boatman.txt
@@ -0,0 +1,29 @@
+# pl_boatman: from pixellab_src/pl_boatman/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (30, 49)
+# head_top at (25, 44) (from part/probe)
+# back at (34, 43) (from part/probe)
+# tail at (40, 48) (from part/probe)
+.....oo................................
+....o11oo.........................ooo..
+...o33221o.......oooooo.........oo112o.
+...o333221o...ooo333323oo.....oo122222o
+....o333221o.o21332123223o...o11222322o
+.....o33322oo22221b322Bb23o.o12223333o.
+......oo332o2^111322b22323oo12223333o..
+........ooo2b22b22b2232333332233333o...
+...1.....o3333332223223333o223333oo....
+11.1...o3322222233222233o322333oo......
+11....o212a121121232333o2233Too........
+......oc111211cc32A33o3123oo...........
+..11.owwo1111cabc323o222oo3o...........
+..11.owoo111cwwobc33o3oo33oo...........
+.....oaob111cwooac33oo33oo2o...........
+.....obab111cabbac33o33o32o............
+.....o1c11111caaco13ooooo21o...........
+....o311ooooo1cc1w1o32o22o2o...........
+....o3o11oooo111w1o2o21ooo33o..........
+...o13ooo1aa11111o22oo22..o21o.........
+...ooo...ooooooooooo.o33o..oo..........
+......................o21o.............
+.......................Po..............
diff --git a/parts_pl_src/body/pl_boatman_b.txt b/parts_pl_src/body/pl_boatman_b.txt
new file mode 100644
index 0000000..f6247bb
--- /dev/null
+++ b/parts_pl_src/body/pl_boatman_b.txt
@@ -0,0 +1,40 @@
+# pl_boatman_b: from pixellab_src/pl_boatman_b/base.png (variant of pl_boatman) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 42)
+# head_top at (25, 29)
+# back at (34, 43)
+# tail at (48, 48)
+.....oo....................................
+....o33oo..........ooooooo.................
+....o3333o.....oooocbbbbbbooo..............
+....o33322o...^332222bbbbbb33o.............
+....o332222ooo32222222bbbbbb22oo...........
+.....o33222o31122222222bbbbbb223o......ooo.
+......o333o2212222222222bbbbbb223oooooo333o
+.......o3o32222222222222bbbbbboooo11333333o
+........oo222222222222222bbbbo22222233333o.
+........o22222222222222222bbb322222233333o.
+.......o322222222222222222bbb3322223333oo..
+...2...o2222222222222222222bbo3333333oo....
+11.2..o32222222222222222222bbbo333ooo......
+21....o321222211cc222222222bbbcooo33o......
+......occ112111cbbc22222222cbbbbcc333o.....
+..22..caao1111caaobc22222222bbbccc333o.....
+..22..oaoo111caaoobc2A222222cbbccc333oo....
+......oboo111cboooacc22B2222cccccc33o3o....
+.22...obbc111cbbbbac22222222cccccc3o33o....
+.22...occ21112cbbac222222233ccccooo333o....
+.....oo311oooo1ccc2122233333cooo111333o....
+.....o3o21oobb1111122333ooooo11111333o.....
+.....o31oooooo111122oooo1111111111333T.....
+.....o3111oooooooooo11111111111113333o.....
+......o1111cccc111111111111111111333o......
+......o1111cbbbb1111111111111111333o.......
+.......o1111bbbb1111111111111113333o.......
+........o111bbbbb11111111111133333o........
+.........o11bbbbb1111111111133333o.........
+..........o33bbbbb11111111333333o..........
+...........o3ccccc212213333333oo...........
+............ooocccc3333333333o.............
+...............ooocc333333ooo..............
+..................oooPoooo.................
diff --git a/parts_pl_src/body/pl_bogtoad.txt b/parts_pl_src/body/pl_bogtoad.txt
new file mode 100644
index 0000000..90005dc
--- /dev/null
+++ b/parts_pl_src/body/pl_bogtoad.txt
@@ -0,0 +1,43 @@
+# pl_bogtoad: from pixellab_src/pl_bogtoad/base.png (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (31, 44)
+# head_top at (31, 29) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (48, 46) (from part/probe)
+....................oo....................
+..................ocaaco..................
+............ooo..ocaaaaco..ooo............
+...........ocaaco3cbaaac3ocbaco...........
+..........ocaaaac33bccc323caaaco..........
+..........occccc2222^o22222cccco..........
+........oo3ooo222a2caac22a22ooo3oo........
+.......obc3222o3222aaaac223o2223cco.......
+......oaa3221112322baacc232112223oao......
+.....ocao33321112222ccb2221112333oaco.....
+.....oco32223211222222222211232233oco.....
+.....oco222223222222Ba222222332233oco.....
+.....oo33ooooo3223222222322ooooooo3oo.....
+.....oo22o13oo2oo22222222oo2oo31o23oo.....
+....oco2231www13222222222231www1323oco....
+...obo2a223ooo32222222222223ooo322a3obo...
+..ocao222222222oooooooooooo222222223oaco..
+..occo22ooooooo111111111111ooooo3333occo..
+..occo22o211111111111111111111112o33occo..
+...oc3o2o211111111111111111111112o3o3co...
+...o33o2o21111111111A111111111112o3o33o...
+..oo3c3oo211111111111111111111112oo3c3oo..
+..o3occ3oo21111111111111111111122o3ccT3o..
+..o2oo3o3oo211111111111111111222ooo3oo2o..
+.o323oo333oo2211111111111112222o233oo323o.
+.o222oo32222o2221111111112222oo2223oo222o.
+.ocb2oc211222ooo2222222222ooo222222co2cco.
+.ocb2oc2b112222oooooooooooo222211b2co2cco.
+..o22oc2aa1222o332222222233o2221aa2co22o..
+...o3oc2ba222o33111111111133o222ac2co3o...
+...oooo2222a2o32211111111223o2a2222oooo...
+..o33oo222222o33222222222233o222223oo33o..
+oc3oo3oo322223o332222222233o322223oo3oo3co
+.oo223o32222222oooooooooooo22222223o322oo.
+...ooo222o222o322o......o223o222o222ooo...
+......ooo.o11oooo........oooo21o.ooo......
+...........oP................oo...........
diff --git a/parts_pl_src/body/pl_bogtoad_b.txt b/parts_pl_src/body/pl_bogtoad_b.txt
new file mode 100644
index 0000000..b28fa34
--- /dev/null
+++ b/parts_pl_src/body/pl_bogtoad_b.txt
@@ -0,0 +1,57 @@
+# pl_bogtoad_b: from pixellab_src/pl_bogtoad_b/base.png (variant of pl_bogtoad) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 34)
+# head_top at (31, 10)
+# back at (31, 35)
+# tail at (52, 46)
+....................^oo....................
+...................ocaao..ooo..............
+..............ooo.ocbbbo.obaao.............
+.............ocacoocccccocbbbo.............
+........ooo.ocbaao3cccccccccco.............
+.......ocaco3cbbcc33oo3cbbc33oocoo.........
+.......obbbc33cc333cbco2bbbb33ccbo.........
+......o3ccc22222223ccco22bbb22ccco.........
+....oo3332222bb22b33oo3o2bbbb22bco.........
+...o322232b2babc33322223o2bbbb2bbcooo......
+..o3221123b2cbbc32211123o2bbbb22bb3cao.....
+..o3322112b22cc2321123333o2bbb22bbccbo.....
+.o32232112322b22321132233o2bbb22bbc3co.....
+.o322232223222223223322333o2b222bbc3co.....
+.o3oooo333322222333oooo333o2b222bbc2cbo....
+.o2o1oo1o32222222o1oo1o322o322222c22cbco...
+o3231wwwo22222222o1ww1o2223o222222223cco...
+o322oooo2222222222ooo322222o322222223co....
+o3222222ooooooooo22222222a2o32222222333o...
+o323oooo111111111ooooo22222o32222233333o...
+o32o3111111111111111113o223o32222233223o...
+.o3o1111111111111111113o233o322222322233o..
+.o3o1111111111111111113o23o3322223322223o..
+..oo1111111111111111113o33o3o33333322223o..
+..oo311111111111111113Ao3o323o333322222co..
+...oo311111111111111B3ooo3223o333322222co..
+.....o311111111111133oo333223o33332222bco..
+......ooo31111111333o2o332223o33332222bco..
+........oooooooooooo22o33222bo33o322bbb3oo.
+........o333o222222222o3222bbo3oo322bbb3oco
+........o2333oo2222112o322bbcoooo3222223ooo
+........o223333o1111122o22222oo.o33222bco..
+........o222333ooo11112o22222o3..o3222bc...
+........o222233o..oooooo32222o3..o322cco...
+........o222233o......oo3222boo..o332223o..
+........o322233o.......o322bboo...o33333o..
+.........o22333o.......o322bco3o...o33333T.
+.........o333333o......o3222co3o....o3333o.
+..........o33333o......o32223o3o....o3333o.
+...........o3333o......o3222o33o....o3333o.
+...........o2233o......o3222o3oo....o3333o.
+...........o2233o......o3222o3o.....o333o..
+...........o2233o......o3223o3o.....o333o..
+...........o2233o......o3223o3o.....o333o..
+...........o2233o......o2223o3o.....o333o..
+..........o32233o......o223o33o....o3333o..
+........oo333333o....oo2223o33o..oo33333o..
+.......o22322333o..oo222223ooo..o3333o23o..
+.......oooo22oooo.o23223322o....oooooo2oo..
+...........oo.....ooo22oo22o.........oo....
+.....................Po..oo................
diff --git a/parts_pl_src/body/pl_bogtoad_c.txt b/parts_pl_src/body/pl_bogtoad_c.txt
new file mode 100644
index 0000000..501a22b
--- /dev/null
+++ b/parts_pl_src/body/pl_bogtoad_c.txt
@@ -0,0 +1,51 @@
+# pl_bogtoad_c: from pixellab_src/pl_bogtoad_c/base.png (variant of pl_bogtoad) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 39)
+# head_top at (31, 16)
+# back at (31, 35)
+# tail at (53, 46)
+.....................o^oo.....................
+....................ocaaco....................
+..............oooooocaaaacoooooo..............
+............ooaaac33caaaac333aaao.............
+...........ocaaaaac3ccaacc32caaacoo...........
+.........oo3caaaacc33cccc322caaacc3oo.........
+........o222cccccc3222oo22222ccccc333o........
+.......ob2212ooo333a2caac22a22333o333boo......
+......oaaa21o22233332aaaac22332223o3caaco.....
+.....oaaaaco221112332caacc232112223ocaaao.....
+....oaaaaao33311112323cc32321112333ocaaaao....
+...ocaaaao33223211232222223211232233ocaacco...
+...ocaaaco332233222322aa223222332233o3cccco...
+..o3cccco33ooooo33332222223333ooooo33occcc3o..
+..o33222o22o13oo1o322222222oo1oo31o23o23333o..
+..o31122o2231www13222222222231www1323o22333o..
+.o33112o3a223ooo322oooooooo223ooo322a3o23333o.
+.o32112o32222222ooo21111112ooo22222223o233aao.
+.occc12o322oooooo111111111112oooooo233o22aaac.
+oaaaa32o323o3221111111B11111111233o333o2aaaabo
+oaaaac2o33o321111111111111111111223o3o32aaaabo
+oaaaac23oo32211111111111111111112233oo22aaaaao
+ocaaac22o3322111111111111111111122233o22caacbo
+ocaacc22o33221111111111A1111111122233o223cccco
+occcc322o33222111111111111111112223333222ccc3o
+occc32223o33222111111111111111222333o32223333o
+o33322222o33222211111111111112222333o32223333o
+.o32222223o332222221111111222222333o3322a3333o
+.o322222223o3322222222222222222333o33222a333o.
+.o33aaa22233o33322222222222222333o3322223ccco.
+.oocaaaa22223oo3322222222233333oo3322223ccccT.
+..ocaaaa2332233ooo3333333333ooo333233223ccco..
+..occcaao332223333oooooooooo333322233233ccco..
+...occcco3112222333333333333332222113o333cco..
+...o3ccoc3111222222222222222222221113co333o...
+....o33oc3b112333222222222222232211b3co33o....
+.....o3oc3aa1233o32222222222233221aa3co3o.....
+......ooc3ca223o33322222222233o222ac3coo......
+.......oocc32a3o33333333333333o2a22ccoo.......
+........occ3223o33333333333333o2223cco........
+........oo333333oooo333333333o333333oo........
+........o33333332oooooooooooo23333333o........
+.......o223o322o322o......o223o223o322o.......
+........ooo.o11oooo........oooo21o.ooo........
+.............oP................oo.............
diff --git a/parts_pl_src/body/pl_bogtoad_d.txt b/parts_pl_src/body/pl_bogtoad_d.txt
new file mode 100644
index 0000000..df32209
--- /dev/null
+++ b/parts_pl_src/body/pl_bogtoad_d.txt
@@ -0,0 +1,51 @@
+# pl_bogtoad_d: from pixellab_src/pl_bogtoad_d/base.png (variant of pl_bogtoad) (pixellab_library.py extract)
+# pivot at (39, 59)
+# aura at (32, 39)
+# head_top at (31, 15)
+# back at (31, 35)
+# tail at (55, 46)
+.......................^oo......................
+......................ocbco.....................
+.....................ocbbbco.....oo.............
+...............oo...ooobbbbco..oocco............
+..............ocbcoocbcobbccooocbbbco...........
+.............ocbbcocbbbcoccc322cbbbco...........
+.............ocbbcocbbbbc333333ccccco...........
+.............ocooooccbbcc33322113ccc3ooooo......
+...........oo2ocbbcocccc33111111333333cbbco.....
+........oooo2ocbbbbco33ooo11111ccbco23cbbco.....
+.......ocbbcoocbbbcc3oocbco1111cbbbco2cbbco.....
+.......ocbbcc3cccccc33cbbbco111cbbbco22ccco.....
+.......occcc2222222222ccbbco1111cbcc3323cco.....
+......oocc2222332222223cccc3o1111332233233o.....
+.....o33332b2cbbc22b223333333o1111112333333o....
+....o3222322cbbbbc223221123333o113333333333oo...
+....o2111232cbbbcc232111122333o33333cc33223oco..
+...o331111322ccc223211113333333o322cbbc32ccocbo.
+...o223111322222223211232233333o223bbbbo2cbccbo.
+...ooo32223222222232223222333333o23cbbco3cbboco.
+..o3ooo333322b22223333oBooo32333o23cccco3cccoco.
+..o2o1ooo32222222223o2oo31o22233o22cccc233ccoo..
+..o231w232222222222231www1322233o22333323333oo..
+.o31133322222222222223333322b233o222222332333o..
+.o21223ooooooooooooo2222A2222233o322222333333o..
+.o23ooo1111111111111oooooo22233ooo33333333oooo..
+..o3o2211w1111111111111122o2233o33oooooooo33oo..
+..ooo2211111111111111111222o333o3333o33333333o..
+...oo3221111111111111112222o33o333333o23332223o.
+..o3oo3222111111111112222233oo33222333o3331122o.
+..o323o322222222222222222333o332111233o33211123o
+..o2123oo32222222222222233oo3332111123o332111b3T
+.ob211233o332222222222333oo3o32211112cco3211bbco
+.ob3112233oo33333333333ooo32o32211112cco3222bbco
+.obbb122333oooooooooooo33322o322111bb3co3222cbco
+.ob3b12233oo.o333333333332223o3211bbc3co33222c3o
+.o3222223oo...o332222222222233o222bbc3co3332233o
+.o3222333oo...ooo3322222222233o22222233o3333333o
+..o322333o...oo33oo33333333333o32222233oo333333o
+.oo3333333o.o33ooo3o333333333o33222233oo3333333o
+o233233333o..ooo3o33oooooooooo33222333o3o333323o
+o131233312o.....ooooo......oo233333333ooo32oo2oo
+oooooooooo................o11332233322o..oo..oo.
+...........................oooo21ooo22o.........
+...............................Po...oo..........
diff --git a/parts_pl_src/body/pl_bombardier.txt b/parts_pl_src/body/pl_bombardier.txt
new file mode 100644
index 0000000..78b5d2b
--- /dev/null
+++ b/parts_pl_src/body/pl_bombardier.txt
@@ -0,0 +1,46 @@
+# pl_bombardier: from pixellab_src/pl_bombardier/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 40)
+# head_top at (32, 27) (from part/probe)
+# back at (38, 30) (from part/probe)
+# tail at (47, 42) (from part/probe)
+..................ooooo.....................
+...............ooo22223oooooo...............
+.............oo2111122oo22223oo.............
+...........oo21111122o211111123oo...........
+..........o321111122o211111111223o..........
+.........o321111112331111111111223o.........
+........o3211111123321^111111111223o........
+.......o3211111112321111111111112223o.......
+.......o2211111123321111111111112223o.......
+....ooo321111112232211oo1111B11122223o......
+...obao322111122o3221oabo111111122223o......
+...obaboo2222oooooooobabo111111222223o......
+...ocbcobo2oocccccocobbco1111112222233o.....
+....oooccboocbbbbobccooo11111222222233ooo...
+.....o32ocboaaaaoobcoco222222222222233obco..
+.....o32ooboaaaaobcoccco22222222222333oabco.
+.....o33ocooaaaaboocbbcco2222222222333oaabc.
+.....o3ocbaaaaaaaabbbbbcco2222cc222333obabc.
+.....o3oobbaaaaaabbbooobco2222222233o3obabco
+.....ooooobbaaaabbboooAocco2222223333oobabco
+......o1oobbbbbbbboooooooco222233333oocbbbco
+......o1woobbbbbbo1oowwooco33333333ooTcbbcco
+oooo..o1ooobbbbbbo1ooooooco333333o33oocbcco.
+obaoo.o1ooobbbbbbowoooococo33333o33ooccccco.
+obbcooowboobaaaabowbcoobooo3333oooooooccoo..
+.ooocbcobbobaaaabbowbbboaao33333oooco1ooo...
+...ooobbooccaaaacbboooocbbo3333ooocco11o....
+.....oooooccobbocbbbbcbooooooooooooo3212o...
+....o23ccoocboocboooccccoccoo......o3212o...
+...o22ocoabobaabcoabocoocco23o...ooo3222o...
+...o123ooacocbbccoabooo.oco223o..oo3322oco..
+...o123oocooocccooabo....oo3223o.oo33ooboco.
+...o223oooo.oooo.obco.....o3123o...oooccco..
+..ooo323oo.......ooo......o3223o......ooo...
+.oobcoo33o...............oo3223o............
+.oocoacoo................o33333o............
+..ooocoo.................ooooooo............
+...oooo..................oabobao............
+.........................occocco............
+..........................Po.oo.............
diff --git a/parts_pl_src/body/pl_bombardier_b.txt b/parts_pl_src/body/pl_bombardier_b.txt
new file mode 100644
index 0000000..959c519
--- /dev/null
+++ b/parts_pl_src/body/pl_bombardier_b.txt
@@ -0,0 +1,58 @@
+# pl_bombardier_b: from pixellab_src/pl_bombardier_b/base.png (variant of pl_bombardier) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 33)
+# head_top at (32, 9)
+# back at (38, 30)
+# tail at (53, 42)
+...............ooooooo^oooooo...............
+.............oo33333333333333oo.............
+............o333332222222333333oo...........
+..........oo33bbb2221111222bbbb33oo.........
+.........o333bbbb2211111122bbbbc333o........
+........o3332bbb21111111111bbbbb3333o.......
+.......o33322222111111111111bbbb23333o......
+......o3333122211111111111111cc2233333o.....
+.....o33332222111111111111111122223333o.....
+.....o333322111111111111111111222233333o....
+....o3333bbb211111111111111111122233333o....
+....o333bbbb2211111111111111111222333333o...
+...oo333bbbb2211111111111oo111122233cc33o...
+..obao33cbb2222111111111obao1122223cbbb33o..
+..obabo33322oooooooo11oobabo1222233cbbbc3o..
+..ooccbo33oocbbbbbccoocbbbco2222233cbbbc3o..
+..o3oocboocbbaaaaabbobccooo222223333bbbc33o.
+..o333ocbobbaaaaaabobcooo222222333333cc333o.
+..o33ooocbbaaaaaaaobcoccco2223333333333333o.
+..oooooobbbaaaaaaboooooocco333333333333333o.
+..ozoo1oobbbaaaaboo1oozobcco33333333333333o.
+..oz1o1oobbbaaabooo1oo1zobccB3333333333333o.
+..oz1oooobbbbbbboooooo1zobbco33333cc333333o.
+..oz11ooobbbbbbbobooc11zobbco3333bbbc33333o.
+..oz111ocbaaaaabbooo11Azobbcco333bbbc33333o.
+..ooz11zcaaaaaaabczz11zocbbcco333bbbc3333oo.
+.obaozzcaaaaaaaaaaczzzocbbbcco333bbbc3333o..
+.obabccaaaaaaaaaaabccccbbbccco33333333333oo.
+.obbbaaaaaaaaaaacbcccbbbbbccco33333333333oc.
+..ocbbbbccccccccooooobbbbbccco3333333333obc.
+...oooooooooooooccccoooccbcco33333333333obco
+....o33oooccccccbbbooooocccco3333333333obbco
+....oo3aoobbbbbbbbooooooocco3333333333oobbco
+.....ooawoobbbbbboaoowwoocco3333333333obbccT
+oooo..oaooobbbbbboaooooooco3333333333ocbcco.
+obaoo.oaooobbbbbbowoooococo333333333occccco.
+obbcooowboobaaaabowbcoobooo3333333ooooccoo..
+.ooocbcobbobaaaabbowbbboaao333333ooco2ooo...
+...ooobbooccaaaacbboooocbbo3333ooocco22o....
+.....oooooccobbocbbbbcboooooooo..ooo3322o...
+....o33ccoocboocboooccccoccoo......o3322o...
+...o33ocoabobaabcoabocoocco23o...ooo3332o...
+...o233ooacocbbccoabooo.oco223o..oo3333oco..
+...o233oocooocccooabo....oo3223o.oo33ooboco.
+...o233oooo.oooo.obco.....o3223o...oooccco..
+..ooo333oo.......ooo......o3223o......ooo...
+.oobcoo33o...............oo3223o............
+.oocoacoo................o33333o............
+..ooocoo.................ooooooo............
+...oooo..................oabobao............
+.........................occocco............
+..........................Po.oo.............
diff --git a/parts_pl_src/body/pl_bombardier_c.txt b/parts_pl_src/body/pl_bombardier_c.txt
new file mode 100644
index 0000000..95ae2f3
--- /dev/null
+++ b/parts_pl_src/body/pl_bombardier_c.txt
@@ -0,0 +1,41 @@
+# pl_bombardier_c: from pixellab_src/pl_bombardier_c/base.png (variant of pl_bombardier) (pixellab_library.py extract)
+# pivot at (25, 55)
+# aura at (31, 36)
+# head_top at (32, 22)
+# back at (38, 30)
+# tail at (52, 42)
+................ooo..ooooo...............................
+..............oo223oo22223o^ooo..........................
+............oo21133222222233222oo........................
+...........o321123221111222332123o.......................
+..........o32112322111112222o21113ooooo..................
+.........o32112332111111122232211233223o.................
+....oo...o22222322o111112222232112232212oo...............
+...obo..o32223332oao1111212223321222321123ooo............
+...obaooo33oooooobao1112222223322222321123223o...........
+...occobo3obbbboobbo2222222222322B223221232123oo.........
+......ccbobaaooboco22222222222322222232122221322ooo......
+.......oboaaaobcccco2222222222322b22232222221221o2o......
+.......oobaaaboocbcc2222222223322c2223222b221221232ooo...
+......ocbaaaaaabbbbco2222cc223322c2223222b222b2223232ooo.
+......oobbaaabbbooobc222222233322c2233222c222c223323232o.
+.....oaobbbbbbboooooco2222A333322c2233222c222c2233332o23o
+.....oa1obbbbboao11oco33333333322c2333223c223c33o33o2333o
+ooo..oaoobbbbbo2ooooco33333333222c33o333c333c333c33o3ooo.
+obaooo1oobbbbboaooocoo3333333o223c33o333333c333coooooo...
+.oocbcobobaaabbobbcobo333333o333c333333c33ooooooo........
+...oobboccaaacbbooobbo33333o3333333o33oooooocco..........
+.....oooccobocbbbcbooo33333o333c33ooooccco..ocaT.........
+......ococbobcoocccocco333oooooooooocoocbao..obbo........
+.....oooboccccoaoooocccooo.........oco.oobao..obbo.......
+.....ocococccoobo...occo...........oco...obbo..obo.......
+....obcoo.ooo.obo...ocbco.........oco.....obo..obo.......
+....obco......oo.....obao.........oo......obo..oco.......
+....obco.............obao.................oco.oco........
+....obco.............oabo................oco..ooo........
+..oobbo..............obco................ooo.............
+.oabcco..............cboo................................
+obccco.............oobbo.................................
+.oooo.............oabco..................................
+.................obbco...................................
+.................oooP....................................
diff --git a/parts_pl_src/body/pl_bombardier_d.txt b/parts_pl_src/body/pl_bombardier_d.txt
new file mode 100644
index 0000000..030e2a5
--- /dev/null
+++ b/parts_pl_src/body/pl_bombardier_d.txt
@@ -0,0 +1,57 @@
+# pl_bombardier_d: from pixellab_src/pl_bombardier_d/base.png (variant of pl_bombardier) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (31, 32)
+# head_top at (32, 9)
+# back at (38, 30)
+# tail at (53, 42)
+................ooooooo^ooooo.................
+..............oo222223oo22222oo...............
+...........ooo22222223o22222222oo.............
+..........o3222221222o22222222223oo...........
+........oo3222111122o22211111222223o..........
+.......o3322111112232221111111222223o.........
+......o32221111112o322211111111222223o........
+.....o322111111122o2221111111111222223o.......
+.....o222111111122o22211111111112222223o......
+....o3222111111223322211111111111222222o......
+...o3222211222223o3222211111111122222223o.....
+..ooo2222222oooooooo222211oo1111222222233o....
+..obao2223ooccccccccoo332oabo111222222223o....
+..obabo2ooccbbbbbbbbccooocabo122222222223o....
+.oocbbcoccbbbaaaaaabbbcoobbco2222222222233o...
+.o3ooocbobbaaaaaaaaaaboccooo22222222222233o...
+.o323oocbooaaaaaaaaaoobcoooo22222222222233o...
+o322occocboaaaaaaaaaobcoccco322222222222333o..
+o32occbcoobaaaaaaaaaboocbbcco22222222222333o..
+o33ocbbbcbbaaaaaaaabbbcbbbbbo32222222223333o..
+o3ocbbbbbbbbbaaaaabbbbbbbbbbco3222222223333o..
+o3ocbooobbbbbbbbbbbbboooobbbcB3222222223333o..
+o3oboaooobbbbbbbbbbboooooobbcco322222233333o..
+oocoawwooobbbbbbbbboowAoooobbco322222333333o..
+oocoawwooobbbbbbbbooowwooaobbcco22c22333333o..
+.ocoaooooobbbbbbbboooooooaobbcco2222333333oco.
+.ocowooooobbbbbbbboooooocwobbcco2233333333oco.
+.ocowboobobbbbbbbboccooobwobbcco3333333333obc.
+.ocbowbbbobbbbbbbbboboobwoobbcco333333333obbc.
+.oobboooobbbbbbbbbbbobbboobbbcco333333333obbbo
+..obabbbbbbbbbbbbbbbboooobbbcco333333333ocbbco
+..ocaabbbbbobbbobbbbbbbbaaabcco333333333obbbco
+...ocbbbbbbbooobbbbbbbbbaaacco333333333ocbbcco
+...occbbbbbbbbbbbbbbbbbbbbccco33333333oocbccT.
+....occbbbbbbbbbbbbbbbbbbccco33333333occcccco.
+.....occbbbbbbbbbbbbbbbcccco33333333ooocccco..
+......ooccbbbbbbbbbbbcccccooo33333ooo33oooo...
+.......ooccccccccccccccccoooo333oooo3322o.....
+......o33ooccccccccccccooo333ooo...oo321o.....
+.....o2333ooooccccccoooooo333o......o3222o....
+.....o1233o..ooooooooo...o3222o......o322o....
+....o212co....o33oo.......o2212o....oo322o....
+....o2123o...oooo3oo......o2212o....o333oco...
+....o2223o...occocco.......o2223o...o3ooboco..
+....o2223oo...ooooo........o2223o....ooccco...
+...ooo3333o................o2223o......ooo....
+..ocbcooo3o...............o33333o.............
+..ocboacoo................ooooooo.............
+...ooooo..................oabocao.............
+..........................oacooco.............
+..........................Poo.oo..............
diff --git a/parts_pl_src/body/pl_bonesnake.txt b/parts_pl_src/body/pl_bonesnake.txt
new file mode 100644
index 0000000..9c38b97
--- /dev/null
+++ b/parts_pl_src/body/pl_bonesnake.txt
@@ -0,0 +1,45 @@
+# pl_bonesnake: from pixellab_src/pl_bonesnake/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 43)
+# head_top at (31, 24) (from part/probe)
+# back at (29, 37) (from part/probe)
+# tail at (47, 52) (from part/probe)
+...............oooooo..............
+.............oo311123oo............
+............oo211^12223o...........
+...........o312111211123o..........
+...........o112112113322o..........
+..........o33111111ooo323o.........
+..........oboo12213oooo22o.........
+..........oboc2222ocooo32o.........
+..........obo1o223o1boo32o.........
+..........o2obo112obco313o.........
+..........o23o21122oo312o..........
+..........o222o2o222222oo..........
+......ooo..oo222222o2oo3o..........
+.....oco.....o2ooo2o1o22o..........
+....oao......3ooooobo22o..o........
+...oao..o...o33Bcc1o22o..o1o.......
+..o3o..o1o.o1o221123ooo..o2o...oo..
+..obbo.o2oo32oooooooo3o1oo32..o1o..
+.o3213oo3oo3oo3c333333oo23o3oo2o...
+.o233o1o3o323ooabbcoo33oo311233o...
+..o322o322o321oc3o111233o2113oo....
+..o3o33oo2oooobaaAoo2233o223322o...
+...o21123o211oa3coooooo3o3332112o..
+...321o32oooobbco111233oo3o23o222o.
+...3oo12ooooca3aooo333oooo3322o33o.
+...oo2112o2obbccoooooo...oo2111o3o.
+...o3211o2ocabco122o....oo3321223o.
+ooo3322o11ocbb3ooooo..oo3111o222o..
+o222o2o311o3bboo3222o211o2122323o..
+.oooo3o322ocabco322123211o222o33o..
+.....oo322ocaaa3o3222o2222o33o3o2T.
+......o3323c3b33bo222o322o333oo.o2o
+......o3o3ooccbbco222o322o3o3o...oo
+......32ooo2o3cco3233o333oo.32o....
+.....o2o..o2ooo3333o2o3o1o..o22o...
+.....oo...o1o..ooooo2o..32...oo....
+.........o1o.......o2o..o2o........
+.........oo........o2o...oo........
+...................Po..............
diff --git a/parts_pl_src/body/pl_bonesnake_b.txt b/parts_pl_src/body/pl_bonesnake_b.txt
new file mode 100644
index 0000000..4bfda6a
--- /dev/null
+++ b/parts_pl_src/body/pl_bonesnake_b.txt
@@ -0,0 +1,59 @@
+# pl_bonesnake_b: from pixellab_src/pl_bonesnake_b/base.png (variant of pl_bonesnake) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 35)
+# head_top at (31, 8)
+# back at (29, 37)
+# tail at (47, 52)
+...............oo^oooo.............
+.............oo2111122oo...........
+...........oo1111111112coo.........
+..........o111111111acc222o........
+.........o2111111111a112222o.......
+.........o1111111111a1122c2o.......
+........oa111111111b11222c22o......
+........o2b211111bb1112232c2o......
+........o22a11111b111123322c2o.....
+........o2111111c11111133222co.....
+........o11112111111221132222o.....
+.......o1ooo1132113ooo313322co.....
+.......o3ooo323223ooooo3132c3o.....
+........3oobo3233oob1oo31o223o.....
+........3ooao2113ooaboo31oo2o......
+........1oooo2113oobboo111o3o......
+.......o11oo22o122oooo1122o3o......
+.......o1bb11ooo12111abb22oo.......
+........o2221o3o122222b2ooo........
+.........oo2121212123ooooo.........
+..........o3111112223oo33o.........
+..........o131213131ooo23o.........
+..........o11131o1ooooo23o.........
+...........o1oooo1oooo3b2o.........
+...........ooooooooooo2b2o.........
+...........oooocccoo1o12co.........
+......ooo..o1ooooo1o12223o.........
+.....oco..o21o1o1A131223o..........
+....oao...o112131212b23o..o........
+...oao..o.o2111B21122oo..o1o.......
+..o3o..o1o.oo122112oo3oo.o2o...oo..
+..oaao.o1ooo2oooooo333o1o322..o1o..
+.oa113oo3o13oo3c333333oo2233oo2o...
+.o233o1o1o222ooa3bco333oo311a32o...
+..o323oo22o221oc3o111233o21a33o....
+..o33112o3oooobaacoo2233o2c3322o...
+...oaa122o211oa3coooooo3o2c21a12o..
+...oa2332oooobaco111233oo3322a222o.
+...o3o12ooooca3aooo333oooo3333o33o.
+...oo2112o2oboccoooooo...oo211ao3o.
+...o3211o2ocaaco122o....oo231a223o.
+ooo3322o11ocac3ooooo..oo2111o222o..
+o222o2o21co3cboo32b2o2a1o2122323o..
+.oooo3o22cocbaco32b1131a1o222o33o..
+.....oo3c2ocaaa3o3b11o2a22o22o3o2T.
+......o3c23c33b3co2bbo32b2o22oo.o2o
+......o2o33occ3bco2b2o32b33o2o...oo
+......32ooo2o3cco32c3o333oo.o2o....
+.....o2o..o2ooo3333o2ooo1o..o22o...
+.....oo...o1o..ooooo2o..o2...oo....
+.........o1o.......o2o..o2o........
+.........oo........o2o...oo........
+...................Po..............
diff --git a/parts_pl_src/body/pl_bonesnake_c.txt b/parts_pl_src/body/pl_bonesnake_c.txt
new file mode 100644
index 0000000..36a56da
--- /dev/null
+++ b/parts_pl_src/body/pl_bonesnake_c.txt
@@ -0,0 +1,43 @@
+# pl_bonesnake_c: from pixellab_src/pl_bonesnake_c/base.png (variant of pl_bonesnake) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 42)
+# head_top at (31, 25)
+# back at (30, 37)
+# tail at (47, 52)
+...................oooooooo........
+.................^o21112112o.......
+................o12122212112o......
+..............oo2213ooo33212o......
+...........ooo11113ocaco3222o......
+.ooooo..ooo21111233ocbco3233o......
+o12112oo21111122222oooo23333o......
+o22o22111112o22212222222113o.......
+o22b222222oowooooooo221113o........
+.oo1oowowo1222211112oo2233o........
+.o222222223333333333222ooo.........
+..ooooooooooooooooooooo3o..........
+.................obb333o..o........
+................Bbb3233o.o1o.......
+................oa2223o..o2o...oo..
+...............oab1233oooo3o..o1o..
+..............obb22333o32233oo2o...
+.............ob113oooo331211232o...
+............o3a113A1112322113oo....
+.........ooo1oa133oo22233223322o...
+........o3321b133oooooo332332112o..
+.......o212o312bo111233o33o23o222o.
+......o2332ob12booo33ooooo3322o23o.
+......o112o222boooooo....oo2111o3o.
+.....o223oob22bo12o.....oo1311223o.
+.....o2311ob233ooooooooo2111o222o..
+.....o3111ob113o2233o322o2122323o..
+.....o3212o221bo32223321oo222o33o..
+.....o3322ob3112o22223222oo22o3o2T.
+......o3322o33322o22232222o22oo.o2o
+......o2o33obb322o222o322o3o2o...oo
+......32oo3oo133o2233o322ooo32o....
+.....o2o.oo3oobb3b2o2o333o..o22o...
+.....oo...o1oooo333o2ooo1o...oo....
+.........o1o....oooo2o..o2o........
+.........oo........o2o...oo........
+...................Po..............
diff --git a/parts_pl_src/body/pl_bonesnake_d.txt b/parts_pl_src/body/pl_bonesnake_d.txt
new file mode 100644
index 0000000..48a1dc1
--- /dev/null
+++ b/parts_pl_src/body/pl_bonesnake_d.txt
@@ -0,0 +1,58 @@
+# pl_bonesnake_d: from pixellab_src/pl_bonesnake_d/base.png (variant of pl_bonesnake) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 33)
+# head_top at (31, 9)
+# back at (29, 37)
+# tail at (47, 52)
+............ooooo^oooooo...........
+..........oo211111111222oo.........
+........oo2111111111111222o........
+.......o2211111111111111222oo......
+......o2211111111111111112222o.....
+.....oo2111111111111111111222o.....
+.....o111111111111111111111223o....
+....o21111111111111111111112223o...
+....o21111111111111111111112223o...
+...o2211111111111111111111222223o..
+...o2211111111111111111112222223o..
+...o2221111111111111111122222223o..
+...o3111111111111111111122222223o..
+...o2111111111111111111123322223o..
+..o21122111111111113332113322223o..
+..o212ooo111111113ooooo113322223o..
+..o22ooooo1122113ooooooo12o32233o..
+..oo2ooooo312211oooooooo12o33333o..
+...o2ooocoo22222ooccoooo12o3333o...
+...o2ooo11o21122oob1ocoo12o3333o...
+...o1oocbbo21122oob1bboo112o333o...
+..o212ocboo211123oobboo2112o33o....
+..o2112ooo21oo1122oooo11122o33o....
+...o2111221oooo11221111223o33o.....
+....o222211o3oo11A122222oo3oo......
+.....ooo211111111122ooooooo........
+........o2111111212oooooo..........
+........o212131121o3o..............
+.........o1ooooB21ooo..............
+..........ooo2oooo33oooo...........
+...........o2ooo33333o32o..........
+..........o1oo3c333333oo2oooo......
+.......ooo1o2ooabbcoo33oo3222o.....
+......o211oo31oc3o111233o213ooo....
+....oo23313ooobaacoo2233o23o222o...
+...o211223322oa3coooooo3o2o21112o..
+...321o323ooobbco111233oo2o22o222o.
+...3oo22oo2oca3aooo333oooo3322o22o.
+...oo2112o2obbccoooooo...oo2111o3o.
+...o3211o2obabco122o....oo3321223o.
+..oo322o11obbb3ooooo..oo3111o222o..
+o222o2o311o3bboo3222o211o2122323o..
+.oooo3o322ocabco322123211o222o33o..
+.....oo322ocaaa3o3222o2222o22o3o2T.
+......o3323c3b33bo222o222o322o..o2o
+......o2o3ooccbbco222o322o3o2o...oo
+......32ooo2o3cco3233o333oo.3o.....
+.....o2o..o2ooo3333o2o3o1o..o2o....
+.....oo...o1o..ooooo2o..32...o.....
+.........o1o.......o2o..o2o........
+.........oo........o2o...oo........
+...................Po..............
diff --git a/parts_pl_src/body/pl_boxfish.txt b/parts_pl_src/body/pl_boxfish.txt
new file mode 100644
index 0000000..ca1e5fe
--- /dev/null
+++ b/parts_pl_src/body/pl_boxfish.txt
@@ -0,0 +1,46 @@
+# pl_boxfish: from pixellab_src/pl_boxfish/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (32, 25) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (47, 44)
+..............ooooooooooo.............
+.............o21111111112o............
+............o2111111111113o...........
+...........o211111111111223o..........
+...........o2aaaaaa^aaaabb3o..........
+.......oooooo222222222233oooooo.......
+.......oo22233occccccccoo2223oo.......
+......oc322111a11111111a111223co......
+......oo2baaaa1111111111aaabb1oo......
+.....o32a1111a1111111111a1111b13o.....
+....oo2b111111a11111111a111111b2o.....
+....oo2b1111111b11B111a1111111b2oo....
+....oc2b11111111b1111b11111111b2oo....
+....occb11333111baaaab11133311booo....
+...oo32c133oo31bb1111bb13oo331bc3oo...
+.ooo332c1312o3oa111111ao22o133c233ooo.
+.o2o332c13ooo1b11111111b1ooo33c233o2o.
+o11o33c21oaoo1b11111111b1ooao12c33o11o
+oaao33c2131aaob11111111boaa1312c33oaao
+oaaooo32133o13b1111A111b3o133123oooaao
+obaooo32113331b13333331b13331123oooabo
+.obo33o21111111o311113o11111112o33obo.
+.ooo33c21111111o1a11a1o11111112o33ooo.
+...o33c22111111o1aooa1o11111122c33T...
+...o333o2211111o3o11o3o1111122o333o...
+....o33o22211111oo33oo11112222o33o....
+....oo3oc222222b333333b222222co33o....
+....oo3oo222222b222222b222222co3oo....
+....ooco3b2222b22222222c2222c3oooo....
+....ooco33bbbbb22222222ccccc33ocoo....
+.....ooo333333b22222222c333333ooo.....
+.......o3333333cccccoooo333333oo......
+.......oo33333b33333333oo3333coo......
+........oooooo3333333333ooooooo.......
+........oooooooooooooooooooooo........
+.............obbbbbbbbbbbo............
+.............ooaaaaaaaaboo............
+..............ooaaaaaaboo.............
+................oaaaabo...............
+.................oPooo................
diff --git a/parts_pl_src/body/pl_boxfish_b.txt b/parts_pl_src/body/pl_boxfish_b.txt
new file mode 100644
index 0000000..1098060
--- /dev/null
+++ b/parts_pl_src/body/pl_boxfish_b.txt
@@ -0,0 +1,63 @@
+# pl_boxfish_b: from pixellab_src/pl_boxfish_b/base.png (variant of pl_boxfish) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 33)
+# head_top at (32, 4)
+# back at (31, 32)
+# tail at (46, 44)
+..............ooooo^ooooo.............
+.............o21111111123o............
+............o3222222222223o...........
+...........o322222222222333o..........
+...........o3bbbbbbbbbbbcc3o..........
+.......oooooo333333333333oooooo.......
+.......oo333333oooooooo333333oo.......
+......oo333222b22222222b222333oo......
+......oo3bbbbb2211111122bbbbb2oo......
+.....o33b1111b1111111111b1111c23o.....
+....oo3c222222b22222222b222222c3o.....
+....oo3c2222222b222222b2222222c3oo....
+....oo3c22222222c2222c22222222c3oo....
+....oooc22333222cbbbbc22233322cooo....
+...oo33o233oo32cc1111cc23oo332co3oo...
+.ooo333o2323o3ob222222bo33o233o333ooo.
+.o3o333o23ooo2c22222222c2ooo33o333o3o.
+o22o33o32oaoo1c22222222c1ooao23o33o22o
+oaao33o3231aaoc22222222coaa1323o33oaao
+oabo3333233o13c22222222c3o13323333obao
+ocbo3333223332c23333332c23332233ooobco
+.oco33o32122222o311113o22222123o33oco.
+.oooooo32211222o2b22b2o22211223o33ooo.
+...o33o33222222o2boob2o22222233o33o...
+...o333o3322222o3o22o3o2222233o333o...
+....o33o3332222ooo33ooo2223333o33o....
+....o33oo33333obaaaaaabo33333o333o....
+....o33o3o333obaaaaaaaabo333o3o33o....
+....o33o33ooooaaabBbbaaboooo33o33o....
+....oa3333333obbbooAobbbo33333o3ao....
+....oao333333oooooooooooo333333oao....
+....oao332233obbobbobobbo322233oao....
+....obo332222ocaabbbbaaco222233oao....
+....ooo3322223ocaaaaabco2222233ooo....
+....o33o32aaa23ocbbbbco322aa23o33o....
+....o33o32aaa22oooooooo22aaab3o33o....
+....o333o2bbb2o23333332o2bbb2o333o....
+....o333o32222o22222222o22223o333o....
+....o333ooooooo22222222ooooooo333o....
+....o333o22222o222aa222o22222o333o....
+....oa3o3222222o2baaa2o2222223o3aT....
+....oao332222223o2bbbo22222a233oao....
+....oao332222222o2222o2222a2233oao....
+....ooo332222222oooooo2222a2333ooo....
+....ooo333222222o2222o222222333ooo....
+....o33o3332222o222222o2222233o33o....
+....o333o33332o2222a223o22233o333o....
+....o333ooooooo2222a222ooooooo333o....
+....o333o22222o22222222o22222o333o....
+....o33o22aaa22o232222o22aaa23o33o....
+....o33o2aaaa22o333333o22aaaa2o33o....
+....o33o3baaab2oooooooo2baaab2o33o....
+....ooo333bbb33oooooooo33bbb333ooo....
+.....oo33333333o333333o33333333oo.....
+.....ooo333333o33333333o333333oo......
+.......oooooooo33333333ooooooooo......
+........ooooooooooPooooooooooo........
diff --git a/parts_pl_src/body/pl_boxfish_c.txt b/parts_pl_src/body/pl_boxfish_c.txt
new file mode 100644
index 0000000..d51a966
--- /dev/null
+++ b/parts_pl_src/body/pl_boxfish_c.txt
@@ -0,0 +1,52 @@
+# pl_boxfish_c: from pixellab_src/pl_boxfish_c/base.png (variant of pl_boxfish) (pixellab_library.py extract)
+# pivot at (34, 57)
+# aura at (32, 34)
+# head_top at (32, 13)
+# back at (31, 32)
+# tail at (57, 44)
+....................ooooo..........................
+..................ooo313o^ooo......................
+................ooo2333332222oooooo................
+.............ooooo2222222222bbbbbbcooooooo..ooo....
+...........oobbaaaaaaaa222bbbbbboo22222222oo211o...
+........ooo11111cccaaaaaaabbbbcc222222222223222ooo.
+...ooooo31111111111ccccccccaaaaaacooo22222223o3333o
+..o212o1111111111aaaaccc11111cccaaaaaaccc122222333o
+.oo222o3111111bbaaacc11111111111cccccaaaabb133o313o
+o1233331111ccaaaacc11111111111bb11111cccaaac33o323o
+o111111111baaaaa111111111111boo111111111obbc33o3o3o
+o1111o111b1111111111111111b3312311111113obbc33oo33o
+o1131o111b11111111111111b1133223o1111333obbc333ooo.
+o1331o1111b111111111111b1111333321133333obbc333ooo.
+o222o21111bb11111111111b1311111123333333obbc3333oo.
+.ooo2111111b1111111111b113111113333o3333obbc33333o.
+.o2211111111b11111111b1113111113313o3333obbc33333o.
+.o2111333111bb111111b11113111113333o3333obbc33333o.
+.o11133oo311bbbbbbbc1111113oo11333o33333obbc33333o.
+.o1113o1oo31b111111c11111112o1133o333333obbc3333oo.
+.o1111311o3o11111111b113B3112ooooo333333obcc333ooo.
+.o111131ooob11111111b333oo31122oo3333333obcc333ooo.
+.o111131boob1111111113311A33112333333333obbc333ooo.
+.o11113oaaob111111111b31ooo3111333333333obbc33oooo.
+.o111113o13b111111111b31ooa3111333333333obbcoooooo.
+.o111111331b111111111c3oaa13111333333333obbcoooooo.
+.o211111111c333333111c3oa133111333333333obbcoooooo.
+.o211111111o31111331bb133331111333333333obbcoooooo.
+.o221111111o1111111o21111111111oo3333333obbcooooo3o
+.o222111111o1c11b11o21111111111ooo333333obccoooo21o
+.o222111111o2coob11o21111111111ooo333333obccooo313o
+.oc22222111ooc111o2o21111111112ooo333333obccooo323o
+.occ22222221oo222o3o11111111222oooo3333oobcoooo333T
+.oooo222222boooooooc11111112222ooooo3oooobccooo333o
+o212oo22222b2223333cc2222222222oooooooooobccoooooo.
+o2112ooo22o222222222c2222222222oooooooooobccooooo..
+oo112ooocoo2222222222c222222222oooooooooocccoo.....
+o32223ooooo2222222222o2222oo233o3oooooooocoo.......
+o33323oooooo222222222ooooooo311133ooooooooo........
+.oo333ooooooooo22222ooooooo11222333oooooo..........
+..oooooooooooooooooooooooo211122323oooo............
+........oooooooooooooooooo211123333ooo.............
+............oooooooooooooo233223333oo..............
+...................ooooooo22223333o................
+.........................oo3333ooo.................
+...........................Poooo...................
diff --git a/parts_pl_src/body/pl_boxfish_d.txt b/parts_pl_src/body/pl_boxfish_d.txt
new file mode 100644
index 0000000..34ccee3
--- /dev/null
+++ b/parts_pl_src/body/pl_boxfish_d.txt
@@ -0,0 +1,49 @@
+# pl_boxfish_d: from pixellab_src/pl_boxfish_d/base.png (variant of pl_boxfish) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (32, 18)
+# back at (31, 32)
+# tail at (47, 44)
+..............ooooo^ooooo.............
+.............o31111111113o............
+............o3222112222223o...........
+............o322222222a123o...........
+...........o332222222211233o..........
+...........o3ccccccccccccc3o..........
+........oooo33333333333333ooooo.......
+.......o2221222ooooooooo2222222o......
+......o2212122222222222221112222o.....
+.....o1222222222a1222222222222211o....
+....o21123333311111111113333321122o...
+...o2223322222o22222222c222223o222o...
+...o22232a22222o22222222222212o2a2o...
+...o2a2321122222222222o2222212c212o...
+...o212322222222o2B22o22222222c222o...
+...o222322333322o3333o22233322c222o...
+..oo2223233oo33o111111o23oo332c222oo..
+.o3o22232323o3c22222222c23o233c222o3o.
+o22o222323ooo2c22222122c2ooo33c212o22o
+o22o212323boo1c22222122c1oobo23222o2bo
+obbo2223231bboc22222222cobb1323222obbo
+obbo2223233o13c2222A222c3o13323222obco
+ocbo222322333222333333222333223223occo
+.oco32232122222o311113o22222123233oco.
+..oo33232211222o2c22c2o22211223233ooo.
+...o33332222222o2cooc2o22222223333o...
+...o33333222222o3o22o3o222222333a1T...
+...o313333322222oo33oo222223333313o...
+...o313333a33333333333333333333333o...
+...o3333331333333333333333a1333333o...
+...o333oo3333333333333333311333333o...
+...o33o33o3333333333333333333o3o33o...
+....oo333oooooooooooooooooooo3333o....
+....oo333333oo33333333333o333333oo....
+.....o333133o333333333313o333333o.....
+.....oo33a13o333333333a13o33333o......
+......oo3133o331333333133o3313oo......
+.......oo333o333333333333o3333o.......
+........oooooooooooooooooooooo........
+.............occccccccccco............
+..............obbbbbbccco.............
+...............oobbbbcoo..............
+.................oPooo................
diff --git a/parts_pl_src/body/pl_brawler.txt b/parts_pl_src/body/pl_brawler.txt
index 5fd63b4..5f82984 100644
--- a/parts_pl_src/body/pl_brawler.txt
+++ b/parts_pl_src/body/pl_brawler.txt
@@ -1,9 +1,9 @@
# pl_brawler: from pixellab_src/pl_brawler/base.png (pixellab_library.py extract)
# pivot at (29, 60)
# aura at (33, 42)
-# head_top at (33, 28) (from part)
-# back at (31, 36) (from part)
-# tail at (45, 51) (from part)
+# head_top at (33, 28) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (45, 51) (from part/probe)
.........oooo........oooo...........
........o1113ooooooo31111o..........
.......o111133aaa231111112o.........
diff --git a/parts_pl_src/body/pl_brawler_b.txt b/parts_pl_src/body/pl_brawler_b.txt
new file mode 100644
index 0000000..9c991e7
--- /dev/null
+++ b/parts_pl_src/body/pl_brawler_b.txt
@@ -0,0 +1,44 @@
+# pl_brawler_b: from pixellab_src/pl_brawler_b/base.png (variant of pl_brawler) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (33, 42)
+# head_top at (33, 24)
+# back at (31, 36)
+# tail at (49, 51)
+.......oooo........oooo...........
+......o1123oooooo^31112o..........
+.....o211133bbb232111223o.........
+.....o32113bbb2311112333o.........
+.....o1o32332233112oo11o3o........
+.....oaco332223333oooa1o3co.......
+.....oacc31221333ococa1o33oo......
+....o23321o22o2223o111o333co......
+....o2221111111111233322c33co.....
+....o211ooooooooo11122b3323obo....
+.....oooa1111111aoooo33o323oco....
+.....o11a2222222a2111oo3233co.....
+......o222111112222222223333o.....
+.....o333221111B222222333222bo....
+....o222333222222223333322223co...
+....o222333333333333333222222c3o..
+...o322322222333222222322222b33o..
+...o222o11111232111112322222333o..
+..o2223o111111311111112o32223233o.
+..ob223o211111211A111123o2222bcco.
+.o2bb233o211122211112333o32bbb3co.
+.obbbcc3o3333222322233333oc22b33o.
+obbbccco.o322111223333333obbbbc3o.
+ob223cco.o211111112223333o222bcco.
+o22233o..o21111111122333o3222b3co.
+o222222o.o2111111112233o222222co..
+o222232o.ooooooooooooooo2322223o..
+o222233oo33221111122233o3o22223oo.
+.o3333oo2223222222223322o322223o3T
+..ooooo22222322222233222o3233oo3o.
+......o222223333333332222oooo333o.
+......o2bb23333ooooo3222bb23o33o..
+......o3cc333oo....o3322ccc3o3o...
+.......o33333o......o333cccooo....
+........o33333o......o33333o......
+.......o222233o......o33333o......
+......o1o11233o......o323232o.....
+......oooooooP........o1o1o1o.....
diff --git a/parts_pl_src/body/pl_brawler_c.txt b/parts_pl_src/body/pl_brawler_c.txt
new file mode 100644
index 0000000..de8e408
--- /dev/null
+++ b/parts_pl_src/body/pl_brawler_c.txt
@@ -0,0 +1,52 @@
+# pl_brawler_c: from pixellab_src/pl_brawler_c/base.png (variant of pl_brawler) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 38)
+# head_top at (33, 16)
+# back at (31, 36)
+# tail at (49, 51)
+............oooo........oooo...............
+...........o1113oooooo^31111o..............
+..........o111133aaa231111113o.............
+..........o21113aaa23111111223o............
+..........oo3133222331112ooo33o............
+..........o1o33222223112oo11o3o............
+..........o1o3322222333ooow1o33o...........
+..........o1c312221233ocobw1o23o...........
+.........o23313112o2233o111o323oo..........
+.........o21111111111111333312332o.........
+.........o2113ooooooo1111111a23321o........
+.........oo13311111131oooo223o3321o........
+........o2o3332222223woooooooo3223oo.......
+.......o21o3112222221w2111ooo33212o2o......
+.......o232o221111111222222322y312o2o......
+......oo3112o33222222223333221123oooo......
+.....o2o311132233333333yy1122y22o3222o.....
+....o213o213y1113yyyyy3x11y23y2o321122o....
+....o311oo23yy113111113yyyy23oo3211133o....
+...o2233o3332yyy3yyyyy32223oo3321123322o...
+...o323o213332223222223333322o321131122o...
+..o2333oy13113333333B32322222o3321111233o..
+..o223o21311111331111113yyy22o3322223333o..
+.o3233o21311111311111A131yy222o3333332233o.
+.oooo3o333111113111111131yy222oo333322233o.
+obaaco313133333333333333333333o3o33oooooooo
+obacco21311111131111111311y222o33ooccaabbbo
+obaabo21311111131111111311y222o33obcaaaabbo
+oboooo223111111311111113112222o33ocoooaabco
+ooa21o3333111113111111131222233333o322oooco
+o2a223o23333333333333333333223333o2222aa3o.
+o22223o223y1111311111113222223333o2222a23o.
+o222o33o2322111311111223222223333o3o22223o.
+o3322oooo33222233222222322223o333ooo23323o.
+.o3333o.ooo322223222222322ooocoooooo3333o..
+..oooo..oocooooooooooooooocccco33oo.oooo...
+........o3ccccccccccccccacccco3333oo23T....
+........o23occaaaaaaaaaaaccco32223oa3o.....
+........o223occcaaaaaaacccco322223o33o.....
+........o2223oocccccccccco3322aa23o3o......
+.........obb333oooccccccoo3332bbb3oo.......
+..........o333333ooooooo..o333223o.........
+...........3333333o.......o333333o.........
+..........o2322333o.......o322233o.........
+.........o11o12333o.......o323232o.........
+..........oo.ooooP.........o1o1o1o.........
diff --git a/parts_pl_src/body/pl_brawler_d.txt b/parts_pl_src/body/pl_brawler_d.txt
new file mode 100644
index 0000000..0d95570
--- /dev/null
+++ b/parts_pl_src/body/pl_brawler_d.txt
@@ -0,0 +1,50 @@
+# pl_brawler_d: from pixellab_src/pl_brawler_d/base.png (variant of pl_brawler) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (33, 40)
+# head_top at (33, 20)
+# back at (31, 36)
+# tail at (49, 51)
+................ooo.................
+...............o212.................
+..............o211o.................
+..............o213o^oo..............
+.............o1123311ooooooo........
+............o211221122oaaabo........
+............o212221223baacco........
+.........oooo222322233333co.........
+........o112322233231111223oo.......
+.......o11112322b33111122222o.......
+.......o321123bb232112333322coo.....
+.......oo3222322231123ooo332caao....
+.......o1o33322223223oo11o322caao...
+.......oco3322222333ooow1o322ccco...
+.......oac312221223ococw1o333cco....
+......o3332o112o2113o111o22333o.....
+......o21111111111112333222b33boo...
+.....o1221ooooooooo111122b23333ao...
+.....o11wo21111113woooo222o3333bo...
+......o1311222222Bw3111ooo333333o...
+......o1111111111131122222233212o...
+.......o2121111121111223333311122o..
+..oooooo23213112221322oooo3211122o..
+.o11312oo3323212222A3o1112o2111122o.
+o113o12o333333222333o111223oooo132o.
+o1212o2oa33333322333o112223oacao23o.
+o22133ooa33313333322o2122c3oacao23o.
+o3233o3oa33312233121o222b33oacao33o.
+.o3223ooa33211111111o332333oacco3o..
+..o33oobc3o1111111112o3333ocbcco3o..
+...ooobc33o11111111111oooobccco33o..
+.....oooooo211111111111333oooo33o...
+..........o311111111122333333333o...
+..........o321111111223332233333ooo.
+.........o1332121122233321122333oa3T
+........o1123222222323322111233oa3o.
+........o1113333222333321111123o33o.
+........o1a123o333233o3211aa123o3o..
+........o2ac223oo3333o3322cac23oo...
+.........obc23333oooooo332ccc3oo....
+..........o33333o.....o333333oo.....
+.........o323333o......o33333o......
+........o11o1233o......o323232o.....
+........oooooooP........o1o1o1o.....
diff --git a/parts_pl_src/body/pl_brazier.txt b/parts_pl_src/body/pl_brazier.txt
new file mode 100644
index 0000000..388674b
--- /dev/null
+++ b/parts_pl_src/body/pl_brazier.txt
@@ -0,0 +1,46 @@
+# pl_brazier: from pixellab_src/pl_brazier/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 38)
+# head_top at (31, 27) (from part/probe)
+# back at (33, 30) (from part/probe)
+# tail at (44, 41) (from part/probe)
+.............oooo............
+............o1122o...........
+...........o1ooo23o..........
+.........ooo2oooo3ooo........
+.......o333o2bbbo33333o......
+.....o3bao2232223223ab3o.....
+....o3ao22ao2o^23b21o3a3o....
+...oobo22a322oc21oc11o3abo...
+...obo22a3o1obcc1occ12ooa3o..
+..obbo2acb21caacB3cab1ocoao..
+..obo22aao12aaac12caa21ocboo.
+..o2o2aaa21caxac11oaab1o2c2o.
+..oo2baao12aazzc21ozaa23o12o.
+.obo222bo12ayaya21ozbbb233oco
+.obo2oo131bbbbbbb1oo1122ooobo
+.oo3ooao321111111211ooo23cobo
+.oo3obaa32ooooooo1oozbb23ccbo
+.oo3bbao2ozaxxAab1ozbabo2ocbo
+.oo3bbbo2oyyaxaxb1oayaao3ocbo
+.oooooooooaayayab1oyaaao3oboo
+..o2211122ooayayb2oaaaao3o3T.
+..o2o11111112oaab2obbabb333o.
+.o2owo1111o122obb2oca2233oo..
+.o2ooo111owo12o2222233oo3oo..
+.o2boo111oooo2ooo3ooocc33oo..
+.o22b3111booo2occ3ooooo3ooo..
+..o2232233ab22oo33oobb3oooo..
+..o32232b2222o333333ooo.oo2o.
+.o3oo22222222oooo3ooo....o2o.
+.o3o.o32223oo...ooo......o2o.
+.o2o...oooo.....o2o......o2o.
+.o2o............o2o.......oo.
+.oo.............o1o.......ooo
+ooo.............o2o........oo
+oo..............o2o..........
+................o2o..........
+................o2o..........
+................o2o..........
+................o3o..........
+.................P...........
diff --git a/parts_pl_src/body/pl_brazier_b.txt b/parts_pl_src/body/pl_brazier_b.txt
new file mode 100644
index 0000000..1d8cc0d
--- /dev/null
+++ b/parts_pl_src/body/pl_brazier_b.txt
@@ -0,0 +1,54 @@
+# pl_brazier_b: from pixellab_src/pl_brazier_b/base.png (variant of pl_brazier) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 33)
+# head_top at (31, 13)
+# back at (33, 30)
+# tail at (44, 41)
+..............o^oo...............
+.............obyyyo..............
+........oooooobbbbcoooooo........
+....oooo22oaabobboooo2222ooo.....
+..oo112233oaaaaoooooaao33222oo...
+.o223333oaoccccobzzoaacco33321o..
+o2133oooaaaooooobbbboccaao33332o.
+o1333aybaaccbbbaooooocaaaooo3331o
+o133caaaoocbbbbybooayccaaobbc331o
+o312cccccacbbbybbocaybcoobbbc313o
+o33211ccccccbbboooccoacoooo22233o
+o33332111cccoooooboooooo22223333o
+.o33322211111111111111112333333o.
+.o33322221111112222222233333333o.
+.o3b322221111112222222233333333o.
+.o3b32o221111112222222233333b33o.
+.o3b32o2213o1112oo2222oo3333b33o.
+..ob22o2113o1112bB2222oo3333b3o..
+..ob22oo113o1112bb2222bo333ob3o..
+..o3222b111b1112bb2222bo333cb3o..
+..o3222b111b1112Ab2222bo333b33o..
+..o3b22b111b1112zb2222b3333b33o..
+..o3b22b111b1112za2222b3333b33o..
+...oc32b111b1112xa2222b3333b3o...
+...o332b111b1112xa2222b3333c3o...
+...o332c111b1112xa2222b333333o...
+...o3322111b1112bb2222b333333o...
+...oooooooo11112222222333333o....
+...o2211122ooo12222222333333T....
+...o2o11111112o2222222333333o....
+..o2owo1111o122o222222333333o....
+..o2ooo111owo12o222223333333o....
+..o2coo111oooo2o22223333333o.....
+..o22co111cooo2o2233333333oo.....
+...o223223obc22o333333333ooo.....
+...o32232c2222o3333333oo.oo3.....
+..o3oo22222222oooooooo....o2o....
+..o3o.o32223oo...ooo......o2o....
+..o2o...oooo.....o2o......o2o....
+..o2o............o2o.......oo....
+..oo.............o1o.......ooo...
+.ooo.............o2o........oo...
+.oo..............o2o.............
+.................o2o.............
+.................o2o.............
+.................o2o.............
+.................o3o.............
+..................P..............
diff --git a/parts_pl_src/body/pl_brazier_c.txt b/parts_pl_src/body/pl_brazier_c.txt
new file mode 100644
index 0000000..2fdce8a
--- /dev/null
+++ b/parts_pl_src/body/pl_brazier_c.txt
@@ -0,0 +1,45 @@
+# pl_brazier_c: from pixellab_src/pl_brazier_c/base.png (variant of pl_brazier) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 38)
+# head_top at (31, 24)
+# back at (33, 30)
+# tail at (51, 41)
+.........................ccc..................
+................cccc....caabc.................
+...............caaaccc^cbaabccc...............
+............cccbaabccbaacbbcaaac..............
+...........cabcbaabcbyybccccbbacccc...........
+.......ooocaabccbbcbzabccccccbccbaacoo........
+.....oo22caaabcccccbccbcccbaabccbaab22ooo.....
+...oo2233caaccaaabcccccccbbaaaacccaac3332oo...
+..o1233cccbbcaaaacccaaaaBccaaaacbacbbc33332o..
+.o1333caabccaaabbccaaxaaabcbaaacaaaccccc3332o.
+o1333caaabccbbbbccbaaaaaabcbbbccaaaccbaac3331o
+o133caaabbcccbbbcccbbabbbbcccccbbacccbaac3331o
+o133caabccaaacccaabccbbbbbcbaaacbcbaacbabc331o
+o21occcbcaaaaccaaaabccccccbbaaaacbbaaacbbco13o
+.o11oocccaaabcaaaaabbcaaacbbaaaaccbaaaccoo23o.
+.o2211ooobbbbcaaaaabbcaaacbbbaaabcbboooo1233o.
+..o222211ooooobbbbbbcbaAaacbbbbboooo2112333o..
+..o21222211111oooooooooooooooooo11122333333o..
+..oo12222oo2221111111111111111113333333333oo..
+...o1122123o22222222oo22222222222222333333T...
+...o21222o1o2222222o3222222222222222333333o...
+....o2122oo22222222o1oo222222222222233oo3o....
+.....o212ocoo2222222oco22222222222223o33o.....
+......o212occoooooooco22222222222233333o......
+.......o222occcbbbbbco222222222222333oo.......
+........oo32ocaaaaaao222222222223333oo........
+........ooo3323aaaa322222222233333oo3o........
+........o3oooo3333333333333333oooo.o32o.......
+........o2o...oooooooooooooooo.....oo2o.......
+........o2o.............o3o.........o2o.......
+........o2o.............o2o.........o2o.......
+........o2o.............o1o..........ooo......
+.......o3oo.............o1o..........ooo......
+.......oo...............o1o...................
+........................o2o...................
+........................o2o...................
+........................o3o...................
+........................o3o...................
+.........................P....................
diff --git a/parts_pl_src/body/pl_bulb.txt b/parts_pl_src/body/pl_bulb.txt
new file mode 100644
index 0000000..7537007
--- /dev/null
+++ b/parts_pl_src/body/pl_bulb.txt
@@ -0,0 +1,43 @@
+# pl_bulb: from pixellab_src/pl_bulb/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 41)
+# head_top at (29, 28) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (45, 50)
+............ooooooo............
+..........ob1111111boo.........
+........obyyzzzzzzzzbbc3.......
+......obyzzzzzzzzzzzzzaco......
+.....obz11111^111111zzzbco.....
+.....cz11111111111111zzbbco....
+....oaz111zzzzzzzzzz11zzbbo....
+...obzz11z111111111111zzbbco...
+...oaz1zzz11111111111yzzbbbo...
+..obzz1zczzzzzzzzzzz11ccbbbbo..
+..obao1bcz111111111111ccocbbo..
+..o3occccb11111111111zcccoo3o..
+..o1occccbzz11zzzzzz11cccco1o..
+..o32213ooozzz3zzzzoooo31223o..
+..o3332222221211311222223333o..
+..o332222ooo222B222ooo223333o..
+..o32322oaaa2222222aaao23323o..
+..o323222ooo222A222ooo222323o..
+...o3232o3ooo22222ooo3o2323o...
+..oo3222cy1oo22222c1oyo2223oo..
+.o2o3332c1aac22222cba1c2333o2o.
+o223o333c111c32223c111c333o322o
+o223oo333ccc3322233ccc333oo322o
+o23oo.obaaa333o3o333aaabo.oo32o
+o333o..obbb333333333bbbo..o333o
+o333o..oooo333333333oooo..o333o
+.ooo...oaabbooooooooccco...ooT.
+.......oaaaaaaaaaaaaccco.......
+........ocaaaaaaaaaacco........
+.........ooooooooooooo.........
+.........occaaaaacocco.........
+..........ooooooooooo..........
+..........ocaaaaacocc..........
+...........ooooooooo...........
+...........o3occco3o...........
+..........o33ooooo33o..........
+..........oooP...oooo..........
diff --git a/parts_pl_src/body/pl_bulb_b.txt b/parts_pl_src/body/pl_bulb_b.txt
new file mode 100644
index 0000000..e0f1e84
--- /dev/null
+++ b/parts_pl_src/body/pl_bulb_b.txt
@@ -0,0 +1,62 @@
+# pl_bulb_b: from pixellab_src/pl_bulb_b/base.png (variant of pl_bulb) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (31, 28)
+# head_top at (29, 4)
+# back at (31, 39)
+# tail at (41, 50)
+.........o^oooooo.........
+.......oowwww3332oo.......
+.....ooww3333333222oo.....
+....oww33333333333222o....
+...ow3aaa3333333333222o...
+..ow3aaaa33333333333222o..
+..owaaaa333333333333322o..
+.ow3aaa33333333333333222o.
+.ow3aa333333333333333322o.
+.ow3a3331333333333333322o.
+oww3a333133bbbbaa33333322o
+ow33333333333333ab3333322o
+ow3a33333333bbbbb33333322o
+ow3a33333abbbbbb333333322o
+ow3a3333aab33333333333322o
+ow3333333abbbbbb333333322o
+ow3333333333333bb33333322o
+ow33333ooo3bbbbaooo333322o
+ow3333oaooa33333wooo33322o
+ow3333oooabbbb33aooo33322o
+ow3333oooa3bbbbbaooo33322o
+ow3333aooo33333boooa33322o
+ow3333333333bbbbbb3233322o
+ow3333333bbbbbbb333333322o
+.ow33333ab33A33333333332o.
+.ow333333bbbbbb333333322o.
+..ow3333333bbbbba333332o..
+..ow33333333333bab33332o..
+...ow333333bbbbbb33332o...
+...ow33333bbbbb3333322o...
+....ow3333b3333333322o....
+....oww333bb333333222o....
+.....ow3333bb3333322o.....
+.....ow33333bb333322o.....
+.....ow33333bb233322o.....
+.....ow33333Bb223322o.....
+.....ow3w32cccc23322o.....
+.....ow3w32aw3223322o.....
+.....ow3w32ww322322o......
+....ooow332ww322322ooo....
+...o11oowwwww32222oo11o...
+..o111obooooooooooco111o..
+..o111obaaaaaaaccccoo11o..
+..o1oo.obaaaaccccoo.oo1o..
+..o11o.occcccccooco.o11o..
+..o1oo.occaaccccoco.oo1o..
+...oo..obooooooocco..oT...
+.......obaaaaacooo........
+........ooooooocco........
+........ocaaaaccco........
+........ooooooooo.........
+........obaaaaaco.........
+........ocbacccco.........
+.........ocbbcco..........
+..........occco...........
+...........oPo............
diff --git a/parts_pl_src/body/pl_bulb_c.txt b/parts_pl_src/body/pl_bulb_c.txt
new file mode 100644
index 0000000..1ba28b9
--- /dev/null
+++ b/parts_pl_src/body/pl_bulb_c.txt
@@ -0,0 +1,63 @@
+# pl_bulb_c: from pixellab_src/pl_bulb_c/base.png (variant of pl_bulb) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 29)
+# head_top at (29, 4)
+# back at (31, 39)
+# tail at (45, 50)
+...............oo^ooooooo...............
+............oooyyyyyyyyyyooo............
+..........ooyyyzzzzzzzzzzyyzoo..........
+........ooyyzzzzzzzzzzzzzbbbzzoo........
+.......oyyzzzzzzyyyyyyzzzbbbbzzzo.......
+......oyyzzzzyyyyyyyyyyyyyzbbbbzzo......
+.....oyyzz1111yyyyyyyyyyyyyybbbbzzo.....
+....oyyzzyw111yyyyyyyyyyyyyyzbbbbzzo....
+...oyyzz111111yyyyyyyyyyyyyyyybbbbzzo...
+...oyzz111111yyyy111111yyyyyyyybbbbzo...
+..oyyzz11111yyy1111111111yyyyyyybbbzzo..
+..oyzyyy111yyy111111111111yyyyyyybbbzo..
+.oyyzyyyyyyyy11111111111111yyyyyybbbzzo.
+.oyzzy11yyyy1111111111111111yyyyybbbbzo.
+oyyzyy11yyy111111111111111111yyyyybbbzzo
+oyyzyy11yy1111111111111111111yyyyybbbzzo
+oyzzy11yyy11111111111111111111yyyybbbbzo
+oyzzyyyyyy11111111111111111111yyyybbbbzo
+oyzzyyyyyy1oooo1111111111oooo1yyyyybbbzo
+oyzzyyyyyyooccco11111111oocccoyyyyybbbzo
+oyzzyyyyyyowwcco11111111owwcccyyyyybbbzo
+oyzzzyyyyocwwooco111111ocwwoocoyyyybbbzo
+oyzzzyyyyocwwooco111111ocwwoocoyyyybbbzo
+oyzzzyyyyocooooco111111ocoooocoyyyybbbzo
+oyyzzyyyyocoooobo111111obooooboyyyybbzzo
+.oyzzzyyyobbooabo11A111obbooaboyyybbbzo.
+.oyzzzyyyobbaabbo111111obbaaacoyyybbbzo.
+.oyyzzzyyyocaaco11111111ocaacoyyybbbzzo.
+..oyzzzyyyyooooy11111111yooooyyyybbbzo..
+..oyyzzzyyyyyyy1y111111y1yyyyyyybbbzzo..
+...oyzzzzyyyyyyy111111y1yyyyyyybbbbzo...
+...oyyzzzyyyyyyy1yyyyy1yyyyyyybbbbzo....
+....oyyzzzzyyyyyy11yyy1yyyyyybbbbzzo....
+.....oyyzzzzyyyyyb1yy1byyyyybbbbzzo.....
+......oyyzzzzzyyyb1yy1byyybbbbbzzo......
+.......oyyzzzzzzyb1By1bybbbbbbzzo.......
+........ooyzzzzzzz1yyybbbbbbbzzo........
+........o3oyyzzzzz1yyybbbbbzzooo........
+.......o23oozzzzzz1yyybbbbbzoo33o.......
+......o223oooooooooooooooooooo32o.......
+.....o223oaaaaaaaaaaaaaaaccccco22o......
+....o2233obbaaaaaaaaaaaccccccco322o.....
+....o223oobbaaaaaaaaaaaccccccco322o.....
+....o23oooobaaaaaaaaaaaccccccooo32o.....
+....o333o.ooooooooooooooooooo.o333o.....
+....o333o...occcccccccoooooo..o333o.....
+.....ooo....oooooooooooobbbo...ooT......
+...........ocbaabbbbbbbcoooco...........
+...........oooooooooobbbbccoo...........
+...........oaaaaaaaaaaaabccco...........
+...........obbbaabbbbbbccccco...........
+...........obbbbbbbbbbbccccco...........
+............oooooooooooooooo............
+...............ooccccccco...............
+...............o3oacco3o................
+..............o33oacco33o...............
+..............oooooPooooo...............
diff --git a/parts_pl_src/body/pl_bulb_d.txt b/parts_pl_src/body/pl_bulb_d.txt
new file mode 100644
index 0000000..c6328fe
--- /dev/null
+++ b/parts_pl_src/body/pl_bulb_d.txt
@@ -0,0 +1,43 @@
+# pl_bulb_d: from pixellab_src/pl_bulb_d/base.png (variant of pl_bulb) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 41)
+# head_top at (29, 24)
+# back at (31, 39)
+# tail at (45, 50)
+............3^333333...........
+.........333wwwwwwww33.........
+........3ww1111111111ww3.......
+......33w1111w111111111w3......
+.....3ww1ww1wbb1111bb111w3.....
+.....ww1www2bbba11bbbb111w3....
+....3w1www22bbaabbbbbb111w3....
+...3ww1wwbabbb1bbbbbca1121w3...
+...3w1111bbcbbbbbbc1bba221w3...
+..3w11111bbbcabbbbbcbbaa111w3..
+..3w11111bbbabbbbbbbcbbb111w3..
+..3w1111bbbcbbbbbb11cbbbb11w3..
+..3w121bbbc1bbbbbc1bbbbbb11w3..
+..3w111bbbcc11bbb1cbbbbbb12w3..
+..3w111bbbbaaa1bbb1cbbbbb2213..
+..3w111bbbbbbc1B111cbbbbb2213..
+..3w121a1bbbbc1b1bbbbbb222213..
+..3ww12abbbbbc1A1bbbbbba12113..
+...3w11aabbboc111bobbbaa1213...
+..oow111ooooobcccbooooo22213o..
+.o3o3w111bbbbbbbbbbbb122213o3o.
+o233o3w11111bbbbbbba222211o332o
+o333ooww11111bbooba222221oo333o
+o33oo.oww1111bo11oa222213.oo33o
+o333o..o3w1111111o22221o..o333o
+o333o..ooo3322222222333o..o333o
+.ooo...ocaccooooooooccco...ooT.
+.......ocaaaaaaaaaacccco.......
+........occcaacccccccco........
+.........ooooooooooooo.........
+.........occcaacccocco.........
+..........ooooooooooo..........
+..........occaacccocc..........
+...........ooooooooo...........
+...........o3occco3o...........
+..........o33ooooo33o..........
+..........oooP...oooo..........
diff --git a/parts_pl_src/body/pl_bulldozer.txt b/parts_pl_src/body/pl_bulldozer.txt
new file mode 100644
index 0000000..2a85980
--- /dev/null
+++ b/parts_pl_src/body/pl_bulldozer.txt
@@ -0,0 +1,43 @@
+# pl_bulldozer: from pixellab_src/pl_bulldozer/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 45)
+# head_top at (31, 27) (from part/probe)
+# back at (32, 38) (from part/probe)
+# tail at (48, 52)
+............2o....................
+............2o....................
+...........ooooooooooooo..........
+..........o11111^1111111o.........
+.........o233333333333332o........
+.........oaooooooooooooo2o........
+.........oao22222111222o2o........
+.........o2o2o2111122o2o2o........
+.........o3o2oo11222oo2o3o........
+.........o3o2woo222oow2o3o........
+........o1o11waw222waw22o1o.......
+........o1o11ww22222ww22o1o.......
+........o2o1222222222222o2o.......
+........o2o2222222222222o2o.......
+........o3o333333B333333o3o.......
+........o2111y111111111112o.......
+.......o2122222333332222213o......
+......oo22oo22222222222oo23oo.....
+.....o1o2owwo2ooooooo2owwo3o1o....
+.....o3o2o11o221111122o11o3o3o....
+......oo32oo22233333222oo23oo.....
+..oooooo3b2222233A3333b22b3ooooo..
+.o22223o3333333333333333333o3222o.
+.o333oooooooooooooooooooooooo333o.
+o222o1111111111111111111y1111o222o
+oo2oo1oooooooooooooooooooooo1oo2oo
+o233o2o33333333333333333333o2o332o
+o333o2o33333333333333333333o2o333o
+oo3oo3o33333333333333333333o3oo3oT
+o333o3o33333333333333333333o3o333o
+o333o3o33333333333333333333o3o333o
+ooooo3o33333333333333333333o3ooooo
+o333o3o33333333333333333333o2o333o
+.oooo3o33333333333333333333o3oooo.
+...o1o33ba3ba33aa3aa33aa3aa3o1o...
+...o2o3aa3aa33aa3aa33ac3aa33o2o...
+...oooooooooooooPoooooooooooooo...
diff --git a/parts_pl_src/body/pl_bulldozer_b.txt b/parts_pl_src/body/pl_bulldozer_b.txt
new file mode 100644
index 0000000..0cdf58e
--- /dev/null
+++ b/parts_pl_src/body/pl_bulldozer_b.txt
@@ -0,0 +1,48 @@
+# pl_bulldozer_b: from pixellab_src/pl_bulldozer_b/base.png (variant of pl_bulldozer) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 40)
+# head_top at (31, 18)
+# back at (32, 38)
+# tail at (52, 52)
+............ooooooooo^oooooooooo............
+...........o11111111111111122222o...........
+...........o2ooooooooooooo1ooooo3o..........
+...........o2211111111122o1o22o23o..........
+...........o2111111111122o1o21o23o..........
+..........o12111111112222o2o21o23o..........
+..........o221o111112o222o2o21o23o..........
+..........o211wo1122ow222o2o22o23o...o......
+..........o211wo1222ow222o2o12o23o..o3o.....
+.........o1211waw22waw222o2o12o23o.o3o......
+.........o1211ww2222ww22o2o122o23o.o3o......
+.........o21122222222222o2o222o23o.o3o......
+.........o21222222222222o2o222o23o.o3o......
+.........o22222222222222o2o222o23o.o3o......
+.........o22222222222222o2o222oo3o.o3o......
+.........o22222222222222o2o22o333ooooooooo..
+.........o22222222222222o2o2o33333111111aao.
+.........o22222222222222o2oo33333322222b222o
+.........o22222222222222o23333333322222b233o
+.........o22222222222222o23333333322222b233o
+.........o2oooooooooooBoo233oooooocccccbccoo
+........o1111111111111111133oooooo33333bbbbo
+........o22oo222222222Ao2233cccccobbbbbbccco
+........o2owwo2ooooo2owwo23333333322222cccco
+........o2o11o2111112o11o23333333322222cccco
+........o22oo223333222oo223333333333333cccco
+........o3b2222333333b22b333333332222222222o
+.........o3333333333333333ooooooooooooooooo.
+..ooooooooooooooooooooooooooooo.............
+.o111111111111111111111111oooooooooooooo....
+.o1oooooooooooooooooooooo12o323233332333o...
+.o13o3333333333333333333o12o3223oooooooo3o..
+.o13o3333333333333333333o122o33oooooooooo3..
+.o13o3333333333333333333o122o2oo33333o3oo3o.
+.o13o3333333333333333333o122o3oo33333o33o3T.
+.o13o3333333333333333333o122o3oo33333o3oo3o.
+.o13o3333333333333333333o122o3ooooooooooo3..
+.o13o3333333333333333333o122oo3ooooooooo3o..
+.o2333333333333333333333o222ooo333333333o...
+o1oocbcca33ba3aa33aa3aao122ooooooooooooo....
+o2o3accac3aa3aa33aa3aa3o22o.................
+oooooooooooooooooooooPoooo..................
diff --git a/parts_pl_src/body/pl_bulldozer_c.txt b/parts_pl_src/body/pl_bulldozer_c.txt
new file mode 100644
index 0000000..80bd907
--- /dev/null
+++ b/parts_pl_src/body/pl_bulldozer_c.txt
@@ -0,0 +1,44 @@
+# pl_bulldozer_c: from pixellab_src/pl_bulldozer_c/base.png (variant of pl_bulldozer) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (33, 44)
+# head_top at (31, 24)
+# back at (32, 38)
+# tail at (56, 52)
+.............................c.....................
+.............................3o....................
+.........................^oooooooooooo.............
+.......................oo1111111111111oo...........
+......................o22222222y21222222o..........
+.....................oaoooooooooo22ooo2o2o.........
+.....................oao22211122o2o22o2o2o.........
+.....................o2o221112o2o2o22o2o2o.........
+.....................o2ooo12ooo2o2o21o2o2o.........
+.....................o1wow22wow2o2o12o2o2o.........
+.....................o1waw22waw2o2o12o2o3o.........
+.....................o1222222222o2o22o223o.........
+.....................o222222222oo2o22o222o.........
+..................oooo33333333oo22o33o222oooo......
+...............ooo11111111yy11111211111121111o.....
+..............o12222333322y1111222322223222a22o....
+.............o2oo222222222Boo222223b2223322b22o....
+.............oowwo2oooooo2owwo22a23bb222322222o....
+.............oo11o22111122o11o22b232bb2232oooooo...
+.............o2oo2222222222oo2222232232333112222o..
+.............o222b2222222222bb22223222233112oooo2o.
+...........ooo222b2222222a22b22333333333323ooooooo.
+......oooooooooooooooooooooAooo3ooooo32oo32o3223o..
+.....o11yy11111111111111y11112oo32223oo2o32o2o233o.
+.....o1ooooooooooooooooooooo122o333233o2o32o223333o
+.....o13o333333333333333333o1222o223333o2o2o233oo3o
+.....o13o333333333333333333o2222o233oo3o2o2o23o33oo
+.....o133o33333333333333333o2222o23o33oo2o2oo3o33oo
+.....o233o3a333333333333333o2b222o3o33oo222o33o33oo
+....o1333o33b33333333333333o12222o3o33ooooo333o33oo
+....o3333o3333333333333333o122222o3o3o3o.o33o33oo3T
+...o23333o3333333333333333o12b222o33o33o.ooooo3333o
+..o1333oo33a3333333333333o1222b22oo333o...o33oo33o.
+.oo1333333333333333333333ob222bboo3o3oo....oooooo..
+o1333a33aa3aabbb33aacbb3o2b22222oooooo.............
+o23aa3cac3aa3aa3aa3aac3o2bbb222o...................
+ooooooooooooooooooo3333obbbbooo....................
+...................ooooooPoo.......................
diff --git a/parts_pl_src/body/pl_bulldozer_d.txt b/parts_pl_src/body/pl_bulldozer_d.txt
new file mode 100644
index 0000000..7c05314
--- /dev/null
+++ b/parts_pl_src/body/pl_bulldozer_d.txt
@@ -0,0 +1,58 @@
+# pl_bulldozer_d: from pixellab_src/pl_bulldozer_d/base.png (variant of pl_bulldozer) (pixellab_library.py extract)
+# pivot at (21, 57)
+# aura at (31, 35)
+# head_top at (31, 9)
+# back at (32, 38)
+# tail at (48, 52)
+............2o....................
+............2o....................
+............3o....................
+..........oooooo^ooooooo..........
+.........o11111111111111o.........
+........o2333333333333332o........
+........oboooooooooooooo2o........
+........obo222222111222o2o........
+........o2o22o2111122o2o2o........
+........o2o22oo11122oo2o2o........
+........o2o22woo222oow2o2o........
+........o2o11wbw222wbw2o2o........
+........o2o11ww22222ww2o2o........
+........o2o122222222222o2o........
+........o2o222222222222o2o........
+........o2o333333333333o2o........
+........o2111y11111111112o........
+........o1222223333322221o........
+........o2oo2222222222oo2o........
+........oowwo2oooooo2owwoo........
+........oo11o22111122o11oo........
+........o2oo2223333222oo2o........
+........ob22222333333b22bo........
+........o3333333333333333o........
+........o3333222221222233o........
+........o2222222222222222o........
+........o2222222222222222o........
+........o2222222222222222o........
+........o2222222222222222o........
+........o2222222A22222222o........
+........o2222222222222222o........
+........o2222222222222222o........
+........o22222222B2222222o........
+........o2222222222222222o........
+.......oo2222222222222232oo.......
+......o1o2222222222222232o1o......
+......o2o2222222222222y33o2o......
+......o3o3322222222222333o2o......
+......o3o3333222222233333o3o......
+......o1111oooooooooooo1111o......
+.oooooo111o1111111yy111o111oooooo.
+o22223o112o111111111111o222o32222o
+oo2o2oo112o222222222222o222oo332oo
+o22222o222o222222222222o223o22222o
+o23333o222o322222222233o223o33333o
+o22222o223o322222232333o233o22222o
+oo233oo333o333333333333o333oooo2oT
+o33333o333o333333333333o333o33333o
+o33333o333oooooooooooooo333o33333o
+ooooooooooo............ooooooooooo
+o33333oo..................oo33333o
+.oooooP....................oooooo.
diff --git a/parts_pl_src/body/pl_bunny.txt b/parts_pl_src/body/pl_bunny.txt
index b1960b4..0924e4e 100644
--- a/parts_pl_src/body/pl_bunny.txt
+++ b/parts_pl_src/body/pl_bunny.txt
@@ -1,9 +1,9 @@
# pl_bunny: from pixellab_src/pl_bunny/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (31, 41)
-# head_top at (32, 20) (from part)
-# back at (29, 40) (from part)
-# tail at (45, 49) (from part)
+# head_top at (32, 20) (from part/probe)
+# back at (29, 40) (from part/probe)
+# tail at (45, 49) (from part/probe)
...............ooooooooooo................
............ooo222222^2222ooo.............
...........o2221112222222223oo............
diff --git a/parts_pl_src/body/pl_bunny_b.txt b/parts_pl_src/body/pl_bunny_b.txt
new file mode 100644
index 0000000..a44583c
--- /dev/null
+++ b/parts_pl_src/body/pl_bunny_b.txt
@@ -0,0 +1,49 @@
+# pl_bunny_b: from pixellab_src/pl_bunny_b/base.png (variant of pl_bunny) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 41)
+# head_top at (32, 18)
+# back at (29, 40)
+# tail at (49, 49)
+...............oooooo^oooo..............
+............ooo22222222222oo............
+...........o2221111222222223oo..........
+..........o2211111112222222233o.........
+.........o222111111122222222233o........
+........o22221111111233332222233o.......
+.......o3111221111221112222222333o......
+.......ooo1112222221113oo22222233o......
+......oooao1122222112ooooo22222333o.....
+......oc11ao22222223oca1oo222223oooo....
+......oa1aooo22222ooooo1123222232112o...
+......oa1owoo22223oowoo11cc2223222222o..
+...ooooaaoooo22223ooooo1133oo2222ccc2o..
+..oyy1yoacoo3baab23oooo1cooyyoo2cccc3o..
+.oyy11yz3cc32bbbb223ccccoy11yyyocccc3o..
+.oy11yyy333222bc2222333oy11111yoccc3o...
+.oz1yyyyz22222222222222zyyyyy11zo33o....
+.oyyyyyyz2222oooo22222oyyyyyyy1yo33o....
+.ozyyyyyz222o2222o2222oyyyyyyyzzo33o....
+.ozzyzyzz2222222222222zzyyyyyyyzo33o....
+..ozzzzz322222232222223zzyyzyzzzo33o....
+...ozzzo332222222222222ozzzzyzzo3333o...
+....ooo.oo33322222B22333oozzozoo3333o...
+........oooo33333333A33333oooo3333333o..
+.......o3o33ooo333333333ooo3333333333o..
+......o32o23333ooooooooo3333322233333o..
+......o13o22223333333333333o32223o3333o.
+.....o21o222222222222222ooo222223o3333o.
+.....o22o2222bbbbbb2222o222222223o3333o.
+....o22o2222bbbbbbbb22o322222223o33333o.
+....o22o222bbbbbbbbbb2oc22222233o33333o.
+....o32o222bbbbbbbbbbb2ocb33233o333333T.
+.....oco222bbbbbbbbbbc22o33b3oo3333333o.
+......oo322cbbbbbbbbbc222ooooo3333333o..
+...oooooo32ccbbobbbbcc22223333333ooooo..
+.oo1311oo332ccccccccc22233333333o11312o.
+.3ob3bb2oo333ccccccc33333333333o2bb3cc3o
+occ333222o3oo33333333333333333o3222233co
+o33bbb2223333o333333333333o3333222bbb33o
+.o3bbbc2233333oooooooooooo3333322cbbbc3o
+.o3cccc223333333o........o3333322ccccc3o
+..occcc3333333ooooooooooooo333333cccc3o.
+...ooooooooooooooooPoooooooooooooooooo..
diff --git a/parts_pl_src/body/pl_bunny_c.txt b/parts_pl_src/body/pl_bunny_c.txt
new file mode 100644
index 0000000..ecdb106
--- /dev/null
+++ b/parts_pl_src/body/pl_bunny_c.txt
@@ -0,0 +1,48 @@
+# pl_bunny_c: from pixellab_src/pl_bunny_c/base.png (variant of pl_bunny) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (32, 19)
+# back at (29, 40)
+# tail at (44, 49)
+..............oooooo^oooo................
+...........ooo22ccccccccaooo.............
+..........o2221caac22222aaaco............
+.........o2211caaa22222222abco...........
+........o2211caaa1222222222abbo..........
+.......o22211aaa222333322222bb3o.........
+......o21122baaa221111232222bcb3o........
+.....ooo1112baa221112oo23222aabbo........
+.....ooao112baa2111ooaoo32222abco........
+.....oa1ao22bbc223oca11o32222aoooo.......
+.....o1aooo2bbb2oooooa1a32222a2112o......
+.....o1owoo2bbb2oowooc11o2223222222o.....
+.....oaoooo22222oooooc1c3222222bbc2o.....
+.....oacoo3aaaa23ooooaao322222bbbb3o.....
+....o2occ32aaaa22occcco3222223bbbb3o.....
+....o3c3o222ac22223oo322a2223bcbb3o......
+....ob3c2222o222222222a222223bbc3o.......
+.....ob222oooooo3o222222a22333ooo........
+.....o3222o1occo1o22222222233333o........
+......o3222o2222o22222222233333o.........
+.......o3222233222222222333333o..........
+........o33222222B22A2333333oo...........
+.........oo33333333333333ooobo...........
+...........ooo33333333ooo333bbo..........
+.............ooooooooo333333bbco.........
+.............o3333333o2133322aao.........
+.............o3111113o212o322aabo........
+.............o3111111o212o322223o........
+............o31111111o212o32222co........
+............o31111111o222o322aabo........
+...........oo31111113o222o322aabT........
+.......oooooo311111132223ooo223o.........
+......o2111223311113o2223o21o33o.........
+......o212222332222o2222o3212o3o.........
+......o322333333333o2222o32222o..........
+.......o3222ooooo33oo23ao3333o...........
+........oo222oo..ooooaooo333o......oooo..
+.........oo3333o.....ooo3333o...ooo2212o.
+..ooooooooooo333o......o333ooooo22222222o
+.o211112222222333o....o332221112o3333333o
+oo332223333333333oooooo333333333ooooooooo
+..ooooooooooooooooooPooooooooooooooooo...
diff --git a/parts_pl_src/body/pl_bunny_d.txt b/parts_pl_src/body/pl_bunny_d.txt
new file mode 100644
index 0000000..c9156b8
--- /dev/null
+++ b/parts_pl_src/body/pl_bunny_d.txt
@@ -0,0 +1,53 @@
+# pl_bunny_d: from pixellab_src/pl_bunny_d/base.png (variant of pl_bunny) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (32, 15)
+# back at (29, 40)
+# tail at (47, 49)
+......................o...................
+................oo...^1o..................
+...............oaao.o112o.................
+...............oacco2122o..ooo............
+...............obcco2122oooaao............
+.........ooo...occ2221222obbao............
+.........obaooo22222222222bbcooooo........
+.........obcc2211122222212bcco211o........
+.........oc2211111122223122233212o........
+........o322111111122222232223322o........
+........o22211111122333322222333o.........
+.......o2112211112211112322222333o........
+......ooo1112222221112oo232212333ooo......
+......ooao1122222111ooaoo32232333331o.....
+......oa1ao22222223oca11o322223ooo32o.....
+......o1aooo22222oooooa1a3222232112oo.....
+......o1o1oo22222oo1ooc11o2223222222o.....
+......oaoooo22222oooooc1c3222222ccc2o.....
+......oacoo3baab23ooooaao322222cccc3o.....
+.....o2occ32bbbb22occcco3222223cccc3o.....
+.....o3c3o222bc22223oo322b2223cccc3o......
+.....oc3c2222o222222222b222223ccc3o.......
+......oc222oooooo3o222222b22333oooo.......
+......o3222o1occo1o22222222233333o........
+.......o3222o2222o22222222233333o.........
+........o3222233222222222333333oo.........
+.........o33222222B22A23333333ooo.........
+..........oo33333333333333oooo321o........
+...........oooo333333333oo3323o22o........
+..........o3o33ooooooooo3332223o2oo.......
+.........o33o2233333333333332223o21o......
+.......ooooo322222222222oooo3322o22o......
+......o212oo32bbbbb2222o21122222o22o......
+.....o2122o32bbbbbbb22o322112223o2oo......
+.....o22b3o2cbbbbbbbb2oc3c22223o3111o.....
+.....o32bco3cbbbbbbbbc2ocb3c23oo3222T.....
+......oc3co3cbbbbbbbbc22oo3b3o3o3332o.....
+.......oooo3ccboobbbcc2233ooo33o33oo......
+...........o3ccccccccc33333333o333o.......
+............o3ccccccc33333333ooooo........
+..ooooo......oo33333333333333ooo...ooooo..
+.o22112oo.....o33oooooooo3333o...oo22123o.
+o32211222oooooo3333o....o3333oooo22211223o
+o322222222222333333o....o3333322222222223o
+o3322322222222233333o..o33332222222232333o
+.oo33333333333333333oooo333333333333333oo.
+...oooooooooooooooooPoooooooooooooooooo...
diff --git a/parts_pl_src/body/pl_buoy.txt b/parts_pl_src/body/pl_buoy.txt
new file mode 100644
index 0000000..876b01a
--- /dev/null
+++ b/parts_pl_src/body/pl_buoy.txt
@@ -0,0 +1,42 @@
+# pl_buoy: from pixellab_src/pl_buoy/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 45)
+# head_top at (31, 30) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (48, 53)
+................oooooo................
+..............oo222222oo..............
+.............o2oooooooo1o.............
+.............o2122222123o.............
+.............o2211111233o.............
+...........oo3o311^2333oooo...........
+..........o321123333ooo3333o..........
+.........o321111111222bb3o33o.........
+........o3221111111112bc23o33o........
+........o22111111111112233333o........
+.......ob221111111111223333ooco.......
+.......obyaabbbb22B333bbccbbbbo.......
+......ocbbyyyaaaaayybbbbbbbbbbco......
+......o3cbyyyoyybbbbbbbbobbbc3oo......
+.....o1322ocbbbbbbbbbbbccco323o3o.....
+.ooooo132311ooo11111112ooo2233o3ooooo.
+o2111o2o231o11oo111112oo11o2cco3o2112o
+o2o12o2o221o1ooao1111oaoo1o233o1o31o2o
+o32o3o232o2o1ocoo1122ooco1o2o3o2o3o23o
+oo33oo23o32231112222221113223oo2oo33oo
+.ooocooco32bb2222oAoo2222bb23ocoocooo.
+...obcocco22222222bb22222233occocbo...
+...ooo.occcb2222222222222bcccco.ooo...
+.......ooccccobbbbbbbbbcoccccoo.......
+........o2ooccccccccccccccoo2o........
+.......ooo2o3o333333333o33o2ooo.......
+....oooccoo22ooocoooooooo22ooccooo....
+...ocboooooooooooooooooooooooooocco...
+..ocbcoooooo3oo322223ooooooooooocbcT..
+..o32bcoooo3333322223333ooooooocb23o..
+..o322aybbcoooooooooooooooocbbba333o..
+..ooobc2211bbabbbbbbbbbbabb2223ccooo..
+...oocoo32222b2111111122b2222ooocoo...
+....oocooo333c3222222223c33oooocoo....
+......ooooooocoooooooooocooooooo......
+...........oooooooPoooooooo...........
diff --git a/parts_pl_src/body/pl_buoy_b.txt b/parts_pl_src/body/pl_buoy_b.txt
new file mode 100644
index 0000000..5dc227e
--- /dev/null
+++ b/parts_pl_src/body/pl_buoy_b.txt
@@ -0,0 +1,63 @@
+# pl_buoy_b: from pixellab_src/pl_buoy_b/base.png (variant of pl_buoy) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 37)
+# head_top at (31, 4)
+# back at (31, 36)
+# tail at (48, 53)
+..............oo^ooo..............
+.............oo22222o.............
+............o1o333331o............
+............o11111123o............
+............o11112233o............
+...........o2111122333o...........
+...........o2111122233o...........
+...........o2111112233o...........
+...........o1111112233o...........
+...........o1111112233o...........
+..........o211111122333o..........
+..........oba111122233co..........
+..........obaaaaaabbbcco..........
+..........obaaaaaabbbcco..........
+.........o21baaaaabbcc33o.........
+.........o21111111222333o.........
+.........o21111111222333o.........
+.........o21111111222233o.........
+........oba111111122223cco........
+........obaaaaaaaaabbbccco........
+........obaaaaaaaaabbbccco........
+........o2baaaaaaaabbbcc3o........
+.......o221111111112223333o.......
+.......o212111111112223333o.......
+.......o211111111112222333o.......
+.......o111111111112222333o.......
+.......obaa11111111222233co.......
+......obbaaaaaaaaaaaabbbccco......
+......obbaaaaaaaaaaaabbbccco......
+......obbbaaaaaaaaaabbbbccco......
+......o111aaaaaaaaaabbc3333o......
+......o111111111111222222333o.....
+.....o2111111111B11222222333o.....
+.....o21211111111A1222222333o.....
+.....o2121111111112222222333o.....
+....o21121ooo11112222ooo23333o....
+....o2111o11oo111222oo11o3333o....
+....o2111o1ooao1222oaoo1o2333o....
+....o2111o1ocoo1222ooco1o2333o....
+...o22111231112222221113223333o...
+...o22211aa2222oooo2222aa22333o...
+...o222112222222aa222222222333o...
+...oc2211222222222222222222333o...
+..o2c22122222222222222222223333o..
+..o2ccc12222222222222222cc23333o..
+..o2ccc22222222222222222cc23333o..
+..occcc22222222222222221cc33333o..
+..oocccc22c222222222222ccc3333oo..
+.ocoocccccc22222222223cccc333ooco.
+ocbcooccccc32222222233cccc33oocbcT
+o32acooocccccc3333333cccccoooca23o
+o322aaaaooocc33333333cooooaaba333o
+ooobc2211aaooooooooooooaa2223cbooo
+.oocoo32222b2111111122b2222ooocoo.
+..oocooo222c3222222223c33oooocoo..
+....ooooooocoooooooooocooooooo....
+.........oooooooPoooooooo.........
diff --git a/parts_pl_src/body/pl_buoy_c.txt b/parts_pl_src/body/pl_buoy_c.txt
new file mode 100644
index 0000000..21546d0
--- /dev/null
+++ b/parts_pl_src/body/pl_buoy_c.txt
@@ -0,0 +1,46 @@
+# pl_buoy_c: from pixellab_src/pl_buoy_c/base.png (variant of pl_buoy) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 42)
+# head_top at (31, 21)
+# back at (31, 36)
+# tail at (48, 53)
+..................oo^oooo..................
+................oo3333333oo................
+...............o2ooooooooo3o...............
+...............o32111111223o...............
+...............o33221222233o...............
+.............ooc3332222233ocoo.............
+...........ooaaabb33333333cccco............
+..........oaaaabbbaaacccaaabcccco..........
+.........oabccbbbbaaacccaaabccccco.........
+........oabbccaaabbbbaaabbbbaaacco.........
+.......ocacbcaaaabbbbaaaabbbacaccco........
+.......ocaacbaaaabbbbaaaabbbccaaccbo.......
+......occaaabbbbbbbbbaaaabbbbccccbbo.......
+......ocaaaabbbbaaaaabbbbaaaaccccbbbo......
+......ocaaabbbbbaaaaabbbbaaaaacccbbbo......
+.....oo33aabbbbbaaaaBbbbbaaaaacccoooo......
+....o23332111bbbaaaaabbbbaaaaa22333o2o.....
+.oooo133331111ooo11111112ooo2222233o1ooooo.
+o211o13baa111o11oo211112oo11o22b233o1o2112o
+o231o233b2211o1ooao1112oaoo1o222cb3o2o3132o
+o33oo3o333222o1oboo2222oobo1o2223b3o2o3o33o
+ooooo3o333a2223111222A221113222b333o3oooooo
+.ooocoo333322aa2222oooo2222aa223333ooobooo.
+...oaobc333222222222aa2222222223333bocbo...
+...ooobcccca222222222222222222aaababoooo...
+.....obccccaaaaccccaaaaaccccaaaaabbbo......
+......occccaaaaccccaaaaaccccaaccabboo......
+......occcoccaacccoaaaaaccccaaccabbo.......
+......obbbbccccccccaaaaaccccbbccbbbo.......
+.......obbbccccccccbbbbbcbbbbcbcbbo........
+......ooobbbcccccccbbbbcbbbbbobcbooo.......
+.....obaoobccccbbbbccoccbbbbccbcoobbo......
+....obacooooccccbbbcccccbbbbcccooocabT.....
+....o32acoooooccbbbcccccbbbboooooca23o.....
+....oo22aaaacoooooooooooooooocaaba23oo.....
+....oa3ab2b31aaaaaaaaaaaaaaaa2223bbooo.....
+.....ooboobb222a2111111122a3233oooboo......
+......oobooo3a3b3322aa2233b33aoooboo.......
+........oooooooboooooooooobooooooo.........
+.............ooooooooPooooooo..............
diff --git a/parts_pl_src/body/pl_buoy_d.txt b/parts_pl_src/body/pl_buoy_d.txt
new file mode 100644
index 0000000..76e808d
--- /dev/null
+++ b/parts_pl_src/body/pl_buoy_d.txt
@@ -0,0 +1,57 @@
+# pl_buoy_d: from pixellab_src/pl_buoy_d/base.png (variant of pl_buoy) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 37)
+# head_top at (31, 10)
+# back at (31, 36)
+# tail at (50, 53)
+........................ooo^oooo........................
+......................oo33333333ooo.....................
+.....................o2oooooooooo11o....................
+.....................o21222222212ooo....................
+.....................o2222222223oooo....................
+.....................o2211111113oooo....................
+..................ooo3o311111133ooooooo.................
+.................o331112333333oooooooooo................
+................o3211112333333ooooooooooo...............
+...............o3221111111112222bbb3oooooo..............
+..............o32111111111111112bbb23oooooo.............
+.............o322111111111111111222333ooooo.............
+............ob322111111111111111222333oooobo............
+............oaa22211111111111112233333ooocbo............
+...........ocaaaaaabbbbb22223333bbbccbbbbbbco...........
+..........oocbaaaaaaaaaaaaaaaaaaaaaaabbbbbbcoo..........
+........ooooobaaaaaaocaaaaaaaaaaabb3abbbbbbooooo........
+.......o33o322bbaaaaooaaaaaaaaaaabboabbbcc3ooo33o.......
+......o322o3222223cbbbbbbbaaaabbbcccc333223oooo33o......
+.....o312o132221111oooo1111111112oooo222333oooo32oo.....
+....o3122o13222111owwwoo11111112ooowwo22ooooooo3223o....
+...o31223o3o222111oww1oo11111112ooowwo22cccoooo3332oo...
+...ob322oo33222211owoooao111111oaooowo22333ooo2o3322o...
+..o3bbb3oo33222222owoocoo111222ooccowo22333ooo2o332bco..
+..o122bcoo3333222222wwww22222222wwww322222oooo2oocbb3o..
+.o31223ooo33332222zz222222ooooo22222zz2222oooo2oocb223o.
+o21122oooc33333322aa222222oBooo22222aa2222oooocooo3222oo
+o22222oooccb333322222222222aAa222222222233oooccooo3222oo
+o222232oooooob3322222222222222222222b33ooccoooo3o32222oo
+oo22oo3oo3333ooooobbbbbbbbbbbbbbbbb3cccooooo3333o3oo22oo
+ooo2ooooo133333313ooooooooooooooooooooo333333o2ooooo2ooo
+.oooooooo3o33313311113o1111112222oo333333o233oooooooooo.
+..oooo..o3333oo3333133o1331113333oo3o2333oo3333o..oooo..
+.........ooo333333oo33o1313113313oo3oo333333ooo.........
+.........o22ooooo33333o1333133333oo3333ooooo32o.........
+..........o2oocoooooooo1111333333oooooooocco2o..........
+..........o2oocc33ooccoooooooooooooccoooocco2o..........
+...........o2ooc3333bc3333333333333cc3oooco2o...........
+............o2occoo33c333333333333ocoooocc2o............
+.............o2oooooocco333333333occooocooo.............
+...........oocooooooooccoooooooooccooooooocoo...........
+..........occoooooooooocooooooooocooooooooocco..........
+.........ocbooo22233oooooooooooooooooo333ooobco.........
+.........o2bcoo31233oooooooooooooooo33323oocboT.........
+.........o32aacoooooooooooooooooooooooooocbb3oo.........
+.........o322caaaacooooooooooooooooooaaaacaoooo.........
+.........ooobc32221aaaabbbbabbbbbbaaa11133ccooo.........
+..........oocoo3222222b21111111122b22333ooocoo..........
+...........oocoooo3333c33332222233c333oooocoo...........
+.............ooooooooocooooooooooocoooooooo.............
+..................oooooooooPoooooooooo..................
diff --git a/parts_pl_src/body/pl_cabbage.txt b/parts_pl_src/body/pl_cabbage.txt
new file mode 100644
index 0000000..bbbf748
--- /dev/null
+++ b/parts_pl_src/body/pl_cabbage.txt
@@ -0,0 +1,44 @@
+# pl_cabbage: from pixellab_src/pl_cabbage/base.png (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 40)
+# head_top at (29, 28) (from part/probe)
+# back at (39, 31) (from part/probe)
+# tail at (47, 42) (from part/probe)
+...................ooooo................
+.................oo33333oooo............
+............ooooo33333333333oo..........
+..........oo3333333333oo333333o.........
+........oo3333333ooooo222233333oo.......
+.......o333333oo222o222221222o333oo.....
+......o33oo33333o^322222111222oo223o....
+.....o22233111113o32222111111212o22o....
+.....o232211111123oo2221111111122o23o...
+.....o233113221112333o21111B11112o32o...
+..oooo333333333111112o222211111122o32o..
+.obaao33oo33223311311332oooo111122o32o..
+.obcc1oo312221133333113oaaaco111122o32o.
+.obccco22121112233o3313aabbco111112o32o.
+.occcoo221111112223o313bbbbco111113o33o.
+..occo321111111111113123bbbco211113333o.
+..oooo2211111111122231113bbo22211131o3o.
+.o33o32211111111112223113oo312221111o33o
+.o33oooo211111112222A311133331122113o33o
+o333oowoo1111112oooo2231113333312113o33o
+o333oo11o111112owwooo23311133333111To3oo
+o333oocoo211122o11ooo22333123333211oooo.
+.o33oobbo333322ocooco2233o122o333111ooo.
+.o3o33o3z111132obbb1o2223o122o13311oooo.
+..ooaa3zzzzzzz32ooo33222331222o1211ooo..
+..ooa23z3zz3zz32222aa222332223o311oooo..
+...o223z3zz3z332222aaa23332222o311ooo...
+...o3233333333332222223333o22o311ooo....
+....o322333333322222233333o33o211o2ooo..
+.....o33333113322223333333o3o311oo222o..
+......o333211133333333333o33o3ooooooo...
+.......oo3331113333333333o33ooo3o.......
+........oooo3211333o33333oooo333o.......
+........o33ooooooooo22333o3o3333o.......
+........o3333o.....o1123o..o232o........
+........oo33o......o1123o...ooo.........
+..........oo.......o311o................
+....................Poo.................
diff --git a/parts_pl_src/body/pl_cabbage_b.txt b/parts_pl_src/body/pl_cabbage_b.txt
new file mode 100644
index 0000000..276d96e
--- /dev/null
+++ b/parts_pl_src/body/pl_cabbage_b.txt
@@ -0,0 +1,57 @@
+# pl_cabbage_b: from pixellab_src/pl_cabbage_b/base.png (variant of pl_cabbage) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 34)
+# head_top at (29, 10)
+# back at (39, 31)
+# tail at (56, 42)
+............................ooooo.....................
+......................oo^o.obbaaaoo...................
+.....................obbbbob2222aaao..................
+...............ooooooa222bb222222aaboooo..............
+...............o2222b2222222222222ab222bo.............
+............oooo22222223332223333222222bboo...........
+...........o1111223322333333333332223222bbboo.........
+..........o1122123333oooo33oooo33333322222111o........
+.........oo112222333ooooooo1111oooo3333222221o........
+.......ooo312233333o111111312211111o3333332211o.......
+.......o22222233ooo11131113122211111o333332211oo......
+......o212233333o1211333311333211111oooo3333111bo.....
+......o213333oooo11333333333333311111111o3322111bo....
+.....o221333o1111133333333333oo3313311111o332111bo....
+.....o22233o11311333333333333333313331111oo32211bbo...
+....ob2233oo13333332333oooooo3333333331111o33211bbo...
+...obbb33o11133oo3233oooooooo2222222333211o332111bbo..
+..obb223o11333o33o333oo222o2222111222333112o333311bbo.
+.obb2223o1333o333o33333o2322222111222233332o3333211bo.
+.ob22333o133o22233111113o322221111111213332oo333211bo.
+.ob2223o1333o222211111123oo222111111111133322o33222bo.
+.obb223o1333o233112221112223o2111111111113322o33222co.
+..ob233o1oooo333333333111112o22221B1111113332o3332coo.
+.obb233ooaaao33oo22223311211232oooo11111113322o322coo.
+oob223o1oabbaoo212221133333112oaaabo1111113322o3222bo.
+ocb333o1oabbbo22121112222o3A12aaaabo1111112332o3322bco
+ocb333o1obbboo221111112222o312aaaabo1111111333o3222bao
+occc33o11obbo221111111111113122aaabo2111111133o33222ao
+.occc3o31oooo2211111111122231112aao222111111o3o3322bao
+.ocaa33oo33o22211111111112223112oo2122211111333o222bco
+.oacc332o23oooo21111111222223111232211221111o33o2bbbo.
+.oacc33o222oo1oo1111112oooo22311123222121112o3oo32bbo.
+.oaac33o233oo11o111112o11ooo223111322221111oo3o332aao.
+.oaac33o333ooboo211122o11ooo22233123222211233oo33aaT..
+..ocaa33o33ooaao222222oboobo2222o122o22211333oo3acco..
+...oca33o3o22o2y111122oaaa1o2222o122o12212333o33aco...
+...ocb233ooaa3yyyyyyy22ooo22222231222o211233o333aco...
+....obb33ooa23yoyyoyy32222aa222232222o21123oo332ao....
+....obbac3o223yyyyyyy32222aaa22232222o21133o3332ao....
+.....ocac3o2223yyyyyy322222222223o22o21113o333ccco....
+......oac33o222333333222222222223o33o2122oooo3coo.....
+......oaccc3o22222112222222222223o3o321oo222occo......
+......oaaccc3o222211122222222222o33o222ooooocco.......
+.......oooccc3oo3221112222222222o33ooo3oo3ccoo........
+..........occcooooo3211223o32223oooo333ooccoo.........
+...........ooooo33ooooooooo22223o.o3333o.ooo..........
+...............o223oo.....o2222o..o2o2o...............
+...............oo22o......o1122o...ooo................
+...............ooooo......o312oo...ooo................
+.................oo.......ooooo.......................
+...........................Poo........................
diff --git a/parts_pl_src/body/pl_cabbage_c.txt b/parts_pl_src/body/pl_cabbage_c.txt
new file mode 100644
index 0000000..85de692
--- /dev/null
+++ b/parts_pl_src/body/pl_cabbage_c.txt
@@ -0,0 +1,43 @@
+# pl_cabbage_c: from pixellab_src/pl_cabbage_c/base.png (variant of pl_cabbage) (pixellab_library.py extract)
+# pivot at (25, 58)
+# aura at (32, 39)
+# head_top at (29, 27)
+# back at (39, 31)
+# tail at (55, 42)
+....................................oooooooooo.......
+................................oooo3333b23333ooo....
+.............................ooo33332331132333333o...
+...........................ooaaa331132333132233b33o..
+................ooooo....oo33333b33332b3333322ab332o.
+...............oo3333oo^o3333333b33332b333222cc22222o
+...........oooo333333333oo22333bb33322222222cccoooooo
+.........oo33333333oo33333o2233c222222aaaaaaaccccccco
+.......oo33333ooooo22233333o222c222aaaaccccccaa22222o
+......o33333oo22o22222222o33oo2ccBaaccc2222222ba3322o
+......o3oo3333o23222211222oo22ocabcc22222232333bb332o
+.....o322111113oo22211111212o23occc22231322223333c22o
+.....o331132111233o211111112o32o22cc23113332233332cco
+..oooo333333311112o2221111122o32o22cc33333322333322o.
+.oaaao3oo332331121332ooo11112o32o2233c3333322333222o.
+.oaaaoo3122113333113oaaao11122o32o223c3333322c2222o..
+.oaaao2211111222o313aaaao11112o32o2233c333322c222o...
+..oaao211111111113123aaao2A112233o2233c33322c222oo...
+..oooo211111111223111oao2221121o3o2233c33222c22o3o...
+.o33o3211111111122311oo31222111o33o233c2222c2oo33o...
+.o33ooo211111122223112333112113o33o22cc2222coo333T...
+o333oooo11122ooooo233133333111oo3oo22c2222oo.o323....
+o333oooo21122o11oo223312333311oooo222c22ooo..o33o....
+.o33ooao33322oaobo223o122o33111ooo22ccoo......oo.....
+.o3o3o3y11132oaa1o222o122o1311oooo22oo...............
+..ooazyyyyyy22oo3222231222o211ooo2oo.................
+...ob3y3yy333222aa32332222o31ooooo...................
+...o233333333322333333o22o31oooo.....................
+....o33333333222222333o33o21o2ooo....................
+.....o3333133222333333o3o31oo222o....................
+.....oo33211333333333o33o3oooooo.....................
+......oo3331123333333333ooo3o........................
+.......oooo31133o3333oooo333o........................
+.......o33ooooooo2233o..oo3o.........................
+.......oo33o....o1123o...oo..........................
+.........oo.....o311o................................
+.................ooP.................................
diff --git a/parts_pl_src/body/pl_cabbage_d.txt b/parts_pl_src/body/pl_cabbage_d.txt
new file mode 100644
index 0000000..cfac774
--- /dev/null
+++ b/parts_pl_src/body/pl_cabbage_d.txt
@@ -0,0 +1,52 @@
+# pl_cabbage_d: from pixellab_src/pl_cabbage_d/base.png (variant of pl_cabbage) (pixellab_library.py extract)
+# pivot at (33, 57)
+# aura at (33, 34)
+# head_top at (29, 14)
+# back at (39, 31)
+# tail at (48, 42)
+.....................ooooo..................
+...................oo33222ooooo.............
+.............ooooo^233222233333oo...........
+............oo2233333333oo3333333o..........
+.........ooo222333oooooo2222233333oo........
+........o2233233oo222o2222222223333oo.......
+.......o2223333333323222222112222o222oo.....
+......o322oo3111111332222211111222oo22o.....
+.....o2222o2211111123322221111112122o22o....
+.....o2332o1111111122232221111111122o323o...
+.....o233311132211112223o221111111122o32o...
+.....o3333133333331111112321111111122o332o..
+..oooo333333221123311311132oooo1111122o32o..
+.obaaao3332222222233333113oaaabo111122o32o..
+.obccaac321222122222233313aaccbo1111123332o.
+.obcccco211222122212213313ccccbo2111123o32o.
+.occcco21112121221111123113cccco2111122o33o.
+..occc3211121112211111131113ccco22111221o3o.
+..ooo32111111112211111133112ooo122211221o3o.
+..o2321111111112111111113111B32212211111o33o
+.o22321111111111111111113211232221121122o33o
+.o23321oo11111111111ooo12311113222211122o22o
+o22332oooo111111111oooAo223111332222111oo23o
+o23332oo1o11111111o11ooo222331232222111oo3o.
+o33332oooo11111111owwooo222231223222111oooo.
+.o3332ocoo12222221ocoobo222231223222111oooo.
+.o3332obbo2z111z22ocbb1o22223122331211oooo..
+..o3aaaoo2zzzzzz332ooo2222223222332111oooo..
+..o3aaa23zzczzcz332222aaa22232223321133ooo..
+...o222233z3zz3z332222aaa222232233111ooo....
+...o222223333333332222222222233333113T......
+....o2222233333332222222222223333311o.......
+.....o2222222222222222222222o33331oo........
+......o22222222222222222222o333o2oo.........
+.......oo222222222222222333o333o33o.........
+........ooo3222222222233322oooo323ooo.......
+........o22ooooooo3333322222222223o12o......
+........o2222222222222222222222222o33o......
+.......o22222211111123222223222222ooo.......
+.......o2222331111111321122o232222o.........
+.......o2122oo3111111311112o332222o.........
+.......o2112oooo21113311112oo22222o.........
+........o112o..oooooo311122o.o222o..........
+........o333o........o1112o...ooo...........
+.........ooo.........o3333o.................
+......................Pooo..................
diff --git a/parts_pl_src/body/pl_caddis.txt b/parts_pl_src/body/pl_caddis.txt
new file mode 100644
index 0000000..5f6a384
--- /dev/null
+++ b/parts_pl_src/body/pl_caddis.txt
@@ -0,0 +1,44 @@
+# pl_caddis: from pixellab_src/pl_caddis/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (32, 27) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (45, 51)
+.............oooooo.............
+...........oo111111oo...........
+.........ooca111111acoo.........
+........o21ay111111ya12o........
+........o11ay111^11ya11o........
+.......o2111a111111a1112o.......
+......o22c11a111111a11c22o......
+......o22c11c111111c11c22o......
+......o22oo2c111112c2oo22o......
+......o2owo2c222222c2owo2o......
+.....oo2oooocc2222cco1oo2oo.....
+....o2o2oo3o21111112ooo32o2o....
+...o22o21coo21111112ooc12o22o...
+.oo223o2112o221B1122o2112o322oo.
+.o3233oo2a12o222222o21a1oo3323o.
+o2233o3oo112o1oooo1o211oo3o3322o
+o1233oo3oo222o1111o222oo3oo3321o
+o223o1233oo2222222222oo3321o322o
+o312o22o3oooooooooooooo3o22o213o
+o232233oo2232222A222322oo332223o
+o222212o112o32222223o211o322332o
+.o33221o12o3333333333o21o1233oo.
+.o23333222o2222233222o22233332o.
+.o2233o22o111111131111o22o3222o.
+.o23323oo32222222322222oo33322o.
+..o322233222222223222233333233o.
+..o33223332223322322233333323o..
+..o22232323222333232333332223o..
+..o22333333222233333333322332T..
+..o23333333322333323223333b22o..
+..o22333333333333322223332222o..
+...o223333233333323222232222o...
+...oo2233222333333322322322oo...
+....o2222233223332333222322o....
+.....oo222332222223222233oo.....
+.......oo3332222223222ooo.......
+.........ooooo22223oooo.........
+.............ooPooo.............
diff --git a/parts_pl_src/body/pl_caddis_b.txt b/parts_pl_src/body/pl_caddis_b.txt
new file mode 100644
index 0000000..30d8ba8
--- /dev/null
+++ b/parts_pl_src/body/pl_caddis_b.txt
@@ -0,0 +1,50 @@
+# pl_caddis_b: from pixellab_src/pl_caddis_b/base.png (variant of pl_caddis) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 38)
+# head_top at (32, 16)
+# back at (31, 36)
+# tail at (51, 51)
+.....................ooooo^ooo......................
+...................oo2bbbbbbbbooo...................
+..................o221bb1bbbbb223oo.................
+...............ooo32121bbbbb2222223o................
+.............oo223332222222222222333ooo.............
+............obbb2233322333333332333322bo............
+...........o21bb223322233333333332332bbbo...........
+..........ob1bbb223333222222223322322bbybo..........
+..........obbbb2233222211111111323322bbbbco.........
+.........ocbbb223322333333333331123222bbbco.........
+.........o32222232133oooooooooo32122222bbcco........
+........oo332223213oooo111111oooo31232222cco........
+.......o2233333312o21ay111111ya12o2132222333o.......
+......obb233333233o11ay111111ya12o31232333333o......
+.....obbb23321213o2111a111111a1112o3333333333co.....
+.....obb223212213o2c11a111111a11c2oo333333233co.....
+.....ob223322221oo2c11c111111c11c2oo312223233cco....
+....o2222332b222o22oo2c111112c2oo22o3122b3333cco....
+...o3322322bb222o2owo2c222222c2owo2o3312bb3333cco...
+...o2333222bb23oo2oooocc2222cco1oo2o3312bb333333o...
+...o21223222213oo23o3o211B1112ooo32oo312233333333o..
+..oo33323211133oo22coo21111112ooc12oo331133332222o..
+.o22ooo3233333o3o2122o2221A222o2112ooo33333332oooo..
+o223233ooooooooooo2a12o222222o21a1o3ooooooooooo222o.
+o1222223333333ooo3o112o1oooo1o211ooooo3333332222211o
+o2122222223333o123oo222o1111o222oo321o3333322222212o
+o2112222222233o22o3oo22222222oooo3o22o3332222222113o
+.o2211222222333oooo22oooooooo2322oooo3333222221122o.
+.o233311122233oo3o112o22222222o211o3oo332222113322o.
+..o23331321122222o12o3333333333o21o22222331332222o..
+..o33333333333111222o2222222223o22211111333322bb2o..
+...oc3333333bb33322o311111111333o22333bb333222bb3o..
+...occ333333bbb33oo33333333333333oo33bbb33322222o...
+....occ33333bb333333333bbb33333333333bb33333333o....
+.....oc233323b333333333bbbb3333333333322o32222o.....
+......o2232o22222333333bbbb333333322222o322ccT......
+.......o3222o2233332o333333333333333233322cco.......
+........o3222o333333o333333333222322222322co........
+.........oo22oo33cb33o33333333233222b22322o.........
+...........o223occbb33o333333323322ccc22oo..........
+............oooooccc22o33333322322ccoooo............
+.................occ22o22222322222co................
+..................ooooo322222oooooo.................
+.......................ooPoooo......................
diff --git a/parts_pl_src/body/pl_caddis_c.txt b/parts_pl_src/body/pl_caddis_c.txt
new file mode 100644
index 0000000..5024c4d
--- /dev/null
+++ b/parts_pl_src/body/pl_caddis_c.txt
@@ -0,0 +1,63 @@
+# pl_caddis_c: from pixellab_src/pl_caddis_c/base.png (variant of pl_caddis) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 33)
+# head_top at (32, 4)
+# back at (31, 36)
+# tail at (41, 51)
+............oo^oo.......
+..........oo22222oo.....
+........ooca11111acoo...
+.......o32ay11111ya23o..
+.......o22ay11111ya22o..
+......o3222a22122a2223o.
+.....o33c22a22222a22c33o
+.....o33c22o32222o22c33o
+.....o33cooo32223oooc33o
+.....o3oaooo33333oaooo3o
+.....o3oooooc333cooooo3o
+.....o3ooooo22222ooooo3o
+.....o32coo2221222ooo23o
+.....o32cc222222222cc23o
+.....oo322222ooo222223o.
+....oyyo3322o22222233o..
+...o11zzo3332223333ooo..
+...o11zzo3333333333ozyo.
+...o11yo33333333333oy1o.
+...oy11y3o33333333oy11o.
+...oy1111y333333yyy11yo.
+...oyy11111yyyyy11111yo.
+...oyyy111111111111y1yo.
+....oyyy11111111111yyo..
+....o3yyyy1yy1111yy1yo..
+.....ozyyzyyy311yy33yyo.
+.....oyyzzzyyyyyzz11yyo.
+.....oyyy11yy11111y1yyo.
+.....oyy1y111111111yyzo.
+......oyy11y1A111yyyzo..
+......o3yy11111yyyyzyyo.
+.....oyy33yyyyyy33311yo.
+.....oyy11333B3311111yo.
+.....oyy111111111111yyo.
+.....oyyz1111111y111yyo.
+.....oyyyy111y11111yyo..
+.....ooyyyyy11y11yyyzo..
+.....oyy3yyy1yyyyyyz33o.
+.....o3333yy1yyyz33133o.
+.....o3111z333zzz11113o.
+.....o3131111111113133o.
+....o3331111y111131133o.
+....oyy33y111111y1133zo.
+....oy333yy1y111y1333yyo
+....o11y3yyy1111333311yo
+.ooooz1333yyyyy3333111yo
+o222o3y1yy3333333y1113yo
+o222o33y1133311111y11yyT
+o323o331111y3131111yyyyo
+o323o3yy1111331111113yzo
+.o33333yy131133y11yyy3o.
+..oooo33yy11133yyyyy33o.
+......o33331113333yy3o..
+......oo333y111111333o..
+........o3333333333oo...
+.........oo333333oo.....
+...........Pooooo.......
diff --git a/parts_pl_src/body/pl_cairn.txt b/parts_pl_src/body/pl_cairn.txt
new file mode 100644
index 0000000..a97caa9
--- /dev/null
+++ b/parts_pl_src/body/pl_cairn.txt
@@ -0,0 +1,43 @@
+# pl_cairn: from pixellab_src/pl_cairn/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 43)
+# head_top at (30, 26) (from part/probe)
+# back at (29, 40) (from part/probe)
+# tail at (49, 52)
+.............ooooooooo..............
+...........oo211111111oo............
+..........o31111^11ab111o...........
+.........o311111111111112o..........
+.........o321111111111113o..........
+.........o322111111111223o..........
+.........o332c22222222233o..........
+..........o3oc2222222333o...........
+...........ooo3333333cco............
+..........ooooooooooooooo...........
+........oo222222222222222oo.........
+.......o32y1111111111111113o........
+.......o11b1111111111111b11o........
+......o311122221111122221112o.......
+......o32112oo3111113oo311b2o.......
+......o3221owoo11111owoo1123o.......
+......o3222ooooB1111oooo2223o.......
+......o3cc22oo3111112oo32233o.......
+.......occ22222222222222233o........
+......oooc33223ooAoo322333ooo.......
+.....oyaoo333333333333333oobzo......
+....oyaoo2ooo333333333ooo22ooyo.....
+...oyao312222ooooooooo2221113oyo....
+..oyboo1111122222222221111111ooyo...
+..oyoo321111111111111111111123obyo..
+.oxboo3211ab111111111111111233ooyo..
+.oyo.o3222c1111111111b11122223o.oao.
+.oxo.o332222211111111122222233o.oxo.
+obxo.o33322223c22222222222cc33o.oxbT
+ozozo.o3cc222322222222222ccc3o.ozozo
+obobo..ooc332232222223333ccoo..obobo
+.ooo.....ooo33333333333oooo.....ooo.
+...........ooooooooooooo............
+..........oobo.......obooo..........
+........oo12bo.......ob211o.........
+.......o3122oo.......oo3212o........
+.......oooooo.........Pooooo........
diff --git a/parts_pl_src/body/pl_cairn_b.txt b/parts_pl_src/body/pl_cairn_b.txt
new file mode 100644
index 0000000..511a904
--- /dev/null
+++ b/parts_pl_src/body/pl_cairn_b.txt
@@ -0,0 +1,63 @@
+# pl_cairn_b: from pixellab_src/pl_cairn_b/base.png (variant of pl_cairn) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 36)
+# head_top at (30, 4)
+# back at (29, 40)
+# tail at (49, 52)
+...............o^ooooo..............
+.............oo13a1111o.............
+............o311aa11a11o............
+...........o311aa1111112o...........
+...........o32cc11111a22o...........
+...........o33cc22222c23o...........
+............o3cc32333c3o............
+.............oooooooooo.............
+............o322cc22222o............
+...........o311aa1111111o...........
+...........o221aa11111a12o..........
+...........o22cc111111a22o..........
+...........o32cc222222c23o..........
+............o3cc322222c3o...........
+.............ooooooooooo............
+...........oo22cc3222221o...........
+..........o311aaa111111a1o..........
+..........o321aa1111111a12o.........
+..........o32cc11111111c22o.........
+..........o33cc22222222c23o.........
+...........o3cc33333333c3o..........
+...........oooooooooooooo...........
+..........o222ccc22222221o..........
+........o32111aa1111111111o.........
+........o3211aa1111111a1112o........
+........o322ac11111111aa122o........
+........o322cc21111111aa222o........
+.........o3ccc22222222cc223o........
+..........occc22222222cc23o.........
+..........oooo33333333cc3o..........
+........oo2222ooooooooooooo.........
+.......o32x1112222222222113o........
+.......o11b111111A111111b11o........
+......o311122221111122221112o.......
+......o32112oo3111113oo311b2o.......
+......o3221owoo11111owoo1123o.......
+......o3222ooooB1111oooo2223o.......
+......o3cc22oo3111112oo32233o.......
+.......occ22222222222222233o........
+......oooc33223ooooo322333ooo.......
+.....oxaoo333333333333333oobyo......
+....ozaoo2ooo333333333ooo22oozo.....
+...oxao31222cooooooooo2cc2113ozo....
+..ozboo11112ccc222222211a1111ooxo...
+..ozoo32111aaa11111111111a1123obzo..
+.ozboo32111aa111111111111aa223oozo..
+.oxo.o3222ac111111111b111cc223o.oao.
+.ozo.o3322cc2111111111222cc223o.ozo.
+obzo.o332ccc23c2222222222cc233o.ozbT
+oaoao.o32ccc2322222222222cc23o.oaoyo
+obobo..o3ccc2232222223333ccoo..obobo
+.ooo....oocc33333333333oooo.....ooo.
+..........oooooooooooooo............
+..........oobo.......obooo..........
+........oo12bo.......ob211o.........
+.......o3122oo.......oo3212o........
+.......oooooo.........Pooooo........
diff --git a/parts_pl_src/body/pl_cairn_c.txt b/parts_pl_src/body/pl_cairn_c.txt
new file mode 100644
index 0000000..480bd22
--- /dev/null
+++ b/parts_pl_src/body/pl_cairn_c.txt
@@ -0,0 +1,48 @@
+# pl_cairn_c: from pixellab_src/pl_cairn_c/base.png (variant of pl_cairn) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 37)
+# head_top at (30, 19)
+# back at (29, 40)
+# tail at (49, 52)
+.......ooooooooooo^ooooooooooo..........
+...ooooccaaabb11111111122aaaabooooooo...
+..o1111bbb1bb1111222111111bbb11111111o..
+.o333111111111111111111111111111aaaacco.
+o333333o1aaa222221122222222222cccbacccco
+o33233312c222332222222222332222cccacccco
+o332231222222ooo22322322ooo22222c2cc3cco
+o332231222222owwoo3223oowwo2222222c333co
+o333333222222owwoo2222oowwo222222223333o
+oc333322232222ooo322222ooo2222322223oo3o
+ocb3oo22a332222222oooo22222222223a2ooooo
+occ3332aaa332222oo2222oo22232333cacooooo
+.ooc333caaa33322o222222o2233333caccoooo.
+...ooo33cccc333333333333333333cccccooo..
+......ooooooooooooooooooooooooooooo.....
+..........oo332333333233333oo...........
+.........o32y1111111111111113o..........
+.........o11b1111111111111b11o..........
+........o3111333311A1133331113o.........
+........o33112oo3111113oo311b3o.........
+........o3332owoo11111owoo1233o.........
+........o3333ooooB1111oooo3333o.........
+........o3bb33oo3211113oo33333o.........
+.........obb33333333333333333o..........
+........ooob33333ooooo333333ooo.........
+.......oyaoo333333333333333oobyo........
+......oyaoo2ooo333333333ooo22ooyo.......
+.....oyao312222ooooooooo2231113oyo......
+....oyboo1111122222233331111111ooyo.....
+....oyoo331111111111111111111133obyo....
+...oyaoo3321ab111111111111111333ooyo....
+...oyo.o3333b1111111111b11133333o.oao...
+...oyo.o333333311111111133333333o.oyo...
+..obyo.o33333333b33333333333bb33o.oybT..
+..oyoyo.o3bb333333333333333bbb3o.oyoyo..
+..obobo..oob333333333333333bboo..obobo..
+...ooo.....ooo33333333333oooo.....ooo...
+.............ooooooooooooo..............
+............oobo.......obooo............
+..........oo12bo.......ob311o...........
+.........o3123oo.......oo3313o..........
+.........oooooo.........Pooooo..........
diff --git a/parts_pl_src/body/pl_cairn_d.txt b/parts_pl_src/body/pl_cairn_d.txt
new file mode 100644
index 0000000..4edd1a0
--- /dev/null
+++ b/parts_pl_src/body/pl_cairn_d.txt
@@ -0,0 +1,51 @@
+# pl_cairn_d: from pixellab_src/pl_cairn_d/base.png (variant of pl_cairn) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (31, 40)
+# head_top at (30, 16)
+# back at (29, 40)
+# tail at (52, 52)
+................ooo^ooooo.................
+..............oo211111111oo...............
+.............o31111111ab111o..............
+............o311111111111112o.............
+............o321111111111113o.............
+............o321111111111113o.............
+............o322111111111223o.............
+............o332c22222222233o.............
+.............o3oc2222222333o..............
+..............ooo3333333cco...............
+.............ooooooooooooooo..............
+...........oo222222222222222oo............
+..........o32z1111111111111113o...........
+..........o11b1111111111111b11o...........
+.........o311122221111122221112o..........
+.........o32112oo3111113oo311c2o..........
+.........o3221owoo11111owoo1123o..........
+.........o3222oooo11111oooo2223o..........
+.........o3cc22oo3111112oo32233o..........
+..........occ22222222222222233o...........
+..........ooc33223ooooo322333oo...........
+.........o3oo333333333333333oo2o..........
+........o3322ooo333333333ooo2222o.........
+.......o33112222ooooooooo22221a12o........
+......oo3111111222B2A2222221111123oo......
+.....oao21111111111111111111111112obo.....
+....ozo3111111111111111111111111123ozo....
+...ozbo2111111111111111111111111112obzo...
+..ozaoo2111111111111111111111111112oozo...
+..ozbo321111111111111111111111111223obzo..
+.ozaoo32211ab11111111111111a11112223oobo..
+.ozboo32221c111111111111111111222233oobzo.
+.ozo.o332221111111111111111112222233o.ozo.
+obzo.o33322222111111111111112222c333o.ozbo
+oxzo.oc332222223c22222222222222cc333o.ozzo
+oxoao.o3ccc2222322222222222222ccc33o.oaoao
+obobo.o3ccc2222222222222222233cc33o..obobT
+.ooo...o3cc3333222222222223333333o....ooo.
+........oo3333333333333333333333o.........
+..........ooo33333333333333ooooo..........
+...........2oooooooooooooooooo............
+..........o223bo.........ob322o...........
+.........o1122bo.........ob2211o..........
+........o21222oo.........oo22211o.........
+........ooooooo...........Poooooo.........
diff --git a/parts_pl_src/body/pl_cardinal.txt b/parts_pl_src/body/pl_cardinal.txt
new file mode 100644
index 0000000..1133732
--- /dev/null
+++ b/parts_pl_src/body/pl_cardinal.txt
@@ -0,0 +1,44 @@
+# pl_cardinal: from pixellab_src/pl_cardinal/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (29, 43)
+# head_top at (29, 29) (from part/probe)
+# back at (37, 34) (from part/probe)
+# tail at (44, 44) (from part/probe)
+..................ooo...................
+.................o11o...................
+...............oo1132o..................
+.............oo1112323o.................
+...........ooo11132223o.................
+.........oo111111323oo..................
+.......oo11111111^1133oo................
+......o21111111111111133o...............
+.....o3111111111111111133o..............
+....oo111111111oo111111133o.............
+....ooo1111oooooooo11111333o............
+...o1ooooooooo11oooo11111B3o............
+...oo1oooooo1owwwooo11111333o...........
+..o1o1occooowowwwooo111111333o..........
+..oo1ccaaoooooowwooo111111333o..........
+..oocaaacaooooww1o33111111233o..........
+..ocaaaaaaaoo111o3331111112333o.........
+.ocaaaaaaaaooooocaa11133333333o.........
+oaaaaaaaacccooooccc113111123o3o.........
+occccccoooooooooo111211111223o3o........
+.oooooocccoooooo1A113111111233oo........
+.o311ooooooooo1111113111111232ooToooo...
+.o31111333311111111131111113c33o11113o..
+.o32111111111111111231111122ab3o111333oo
+.o3221111111111111323311332a33b3o111123o
+..oo23211111111133322333332aa232o3333oo.
+..oo232333333333333332oo2ab33313ooooo...
+...oo2333333333333333323oooooooo........
+....o32333333333333333233333oo..........
+.....o332233333333332333333oo...........
+......o3333222233233333333oo............
+.......oo3333333333333333oo.............
+........ooo333333333333oo...............
+..........oooo333333ooo.................
+........oooocoooooooocoo................
+.......oaccccco..occcccco...............
+........ooaooo...oaoaoooo...............
+.........oo.......oPoo..................
diff --git a/parts_pl_src/body/pl_cardinal_b.txt b/parts_pl_src/body/pl_cardinal_b.txt
new file mode 100644
index 0000000..db1521d
--- /dev/null
+++ b/parts_pl_src/body/pl_cardinal_b.txt
@@ -0,0 +1,65 @@
+# pl_cardinal_b: from pixellab_src/pl_cardinal_b/base.png (variant of pl_cardinal) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (29, 35)
+# head_top at (29, 4)
+# back at (35, 37)
+# tail at (48, 44)
+................oo...................
+...............o1o...................
+..............^112o..................
+............oo11222o.................
+.........ooo1112222o.................
+........o11111112oo..................
+......o21111111112o..................
+.....o2111111111112o.................
+....o21111111oo11112o................
+....ooo111oooooo1111o................
+....oooooooo1oooo1112o...............
+...owooooowowwooo1112o...............
+...owooooooowwooo1112o...............
+...occaaoooow1o331112o...............
+..ocaaaccoo11o3331122o...............
+.ocaaaaaacooobbb11122o...............
+oaaaaaacccoooocc1122o................
+occcccoooooooo222222o................
+.oooccccooooo2222222o................
+....oooooooo2222222o.................
+.........oo22222222o.................
+..........o2222222o..................
+.........o22221122o..................
+.........o11111222o..................
+.........o1111122o...................
+........o11111222o...................
+........o11111222o...................
+.......o11111222o....................
+.......o11111222o....................
+.......o11111222o....................
+......o111111222o....................
+......o111111222o....................
+.....o11111112222o...................
+.....o11111112A22o...................
+....o1111111112222o..................
+....o11111111112222oB................
+...o21111111111111222oo..............
+...o1111111111111111122o.............
+...o11111111111111122222o............
+..o1111111111111112111122o...........
+..o11111111111111211111222o..........
+.ocaaaaaaaaaaaaaa2111111222o.........
+.occaaaaaaaaaaacc2111111222ooooooT...
+.occccccccccccccc21111112c22o11112o..
+.ocaaaaaaaaaaaaac21111122ab2o111222..
+.occaaaaaaaaaaacc2211222b22b2o111122o
+.o22ccccccccccc222222222ab222o2222oo.
+.o22222222222222222oo2bc22212ooooo...
+..o22222222222222222ooooooooo........
+..o2222222222222222222222oo..........
+...o22222222222222222222oo...........
+...oo222222222222222222oo............
+....oo2222222222222222o..............
+......oo222222222222oo...............
+........ooo222222ooo.................
+.....oooocoooooooocoo................
+....oaccccco..occcccco...............
+.....ooaooo...oaoaoooo...............
+......oo.......oooP..................
diff --git a/parts_pl_src/body/pl_cardinal_c.txt b/parts_pl_src/body/pl_cardinal_c.txt
new file mode 100644
index 0000000..cb7f91c
--- /dev/null
+++ b/parts_pl_src/body/pl_cardinal_c.txt
@@ -0,0 +1,49 @@
+# pl_cardinal_c: from pixellab_src/pl_cardinal_c/base.png (variant of pl_cardinal) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 40)
+# head_top at (29, 20)
+# back at (37, 34)
+# tail at (51, 44)
+......................oo......................
+................oo..oo2o......................
+...............o2o.^222o......................
+..............o22oo1113o..ooooo...............
+...........o.o112o21123ooo2223o...............
+..........o2oo1133212233111223o...............
+..........o2o22232222332111233o...............
+..........o232232223322211333o................
+.........o2232232223222223333ooooo............
+........o3223222222322233333211122ooo.........
+.......o22232222223222233322211122223o........
+......o32221111222222233222222222233oo........
+....oo2222211112222222222222222333oo..........
+....o222222222222222222222233333333o..........
+...o22oo222222222oo22222222223333333o.........
+...o2oooo2222oooooooo222222222233333o.........
+..o22o1ooooooooo11oooo22222B222233333o........
+..o2o1o1oooooo1owwwooo222222222223333o........
+.o12o1o1occooowowwwooo2222222222233333o.......
+.o12oo1ccbboooooowwooo2222222222233333o.......
+o212oocaabcbooooww1o332222222222233333o.......
+o222ocaabbbbboo111o33322222222222333333o......
+o22ocaabbbbbbooooocbA22233333o222333333o......
+o2obbbbbbbbcccooooccc223222233o23333333o......
+o2occccccoooooooooo222321112333o3333333o......
+o22oooooocccoooooo22223211122333o333333o......
+o322222ooooooooo2222223211222333o333333ooT....
+o33122222333322222222232222223c33o33333o22oo..
+.o32bb222222222222222332222233bb3o33333o3322oo
+.o33bb322bb222222222333322333b33b3o333o333333o
+.o3333332bb222bb2233333333333bb333o333o3333oo.
+..o33333333333bb33333333oo3bb33323o33oooooo...
+..o333bb333333333333333333oooooooo333o........
+...o33bb3333333bb3333333333333333333o.........
+....o3333333333bb333333333333333333o..........
+....oo333cc3333333bb33333333333333o...........
+......o33cc33cc333bb333333333333oo............
+.......oo3333cc333333333333333oo..............
+.........oooo33333333333333ooo................
+..........ooooooooooooooooo...................
+.........obcccccoooocccccco...................
+..........oobooo...oboboooo...................
+...........oo.......ooPo......................
diff --git a/parts_pl_src/body/pl_cardinal_d.txt b/parts_pl_src/body/pl_cardinal_d.txt
new file mode 100644
index 0000000..5b22706
--- /dev/null
+++ b/parts_pl_src/body/pl_cardinal_d.txt
@@ -0,0 +1,59 @@
+# pl_cardinal_d: from pixellab_src/pl_cardinal_d/base.png (variant of pl_cardinal) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 34)
+# head_top at (29, 12)
+# back at (37, 34)
+# tail at (45, 44)
+.........................oooo.............
+........................o222o.............
+......................oo2223o.............
+.....................o322223oo............
+...................^o222222333o...........
+..................o32222222333o...........
+...............ooo322222223333o...........
+...........oooo2222222222233oo............
+..........o2222222222222222333oo..........
+........oo3111111112222222223333oo........
+.......o32111111112222222222223333o.......
+......o3211211112222222222222222333o......
+.....o321112222222222222222222222333o.....
+....o32222222222222222222222222222333o....
+...oo222222222222222222222222222222333o...
+...ooooo2222222222222ooooo322222222333o...
+..oooooooo22222222ooooooooo222222223333o..
+..ooowwoooo22222ooooowwwwooo22222222333o..
+.ooowwoooooooooooooooowwwwooo22222223333o.
+.oowwoowooooooooooowooowwwwoo22222222333o.
+.oowwoowooooooooooowooowwwwoo22222222333o.
+o2owwoooooooooooooooooowwwwoo22222222333o.
+o2owwoooooccbbboooooooowwwwoo222222223333o
+o2oww1ooocbbbbbbooococwwww1oo222222223333o
+o2coww1ocaaabbobboobccwww1occ222222223333o
+o2ccowocaaabbbbbbooo11111occc222222223333o
+o2bboocaabbbbbbbbcoooAooobbB2222222223333o
+o2bbocaaabbbbbbbbccooooccbbb2222222233333o
+o222obbbbbbbbbbccccoooooocc2222222223333o.
+o222occcccccoooooooooooo2222222222233333o.
+o322oooooooocccccooooo222222222222233333o.
+o3222222ooccccccooo22222222222222233333o..
+.oo2222222ooooooo2222222222222222333333o..
+..o32222222233322222222222222223333333o...
+..o3322222222222222222222222233333333o....
+...oo3333222222222222222222333333333o.....
+.....o3333332222222222333333333333oT......
+......ooo3333333333333333333333ooo........
+.........ooo3333333333333333ooo...........
+..........oooo33333333333333o.............
+.........o3333333333333333333o............
+.........o2233333333333333222o...oooo.....
+........o222322222222233332223ooo223o.....
+........oc2232222222222333222bo2223o......
+........ob333222222222233322bbo2233o......
+........oobo3222222222233o2b3bo33oo.......
+.........oo.o3322222223333ocbo3oo.........
+.............o3333333333333oooo...........
+.............o3333333333333o..............
+..............o333oooo3333o...............
+..............occco...occco...............
+.............obbcoo..obcbco...............
+.............oooo....Poooo................
diff --git a/parts_pl_src/body/pl_cassowary.txt b/parts_pl_src/body/pl_cassowary.txt
new file mode 100644
index 0000000..c6f4842
--- /dev/null
+++ b/parts_pl_src/body/pl_cassowary.txt
@@ -0,0 +1,50 @@
+# pl_cassowary: from pixellab_src/pl_cassowary/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (30, 38)
+# head_top at (23, 22) (from part/probe)
+# back at (39, 32) (from part/probe)
+# tail at (41, 47) (from part/probe)
+..........ooo........................
+........o3212o.......................
+.......o21122o.ooo...................
+......o211223oo33oo..................
+.....oo122233333oo...................
+....o3o222^33223oo...................
+...o32o23332222233o..................
+...o22o33222222223oo....oo...oo......
+..o22b2222211122223o...o3o.oo13o.....
+.o212bb222111112223oo.o333o1113o.....
+.o21322221112oo3223ooo333o11113o.oo..
+..o2o333111oo1o222o223o3o211133oo1o..
+..oo333o22oc11o322223ooo322213o111o..
+..o21112oooawwo32223oooo32323o1113o..
+..o112o12oaawoo2112223oo3333o33223o..
+.o111121123ooo111222oooo33Bo33333o...
+o111111111132112222oo2223oo3333oo223o
+o1112oooooo13212o333o22113oo3ooo322o.
+o12o3222222333333ooo22222223ooo333oo.
+o2ooooooooooooooo33222ooo2233o33oooo.
+oo.....occbcooooo322o3222o233o333oo..
+......oobcbcoooooA2o221112oo3ooooo3o.
+.....oobacaoo23o323o1112112o3ooo333o.
+....o3obabao223o22o211112222ooo33ooo.
+....o3obabao323222o2121123223oooooo..
+....o3obabab322222o2212222o2o1o33o...
+....o3obbbbbo222223o2223223oowwoo....
+....oooobbcbo222233oo222o23213211o...
+.....o.obboo3222233oo322ooo1ww1oo....
+.....oo.oooo2322o33oooo312ww311o.....
+......o..ooo33o33ooooooo1111Too......
+..........oooo3ooooo3oooooooo........
+..........oooooooooo333oooo..........
+...........ooooooooo3333ooo..........
+............ooooo..oo3o3oo...........
+............o333o....o3o3o...........
+.....ooooooo3223o....o333o...........
+....o2w2111331133oooo3223o...........
+....ow2223o31133oo31131132oo.........
+....oooooow233ooow2133113112o........
+.........o1ooo.ow223o2w2o32wo........
+.........oo....o2oooo2w2ooo1o........
+................o....o2o...o.........
+......................P..............
diff --git a/parts_pl_src/body/pl_cassowary_b.txt b/parts_pl_src/body/pl_cassowary_b.txt
new file mode 100644
index 0000000..425e9b5
--- /dev/null
+++ b/parts_pl_src/body/pl_cassowary_b.txt
@@ -0,0 +1,64 @@
+# pl_cassowary_b: from pixellab_src/pl_cassowary_b/base.png (variant of pl_cassowary) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (30, 33)
+# head_top at (23, 3)
+# back at (39, 32)
+# tail at (43, 47)
+.........^ooo.......................
+.......oo211o.......................
+......o21122o.ooo...................
+.....oo21223oo333o..................
+....o3o12233333oo...................
+...o32o2333322233o..................
+...o22333222222233o.................
+..o22b222221122223o.................
+.o322bb22211112223oo................
+.o3232223111oo322333o...............
+..o33333211o1o322o223o..............
+..oo333o22o11o322223o...............
+..o21112ooowwo32223oo...............
+..o112o12oawoo2112223o..............
+.o11112112ooo1112333o...............
+o11111111122212222oo................
+o1112ooooo123223333o................
+o12o322222333333oooo................
+o2ooooooooooooooo33o................
+oo.....occbcoooo333o................
+.......obcbcoooo333o................
+......obacaooooo32oo...oo...oo......
+......obabao333322oo..o3o.oo13o.....
+.....obbabao333323o..o333o1113o.....
+.....obbabaa333223o.o333o11113o.oo..
+.....obobbbao33223o.oo3o311133oo1o..
+.....oo.obbbo32223o.ooo333313o111o..
+........oooo332223o.ooo33333o1113o..
+.........o33322223o.ooo3333o33223o..
+........o3222122233oooo33Bo33333o...
+........o2111122A22o3333oo3333oo323o
+.......o32111122222332113oo3ooo323o.
+.......o2111112222222222233ooo333oo.
+......o32111112222222ooo2233o333ooo.
+......o221111122222o3222o333o333oo..
+.....oo22111112222o321112oo3ooooo3o.
+....o3o22211222223o1112113o3ooo333o.
+....o3o2222222222o211112222ooo33ooo.
+....o3o2222222222o2121123223oooooo..
+....o3o2222222222o3212222o3o1o33o...
+....o3o32222222323o3223223oowwoo....
+....oooo2222222233oo222o33213211o...
+.....o2o3233223333oo333ooo1ww1oo....
+.....oooo33333233ooooo312ww311o.....
+......o.oo333333ooooooo11111oT......
+.........ooooooooooooooooooo........
+.........oooooooooo333oooo..........
+..........ooooooooo33333oo..........
+...........obcco..oo3333o...........
+...........oaaco....bbbco...........
+....ooooooo3113o....baaco...........
+...o2w211133113ooooo3113o...........
+...ow2223o31133oo31131132oo.........
+...oooooow233ooow2133113112o........
+........o1ooo.ow223o2w2o32wo........
+........oo....o2oooo2w2ooo1o........
+...............o....o2o...o.........
+.....................P..............
diff --git a/parts_pl_src/body/pl_cassowary_c.txt b/parts_pl_src/body/pl_cassowary_c.txt
new file mode 100644
index 0000000..8e876a1
--- /dev/null
+++ b/parts_pl_src/body/pl_cassowary_c.txt
@@ -0,0 +1,50 @@
+# pl_cassowary_c: from pixellab_src/pl_cassowary_c/base.png (variant of pl_cassowary) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 37)
+# head_top at (23, 17)
+# back at (39, 32)
+# tail at (48, 47)
+............^oo............................
+..........o3213o........oo..oooo...........
+.........o31123ooooo...o22oo112o...........
+........o311333o333o.oo32232112oooooo......
+.......oo123333333oooo333322133221112o.....
+......o3o23233322222oo3oo322332211113o.....
+.....o32o33332222223o3322233333222133o.....
+.....o22o3322222222233222233333o32333ooo...
+....o22b22222111222223o222211122o333211oo..
+...o212bb2221111122223o2211111122o3311112o.
+...o21322221112oo322333o2111221212o332222o.
+....o2o333111oo1o2223223o2223332122oo3333o.
+....oo333o22oc11o3222223o222112222cco333o..
+....o21112oooawwo322223oo2211111222ao3322o.
+....o112o12oaawoo211223oo22222111a322o3322o
+...o111121123ooo1112223o2211B2211a2223o333o
+..o111111111132112222oo22221112ca22322o333o
+..o1112oooooo1321233oo22ooo222222222cco33o.
+..o12o322222233333ooo22311133322222a33co33o
+.oooooooooooooooooo32231111113o2222c223o33o
+.o1123333333333332232A21111112oo2ccc22coooo
+o11132133223313222222o21211222c3oo333ccooo.
+o223311o2223112221122o2111112cc33o33cc3ooo.
+.o2o21121133111121122o311222cc33oo33333ooo.
+.o2321321132111122212o3312c2a233o1o333oo...
+.obb22321132121122222co33accb22oo1wo33oo...
+.obcacc21232123222c2acoocc33332o1321oooo...
+..ooabc22232223222ccac3ooo33333o1w1o33o....
+..oobcob22c222cbaccc333o3ooo3o1w311oo3o....
+..ooo33bbbccabcbaaoo3333oooooo111oo3o3o....
+...o33oobbobbb3obb3oo3333o33ooooo3o3oT.....
+....o33o33oo333oo333oo3333o3333o33o3o......
+.....oo3o33oo333o333ooo333o3o3o333oo.......
+......oo33ooo33ooo333ooo33333o3oooo........
+........ooooooo33oo33ooooooooo3oo..........
+...........oooo3oooo333oooooooo............
+.......ooooooooooo3oooo3oooo...............
+......o2w2111331133oooo3223o...............
+......ow2223o31133oo31131132oo.............
+......oooooow233ooow2133113112o............
+...........o1ooo.ow223o2w2o32wo............
+...........oo....o2oooo2w2ooo1o............
+..................o....o2o...o.............
+........................P..................
diff --git a/parts_pl_src/body/pl_cassowary_d.txt b/parts_pl_src/body/pl_cassowary_d.txt
new file mode 100644
index 0000000..fffaf1d
--- /dev/null
+++ b/parts_pl_src/body/pl_cassowary_d.txt
@@ -0,0 +1,62 @@
+# pl_cassowary_d: from pixellab_src/pl_cassowary_d/base.png (variant of pl_cassowary) (pixellab_library.py extract)
+# pivot at (37, 59)
+# aura at (31, 31)
+# head_top at (23, 10)
+# back at (39, 32)
+# tail at (47, 47)
+..................oooo................
+................oo2222o...............
+...............o221122o...............
+..............o2111223o...............
+..............o2112223oooo............
+............oo211122333333o...........
+..........o^2o2122223332233oo.........
+........oo222o212223333223333oo.......
+......oo22222o12223322222222333o......
+.....o2222222o122333222222223333o.....
+....o22122222o2233322222222222333o....
+...oo22222222o2333222222222222233oo...
+...o222222222233222222222222222233o...
+..o22222222222222222222222222222333o..
+..o22111222222222222221111222222233o..
+.o2211112222aaa222221111111222222333o.
+.o2222111222aa2222211111122222222233o.
+.o2222211122222222111112222222222233o.
+o3222oo21122222221111ooooo22222222233o
+o222o1oo211222222111oooo1oo2222222233o
+o22o1wwoo2122222211owwooo1oo222222233o
+o22o1wwooo22222222oowwooow1o222222233o
+o23o1ooooo22222222ooooooowwo322222233o
+o23o1ooooo22222222ooooooowwo322222233o
+o23owobooo21111132oooooaawwo322222233o
+o22owbbaa3o1111o22ooaooaawwo322222233o
+o213owba32o311oo222oaaaawwo3221122333.
+.o123oo322222222222Acaaawo3221112333o.
+.o2123332222222222222oooo32B11122333o.
+.o322232222222222222233332211122333o..
+..o2223222222222222222322211222333ooo.
+..oo223322222222222223322222223333o11o
+...oo223322222222222332222223333oo211o
+....oo3333222222223333222233333oo3222o
+......o3333333333333333333333oooo333o.
+.......ooo3333333333333333ooooooooooo.
+........oooooooooooooooooo3333oooo332o
+.......o12oocbcccco333333212122ooo333o
+......o21o2obbbbcco3333o22111122ooo33o
+......o21o2obabbabo2333o21212222ooooo.
+......o22o2obabbabo2223o31122232oooo..
+......oo3o3obbabbbo2222oo222322o1wo...
+.......oooo2obbbco22223ooo22o3311wwo..
+.......ow1o32obbo322333oooooo11ww1oT..
+.......o11oo33oo333333ooooo1ww11wwo...
+........oo.ooo3333333ooo33oooooooo....
+............oooooooooooo223oo.........
+.............oooooooooo3222oo.........
+..............ooooo.....333o..........
+..............o33o.....o333o..........
+..........ooooo23oo....o322o..........
+.........ow2332233o...o23233o.........
+.........oooow3oooo..o233233wo........
+............ooo......oooowoo1o........
+........................o1o.o.........
+.........................P............
diff --git a/parts_pl_src/body/pl_catfish.txt b/parts_pl_src/body/pl_catfish.txt
new file mode 100644
index 0000000..05f4750
--- /dev/null
+++ b/parts_pl_src/body/pl_catfish.txt
@@ -0,0 +1,40 @@
+# pl_catfish: from pixellab_src/pl_catfish/base.png (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 45)
+# head_top at (34, 33) (from part/probe)
+# back at (39, 35) (from part/probe)
+# tail at (47, 51) (from part/probe)
+.....................oooo.................
+....................o1122oo...............
+...................o122b222o..............
+...................o12ac22b2o.............
+..................o112ac2bc23o............
+............ooooooo33oooooc222o...........
+..........oo21111133333^333ooco.....o.....
+.........o21111111111332cc333o2o..o32o....
+........o11111a1111111133c3cB3oo.o122o....
+.......o211111111112oo2123223cc3o1222o....
+......o131111111112o11o212322bbbo33bco....
+......o13311111311o11o1o113o22bbco3c22o...
+.....o332111111122o1oo1o2113322bb3o22co...
+....o1111222221212o1bb1o2111o322b3oo2bo...
+...o111111111111223o11o211112o22223oc2o...
+..o33322222222221113o311111123o2223o3bo...
+.o1133ooooooooo33o322oo1111222o2b23oo2o...
+.o13oo333333333oo3o3o21o11a222o32233oo....
+o12o33oooooooo333o2o3A21322222o32b33o.....
+o1oooo11111113oo3o2o33o1o22222o3bbb3o.....
+o1oo111222221111oo3233o21o2222o3bbb3o.oooo
+o1oo11233333332111o1oooo1o2223o3ccc33o112o
+o2o.o2322222223321o1o22o1o2223o33cc33232o.
+o2o.oo322222222233o1o23o2o223o333333o322o.
+.oo...o33222222222o1o32o2o23o333cc33T3333o
+..o...oo3322222222o2322o233o33oocc33o3222o
+.......o3333333322oo222oo3o333223o3o323bo.
+.....o22oo33333333oo333o3333cc3222o3322o..
+...o1133cco33333333333o333c32223221oooo...
+..o122a2c3coo3333333333o33cb32b232a1o.....
+...oooo33cccoooo33333333oc3bb322a3211o....
+.......ooooo.....ooooooooo332b33aaa32o....
+..........................o33bb3ooooo.....
+...........................Poooo..........
diff --git a/parts_pl_src/body/pl_catfish_b.txt b/parts_pl_src/body/pl_catfish_b.txt
new file mode 100644
index 0000000..3d9270b
--- /dev/null
+++ b/parts_pl_src/body/pl_catfish_b.txt
@@ -0,0 +1,54 @@
+# pl_catfish_b: from pixellab_src/pl_catfish_b/base.png (variant of pl_catfish) (pixellab_library.py extract)
+# pivot at (43, 59)
+# aura at (33, 38)
+# head_top at (34, 12)
+# back at (39, 35)
+# tail at (53, 51)
+..............................^ooo.....................
+.............................o1222oo...................
+............................o122a222oo.................
+...........................o122aa222b2o................
+...........................o122aa22ab23o...............
+..........................o1122aa2bbb333o..............
+....................ooooooo33ooooooo333bo..............
+..................oo11111133322223333oobo.......oo.....
+.................o211111111112222bbb333ooo....o331o....
+................o21111111111111322bb3b22boo..o1222o....
+...............o21111a111111111232222222aaboo11222o....
+..............o2111111111111111113222222aaabo12223o....
+.............o33111111111112oo1111322222aaaboo32abo....
+.............owo21111111112owwo21113222222abbo3bb22o...
+.............owo2111111111owwowo1112322222abb3ob323o...
+............oow32211111112owoowo111123222223b3oo32bo...
+.....ooooo..o3331111111212owoowo211112322223b23o32bo...
+...o311122oo11311111111o113owww31111123222222223ob3o...
+..o1ooooo3331111222222111112oo311111122322222223o33o...
+.o2o.....o3122ooooooooo2211122ooo11112232222b223oo3o...
+o2o....oo3123o1cwwccwccoo21122211o1a1223222222233oo....
+oo...oo12323owwccccccccwao2113oo21o12223222222233o.....
+o...o12ooo2obwbbcccccccwcco31o33o21o2223222222ab3o.....
+...o12o.o1obbbbbbcccccccccco31o22o1B222322222aabbo.....
+...o1o.o123bbbbbbccccccccccbo1o22211o22322222abbbo.....
+..o23o.o2o3bbbbbbbcccccccccbb32222o1o22322222abbbo.....
+..o2o.o1o13bbbbbbbooooooooobbA1o22o1o22322222bbbbo.....
+..o2o.o1o13bbbbbboaaaoaaaaaobo1o22o1o23222222bbbbo..ooo
+..o2o.o2o13bbbbboaaabaaaaaaaoo1o22o2o332222223333o.o31o
+..oo..o2o113bbboaaabaaaaaaawoo2o22oo3322222233333oo113o
+......o2oo13bwboaaaaaaaaaaawoo2o22oo322222223bb33o112o.
+.......o.o31owoaaaaaaaaaawao3o2o2333222333333bb33o332o.
+.......o.oo11owaaaaaaaaaawo11oo223222232122o33333o3112o
+.........oo311oowaawaawaoo112223332233211122o3333o3223o
+........o22o3111oooooooo11122233222232111122o333ob3333o
+........1a2o33311111111112223332222331111aa23o33ob33bo.
+.......o1a22o3332222222223333322222o2111aaaa3o3o3b333o.
+.......o1123o3223333333333332222222o211a11123o3o3bb3o..
+.......oa1233o322222222222222222223o211111123oo333oo...
+.......oabb33o332222222222222222223o311111abbooooT.....
+........obbb33o33222222222222222333o3311aaabboo........
+........o3bbb33o33322222222222333333o33aaabb3o.........
+........o333bb33o3333333333333333333obbbbbb33o.........
+.......o123333333ooo3333333333333333o33333333o.........
+......o1233133333o..ooo3333333333ooo222222222oo........
+......ooooooooooo......oooooooooo.o12331223322o........
+..................................ooooo12oooooo........
+.......................................Po..............
diff --git a/parts_pl_src/body/pl_catfish_c.txt b/parts_pl_src/body/pl_catfish_c.txt
new file mode 100644
index 0000000..bb2c940
--- /dev/null
+++ b/parts_pl_src/body/pl_catfish_c.txt
@@ -0,0 +1,60 @@
+# pl_catfish_c: from pixellab_src/pl_catfish_c/base.png (variant of pl_catfish) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 34)
+# head_top at (34, 7)
+# back at (39, 35)
+# tail at (51, 51)
+....................ooo^..................
+...................o1132oo................
+..................o122a333o...............
+..................o12ac33a3o..............
+.................o112ac3ac23o.............
+............oooooo33oooooc333o............
+..........oo211113333333333oco.....o......
+.........o2111111111233cc333o3o..o32o.....
+........o11111a111111113c3c33oo.o133o.....
+.......o21111111112oo2113333cc3o1332o.....
+......ow3111111112owwo211333aaao33aco.....
+......ow331111111owwowo111o33aaco3c33o....
+.....o33311111122owoowo2111o33aa3o33co....
+....o111122221222owbbwo21113333a3oo3ao....
+...o11111111111223owwo211111o33333o33o....
+..o3332222222221112o331111112o3333ocao....
+.o1133oooooooo333311oo1111112o3333oo3o....
+.o13oo33333333oo3o3o213111112o33333oo.....
+o12o33ooooooo33332o3o21311112o33a33o......
+o1oooo1111111oo332o33o1o11112o3aab3o......
+o1oo11122221111ooo2o3o21o1122o3aab3o......
+o1oo1123333333111o13ooo1o1223o3ccc33o.....
+o2o.o232222223222o1o11o1o2223o33cc33o.....
+o2o.oo31222222233o1o11o2o223o3333333o.....
+.oo...o3322222222o1o22o2o233333cc33co.....
+..o...oo332222222o2322o2o333333cc33co.....
+.......o333333332oo222oo3333333cc33co.....
+........oo3333333oo33A333333333cc333o.....
+..........o33333333333332333Ba33333o......
+...........o33333333332211333333333o......
+...........o3222222223111123333333co......
+...........3322222222331111o3ac333co......
+..........o3321111122331a11o3aaa333o......
+.........o1o111111112o1111ao3aaa33o.......
+.........o1o111111112o11112o33c333o.......
+.........o12111111112o11a22o333333o.......
+........o1o111111111o11a12333333333o......
+........o1o11111111o111123o33333c33o......
+........o1o11111111o11123o333333ab3o...ooo
+........o2o11111111o231oo3221333ab3oo.o11o
+.........oo31111111o2o2o311111333aa3oo11o.
+.........oo331111111ooo31111a1133aa33311o.
+........o13o32111111223111111113333333223o
+........o13o332111222o11111111133333a3333o
+........o133o32222222o111a111133333333ccT.
+........o3333o3322222o111111133o3333333o..
+........o33333oo32223o321111223o33333oo...
+.........o33b33oo33333o33222223o3oooo.....
+.......oo1o33c33ooo3333o3332222oo.........
+......o112223cc33o.ooooo11111223o.........
+.....o12222233333o....o111112123o.........
+......ooooooooooo....o1231133133o.........
+.....................oooo12ooooo..........
+.........................Po...............
diff --git a/parts_pl_src/body/pl_catfish_d.txt b/parts_pl_src/body/pl_catfish_d.txt
new file mode 100644
index 0000000..b2d5d18
--- /dev/null
+++ b/parts_pl_src/body/pl_catfish_d.txt
@@ -0,0 +1,50 @@
+# pl_catfish_d: from pixellab_src/pl_catfish_d/base.png (variant of pl_catfish) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 41)
+# head_top at (34, 17)
+# back at (39, 35)
+# tail at (52, 51)
+...................oooo^..................
+..................o21aa2oo................
+..............oooo21aaaa23oo..............
+.............o112322aaaa2233o.............
+............o1aa2222222222322o............
+...........o1aaaa22222222222cco...........
+...........o2aaa22223222aa22aao...........
+.........oo322222223322aaaa22cco..........
+........o22333322222222caaa2223o..........
+.......oaaa22322aaac22222a222223o.........
+......o1aac22222aaac2222222232233o........
+......o2aa2212222aa22322cc2222a222o.......
+......o22322aa222222332cbbc223222co.......
+......oc233222232223333caac22322aco.......
+......occ33322ac23333333cc22c333cco.......
+.......occ333ccc3333ooo3333c33333co.......
+........o3oo33cc333oo33oo333o3333o..o.....
+.........o31ooooooo333322ooooo33o.o31o....
+........o1aa1222332111133c33B3oo.o132o....
+.......o21a111112212oo2123223cc3o22bco....
+......ow311111aa112owwo212322bcco22bbo....
+......ow3311111111owwowo113o22bc2o22b2o...
+.....o332111111122owoowo2113322223o223o...
+....o1111222221212owbbwo2ac1o22223oo23o...
+...o111111111111223owAo21aa12o222b3o2ao...
+..o33322222222221113o3111aa123o2bbco22o...
+.o1133ooooooooo33o322oo1111222o2cbcoo2o...
+.o13oo333333333oo3o3o21o112222o32cc3oo....
+o12o33oooooooo333o2o3o21322ac2o32233o.....
+o1oooo11111113oo3o2o33o1o22aa2o33333o.....
+o1oo111222221111oo3233o21o2aa2o33cc3o.oooo
+o1oo11333333332111o1oooo1o2cc2o33cc33o112o
+o2o.o2322222223321o1o22o1o2223o33cc33231o.
+o2o.oo32c222222233o1o23o2o223o333333o32ao.
+.oo...o3cc22222222o1o32o2o23o3333333o333cT
+..o...oo3c22222222o2322o233o33oocc33o3222o
+.......o33322cc222oo222oo3o333223o3o3c22o.
+.....o22oo333ccc33oo333oo333cc3222o33c3o..
+...o1133cco333cc333333o333c32223221oooo...
+..o122a2c3coo333333ccc3o33cb32b232a1o.....
+...oooo33cc3oooo333ccc33oc3bb322a3211o....
+.......ooooo.....ooooooooo332b33aaa32o....
+..........................o33bb3ooooo.....
+...........................Poooo..........
diff --git a/parts_pl_src/body/pl_catloaf.txt b/parts_pl_src/body/pl_catloaf.txt
new file mode 100644
index 0000000..cc71351
--- /dev/null
+++ b/parts_pl_src/body/pl_catloaf.txt
@@ -0,0 +1,31 @@
+# pl_catloaf: from pixellab_src/pl_catloaf/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 48)
+# head_top at (25, 42) (from part/probe)
+# back at (37, 40) (from part/probe)
+# tail at (46, 45) (from part/probe)
+..................ooooooooo.........
+..............ooooccccbaaz3oo.......
+....oo.....oooccccbaaa1ccbaz33o.....
+...o32o..oocbaaz1ooo3cba1ccaz31o....
+..o3o33ooa1111112o21o1cBa1cca323ooo.
+..o3c333oooooocco13c1oa3ca3cca13o22o
+..o3bc33obb^3cc213cb1oaa3ca1cc23o22o
+..o3bc311b11b2213cbb1ocbz1b33cc3oo3o
+..o3c221b11b2222ccbb1o3cc23c3cc3oo3o
+..o3222221c222222cbb1o33cc3cc3c3To3o
+..o222222222222221cb1o33cc3cc3c3oo3o
+..o2122222222222222c3o333c33c333o3o.
+.o12ooo2222222222A223o333c333333oo..
+.o1o2ooo22212ooo12223o3333333333oo..
+.o1o13oo2123o2ooo1223o3333333333o...
+oo1c1boo1221o13oo2223o3333333333o...
+.o1zzab1c311c1boo1223o3333333333o...
+.o122222222223aabooo3o3333333o33o...
+..o222222oo222222233o3333333o33o....
+...o122222222222233oo33333oo333o....
+..occo222222222333oo3333ooo333o.....
+..o223oo33333ooooo33333oo.o33o......
+..o233ooooooo21223333oo....oo.......
+...oooo.....o333333oo...............
+.............ooooPo.................
diff --git a/parts_pl_src/body/pl_catloaf_b.txt b/parts_pl_src/body/pl_catloaf_b.txt
new file mode 100644
index 0000000..f4f69de
--- /dev/null
+++ b/parts_pl_src/body/pl_catloaf_b.txt
@@ -0,0 +1,49 @@
+# pl_catloaf_b: from pixellab_src/pl_catloaf_b/base.png (variant of pl_catloaf) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 39)
+# head_top at (25, 19)
+# back at (37, 40)
+# tail at (53, 45)
+.................ooooooooooo.................
+.............oo^o11113311111ooo..............
+...........ooa11111111111111111oooo..........
+........oooaaa11111111111aa11111111oo........
+.......o11aab111131111111aab111111aaco.......
+......o111111111331111111111111111aaaco......
+.....ooooo1211133111121111111aa111aaacco.....
+....o1o332o231133331311oo111aaac1111bca1o....
+...o1o3cc22o333333333oo11o111aac11111cc11o...
+...o1o3ac133oooooo33o113co111111111112111o...
+..o11o3aac133ab11boo113ca1o111111111123311o..
+.oa11o3abc111b11a11113ccb1o311111111123311o..
+.oaa1o3b1111a11b11111ccaa1o31111111c2211112o.
+.oaa1o31111111b1111111cba1o3111aa11cc111112o.
+.ob11o31111111111111111cb1o333baaa11ac11122o.
+o1113o111111111111111111c3o3311aaa11bc111223o
+o111o11ooo1111111111111123o311111b111c111113o
+o11oo1o2ooo111111ooo111123o33311111111111313o
+o1o1o1o13oo11111o2ooo11123o33311111111111333o
+oo1131c1boo11111o13oo111233o3311111111111333o
+o31132zzao111111c1boo1133133o3311111111333cao
+o1111322333111311zzab3A31113o3311111131333bco
+o33111331111111132333331113B3o331311333333cco
+o3111111111111111333311111133o33333333o3333oo
+oo111111111111111113111111133o33333333333333o
+oo11311111111111111111111313o333333331133333o
+oo3131111111111111113111333o3311233111113333o
+o333313111111111111131111o3o331111111113333T.
+.ooo333113111111311133313oo3331111111113333o.
+.o3oo33133111111331133333o33311111113123333o.
+.o333o33333311333333o333o33313131111313333o..
+..o333o33o3333333333o33o333113133133333333o..
+..o3333oo3o3333o3ooo3oo33311131333333o3333o..
+...o3333333oooo3o333333311111333333333333o...
+....o333o3333333333133111133333333333333o....
+.....o33oo3313331111333113333333333333oo.....
+......oooo331333331333333333333333ooooo......
+......o23ooo333333333333333o333oooo333o......
+......o1113oooo3333oo3ooooooooo.oo3333o......
+......o1133oo..ooooo333333o.....oo333o.......
+.......ooooo.......o111123o......oooo........
+...................o31113o...................
+....................ooPoo....................
diff --git a/parts_pl_src/body/pl_catloaf_c.txt b/parts_pl_src/body/pl_catloaf_c.txt
new file mode 100644
index 0000000..2e8a229
--- /dev/null
+++ b/parts_pl_src/body/pl_catloaf_c.txt
@@ -0,0 +1,33 @@
+# pl_catloaf_c: from pixellab_src/pl_catloaf_c/base.png (variant of pl_catloaf) (pixellab_library.py extract)
+# pivot at (26, 59)
+# aura at (31, 45)
+# head_top at (25, 35)
+# back at (37, 40)
+# tail at (55, 45)
+.....................ooooooooooooooooooo.......
+.....oo...........ooobbyycccbbyyyocbbb2ooo.....
+....o13o......oo^occccccbyy2ccbby223cby222o....
+...o1113o..ooobbbbbooooccbyy22cbb2222cb2222oo..
+...o3cc13ooc322222o111o2ccbby22cbb2222bb2222oo.
+...o3cco13oooooooo113c1o22cbb222cb22222b22222o.
+...o3cco11111111311ccc1o222cb2222b222222222223o
+...o3c311111111111cccc1o2222B22222222222222223o
+...o331111111111111ccc1o2222222222222222222223o
+...o3111111111111111cc1o2222222222222222222223o
+..o311111111111111111c1o3222222222222222222223o
+..ooooo1111111111111133o3222222222222222222223o
+.ooowwwo111111ooooo111Ao3222222222222222222233T
+.oowwoow11112obbbwoo111o3322222222222222222333o
+.oowoooo1111obbowwwoo113o32222222222222223333o.
+.oowoooo1111obooowwoo113o32222222222223333333o.
+.oow3oow1111obooowwoo113o322222222233333333oo..
+.o3owwwo1oo1ocoo3wwoo133o322222333333333ooo....
+.oo1ooo11o111obwwwoo1133333333333333oooo.......
+..o311111o1111ooooo1133o333333333ooo...........
+..oo311111111111111133o33333333oo..............
+.o13oo311111111113333o33333oooo................
+o1113ooo333333ooooooo333ooo....................
+o3333ooooooooo11333333oo.......................
+.oooo.......o1111333oo.........................
+............o33333oo...........................
+.............ooooP.............................
diff --git a/parts_pl_src/body/pl_catloaf_d.txt b/parts_pl_src/body/pl_catloaf_d.txt
new file mode 100644
index 0000000..e7da32e
--- /dev/null
+++ b/parts_pl_src/body/pl_catloaf_d.txt
@@ -0,0 +1,38 @@
+# pl_catloaf_d: from pixellab_src/pl_catloaf_d/base.png (variant of pl_catloaf) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 46)
+# head_top at (25, 29)
+# back at (37, 40)
+# tail at (52, 45)
+...............^oo............................
+...........oo.o11o.ooo........................
+.......ooo.o1o111oo11o........................
+.......o11oo111111111oooo.....................
+........31111111111111111oooooo...............
+.....ooo111111111113111111occ11oooo...........
+....o11111111111113111111oooc112baboo.........
+.....o1oo111111111111o11111ocb111aa21o........
+...oo1o31o1111111113o1o111oo3aa21bba11o.......
+...o11oc32o1111111o23c2o111ooaa122ba11o.......
+...o11oac33o11111o13ca2o1111o2ab21aa111o......
+..o111oacc33coooo13cca2o111Bo2aa21a2112o......
+.o1131obb21a222a113cca3o1111o33a11b112aco.....
+.o1111ob211111a11111ca3o11111o3a212211aaco....
+..o111o211111a1111112bo11113oo3a23321aab3o....
+.o1111o111111111111111o11111o333322aaab33o....
+o1111o11oo1111111121113o11111o3332aaa22333T...
+o1111o2oaoo11111ooo111Ao11111o331222211aaco...
+o1111o1o1oo1111o1ooo111o11111o3o11122aaaa3o...
+.o111o1o1oo1111o1ooo112o1111o33o121bbab333o...
+.o111o11zoo1111o1ooo113o1111o33o211222233ooo..
+.o1111o122111111zzz112311111o33o31121aaaco33o.
+.o1111132211oo11111223111111o3ooo2221bbccocbo.
+..oo1111322111111223311111o3oo111oo333333ocbbo
+..oo1311113311223331111111oo1111111ooooooo22bo
+...o1111111133331111111111o1111311111bb22bb23o
+....oo111111311111111111oo111111111112a222b33o
+.....ooo1o111111oo111ooo3o111111111211bb13cco.
+.....o33oo1111oo11ooo3333o111111112121cc33co..
+......oooooo1oo2111333ooo.o11111113333cc3oo...
+...........oo..ooooooo.....o111111333ccoo.....
+............................Poooooooooo.......
diff --git a/parts_pl_src/body/pl_cell.txt b/parts_pl_src/body/pl_cell.txt
new file mode 100644
index 0000000..756e7c3
--- /dev/null
+++ b/parts_pl_src/body/pl_cell.txt
@@ -0,0 +1,41 @@
+# pl_cell: from pixellab_src/pl_cell/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 43)
+# head_top at (32, 29) (from part/probe)
+# back at (31, 42) (from part/probe)
+# tail at (41, 52) (from part/probe)
+..........oooo..........
+......ooooa1aaoooo......
+....oo323obaabo323oo....
+...o33323obb^bo32333o...
+...o231223cccc322132o...
+...o3132212222122313o...
+...o3312233333322133o...
+...o3333111111112333o...
+...o3322222222222233o...
+...o3322111111112233o...
+...o3322111111112233o...
+...o33oo32111123oo33o...
+...o3o223o2112o322o3o...
+...o3o11ooo11ooo11o3o...
+...o3o13o3o11o3o31o3o...
+...o3o1313o11o313133o...
+...o333oo31B113oo333o...
+...o3322111Ao1112233o...
+...o3bba111cc111abb3o...
+...o333c11111111c333o...
+..oo3322333333332233oo..
+..o133221111111122331o..
+.o133322112aa211223331o.
+o13o3322111aa1112233o31o
+o33o3ooo11111111ooo3o33o
+o3bo3o3oooooooooo3o3ob3o
+.ooo3o312222212123o3oTo.
+...o3o3oay1111z2o3o3o...
+...ooo3o33333333o3ooo...
+...ooo3obaa22zzzo3ooo...
+....oo3o33333333o3oo....
+.....ooo33333333ooo.....
+.....obcoooooooocbo.....
+....oaaboo....oobaao....
+....ooooP......ooooo....
diff --git a/parts_pl_src/body/pl_cell_b.txt b/parts_pl_src/body/pl_cell_b.txt
new file mode 100644
index 0000000..ad07730
--- /dev/null
+++ b/parts_pl_src/body/pl_cell_b.txt
@@ -0,0 +1,42 @@
+# pl_cell_b: from pixellab_src/pl_cell_b/base.png (variant of pl_cell) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 43)
+# head_top at (32, 25)
+# back at (31, 42)
+# tail at (44, 52)
+............oo^o............
+........ooooawaaoooo........
+......oo333ocaaco333oo......
+....oo33313occcco32133oo....
+...o32312223cccc32221132o...
+...o33132221222212223313o...
+...o33311113333331111133o...
+...o3333331wwwwww1233333o...
+...o33222222222222222233o...
+...o33222211111111222233o...
+...o33222211111111222233o...
+...o3322oo32111123oo2233o...
+...o332o223o2112o322o233o...
+...o332o1wooo11ooow1o233o...
+...o332ow3o3o11o3o3wo233o...
+..oo3323w212o11o212w3233oo..
+..oco3223oo311113oo3223oco..
+..occoo222111Bo1112222occo..
+..occbbooo111Ac1112oooccco..
+..occcbaaaoooooooooaabccco..
+..occcbbbbaaaaaaaabbbbccco..
+..ooccbbbbbbbbbbbbbbbbccco..
+..o3ocbbbbbbbbbbbbbbbbcooo..
+.o1o3oobbbbbbbbbbbbbbco3o1o.
+o13o332oooccccccccoooo33o31o
+o33o332222oooooooo222233o33o
+o3co33222211111111222233oc3o
+.ooo33222211111111222233ooT.
+...o33222211111111222233o...
+...o33222211111111222233o...
+....o333221111111122333o....
+.....oo333111111113333o.....
+......oooo33333333oooo......
+.......occoooooooocco.......
+......oaacoo....oocaao......
+......ooooP......ooooo......
diff --git a/parts_pl_src/body/pl_cell_c.txt b/parts_pl_src/body/pl_cell_c.txt
new file mode 100644
index 0000000..444e02a
--- /dev/null
+++ b/parts_pl_src/body/pl_cell_c.txt
@@ -0,0 +1,59 @@
+# pl_cell_c: from pixellab_src/pl_cell_c/base.png (variant of pl_cell) (pixellab_library.py extract)
+# pivot at (35, 58)
+# aura at (31, 33)
+# head_top at (32, 9)
+# back at (31, 42)
+# tail at (51, 52)
+.........oooooo.........................
+........oaawaaao........................
+.......oocaaaacooooo......oooooo........
+......o2ocaaaaco2222^oooooaawaaao.......
+.....o22ocaaccco322222222ocaaaaco.......
+...oo223ocaacccc322222222ocaaaacoooooo..
+..o22223cccccccc322222222ocaaccco22222o.
+.o32222222233332222222223ccaaccco322222o
+o31wwwww22222222222222223cccccccc322223o
+o222222wwwwwww2222222222222233332222233o
+o2222222222222wwwwwww222222222222223333o
+o11322222222222222221wwwwww222222233333o
+o11111111222222222222222221wwww22333333o
+o11111111111111122222222222222233333333o
+o11111111111111111111112222222233333333o
+o11111111111111111111111111112233333333o
+o11111111111111111111111111111133333333o
+o11111111111111111111111111111133333333o
+o11111111111111111111111111111133333333o
+o1111111113ooo3321111111111111133333333o
+o111111111o2223o211111222ooo31133333333o
+o111111111o22233o21112oo3222o113333333bo
+o111111111o22woooo111oooo222o11333333bbo
+o111111111oww3oooo111oooow12o113333obbbo
+o111111111oww3oo3o111o33o33wo11333bbbb3o
+o111111111oww3113o111o33133w31133bbbb33o
+o111111111333oooo1111o33133w31133bbo333o
+o111111111333oooo11A1133ooo331133b3333bo
+o11111111132221111ooo1111222311333333bbo
+o111111111cbba1111ccc111122231133333bbbo
+o111111111333c1111ccc1111abbc22333bbbb3o
+o111111111333c11111111111co333333bbbb33o
+o11111111o32223333333333322333333bbc333o
+o1111111oo32221113333333322233333b33333o
+o111111oo13222111111111112223o33333333bo
+oac3111o1332221113aaa31112222oo333333bbo
+oaaaaao13332221111aBa211122331oo333obbbo
+oaaaao13oo3oo31111aaa111122o31oo3obbbb3o
+o111ao3ooo3ooo11111111111ooo313o3bbbb33o
+o1222o333o3o3ooooooooooo3ooo113o3bb3333o
+oaa32o3cco3o312222223oooooo1333o3b333obo
+oaaaaaoooo3o3o222222212212o3333o33333bbo
+oaaaaaaaao3o3obaayyyyyyy2oo333co333cbbbo
+o2333aaaaooo3o33333333333oooooo33obbbooo
+o23333333ooo3obbaa3333333oooo3ooobbboooo
+o23333333ooo3obbaa222yyyyoooooooobbooooo
+o233333333oo3o33333333333ooooooooooooooT
+o333333333oooo333333333oooooo33oooooooo.
+.o33333333occoooo33333333ooo333ooooooo..
+..oooooooooccoooooooooooccoo333oooooo...
+......ooooaabcooooooooocaacoo33oooo.....
+.........oooooo.ooooooocaacooooooo......
+.......................Poooooooo........
diff --git a/parts_pl_src/body/pl_cell_d.txt b/parts_pl_src/body/pl_cell_d.txt
new file mode 100644
index 0000000..40fe911
--- /dev/null
+++ b/parts_pl_src/body/pl_cell_d.txt
@@ -0,0 +1,41 @@
+# pl_cell_d: from pixellab_src/pl_cell_d/base.png (variant of pl_cell) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 43)
+# head_top at (32, 26)
+# back at (31, 42)
+# tail at (42, 52)
+..........oo^o..........
+......ooooawaaoooo......
+....oo323ocaaco323oo....
+...o33332occcco32333o...
+...o232223cccc332232o...
+...o3133212222123313o...
+...o3312233333321133o...
+...o33331wwwwww13333o...
+...o3332222222222333o...
+...o3332111111112333o...
+...o3322112113112233o...
+...o33222o2112o22233o...
+...o33ooo321123ooo33o...
+...o3o1oow2112woo1o3o...
+...o3ow3oo2112oo3wo3o...
+...o3333331111333333o...
+...o3322111B11112233o...
+...o332211oAoo112233o...
+...o33221o1111o122cco...
+...occ221111111bbbcco...
+..ooccbbabbbbbbbbbc3oo..
+..o1ccbbbabbbbb1223c1o..
+.o1333bbbbbbbb112ccc31o.
+o13o332211111bbbacc3o31o
+o33o332bbbbbbbbb2233o33o
+o3coccabbbbbbb11223coc3o
+.oooccbbbbb111112cccooT.
+...o3322112111bbbccco...
+...oc3221bbbbbbbccc3o...
+...occbbbbbbbbbbc333o...
+....occccbbbbb33333o....
+.....ooo33333333ooo.....
+.....occoooooooocco.....
+....oaacoo....oocaao....
+....ooooP......ooooo....
diff --git a/parts_pl_src/body/pl_centipede.txt b/parts_pl_src/body/pl_centipede.txt
new file mode 100644
index 0000000..ddbe083
--- /dev/null
+++ b/parts_pl_src/body/pl_centipede.txt
@@ -0,0 +1,43 @@
+# pl_centipede: from pixellab_src/pl_centipede/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 45)
+# head_top at (27, 28) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (47, 55) (from part/probe)
+.........c...........................
+........b...........cbb..............
+.......cc...ooooo..o.obc.............
+.......oo.o311112oo3o.ooc............
+........oo1111^1132o....oc...........
+........o111111112o3o................
+.......oo211113333233o...............
+......o1a311131o1o323o...............
+..c...ooob111oao1a323o...............
+.ba...ooa31a1oo11a323bo..............
+.aa...o3322223aaa3B23ac..............
+oaa...oo22aa2233oo2o3aao.............
+oab...cao222222ocboo3aao.............
+obac.cabobo2bobocaooobao.............
+.obaaabcooooo1oocabobabo.............
+..obbbcoooooooooobaaabo..............
+...oooo.oo33333oocbbbbo..............
+.......o3oo222oooooooo...............
+......oo322ooo33o33oo................
+.....oco3b211a22oooao................
+.......oo221112aooooao...............
+......oo23o3333o3Aooo................
+.....oao22b111223ooco....ooooo.......
+......oo3211112b3oobboooo211o21o.....
+.......o3o211223oooobo211o111o11o....
+......oo223333o32oo3o3o211o223o21o...
+.....oao22111112ao3aoo2o222o22o223o..
+......ooob211a123oooao12o222ob3o233o.
+.......o3o32222oooooo3223o23o33o3b3o.
+......oob22333323o3bo3o22o23o33o3o3o.
+.....oao321111123oooaooa3o3oooooo33o.
+.....oooo211a112booooao33ooooooo3oT..
+........oo322223oo3oooo3oooooooooco..
+.......oo3ooooo323aooo3ooocooccoobco.
+......oaco332222233ooccooobcoobcooooo
+....oooboooo333333ooooccooocooooo....
+......ooooooooooooPooooooooo.........
diff --git a/parts_pl_src/body/pl_centipede_b.txt b/parts_pl_src/body/pl_centipede_b.txt
new file mode 100644
index 0000000..11cf23c
--- /dev/null
+++ b/parts_pl_src/body/pl_centipede_b.txt
@@ -0,0 +1,47 @@
+# pl_centipede_b: from pixellab_src/pl_centipede_b/base.png (variant of pl_centipede) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 44)
+# head_top at (27, 23)
+# back at (31, 34)
+# tail at (49, 55)
+.........cc...........................
+........a............cbb..............
+.......cc...........o.cb..............
+.......c....oo^oo..o3o.oc.............
+........o.oo22222oo3o....c............
+........oo212222223oo.................
+.......o2111222222233o................
+......o22112222222223o................
+......o322122223332223o...............
+.....oowo22222oowo3223o...............
+.....oaco2222oaowa3223o...............
+..c..oacb2222oo1wa3223o...............
+.ba..o2a222223aaa3222oco..............
+.aa..o222222223332223oac..............
+oaa..o222222222222B23oaao.............
+oab..o32222222222233ooaao.............
+ocac.co32222222223oooobbo.............
+.obaaaco322222233obbcbabo.............
+..obbbo3oo33333ooobaaabo..............
+...ooo3333ooooo333obbbbo..............
+.....o2113333333323ooooo..............
+....o32a1122222cc23333oo..............
+....o32c2222222aa2333333o.............
+....oo322222222222o33333oo............
+...o3233222222223A3222333oooooooo.....
+..o3212233333333322222333oo3212o2oo...
+..o32ac11222222222222a333o232123212o..
+..o32a211122222aa2222a333o22o222o22o..
+..o322222222222aa2222333o32ao22ao2a2o.
+...o3222222222222222333o3o222o2o2o223o
+...ooo2222222222223333o33oo22o222o223o
+..o33o32222222222333oo2333o22o222o223o
+..o322oo333333333ooo222233o22o222o223o
+..o221111oooooooo22222c233o22o322o3a3o
+..oo2a2111222222222222a3333o2o3a3o3a3o
+..oooc2222222222223322333o3a3o3a3o33T.
+...o3o322222222222aa3333o333o333o33oo.
+....oo33322222222333333o3333o33ooooco.
+.....oo33333333333333ooo333oooocoooooo
+...oobcoo33333333333ooccooocoooo......
+....ooo..oooooooooPo..oooooo..........
diff --git a/parts_pl_src/body/pl_centipede_c.txt b/parts_pl_src/body/pl_centipede_c.txt
new file mode 100644
index 0000000..1348b8c
--- /dev/null
+++ b/parts_pl_src/body/pl_centipede_c.txt
@@ -0,0 +1,44 @@
+# pl_centipede_c: from pixellab_src/pl_centipede_c/base.png (variant of pl_centipede) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (29, 44)
+# head_top at (27, 23)
+# back at (31, 34)
+# tail at (48, 55)
+..........oo^o.o....................
+.......ooo11o1o1o...................
+.....oo11o111111ooo.................
+....o11111111111111o................
+...o111111111111111oo...............
+..o111111111111111111o..............
+..o111111111111111112o..............
+..o11o3111113333111222o.............
+.o13owo31113owow3111333.............
+.o2owoo31113woow311113o.............
+o11owoo31113ooow311313oo............
+o1333aa31113aaa3B111333o............
+.o313331111133331121333o............
+.o31111111111111132313o.............
+.o33111111111111132333o.............
+..o311212111111311333o..............
+..o331322113131133333o..............
+...o3333221313333333oo..............
+...oo333333333333333o...............
+..ob3331333333333c33o...............
+.oao3131313131133oaao...............
+oaoo3111111111A333oao...............
+oo.o111111111113333oooo.............
+..oc3111111111113bo33c3ooooo........
+.oac3111111111113oaoccc33ca3oooo....
+oaoo33111113111333oao3ca22ac2211o...
+oo.o331111331113333oo3ca22caao212o..
+..oac311111111133cbo332ca22ca23123o.
+.oabo313111111133ocao32ca22ca23223o.
+.oaooc3311113113333ao32cc33cc33233o.
+..ooao33313133333coo333cc33cc33333o.
+..oaoo33333113333oao333cc33c33333oo.
+..oao.o33333133133oao33c333c33333T..
+..oo..o333331331333o33c333c3o3obo...
+......oco33333333333o3bobooobooobo..
+.....oaoo3333333333oboooocoooboooooo
+....oacoooo333333oooobooobo.ooo.....
+....oooo...oooooP...ooo.ooo.........
diff --git a/parts_pl_src/body/pl_centipede_d.txt b/parts_pl_src/body/pl_centipede_d.txt
new file mode 100644
index 0000000..01c7bc8
--- /dev/null
+++ b/parts_pl_src/body/pl_centipede_d.txt
@@ -0,0 +1,43 @@
+# pl_centipede_d: from pixellab_src/pl_centipede_d/base.png (variant of pl_centipede) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (29, 45)
+# head_top at (27, 26)
+# back at (31, 34)
+# tail at (47, 55)
+.........c...........................
+........a...........caa..............
+.......cc...oo^oo..o2obc.............
+.......oo.o211112oo2o.ooc............
+........oo111111132o....oc...........
+........o111111112o3o................
+.......oo211112233233o...............
+......owa31112wowo3233o..............
+..c...ooob111oaowa3233o..............
+.ba...ooa31a1oo1wa323bo..............
+.aa...o3222213aaa3B23ac..............
+oaa...oo22aa123332233aao.............
+oab...cao222222occ333aao.............
+ocac.caboao2boboca33obao.............
+.ocaaabcooooowoocabocabo.............
+..obbbco33ooooooobaaabo..............
+...oooo331122333ocbbbbo..............
+.....o33111111233ooooo...............
+....ob333111122233333o...............
+....obbaaa2222233bbbo................
+....obbaaaaaaaaabbbbo................
+...o223baaaaaaabAb33o....oooooo......
+...o221113bbbbb33333o...o2aa211oo....
+...o22111111111123333ooo212aa211ao...
+...o3311111111112333b33b3212aa21aao..
+...ob2221111122233bbb33ba311aaa22ao..
+...obaa222222222bbabb322aa222aa22abo.
+...obaaaaaaaaaaaaabb3322aa222ab22bbo.
+....obaaaaaaaaaaaab33322aab22ab33bbo.
+....o3bbbaaaaaabb2333322bbb23bb33bco.
+....o332bbbbbbb222233333bb333bb33b3o.
+....oo332222222222333333bb333b33boT..
+.....o33333222223333333bb333boo3oco..
+......oo333333333333333bo3cooccoocco.
+.....ooco33333333333occoooccoobcooooo
+....ooocooo3333333ooooccooocooooo....
+......ooooooooooooPooooooooo.........
diff --git a/parts_pl_src/body/pl_chain.txt b/parts_pl_src/body/pl_chain.txt
new file mode 100644
index 0000000..f2ab06a
--- /dev/null
+++ b/parts_pl_src/body/pl_chain.txt
@@ -0,0 +1,49 @@
+# pl_chain: from pixellab_src/pl_chain/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 44)
+# head_top at (32, 27) (from part/probe)
+# back at (27, 36) (from part/probe)
+# tail at (42, 48) (from part/probe)
+...................oooo...................
+.................oo1111oo.................
+................o1wwwwww1o................
+...............o1w122221w1o...............
+...............3112oooo211o...............
+..............o112o....o211o..............
+..............o12o......o21o..............
+..............o12o......o21o..............
+..............o12oooooooo21o..............
+..............o12o333^22o21o..............
+..............ooo221aa122ooo..............
+.............o322b111111b223o.............
+.............o2ca11111111ac2o.............
+............o32ca11222211ac23o............
+............o3a222223322222a3o............
+............o33b222obbo222b33o............
+............o332222caac222233o............
+............o332222cbbc222233o............
+......oo....o332B222cc2222233o............
+.....321oo...o332222cc222233o.............
+....o22221o..o33322occo22333o.............
+....o23332o...o3b32222223b3o3.............
+....o23o32o....o3333333333o...............
+....o23232o.....oo333333oo................
+....o33132o......ooooooooo................
+....oo2133o......o3333333o................
+...ooo11oo.....ooo3A22223ooo..............
+..o1232o...oooo22o3211123o223o..ooo.......
+.o12323o.oo22ooooo3222223ooo33oo211o......
+o22o333oo22333ooooba222aboo311113322o.....
+o23ooo.o233ooo22oo2111123o3ooo3T3oo22oo...
+o313o..o3oo32abb2o2211123obb22oooo33o22o..
+.o13oooooobaa2222o2222223o322abo3o313321o.
+.o23oo333o221232232222222o322222oooo12o12.
+.o2333ooooo22133o33222223oo3112oboooooo11o
+.o313o32211o22ooooo3333oo33oo22oo21233o22.
+.oo3123oo2213o11111oo3o111111ooo12333313o.
+.o3o3212oo32ooo333o2oo32o2333oo32ooo112oo.
+..o3ooooo211112ooo2111112oo2111111oo33o...
+...ooo333o33333ooo3333333ooo333333ooooo...
+......o222oooo33oo3ooooo3oo3oooooo333o....
+.......ooooo.o32222oo.oo22223o..ooooo.....
+..............oooooP....ooooo.............
diff --git a/parts_pl_src/body/pl_chain_b.txt b/parts_pl_src/body/pl_chain_b.txt
new file mode 100644
index 0000000..5b9ce1c
--- /dev/null
+++ b/parts_pl_src/body/pl_chain_b.txt
@@ -0,0 +1,49 @@
+# pl_chain_b: from pixellab_src/pl_chain_b/base.png (variant of pl_chain) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 44)
+# head_top at (32, 18)
+# back at (27, 36)
+# tail at (49, 48)
+...................oo^o...................
+.................oo1111oo.................
+................o1wwwwww1o................
+...............o1w122221w1o...............
+...............o112oooo211o...............
+..............o112o....o211o..............
+..............o12o......o21o..............
+..............o12o......o21o..............
+..............ooooo.....oooo..............
+.............o22222o..oo2222o.............
+............o2211122oo3211122o............
+...........o221bb22122112bb112o...........
+...........o31bc222211222bbb12o...........
+...........o32b22222222222b223o...........
+...........o322222223322222223o...........
+...........o3322222obbo22222b2o...........
+...........o3322222caac2222bb3o...........
+............o3bb222cbbc2222b3o............
+......ooo...o3b2B222cc2222233o............
+.....o111oo..o322222cc2222b3o.............
+....o123221o.o33a22occo22bb3o.............
+....o13o321o..o3b2222222a23o..............
+...o233oo22o...o33b2222233o...............
+...o23o1332o....oo3b22bb3o................
+...o3311333o.....oo333b3oo................
+..o2331333o......o3ooooo3o................
+.o12332ooo.......o3A22223oooo.............
+o11o323o..ooooo..o3211123o112o..oooo......
+o23o333ooo11223o.o3222223o332o.o2111o.....
+o23oooo3o133333oooba222aboo3o3oo2322o.....
+o2321o33o3oooo22oo2111123o3ooo112oo22oT...
+.o321o3oo3o32abb2o2211122obb22o23o13o32oo.
+.oo213o3o3baa2222o2222222o322abo33312o311o
+o1322ooooo221232232222222o3222223oooo2o31o
+o13oo32111o22133o33222223oo31123o11112o31o
+o12oo333222o22oooooo3333oooooo2o222222o22o
+o321112ooo22oo311112o33o211112oo22oo32122o
+.o33333oo2oooo3333222oo3222222ooo11oo332o.
+..ooooooo3111112oooooooooooo2111133o3ooo..
+....o3222o333223oo33333222oo322333o323o...
+.....o322ooooooooooooooooo333oooooo23o....
+......ooooo..o3222oooooo332222o..oooo.....
+..............oooooP....oooooo............
diff --git a/parts_pl_src/body/pl_chain_c.txt b/parts_pl_src/body/pl_chain_c.txt
new file mode 100644
index 0000000..cfa73ef
--- /dev/null
+++ b/parts_pl_src/body/pl_chain_c.txt
@@ -0,0 +1,49 @@
+# pl_chain_c: from pixellab_src/pl_chain_c/base.png (variant of pl_chain) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 44)
+# head_top at (32, 18)
+# back at (27, 36)
+# tail at (49, 48)
+....................o^o...................
+.................oo1111oo.................
+................o1wwwwww1o................
+...............o1w122221w1o...............
+...............3112oooo211o...............
+..............o112o....o211o..............
+..............o12o......o21o..............
+..............o12o......o21o..............
+..............o12oooooooo21o..............
+.............oo12o222222o21oo.............
+.............o11111111111112o.............
+............o1122222222222223o............
+............o12b2222222222b23o............
+............o122222oooo222223o............
+............o1222ooaaaboo2223o............
+............o1222oaabbbbo2223o............
+............o122oaabbbbbco223o............
+............o122obbbbbbbco223o............
+............o122Bcbbbbbcco223o............
+............o1222ocbbbcco3223o............
+............o12222occcco32223o............
+............o1b2222oooo3222b3o............
+............o22b2222222222b33o............
+.............o23333333333333o.............
+..............oooooooooooooo..............
+.................o3333333o................
+...............ooo322A223oooo.............
+...........oooo22o3211123o22oo..ooo.......
+...o.....oo111o3oo3222223ooooo.o211o......
+..o12o..o1233333oocb222bcoo311133321o.....
+.o122o.o22oo3333oo2111123ooo33232oo12oT...
+.o12oo.o333oooo33o2211123occooooo332o22o..
+o12221o23oo222bcco2222223o3222boooo11o21o.
+o13321o23o321132232222222o322222ooo31oo12o
+o23232ooooo2223oo33222223oo3222ccoooooo12o
+.o31ooo1111o22oooooo3333o33oo333o1123oo12o
+.o32131oo221oo111111o33o11111o3o12333o13o.
+..o33323oo32oo3oooo33oo32o3333oo22oo213oo.
+...ooo2oo321112oooo32oo223oo2211122o33oo..
+.....o2233333333ooo3333333oo333333oooo....
+......o222oooo31112ooooo333333oooooooo....
+.......oooo..oo3333oo..oo2222o..ooooo.....
+..............oooooP....ooooo.............
diff --git a/parts_pl_src/body/pl_chameleon.txt b/parts_pl_src/body/pl_chameleon.txt
new file mode 100644
index 0000000..36fca68
--- /dev/null
+++ b/parts_pl_src/body/pl_chameleon.txt
@@ -0,0 +1,48 @@
+# pl_chameleon: from pixellab_src/pl_chameleon/base.png (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 41)
+# head_top at (30, 24) (from part/probe)
+# back at (38, 28) (from part/probe)
+# tail at (48, 45) (from part/probe)
+..............oooo..................
+............oo1113o.................
+...........o2121233o................
+..........o213233332o...............
+.........o2123332332o...............
+........o1132322^233o...............
+........o12332222223o..ooo..........
+........o223322222233oo112o.........
+.......o3333222222233o3113o.........
+.......o1333322222333o31B33o........
+.......o1333332222233o23333o........
+.....ooo2333323333233oa1233o........
+...oo11o3333331111333oaaa122o.......
+..o1112o3333211122233oaaaa122ooo....
+..o211233332112oooo3332aaa112222o...
+o3321121332212o1113o332aaa111233o...
+o12o213111312o2ww11o31o33211a233o...
+oww3o3311133o2w3w11o31o33221aa2oo...
+ow3w2o31113o31wow11o312332311a23o...
+o3113o11112o2111112o312o32a21112o...
+.o333o111122o211123o311o3222112a3o..
+..o3o31111223o3333o3311o3222112a3o..
+...o3a11a11123ooooA3111o322212223o..
+...o2111111112233331112o3322222333o.
+...oo11113333wo1111111o33332223333o.
+...o13333221111oo11113o33333332o33o.
+...oo222222322212o123o322o333212o3T.
+.....ooccccccccccccooo3222oo3211o3o.
+.......ooccccccccoooco32111o32112oo.
+.........ooooooooocccco211ao33212o..
+........ooooo..oobccccco111ao3222o..
+........oco3o...oooooooo311ao3333o..
+........oc33o...o33ooo.o3111oo333o..
+........oc33o...o3333o.o31a1o333o...
+........occ3o....o333ooo3aa3o333o...
+........occ3o....ooooooo3aa3oooo....
+.....oo333333o...3333oo33aa3o3333oo.
+....o123213321oooooooo2222113o31321o
+....oooo11333zo....o1123111111ozoooo
+.......ooo..oo.....ozoo311332zoo....
+....................o..oz3o.ooo.....
+........................Po..........
diff --git a/parts_pl_src/body/pl_chameleon_b.txt b/parts_pl_src/body/pl_chameleon_b.txt
new file mode 100644
index 0000000..16bd274
--- /dev/null
+++ b/parts_pl_src/body/pl_chameleon_b.txt
@@ -0,0 +1,57 @@
+# pl_chameleon_b: from pixellab_src/pl_chameleon_b/base.png (variant of pl_chameleon) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (31, 37)
+# head_top at (30, 10)
+# back at (38, 28)
+# tail at (49, 45)
+.................o^ooo................
+................o11133o...............
+...............o1133333o..............
+...............o1333333o..............
+..............o13332223o..............
+..............o13322222o..............
+.............o1333222223o.............
+.............o1333222233o.ooo.........
+.........ooo.33333333333oo212o........
+........o312o133321111o3o3233o........
+......o31112313321112223o3333o........
+......o311121333111oooo33b233o........
+.....o11o113132312o1112o33a233o.......
+.....o111o2311131o13111o333aa3o.......
+.....o1312o311133113112o1o3aa23o......
+.....o1112o111123111112o1o3a223o......
+......o223211111331112o212o2123oo.....
+......o333a11a1123oooo2112o2111boo....
+.......oo11111111122221112B111aab2o...
+......oo111o33331o1111111o3111aa22o...
+......oo13311111113311112o311aa1122o..
+.....oao311233332211o122o3311a111abo..
+....o1aao2233cccoo2222oo333211111abo..
+....oa2o3oocccccccoooo2211331111aab2o.
+....oa3o13zooooooozz1111113o211aa122o.
+...o2ao111z33333zzz111111233o1111112o.
+..o122ozzozzzzzzzz2o11111233o311111bbo
+.o111oooozz1111111zAo1112o333o3111abbo
+.o112o3zz1111111111zzoooo3333o211aab2o
+oaa13o111111111111111zzzz3333o211a122o
+o1a1o311111111111111111zzz33bo311112bo
+o112o111111111111111111zzzbbbo31111bbo
+oa12oa11111111111111111zzabbbo3111abbo
+o112oaa1111111111111111zaabb3o1111a22o
+o112o1aaa111111111111aaaaa33o11111122o
+o11oo1aaa11111111111aaaaaz33o13111112T
+o21ooo1111111111111111zzzc33o1o311312o
+oo11oo311111111111111zzzc333ooo312313o
+.oo33oo3z111111111111zcc3333ooo11o31o.
+...ooooo3z11111111zzccco331133o23o3o..
+......o3o3czzzzzzzzccco3311123ooo.oo..
+......o23ooccccccccccco311aa233o......
+......o223ooocccccccco331111b3o.......
+.......ob2333oooooooooo33112b33o......
+........obb3333o......o33333333o......
+......oo3333333o.......o3333333o......
+.....o1123333333o.....oo3333112o......
+.....o12o1233333o....o1123113111o.....
+.....ooooooooooo.....o123311331zo.....
+.....................ooooozoooooo.....
+..........................Po..........
diff --git a/parts_pl_src/body/pl_chameleon_c.txt b/parts_pl_src/body/pl_chameleon_c.txt
new file mode 100644
index 0000000..1d89200
--- /dev/null
+++ b/parts_pl_src/body/pl_chameleon_c.txt
@@ -0,0 +1,64 @@
+# pl_chameleon_c: from pixellab_src/pl_chameleon_c/base.png (variant of pl_chameleon) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 30)
+# head_top at (30, 3)
+# back at (38, 28)
+# tail at (44, 45)
+.............o^oo..............
+...........oo1113o.............
+..........o2121233o............
+..........o12233332o...........
+.........o113332332o...........
+........o1133222233o...........
+........o1232222223ooooo.......
+........o22322222233o111o......
+.......o133322222333o113o......
+.......o133322222333o1333o.....
+.....ooo133333333233o3333o.....
+...oo11oa33331111333a3333o.....
+..o1112oa33311122233aaa122o....
+..o21123333112oooo33aaaa122ooo.
+.332112133112o1112o33aaa11222oo
+.wwo21311131o2ww11o31aaa11123oo
+ow3wo231113o2w3w11o3132211ac3oo
+o3113o31112o113112o31o22c11a23o
+.o333o11112o211122o31o22a21112o
+..o3o3111122o2222o331o3222112a.
+...o1a11a1112oooo3311o3222112a.
+...o11111111123333112o32221222.
+...oo111133333111112o3322222...
+...o1333311111oo1123o2233223...
+....o322222222cc33oo2223a333o..
+.....oooccccccccoo3222B3a333o..
+........ooooooooo33111o3a331o..
+.........o3o33333A3111o333211o.
+.........o3o322223o111o332211o.
+.........o33o22223o111o332211o.
+.........o33oo2222o111o3o2111o.
+.........o333oo322o111o3o211ao.
+.........o133oooooo11aooo21aao.
+.........o113o..ooo11aooo21aao.
+.........o113o..o3o111o.o311ao.
+.........o113o..o3o111o.o311ao.
+.........o11o...oco112o.o311o..
+........o112o...oco11o..oa11o..
+........o11o....o3o11o..o311o..
+........o11o....o3o11o..o3a3o..
+........o11o....o3o11o..o333o..
+........o21o.....oo11o...o33o..
+........o333o....oo11o...oo3T..
+.........o33o.....oa13o...o33o.
+.........o13o.....oa13o....o33o
+.........o13o......o13o....o33o
+.........o13o......o13o....o33o
+.........oa3o......o13o....oc3o
+.........oa3o......oa3o....oc3o
+.........oa3o......oa3o....o33o
+.........o13o.....ooa3o....o33o
+.........o13o.....oo13o....o33o
+........oo13o...oooo13o..oo333o
+......ooo133o..o13oo13o.o12113o
+.....o121333o..oooo113o.oz312oo
+.....oooooo....o111131o..ooo...
+...............ozo133zo........
+................Pooooo.........
diff --git a/parts_pl_src/body/pl_chameleon_d.txt b/parts_pl_src/body/pl_chameleon_d.txt
new file mode 100644
index 0000000..c6c28cf
--- /dev/null
+++ b/parts_pl_src/body/pl_chameleon_d.txt
@@ -0,0 +1,61 @@
+# pl_chameleon_d: from pixellab_src/pl_chameleon_d/base.png (variant of pl_chameleon) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 33)
+# head_top at (30, 6)
+# back at (38, 28)
+# tail at (44, 45)
+....................oooo................
+..................^o1113o...............
+.................o1112233o..............
+................o112222332o.............
+...............o1122333332o.............
+..............o12232322333o.............
+..............o12333222233o.............
+.............o1233322222233o............
+.............o1233322222233o..ooo.......
+............o12233222222233ooo211o......
+............o12333222222233oo3113oo.....
+...........oo13333222222233oo31333o.....
+...........o113333322222233oo33333o.....
+...........o1133333222223333333333o.....
+.........ooo1133333322233331bbb333oo....
+........ob1o11333333333331111bbbb33oo...
+......oobb1o12333333333111111111bb333o..
+....oo32111o13333333313322111111bbb3oo..
+...o2111311o13333333331111112111bbbcoo..
+...o2111131o333333132111222222111bbccoo.
+..oooo11132123333131111ooooo322111bccoo.
+.oo22oo111311333112111o11112oo21111333oo
+.o2y22o31131111113112o11111112o2111333oo
+o2ywwooo113111111221o11wwwBo11o2111133oo
+oyywwwoo323111111223o1ywwwooo11o2111333o
+oyywwoo2o2311111122o11ywwwoooy1o2111333o
+oyyoooo2o2111111112o11yooooooy1o2111133o
+oyyoooo2o1111111111o11yooooooy1o2111133o
+o3yooow2o1111111111oA1yooooowy1o2111133o
+ooyyoo22o1111111111o11yooooo2y1o2111233o
+ooo3yyy2311111111112oy3yyyyyy1o21111333o
+o1oo111o11o1111o11113o3yyyyyyoo21111333o
+o113ooo311111111111112o11111oo21111133o.
+o1aa2211111111111111112ooooo3211111333o.
+.oaa111111111111111111122222aaaa111333o.
+.o31111111111111111111111111aaaa11333o..
+..o3111111111111111111111111111113333o..
+...o32111111111111111111111111113333o...
+....o331111111111111111111111133333o....
+.....oo33211111111111111111133333oo.....
+.......oo3333322222222233333333oT.......
+.........oo3333333333333333oooo.........
+..........ooooooooooooo333333oo...ooo...
+........oo333o3cccccc333333211oo..o1o...
+.......o11133o3ccccccc333333111ooo13o...
+......o11133o32xxxxxxc22222o3111o313o...
+......o1113oo3xxxxxxxx11222oo1111o3o....
+......o1132oo13xxxxxxx11122oo1111o3o....
+......o313ooo113xxxxxc11113o3o112oo.....
+.......o33o.o113occcc311113o3o33o.......
+........oo..o1133oooo331113ooooo........
+............o33333o..o33333o............
+...........o211333o...o3111o............
+...........o11333o....o1113o............
+............ooooP......oooo.............
diff --git a/parts_pl_src/body/pl_chick.txt b/parts_pl_src/body/pl_chick.txt
index b6f9a06..14b0319 100644
--- a/parts_pl_src/body/pl_chick.txt
+++ b/parts_pl_src/body/pl_chick.txt
@@ -1,9 +1,9 @@
# pl_chick: from pixellab_src/pl_chick/base.png (pixellab_library.py extract)
# pivot at (32, 60)
# aura at (31, 39)
-# head_top at (29, 26) (from part)
-# back at (33, 28) (from part)
-# tail at (46, 40) (from part)
+# head_top at (29, 26) (from part/probe)
+# back at (33, 28) (from part/probe)
+# tail at (46, 40) (from part/probe)
................ooo..............
..............oo23o..............
.............o3113oo.............
diff --git a/parts_pl_src/body/pl_chick_b.txt b/parts_pl_src/body/pl_chick_b.txt
new file mode 100644
index 0000000..9a67845
--- /dev/null
+++ b/parts_pl_src/body/pl_chick_b.txt
@@ -0,0 +1,58 @@
+# pl_chick_b: from pixellab_src/pl_chick_b/base.png (variant of pl_chick) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 34)
+# head_top at (29, 11)
+# back at (33, 28)
+# tail at (53, 40)
+......................oooo...................
+....................oo223o...................
+...................^32113o...................
+................ooo31112o3oo.................
+.............ooo222111123333oooo.............
+...........oo2211111111113333333o............
+..........o2111111111111112233333oo..........
+.........o2111111111111111113333333o.........
+........oaaa11111111111111111cccc333o........
+.......oaaaa1111111111111111aaaccc333o.......
+......ocaaaa1111111111111111aaaccc3333o......
+.....o3baaaa1111111111111111aaaccc3333o......
+....o31bbbb111111111111111111accc333333o.....
+....o2111111111111111111111112223333333o.....
+...o221111111111111111111222222223333333o....
+...o22211111111111111111122222222333333co....
+...o2221111111111111111122222222223333ccco...
+..o3222211oo11111111111122222222222333ccco...
+..oa22222ocao11111oooo2222222222oo2333cccco..
+.oaaa2222oawo1111ocaccoB2222222obo23333ccco..
+.oaab2222oaoo2222oawoco2222222obo323333333o..
+.oaa22222oaoocc22oaooco222222oabo323333333o..
+.o3223222oaobxzc2oaooao22222oaco32233333333o.
+.o222b2222ccwybb33cccc22222obcco322oooo3333o.
+.o222ob22aa3bbbc32333aa222ocaco3222o333o333o.
+.o222oaooaa22cc322222aA22oaacco322311333o33o.
+.o222ocaoo222222222222cooaacco322231113333o..
+.o2222ocaao2222222222ooaaccco322231111133oo..
+.o2222oocaboo22222oooaaaccoo32222311111333o..
+.o322222ocbaaoooooaaaaccco22222223211111333o.
+.oo222222oocbaaaaabaccooo322222223o11111333o.
+oao32222222oobbaccbooo322222222223o11111133T.
+oao3222222222oooooo322222222222233o11111acco.
+oaoo332222222222222222222222222333o1111aaacco
+oa1o33222222222222222222222ccc3333o2111aaacco
+o113o33aa22222222222222222caacc333o21111acc3o
+o313oo3caaa222222222222222ccccc333o221111333o
+.o333oocccc322222222222233cccc3333o322113333o
+.o3333occcc3322222222233333cc333333o3333333o.
+..oo333o3c3333333333333333333333333o3333333o.
+....oooooo33333333333333333333333333oo333oo..
+..........oo3333333333333333333333oo..ooo....
+............oooo3333333333333o3ooo...........
+............o333ooooooooo3333oo..............
+............ob333o......o3333o...............
+............oaa33o......o31abo...............
+............oa1333o.....o31bboo..............
+...........oo11333o.....o11133o..............
+...........o112333o.....o11133o..............
+...........o3333oo......o11133o..............
+...........ooooo........o33333o..............
+.........................Poooo...............
diff --git a/parts_pl_src/body/pl_chick_c.txt b/parts_pl_src/body/pl_chick_c.txt
new file mode 100644
index 0000000..032546a
--- /dev/null
+++ b/parts_pl_src/body/pl_chick_c.txt
@@ -0,0 +1,64 @@
+# pl_chick_c: from pixellab_src/pl_chick_c/base.png (variant of pl_chick) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 34)
+# head_top at (29, 4)
+# back at (31, 28)
+# tail at (43, 40)
+..............ooo..............
+............^o23o..............
+.........ooo32233o.............
+........o32222333o.............
+.......o3112222233o............
+.......32222222223o............
+......oo2222ooo2233o...........
+......oco22occo2223o...........
+......oao22oboc2223o...........
+......oboz2oboc2233o...........
+......ooxyc3oc32333o...........
+.......occ322223333o...........
+........o333333333o............
+.........ooooo3333o............
+...........o333233o............
+...........o332233o............
+..........o322223o.............
+..........o222233o.............
+.........o222223o..............
+.........o222233o..............
+........o2122233o..............
+........o212223o...............
+.......o2222233o...............
+.......o122223o................
+......o2122233o................
+......o2122233B................
+.....o22122333o................
+.....o211222333oo..............
+.....o21122233333ooo...........
+....o322222222333333oo.........
+...o3322222222222oo333o........
+...o2222222222A2o322223o.......
+..o322222222222o21112223o......
+..o222222222222o212222223o.....
+.o3222222222222o222222222o.....
+oc3222222222222o2122222322o....
+oco22222222222233212232232o....
+oabo2222222222ooo22322o23oT....
+ocaboo22222oooaaco22323o323o...
+.ocbaaoooooaaabbco323332322o...
+.ooocbaaaaabbcaoo3o322322322o..
+.o33oobbaccbooo3333o32322322oo.
+..o222oooooo33222233o32322322o.
+..o322222222222222333oo322232o.
+...o33222222222233333333o32232o
+....o333222223333333333o.o3232o
+.....oo333333333333333o...o322o
+.......oo3333333333ooo.....o32o
+.........oooooooo22o........oo.
+..........o3o...o22o...........
+..........o3o....o3o...........
+..........o3o....o2o...........
+..........o3o....o2o...........
+........ooo3oo...o2o...........
+.......o232333o.oo2o...........
+.......o333oooo23223o..........
+........ooo...o3333oo..........
+...............Pooo............
diff --git a/parts_pl_src/body/pl_chick_d.txt b/parts_pl_src/body/pl_chick_d.txt
new file mode 100644
index 0000000..7e76fd6
--- /dev/null
+++ b/parts_pl_src/body/pl_chick_d.txt
@@ -0,0 +1,50 @@
+# pl_chick_d: from pixellab_src/pl_chick_d/base.png (variant of pl_chick) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 38)
+# head_top at (29, 18)
+# back at (33, 28)
+# tail at (45, 40)
+...............oo................
+..............^abo...............
+.............obabo...............
+.............obaco..o............
+...........o.oacco.obo...........
+..........oaooacccoabo..oo.......
+..........obcoacccoaco.oabo......
+..........obc3accc2acooaaco......
+.........oo222ac33233ooacco......
+.......oo21111121133333cco.oo....
+......o31111111111112333ooaao....
+.....o311111111111B1123333aco....
+....o321111111111111113233co.....
+.ooo33111111111111111113333o.....
+.oao3oo11111111111111132333oooo..
+.oboocbo11111oooo111111333ocoaao.
+..o3oa1o1111ocacco1111333oco3aco.
+..o3oboo1111oa1oco111113occo3co..
+..o3oboocc11obooco11113occo33ooo.
+.oo33cob1zc1oboobo1111obao333aabo
+ocabb3o1zbb33cccc3111ocbco333ccco
+ocbbb1obbbc31333Ab11ocabo33133oo.
+.oaoo31occ311111bbooaabb33333o...
+.ocabo1111111111oobabbbo33333oT..
+..ocaboo11111oooaaabboo333333aao.
+..oocbaaoooooaaabbbbo33333333cbo.
+...ooocbaaaaabbcaooo31133o33ooo..
+...o33oobbaccbooo333113322o3aoo..
+....o211oooooo331111133331o3cbo..
+....o3111111111111113333o13ooo...
+.....o331111111111333333o12o.....
+.....oo33311111333333333o12o.....
+.....o3oo33333333333333oo12o.....
+.....o133oo3333333333ooo112o.....
+.....o2o3o.ooooooooooo.o312o.....
+.....o33o...o3o....o3o..o33o.....
+......oo....o3o....o3o...oo......
+............o3o....o3o...........
+............o3o....o3o...........
+..........ooo3oo...o3o...........
+.........o131333o.oo3o...........
+.........o333oooo13133o..........
+..........ooo...o3333oo..........
+.................Pooo............
diff --git a/parts_pl_src/body/pl_chipmunk.txt b/parts_pl_src/body/pl_chipmunk.txt
new file mode 100644
index 0000000..2939cfe
--- /dev/null
+++ b/parts_pl_src/body/pl_chipmunk.txt
@@ -0,0 +1,44 @@
+# pl_chipmunk: from pixellab_src/pl_chipmunk/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 41)
+# head_top at (27, 27) (from part/probe)
+# back at (36, 39) (from part/probe)
+# tail at (42, 50)
+...........o.....................
+...ooo....oco.....ooo............
+...o22o..obcco...o223o...........
+..obc23ooobbcoooo22c32o..........
+..obc2o3bbb2^bb322ccb3o..........
+..obc32bbb2bb22223ccb3o..........
+..oc311aaa1b212223ccb3o..........
+...o11aaa1aa1112223c3o...........
+...311aaa1a111122223oo...........
+..o211aa11a1112222223o.ooooooo...
+..3221aa1b11122222223ooccb2223o..
+.o3222bb2b222222222233obb112223o.
+.o3oo2bb2222oooo222333oa11112233o
+.o31o2bb22231oo1o22333oa11111233o
+.o31o2bb222o1oo1o22333oa11111333o
+ob2o22bb222ooo31o2233cob11112333o
+ob111222222oo3113bbccBob11123333o
+ocbb11333111111bbbccccob2223333o.
+.oz11o1o11o111bAbccccocb222333o..
+..o111o11o111111zz333ocb2223oo...
+...oz11oo11111zzzz3ooccc223o.....
+....oozzzzzzzzzzooo3cccc333o.....
+......o333333333o..3ccc3333o.....
+.....o33zzzzz3333o.3ccc3333o.....
+....o23oz1zooo323o.3ccc3333o.....
+....o212ozo2112233o3ccc3333o.....
+....o333ozo33333o3occcc3333o.....
+.....ooozz1zoooo33occc33333T.....
+.....o3zzzzzzz33333cc33333o......
+....o23111111132233o333333o......
+....o22111111122223o3333oo.......
+....o22311111322233o33oo.........
+.....323zzzzz322333ooo...........
+.....3333ozzz333333o.............
+.....oo333oooo3333o..............
+....o22333o...o3222o.............
+....oooooo.....o232o.............
+................Poo..............
diff --git a/parts_pl_src/body/pl_chipmunk_b.txt b/parts_pl_src/body/pl_chipmunk_b.txt
new file mode 100644
index 0000000..fb051b4
--- /dev/null
+++ b/parts_pl_src/body/pl_chipmunk_b.txt
@@ -0,0 +1,48 @@
+# pl_chipmunk_b: from pixellab_src/pl_chipmunk_b/base.png (variant of pl_chipmunk) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 40)
+# head_top at (27, 19)
+# back at (36, 39)
+# tail at (47, 50)
+..............^..........................
+.....ooo.....oco.....ooo.................
+.....o22o...obcco...o222o................
+....obc22oooobbcoooo22c23o...............
+....obc223cbbb2bbb332ccb3o...............
+....obcc32bbb2bb22223ccb3o...............
+....occ31bbbb1b111223ccb3o...............
+.....o311bbb1bb1111222c3o................
+.....o211bbb1b1111222233o................
+....o2211bb11b1112222223o......oooooo....
+....o2221bb1b112222222233o....ocbbb22o...
+...o32222bb2b222222222233o...occbb2222o..
+...o3o222bb2222ooo22222333o.ocbbb111223o.
+...o31o22bb222o1o122222333o.ocbb11111233o
+...o31o22bb222o1o122223333oobbb111111233o
+..oazoo2222222ooo12aaaz333oobbb111111233o
+.oa1azo2222222o331aa1zaz33ocbbb111111333o
+ozaaaaz13331111111aaaaazz3ocbb2111113333o
+ozaaa1z1131111111zaaaaazz3ocbb2222223333o
+ozaa1z1o1oo11o111z1aaa1zz3occb222233333o.
+.ozzzz11o11oo1111zz111zBzo3ccc22223333o..
+..ozzzz11111111111Azzzzzo3occc32223ooo...
+...oozzz1111111zzzzzoooo333occ33223o.....
+...o333zzzzzzzzzzz33o333333occ33223o.....
+..o23ozzzzzzzzzzzzzoo3223333oc33223o.....
+.obbboz1111zzzzz11obb2223333oc33233o.....
+.ob211o1111111111o22bb23o333oc32233o.....
+.oc211o111111111o2222bc33333oc32233o.....
+..o333o111111111o3333co33333o322333o.....
+...oooz1111111111ooooo333333o32233o......
+...o3z11111111111zzz33333333o33333o......
+...ooz1111111111111z33222233o33333T......
+..o2oz111111111111zz32222233o3333o.......
+..o22ozz111111111zz32222bbc3o33oo........
+..ob23ozz111111zzz3322bbbccoooo..........
+..ocbc3ozzzzzzzzzz332bbbbccoo............
+...oc333oozzzzzzz33322bbc33o.............
+....o33333oooooooooo333333o..............
+.....o33333o........o33333o..............
+....o222333o........o22223o..............
+....ooooooo.........o23233...............
+.....................Pooo................
diff --git a/parts_pl_src/body/pl_chipmunk_c.txt b/parts_pl_src/body/pl_chipmunk_c.txt
new file mode 100644
index 0000000..e39dc3a
--- /dev/null
+++ b/parts_pl_src/body/pl_chipmunk_c.txt
@@ -0,0 +1,61 @@
+# pl_chipmunk_c: from pixellab_src/pl_chipmunk_c/base.png (variant of pl_chipmunk) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 31)
+# head_top at (27, 13)
+# back at (36, 39)
+# tail at (34, 50)
+.oo....................oo.......
+o22o..................o22o......
+o222o................o222o......
+o2322o..............o2232o......
+o2c222o............o223c2o......
+o2c322o...........o223cc2o......
+obcc222o.........o223cbb3o......
+obbc322o...^....o3123cbb3o......
+obbc3223o.oco...o213ccbb3o......
+obbcc223o.ccco.o213ccbbbo.......
+o3bcc233oobccooo223ccbb3o.......
+o3bbc333bbb3bbb3223ccbb3o.......
+.obc332bbb2bb22222ccbbbo........
+.o3c321aaa1b21222233cb3o........
+.o3c31aaa1aa11122223c3o.........
+..o311aaa1a11112222333o.........
+..o211aa11a1112222223o..........
+..o221aa1b11222222223o..........
+.o3222bb2b22222222223o.ooooooo..
+.o3oo2bb2222oooo222333ocb22223o.
+.oo1o2bb22221oo1o22333ob1122233o
+.oo1o2bb222o1oo1o22333o11111233o
+ob2oo2bb222ooo31o2233co11111233o
+obb11222222occc13bbccco11111333o
+ocbb11333111111bbbcccco11113333o
+.oz1111o11o111Abbccccob2223333o.
+..o111oooo111111zz33ocb222333o..
+...oz111111111zzzzooccb2223oo...
+....oozzzzzzzzzzoo.3cccc233o....
+......o333333333o..3cccc333o....
+.....o23zzzzz3333o.3ccc3333o....
+.....o2211zz122223o3ccc3333o....
+....o23211111223223occc3333o....
+....o23111111123322oBcc3333o....
+...o233111111122o322occ3333o....
+...o23o1111111z23o323o3333o.....
+..o22321111111z23o322o3333o.....
+..o23o21111111z23oo223o33o......
+..o23o221111112223o223o3o.......
+..o33o22z1111z22233o23oo........
+...ooo223zzzz22222oooo..........
+.....o2233zzz32222o.............
+.....o2223oooo2222o.............
+.....o2223o..o2223o.............
+.....o222oo..o3223T.............
+......o33o....o223o.............
+......o333o...o3333o............
+......o333o....o333o............
+......o23o.....o322o............
+.....o323o.....o322o............
+.....o223o.....o322o............
+.....o223o.....o222o............
+....o2223o.....o222o............
+....ooooo......o232o............
+...............Pooo.............
diff --git a/parts_pl_src/body/pl_chipmunk_d.txt b/parts_pl_src/body/pl_chipmunk_d.txt
new file mode 100644
index 0000000..5b8f1ba
--- /dev/null
+++ b/parts_pl_src/body/pl_chipmunk_d.txt
@@ -0,0 +1,44 @@
+# pl_chipmunk_d: from pixellab_src/pl_chipmunk_d/base.png (variant of pl_chipmunk) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 41)
+# head_top at (27, 25)
+# back at (36, 39)
+# tail at (44, 50)
+....ooo...........ooo..............
+....o23o.........o222o.............
+...obc2ooooo^oooo22c22o............
+...obc2o33bbbbb3o23cb2o............
+...obc322aaa222232ccb2o............
+...oc321aa11a11122ccb3o............
+...oo211aa1a1111123c3o.............
+....2111aa11111111233o.............
+...oww11a1111www11223o...ooooooo...
+..o222w22222w222222233o.occb2223o..
+..o2222222222222222233oocba111223o.
+..oooo2222222ooo222233ocba11111233o
+..oo2oo22222o222o22233ocaa11111233o
+..1222o2222o22222222111oaa11111233o
+.1111222222221121111ww1ocb11112333o
+1w1111w333ww1111111ww111cb11123333o
+1ww1www333wwww111wwwwBw1cb22233333o
+1ww11www3wwwww1wwwwwww11cb2233333o.
+.1ww11w1111ww11wAwwwww1ccc233333o..
+.1www11wwww111wwwwww111ccc2333oo...
+..1wwwwwwwwww1www1ww11cccc333o.....
+...1w1wwwwwwwww1w1111occc3333o.....
+....11w1ww1www11111oo3ccc3333o.....
+.....o111w1w11113333o3ccc3333o.....
+.....o33111111133233o3ccc3333o.....
+.....o33o111zo32223o3occc3333o.....
+.....o322ozzo22233o33occc3333o.....
+......o222ozo22ooo3333oc33333T.....
+......ooooz1zoo3332223o33333o......
+.....o23zz111zz3222223o33333o......
+.....o2211111113222223o3333o.......
+.....o223z1111z3222233o3ooo........
+......323zzzzzz3222333oo...........
+......o3333zzz3333333o.............
+......oo333ooooo3333o..............
+.....o22333o....o222o..............
+.....oooooo.....o232o..............
+.................Poo...............
diff --git a/parts_pl_src/body/pl_cicada.txt b/parts_pl_src/body/pl_cicada.txt
new file mode 100644
index 0000000..b4f5110
--- /dev/null
+++ b/parts_pl_src/body/pl_cicada.txt
@@ -0,0 +1,41 @@
+# pl_cicada: from pixellab_src/pl_cicada/base.png (pixellab_library.py extract)
+# pivot at (21, 60)
+# aura at (31, 43)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (48, 49) (from part/probe)
+................oooooooooo................
+..............ooaa222222aboo..............
+............ooca22a2^22a22aooo............
+..........o3222b21b22222a22c223o..........
+........oooo2113ba2222222ac3113ooo........
+.......o3111o11132223132223112o113o.......
+......o311112o113223Bb2322311o11113o......
+......o111332o122222323222221o33111o......
+......o113133o222332222233222o31311o......
+......o113oo3o222b13222312222ooo311o......
+......o112oo3o2233b222223b322ooo211o......
+......o111223o223222222222322o22111o......
+...oooo311113o333223222322333o31113oooo...
+.ooa222o3111o33321122222222333o113o222aoo.
+.oa2a2a2oooo3333211222222223333ooo2a2a2ao.
+.o222a223o333322oo3222222oo22333o322a222o.
+.o322b223o3332ooooo33223o3ooo233o322b223o.
+..o3c3333oo22ooo313oA2oo313ooo22o3333c3o..
+...oc333333oooc312ooowooo213oooo3333cco...
+....oc33cooo3oco22ooooooo22oo3oooc33co....
+.....oocco3o33oo2occccccco2o33o3occoo.....
+.....o3ooo3c3c33o2c22223c3o3c3c3ooo3o.....
+....o122ooococ333222222222o3cocooo222o....
+...o123223ooooc3o32222223oo3oooo32232To...
+....o3o333oooooo33o2222o33ooo33o333o2o....
+...oo3oooo223o33ooo2323ooo33o322oooo3oo...
+...o23o.o12o323oc33oooo33co322o21o.o33o...
+...o33o.o22o333oocc3333ccoo333o22o.o33o...
+..oo3o..oo2oo3oooooooooooooo3oo2oo..o3oo..
+o3233o..o32o.oo..ooccccoo..oo.o23...o3323o
+ooooo....o3o.......oooo.......o3o....ooooo
+.........o33o................o33o.........
+........o3o3o................o3o3o........
+.......o22oo..................oo22o.......
+........ooP....................ooo........
diff --git a/parts_pl_src/body/pl_cicada_b.txt b/parts_pl_src/body/pl_cicada_b.txt
new file mode 100644
index 0000000..aefcc13
--- /dev/null
+++ b/parts_pl_src/body/pl_cicada_b.txt
@@ -0,0 +1,48 @@
+# pl_cicada_b: from pixellab_src/pl_cicada_b/base.png (variant of pl_cicada) (pixellab_library.py extract)
+# pivot at (25, 59)
+# aura at (32, 41)
+# head_top at (31, 18)
+# back at (31, 32)
+# tail at (55, 49)
+....................ooo^ooooo...................
+..................oo222222222oo.................
+.................o32122222222o3o................
+................o2o2122222222o22o...............
+...............o322o222222232o222o..............
+..............o32223o3333333o32223o.............
+.............oo3333oooooooooo33323o.............
+.............o333ooab222222aboo3333o............
+.............o3ooca22a2222a22aooo33o............
+.............o3222c21b22222b22c223oo............
+...........oooo2113ca2222222ac3113ooo...........
+..........o3111o11132223132223112o113o..........
+.........o311112o1132231b2322311o11113o.........
+.........o111332o122222323222221o33111o.........
+.........o113133o222332B22233222o31311o.........
+.........o113oo3o222b13222312222ooo311o.........
+.........o112oo3o2233b222223b322ooo211o.........
+.........o111223o223222222222322o22111o.........
+.........o311113o333223222322333o31112o.........
+.........oo3111o33321122222222333o113oo.........
+.........o3oooo3333211222222223333ooo3o.........
+.........o33o333322oo3222222oo22333o33o.........
+.........oc3o3332ooooo33223ooooo233o3co.........
+.....oooo2o3oo22ooo313ooAoo313ooo22o3oooooo.....
+....o1122oo33coooc312ooooooo213cooo33oo2111o....
+...oaa2222oo3ooooco22ooooooo22oo3ooooo2222aao...
+..o21aa2223oo222ooo2occccccco2ooo322o33222b11o..
+..o122aa233o21123o3o2c22223c3ooo22212o332a2212o.
+.o22222cc33o112223o3222222222oo322211o33b32222o.
+.o222333c3o21122333o32222223ooo3222111o3c322222o
+oaaa2333coo22222333o3o2222o33o33o22211o333322aao
+oaaabc33ooo222222o33oo2323o3o33o322222ooo33aaaaT
+o223ccco3co2222223o3ocoooo3oo3oo322222ocoocca22o
+o32333oo3oo222223ocooc3333ccooo3322222oo3o33322o
+o32233o33oo32222c2oooooooooo.ooc322223oo33o3323o
+.o333ooo3oo322caco2o..oooo....occ32223oo3oo333o.
+.o333o.oo.ocb2a2oo3o.........o33caaaaoooo.o333o.
+.oo33o....occ322oo33o........o3o32aaao....o333o.
+..o33o.....o3332o.ooo........ooo3223o.....o33o..
+...ooo......o3333o.............o3333o.....ooo...
+.............o333o............o3333o............
+..............oooP............ooooo.............
diff --git a/parts_pl_src/body/pl_cicada_c.txt b/parts_pl_src/body/pl_cicada_c.txt
new file mode 100644
index 0000000..45e1d21
--- /dev/null
+++ b/parts_pl_src/body/pl_cicada_c.txt
@@ -0,0 +1,49 @@
+# pl_cicada_c: from pixellab_src/pl_cicada_c/base.png (variant of pl_cicada) (pixellab_library.py extract)
+# pivot at (21, 60)
+# aura at (32, 40)
+# head_top at (31, 18)
+# back at (31, 32)
+# tail at (49, 49)
+.................ooo^ooooo................
+...............oob22222223oo..............
+.............oo3222222222222o.............
+............o31b2222222222ba2o............
+...........o3b22b2222222222213o...........
+...........oa2b2222222222222cao...........
+..........o1222222222222222222bo..........
+..........ob2222222222222222223o..........
+..........o222111222222222212223o.........
+..........o233111122222221112323o.........
+..........o23ooo31122222112ooo33o.........
+.........o22obwoo313222313oowbo3o.........
+.........o22obaobo3322233oboabo3o.........
+.........o22obaobbo22222obaoaao3o.........
+.........o323oaaabo2B222obaaao33o.........
+..........o223oooo3222223oooo32co.........
+..........o3223332222222223332cco.........
+...........o322222222222222223co..........
+............o332222ooooo22233co...........
+.............ooc332222223333oo............
+...............oo33333333ooo..............
+..............oo3oooooooo3ooo.............
+.............o3333333A3333333o............
+............o22223333333332222o...........
+...........o2222222111112222322o..........
+..........o2223222111b111222o323o.........
+..........o223o22111bbb11222o332o.........
+.........ob23occ21bbb1bbb12bco3a2o........
+.........o2a3o2cbbb11111bbbb2o322o........
+.....o3o.o2c3o22bb111b111bb22oo33oo3o.....
+....o122oo32ooc21111bbb11122coo3oo222o....
+...ow23223o2oocc111bb1bb112ccooo32232wT...
+....o3o333o3oo3cbbbb111bbbcco33o333o2o....
+...oo3oooo223o33bb2222222cc3o322oooo3oo...
+...o23o.ow2o323o32222222233322o2wo.o33o...
+...o33o.o22o333o3332222233o333o22o.o33o...
+..oo3o..oo2oo3oooo3333333oo33oo2oo..o3oo..
+o3233o..o32o.oo...ooooooo..oo.o23...o3323o
+ooooo....o3o..................o3o....ooooo
+.........o33o................o33o.........
+........o3o3o................o3o3o........
+.......o22oo..................oo22o.......
+........ooP....................ooo........
diff --git a/parts_pl_src/body/pl_cicada_d.txt b/parts_pl_src/body/pl_cicada_d.txt
new file mode 100644
index 0000000..c82b501
--- /dev/null
+++ b/parts_pl_src/body/pl_cicada_d.txt
@@ -0,0 +1,53 @@
+# pl_cicada_d: from pixellab_src/pl_cicada_d/base.png (variant of pl_cicada) (pixellab_library.py extract)
+# pivot at (21, 60)
+# aura at (32, 37)
+# head_top at (31, 14)
+# back at (31, 32)
+# tail at (49, 49)
+.................oooo^ooooo.................
+...............ooaa222222aboo...............
+.............ooca22a2222a22acooo............
+..........oo3222b21b22222a22c2222oo.........
+.........o3332113ba2222222aco112333o........
+........o3111o11132223132223112o3113o.......
+.......o311112o1132231b23223113311113o......
+.......o111132o1132231b2322311o111111o......
+.......o113332o122222323222221o133311o......
+.......o113133o222332222233222o331311o......
+.......o113oo3o222b13222312222oooo311o......
+.......o112oo3o2233b222223b322oooo211oo.....
+......oo111223o223222222222322o322111oo.....
+....oooo311113o333223222322333o321113oooo...
+..ooa222o3111o33321122222222333o3113o222aoo.
+..oa2a2a2oooo3333211222222223333oooo2a2a2ao.
+..o222a23oo333322oo3222222oo223333o322a222o.
+..o322b2ooo3332ooooo33223ooooo2333o322b223o.
+..oo23bo3ooo22ooo313oB2oo313ooo22oo3333b3oo.
+.o322o313oo3oooc312ooowooo213coooo3333o222o.
+.o2233112323ccooo22ooooooo22ooooo3o311oo22o.
+.o22o222o2123o33o2oocccccoo2o3oo21oo212322o.
+o323222o22113o222ooo33333ooo333o211oo222o23o
+o32322232222o21123o311A113o3211o2212o222o23o
+o33322232222322223o1111112o22112o222o222333o
+o3333232222322222o21111111o2221132223o22333o
+.oo33332222322222o21111111o2222232222o2333o.
+.ooo3333223322223322222222o322222o2223333oo.
+.oc3o333333332223o222222223322222322333ooco.
+.oc33ooo33o33222oo2222222233222233333oo33co.
+..o33o3oooo33333oo222222223322333oooo3o23o..
+..occo322ooo3333oo33333333333333oooo23o33o..
+...oco3223o3ooooo3333333333ooooo3o222c33oo..
+...ococc33o3222oooooooooooooo2223o233ccco...
+...ococcc3o332223o22222222o322233o33cccoo...
+....ooccc3o333333o32222222o33333oo3ccccT....
+.....ooccc3oooc33o33333333o333oooocccco.....
+....oooocco223o33o33333333o3cco22occoooo....
+....o23ooo12o3oc3occ333333o3co3o21ooo33o....
+....o33o.o22o3occcoc3333ccocco3o22o.o33o....
+...oo3o..oo2ooccccoccccccoccccoo2oo..o3oo...
+.o3233o...32oooocccoccccoooccooo23...o3323o.
+.ooooo....o3o...ooooooooooooo..o3o....ooooo.
+..........o33o................o33o..........
+.........o3o3o................o3o3o.........
+........o22oo..................oo22o........
+.........ooP....................ooo.........
diff --git a/parts_pl_src/body/pl_cinderhound.txt b/parts_pl_src/body/pl_cinderhound.txt
new file mode 100644
index 0000000..1968cba
--- /dev/null
+++ b/parts_pl_src/body/pl_cinderhound.txt
@@ -0,0 +1,46 @@
+# pl_cinderhound: from pixellab_src/pl_cinderhound/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (23, 24) (from part/probe)
+# back at (38, 31) (from part/probe)
+# tail at (50, 41) (from part/probe)
+....oooo..........oooo..................
+..o32323o........oo233oo................
+.o32obo3o.......o3o32233o...............
+o32obbaoooo^oooo2obo33233o..............
+o33obaaoo22223co3oaoo3333o..............
+o3o.oao2c2223c22ooaaoo33o...............
+.oo.oo2aacoac222223aaoooo...............
+....o22o222o21112223aa3o................
+...o223o223o211112223a3o.............oo.
+..ooo22o33o222333222233ooooo........o2o.
+..ooo32ooo222o33333223o33oB3ooo.....22o.
+..oooo3222223ooooo3o23ooo3c333ooo.o313o.
+..o1woo22233oowowooo233o323c223ooo323o..
+..o1ooooooooo1ooo1oo233o322c223o33o33o..
+..o1oo2223ooo1ooo1oo233ooocaoocao33oo...
+..oo3oo23oo33ocaa1o2223oco3oacooacoo....
+.o333oo3ooo223oooo32223oo322a222a233o...
+o322b3ooo33a22333333223oo322o322o3o33o..
+o32y233o3323y2332222333oo333o33oo3o23o..
+o333b33o33a33b33oo22333ooo33o33ooo222o..
+oo333ooooo33333oob3A33o3ooooacoo2222ccT.
+.oooobaaaboooooobbb333o33ooaaacco22a23o.
+.owobazzzabo2wwobbb33o3333ocoo33o22o33o.
+..owbzzzzzabowocbbboo32233oco33o32accco.
+..oobaaaaabbbooccooo322233oooooo2o222oo.
+...oocbaaaabbccoooo32112333ooooo2o222oo.
+....oooobccccoooo33211a22o333oo32o33ooo.
+....oooooooooooo33o211a223o33oo322ooo3o.
+....oooobbbbbbb32oo222acoco3boo3222233o.
+....oooobaaaaaab3oo322o333oaboo33323333o
+.....oooobaaaaaaboo32oa33occooo33333332o
+....o3ooooooobbbbbo222ooooooo.oo3333o22o
+....o3333ooo.oooooo211223oo.....oooo322o
+....o3333ooo......o211223o......oo3323o.
+....o333ooo.......o211223o.....o332223o.
+..oo3223ooo.......o222233o....oboz23z3o.
+..obozoz3oo......o222223o.....ooobboaao.
+..oobaoabo......ozo2z3z3o........ooooo..
+....ooooo.......oaobaoabo...............
+.................ooPoooo................
diff --git a/parts_pl_src/body/pl_cinderhound_b.txt b/parts_pl_src/body/pl_cinderhound_b.txt
new file mode 100644
index 0000000..91b78b0
--- /dev/null
+++ b/parts_pl_src/body/pl_cinderhound_b.txt
@@ -0,0 +1,63 @@
+# pl_cinderhound_b: from pixellab_src/pl_cinderhound_b/base.png (variant of pl_cinderhound) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 37)
+# head_top at (23, 5)
+# back at (36, 33)
+# tail at (50, 41)
+...........o............o................
+..........o2^..........o3o...............
+..........o2o.........o13o...............
+..........o2o.........o1bo...............
+..........o2o........o11bo...............
+.........o22o........o12bo...............
+.........o23o........o12ao...............
+.........o23o........o1bao...............
+........o223o.......o11bao...............
+........o223o.......o13bao...............
+........o2a3o......o21bbao...............
+........o2a3o......o22bbao...............
+........o2a3co.....oa2baao...............
+........o2acco....o31abaao...............
+........o2a23o....o11abaao...............
+........oa223o...o212cbaao...............
+........oa223o...o21ccbaao...............
+........o3223o...o23ccba3o...............
+.........o223ooooo23ccbao................
+.........o2332b223233cbao................
+.........o222b2222233cb3o................
+........o311a22222223c3o.................
+.......o211a2221112233oo.................
+......o211a221113322233o.................
+......o311a221333332223o.................
+......oo32a2233ooo33223o.................
+......o1o2222oowowo32233o................
+......o1o2222o1oo1o32233o................
+......o1o2222o1aa1o22b33o................
+.......oo21122oooo22b23ooB...............
+.......o22a12222222b233o23oooooooo....oo.
+......o22a112222333b33o3323o222222oo.o2o.
+.....o21a22222ooo3333o333221a111a122o32o.
+....o11122223oocc33ooA3322211a1a11122o3..
+....o112223ooccboooo3333222211a111122oo..
+...o21a233o.ooooob333322222222a2222222o..
+...o1a233o..o3ccbb3322222222222a222222o..
+..o21233o...o3bbbb3222222222222a2322222T.
+..o1133o...o33bbby3222211123322b2322a2ao.
+.o2123o....o33byyyy222211122o2223222a2ao.
+.o123o.....o3obyyyy32o211122o32332222a2o.
+o223o......o33cyyyyy3o211122o333322a222o.
+o33o.......o33ocyyyy3o222a22o333o222a22o.
+.oo........o33oocyycco222a22o333o222a22o.
+............o33oocccco222a2aobbbo222222o.
+............o233ooocco2222aaobcoo322223o.
+............oc333ooooo222a2oooooo3332333o
+............o2233o...o22a22ooooo.o333333o
+...........o2c233o...o21a22ooo3o..oo3333o
+...........o22233o...o21a22o333o...o3333o
+...........o2223o....o21a22o33o....oo333o
+...........o2233o....o22a22oc3o...o32223o
+..........o32233o....o22223oc3o..oboa3z3o
+.........ozozoz3o...o22222oooo...ocoaob3o
+.........ocobob3o..ozoz3z3o.......oooooo.
+..........oooooo...obobobco..............
+....................Pooooo...............
diff --git a/parts_pl_src/body/pl_cinderhound_c.txt b/parts_pl_src/body/pl_cinderhound_c.txt
new file mode 100644
index 0000000..f52512a
--- /dev/null
+++ b/parts_pl_src/body/pl_cinderhound_c.txt
@@ -0,0 +1,47 @@
+# pl_cinderhound_c: from pixellab_src/pl_cinderhound_c/base.png (variant of pl_cinderhound) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 40)
+# head_top at (23, 20)
+# back at (38, 31)
+# tail at (53, 41)
+.....ooo..oo^oooooo..ooo.....................
+...o3223oo322222222oo222oo...................
+..o222o3222222222222222112o..................
+.o323o32222222222b223322212o.................
+.o22o32222222222bb223o322213o................
+oo23o222222222b2bb2b23o22222o................
+oo2o32zz222222b2bb2b23o322223o...............
+oo2o333z222222bbxxbb22o32223oo...............
+oooo333332222bbxxxxb22o33323o...........o....
+oooo3ooo32222bxwooxbb23o333oo..........o2o...
+.ooo31oo33333bxoooxxb23oo33o...........o2o...
+..oo32oo33333bxoooxxb223oooBooooooo...o22o...
+..oo22ooooooo2bbxxxb2223ooooo222222ooo22oo...
+..o322zo222ooz22bbb2222333oo211111123o33o....
+..o3zzzoooooozzz2222zz2233o22111111112o3o....
+.oazzzzooooozzzzz22zzzz233o222111111223o.....
+.oazzzzzooozzzzzzzzzzzz23332222222222223o....
+.oazzzzzzozzzzzzzzzzzzz23332222222222223o....
+.oazzzzzaoazzzzzzzzzzza233322222222222223o...
+..ozzzzooooozzzzzzzzzza3o3322222222222223o...
+..oazzzaaaaaoozzzzzzAbb3o3322222222222222oo..
+...oazzzzzzzzzzzzzzzbboo332222222222222223T..
+....obbzzzzzzzzzzaaa3oo3322222222222222223o..
+.....oooaaaaaaaaaaooooo3222222222322222223o..
+.....ooooooooooooo333332222232223322222223o..
+.....oooo3ccccccc333222222223333o322222223o..
+.....oooooaaaaaaac3322222222o333o322222223o..
+.....ooooo3aaaaaaao322222222o333o332222223o..
+.....oooooocaaaaaaoo22222222occco3322222233o.
+.....ooooooocaaaacco22222222occcoo332222333o.
+....oo3oooooo3ccccco22222222ocooooo333333323o
+....ooooooooooocccco21111223oooo..oo33333323o
+....oooooooooo.ooooo21111223ooo....oo3333223o
+...ooooooooooo.....o21111223ooo.....o3332223o
+..o3333oooooo.....oo22222223ooo....o33222223o
+.o3oooo2ooooo....o322222222ooo....o23zz2222o.
+ozozzozzzooo....oo232222222ooo...obozzzozz3o.
+obozzozzbboo...ozzozzzo2z23o.....obobbboaaoo.
+ooobbobbbbo....ozzozzzozzz3o......ooooooooo..
+..oooooooo.....obboaaaoaaao..................
+................ooooooPooo...................
diff --git a/parts_pl_src/body/pl_cinderhound_d.txt b/parts_pl_src/body/pl_cinderhound_d.txt
new file mode 100644
index 0000000..f789611
--- /dev/null
+++ b/parts_pl_src/body/pl_cinderhound_d.txt
@@ -0,0 +1,49 @@
+# pl_cinderhound_d: from pixellab_src/pl_cinderhound_d/base.png (variant of pl_cinderhound) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 40)
+# head_top at (23, 19)
+# back at (37, 31)
+# tail at (53, 41)
+..............oooo...........................
+...........o.^aaao...........................
+..........oaobaacoooo........................
+......oooooabaabcaacoooo.....................
+....oo112obaaaaaaacc1111oo...................
+...o11o32obaaaaaccc1122111o..................
+..o11occccaaaaacccc12oo2111o.................
+..o12ocaccaabbaccc32obo3112o.................
+..oo333ocaaacccc2222aaoo222o.................
+...ooo21caaaccc211112aa3oo3o.................
+....o311ccaccc21111112ao22o..................
+...o3111ccacc2211211112222oo.................
+..o111321cacc21133311111222o.................
+...o133322cc221333331111113B..oooo...........
+..o113oo3222222oooo331111122oo3112ooo........
+.o111o1ao222223oaoao31112222o2111211oooooo...
+.o111o1ooooo3231ooo1o11112oo221111113bbaaaoo.
+.oo12o1o2223ooo1ooo1o111112o2211111112bbbcco.
+.o212oooo23oo22ocaa12111222222111111112ccco..
+.o11333oo3ooo222oooo21112222o2111111112cbao..
+o11o222booo33b22332211111122o22111111112ccao.
+o11o2aa23o3333y2332211111122321111111211cccao
+o32o333b3o33b33b33ooA1121223o221121111223ccco
+.o22o333ooooo3333ooo111122232221222111123ccT.
+.o222ooobbbbbooooooo111123232222222111123ccc.
+.o2o2oabbyyybboaooo11111233322222221112233cco
+.o2o21obyyyyyboao2212122233222223221111223cco
+..oo212obbbbbboo221122322322o222o21111122ooo.
+...o2222oooooo22221222oo32223322321111122o...
+...o3o22221112222223223232222323321111122o...
+....oo22222212222223323222222o23321111223o...
+.....oo2322222232233333222122o23321111223oo..
+.....o3oo222222o2o33322221122o3o3221122233o..
+.....o33oo22333oo33332111122ooooo22222222oo..
+.....oo33oo3oo333333o2111112ooo.oo2222222o...
+.....o212333oooo3333o2111112o....oo333222o...
+......o11233oo.oooooo221112o......o33323o....
+......o21233oo......o221122o.....o332223o....
+....oo222233o.......o221222o....oboy23y3o....
+....oboyoy33o......o222222o.....ooobbobbo....
+....oobbobbo......oyo2y3y2o........ooooo.....
+......ooooo.......obobbobbo..................
+...................oooPooo...................
diff --git a/parts_pl_src/body/pl_circuitbug.txt b/parts_pl_src/body/pl_circuitbug.txt
new file mode 100644
index 0000000..a48b966
--- /dev/null
+++ b/parts_pl_src/body/pl_circuitbug.txt
@@ -0,0 +1,48 @@
+# pl_circuitbug: from pixellab_src/pl_circuitbug/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 39)
+# head_top at (31, 21) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (47, 45) (from part/probe)
+.........ooo......oo......ooo.........
+..........bao...oo12oo...oaa..........
+...ooo....obaooo11^223oooabo....ooo...
+...o22o....oooo11222323oooo....o22o...
+...ob22o....o2231222233o3o....o12bo...
+....ob2o...o2owoo1223oowo3o...o2bo....
+.....o32o.o12oowo2222owoo32o.o22o.....
+.....ob2ooo223aao2222oaao33ooo2bo.....
+......o3boo3223o233332oo333cob3o......
+......obooc2b223oooooo333o3coobo......
+.......ooo3ooooo111122ooooo3ooo.......
+........ooo11111122332aaaaaooo........
+.......o111122222b12b333332222o.......
+......o112bb122a2aB2b2b22bbb3a2o......
+.....o1332b1122a2a12b2b2223b3332o.....
+.....o133ba1222aaa12bbb2233bb33ao.....
+....oo1332bboo2a2b12b2b2oobb3332oo....
+...obo13332boc2a2b12b2b2cobbb332ooo...
+..o3bo2bbb2b222b2b12b2b223b3bbb2oo3o..
+.o23oo233b3b222b2b12b2b233b3b3o2oo32o.
+oo33oo2o333b32bb2bA2b2bb33b333o2oo32oo
+o2bo.o2obbbbb3222b12b2333bbbbbo2o.ob2o
+obo..o2o3333bb332b12b333bb333oo2o..obo
+ooo..o2obbbb33bb3b22b3bb33bbbbo2o..ooo
+.....o2o3333b33b3b23b3b33b33ooo2o.....
+....ooo3b333bb3b3b23b3b3bb3oob3ooo....
+...o3oo2ob33bo3b3b23b3b3oboobo2oo3T...
+...o3oo2obbboo3b3b33b3b3oobbboboo3o...
+...o3ooo3ooobo3b3b33b3boobooobooo3o...
+..o22o..o3ooobob3b33bobobooo3o..o22o..
+.oo3oo..oo3ooobbaboobabboooboo..oo2oo.
+.o2bo....oo3ooobobooboboooboo....ob2o.
+.obbo....ooo3oobobooboboobooo....obbo.
+..oo....ooooo3oboboobobobooooo....oo..
+........o3oooooooooooobooooo3o........
+........o2bo...oooooooo...ob3o........
+........o2bo....oooooo....ob2o........
+........o2bo..............ob2o........
+.......oo2bo..............ob2oo.......
+......o123oo..............oo221o......
+....oo23bboo..............oobb22oo....
+......oooooP..............oooooo......
diff --git a/parts_pl_src/body/pl_circuitbug_b.txt b/parts_pl_src/body/pl_circuitbug_b.txt
new file mode 100644
index 0000000..609af2f
--- /dev/null
+++ b/parts_pl_src/body/pl_circuitbug_b.txt
@@ -0,0 +1,48 @@
+# pl_circuitbug_b: from pixellab_src/pl_circuitbug_b/base.png (variant of pl_circuitbug) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 39)
+# head_top at (31, 19)
+# back at (31, 32)
+# tail at (52, 45)
+...........ooo......^o......ooo...........
+............bbo...oo12oo...obb............
+.....ooo....ocbooo112223ooobco....ooo.....
+.....o22o....oooo112223233ooo....o22o.....
+.....oc22o....o223122223332o....o12co.....
+......oc2o...o2owoo1223oowo3o...o2co......
+.......o32o.o12oowo2222owoo32o.o22o.......
+.......oc2ooo223aao2222oaao33ooo2co.......
+........ocooo3223o233332oo33ocooco........
+........oo11o2b223ooooooo33ooo33oo........
+........o1112oooooooooooooooo3333o........
+.......o1112221111111111222oo33333o.......
+......o21122313333333333333333o3333o......
+.....o21b2231122222bB2222233333o33b3o.....
+.....o2222311b222b2222b222b33323o333o.....
+....o2222311222222222222222233323o333o....
+....o2b2231b222b2222b222b222b3322o333o....
+....o222o1222b222b2222b222b223b323o3bo....
+...o3322o1222o222o2222o22222233323o333o...
+...o33b2o32b222b2222b222b222b3332bo333o...
+...o3322o322222222222A222222333333ob33oo..
+..oo3322ob222b222b2222b222b333b333o333oo..
+.o2o3b32o33222222222o222o223b333boo333o3o.
+.o2o333bo33b322b2222c222c3o333c3ooo3boo2o.
+o22o3333o33333333322222333b333b3ooboooo23o
+o2coob33ob333b333b333b33b333b33oooooooo32o
+o3cooo333o33333333333333333333ooboooboo33T
+ooo.oo3b33ob333b333b33bb33b33obooobooo.ooo
+....oo333bo33b3333333b33333ooooooo3ooo....
+.....ooo33o33b333b333o333booboooboobo.....
+.....oobo33oooobooobooooooooooboooooo.....
+......oooob3oooooooooooboobooooooboo......
+.......oooo33booobooobooooooboooooo.......
+........ooco33oooobooooooboooooooo........
+.........ooo3oobooooooobooooooooo.........
+..........oooooooooobooooooobooo..........
+..........oooooooooooooooooooooo..........
+..........o2o....oooooooo....o3o..........
+.........oo2o................o2oo.........
+........o123o................o221o........
+......oo23cco................occ22oo......
+........ooooP................ooooo........
diff --git a/parts_pl_src/body/pl_circuitbug_c.txt b/parts_pl_src/body/pl_circuitbug_c.txt
new file mode 100644
index 0000000..fc4d42d
--- /dev/null
+++ b/parts_pl_src/body/pl_circuitbug_c.txt
@@ -0,0 +1,60 @@
+# pl_circuitbug_c: from pixellab_src/pl_circuitbug_c/base.png (variant of pl_circuitbug) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 29)
+# head_top at (31, 7)
+# back at (31, 32)
+# tail at (43, 40)
+......ooo...o^ooo..ooo......
+.oo....oaooo12223ooabo...ooo
+.o2o...oooo122232oooo...o22o
+.o22o...o22322223o3o...o12co
+.oc2o..o2owo1223o1o3o..o2co.
+..o32o.o2oow2222ooo32oo22o..
+..oo3ooo233o3333ooo3ooo3oo..
+...ocoooa223ooooo33oococo...
+....oooooooo11122oooo3oo....
+.....ooo111122332aaaaoo.....
+....o1112222c12b333o222o....
+...o112b122ao12b2o2bbbo2o...
+..oooooa222aa12boo233boooo..
+..ooo32boo2ao12b2ooobb3o2o..
+.oooo332oo2ao12b2ooobboo2oo.
+o3oobbb2222bo12b2o23b3bb2o3o
+o2ooo3bo222bo12b2o33b3oo2o3o
+o2ooo33o32bbo12b2b33b3oo2o2o
+o2oooooobo33o12b33oboooo2o2o
+.2ooobbb33bbo22b3b33bbbo2o2.
+.3ooo333b33bo23b3o3boooo2o3.
+.ooo3b33bb3bo23b3obbooo3ooo.
+.ooo2ob3bo3bo2Ab3oobooo2ooo.
+.oooooocoooboo3booooocooooo.
+o3o.oooooboboooboobooooo.o3o
+o3o..ooooobbbBobabooooo..o3o
+o2o...oooooboooboooocoo..o3o
+o2o....ooooboooboooco....o2o
+o2o.....ooooooooooco.....o2o
+o3o.....oooooooooooo.....o3o
+oao.....ooo.oooooooo.....oao
+oao....o33o......o33o....oao
+o2o....o23o......o33o....o2o
+o2co...o23o......o32o...oT2o
+o2oo...o23o......o32o...oo2o
+ocoo...oa3o......o3ao...ooco
+.oo....oa3o......o3ao....oo.
+.......o3ao......oa3o.......
+.......o3ao......oa3o.......
+.......oa3o......o3ao.......
+.......oa3o......o3ao.......
+.......o3ao......oa3o.......
+.......o3ao......oa3o.......
+.......oa3o......o3ao.......
+.......oa3o......o3ao.......
+.......ocao......obco.......
+.......ocao......obco.......
+.......oaco......ocao.......
+.......oaco......ocao.......
+.......o2co......oc2o.......
+.......o2co......oc2o.......
+......o22oo......oo22o......
+.....o3ccoo......oocc2o.....
+......ooooP......ooooo......
diff --git a/parts_pl_src/body/pl_coconut.txt b/parts_pl_src/body/pl_coconut.txt
new file mode 100644
index 0000000..2ce2c40
--- /dev/null
+++ b/parts_pl_src/body/pl_coconut.txt
@@ -0,0 +1,48 @@
+# pl_coconut: from pixellab_src/pl_coconut/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 41)
+# head_top at (35, 27) (from part/probe)
+# back at (31, 33) (from part/probe)
+# tail at (48, 49) (from part/probe)
+..................o..oo...o.................
+................o.booxxoooo.................
+...............obozxyxbybboo................
+................oyxxxxxxzccco...............
+.................oyxxxzzbco.................
+.............o..ob2xyxybbzco................
+.............oboczcbbycczccoco..............
+.........o..obzxxbbybcccbbcbyooo............
+.........obobxxxxxxyxxcxb^yybyxcobo.........
+........oobzxxzxxxxyxxcxbxyyxxybbyoo........
+.......oxxyxxxxyxbxcx33bbxyyxbyyyccyo.......
+........oyxxbxx3zcb232222y33xbyxyyyo........
+.......oyxxxbx31111111111222y3yxyycco.......
+......oxxbxzc311111111111112223xcycyyo......
+.....obyxxx3111111111B11111122233byybbo.....
+....ocxbxx311111111111111111122233yybxco....
+....ooyxx31111111111111111111222233yccoo....
+.....ozxx311oooo11111111111oooo2223byco.....
+....obbb311oooooo111111111oooooo2233ccco....
+...ocbxxy11oowooo111111111oowooo223zyyco....
+...occbb311oooooo111ooo111oooooo223bcccco...
+...oobbb111ocoobo11ooooo11ocooco2233yycoo...
+...oobxx2112obbo311ocAco112obbo22233cccoo...
+..ocobbby2113oo31111ooo11113oo212233cccoco..
+..ocobbx322111111111111111111112223czccoco..
+..occoby32222111111ooooo11111122223cccocco..
+.o3occob32222211111ooooo111112222333oocco3o.
+.o3occcoo3222222111ocbbo1112222233oocccco3o.
+o323ocbbboo32222222oaaao222222233oocccco323o
+o113oocbbaaoo3222222ooo2222223ooocccccoo311o
+o1133ooobaaaaooo32222222222ooobbbbccooT3311o
+o3333oocooaaaaaaaooooooooooaabbbbcoocoo3333o
+o3333oocccoooaaaaaaaaaaaaaaaabboooccooo3333o
+.ooooo.occcccoooaaaaaaaaaaaooooccccoo.ooooo.
+........occcccccooooooooooocccczcco.........
+........oobczccccccccccccccccccccooo........
+..........oooczccczccczccccczccooo..........
+............ooooczczcczczczcoooo............
+............o333ooozcccczooo333o............
+...........o13333oooooooooo33331o...........
+...........o33333o........o33333o...........
+...........ooooooP........ooooooo...........
diff --git a/parts_pl_src/body/pl_coconut_b.txt b/parts_pl_src/body/pl_coconut_b.txt
new file mode 100644
index 0000000..fcdfbe6
--- /dev/null
+++ b/parts_pl_src/body/pl_coconut_b.txt
@@ -0,0 +1,58 @@
+# pl_coconut_b: from pixellab_src/pl_coconut_b/base.png (variant of pl_coconut) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 36)
+# head_top at (35, 9)
+# back at (31, 33)
+# tail at (53, 49)
+.........................oo^o...................
+..................oo....obbo....................
+..................oo...oyyco....................
+............o....oyo..oyxco.....oo..............
+............o...oyyo.oyxyco...ooco..............
+...........ooo..oxbo.oyxyco.ooczco..............
+...........oyo..oxbcocyycccooyyco..ooooo........
+...........oyyoooyxcccxyccccyycoooyyycco........
+......oooooocyyocyxcccxycyccyzcooyyzcoo.........
+....ooocyyyyozyyccxxzzxycyyzzzccyycco...........
+......oooczxyccyyzcxxyyycyyyyccyycccooooo.......
+.........oczyyccyycyyyyyyyyyyyyyycccbyybcco.....
+......oooocccyycyyyyyyyyyyyxxyyyycyyycccooo.....
+....ooyyxxxxbbyyyyyyyyyyyyczxyyybyyyycco........
+....ozccccxxxxyyyyyyyyyyyyyycyxyyyycccccco......
+.....oooccccyyyyyyyyyyxyyyyyyyyyyyyyyyyzyzoo....
+.....ozzxxyyyyyyxyyyyyxyyzyyyyyyyyyyccczyzyyo...
+....ocxxxccyyyxxxyyyyyxxycyxxybyyyyyzccccccczo..
+...oyxyccczyyyxxyyxycyxxyccyxybbyyyyybbccoooco..
+..oyycccbbyyyyxycyxzccyxycocyxbcyxyyyyyccccooo..
+.oyycccyyyyyyxyccyxcocyxycocyybccxxyyzyycczbo...
+.oycoczyxyyyyxccoyzooczyxboobyyoczxxyczycccbco..
+.ocoozxxyycyyycooczo1oczxbo2ocyooczyxcbyyccoccoo
+.oo.oxxzyycyybo31oco1oozybo12oyooozyxyczybboooo.
+.o.oyxczybcyzoo11ooo111Bbbo11oyo2ooyyxccybbco...
+...oyccyybcyco21111o111oobo11oco22ocyxccbobzzo..
+..oyzcyybbcyco1111111111oco11oo222ocyxycczcbzco.
+oobzczyyczcco2oooo111111Ao111oooo22oyxycczbccco.
+oooocyycczccooooooo111111111oooooo2ozzycczbooobo
+...ozyzczzcooooaooo111111111ooaooo2oozyybcbco.oo
+...obycczzco2oooooo111ooo111oooooo2ooozybcbco...
+..occboczzo31ocoobo11ooooo11ocooco2ooozybocbco..
+..occooczco312obbo311ococo112obbo2223ozyooocco..
+..ocococczo2113oo31111ooo11113oo21223ozcoococco.
+..ooocooczoo2111111111111111111112223ozooocooco.
+..oooccoczzo221111111ooooo1111112222ozcooccoooo.
+...o3occoczo222211111ooooo1111122223ozoocco3o...
+...o3occcoco222222111ocbbo1112222233oooccco3o...
+..o323occcooo32222222oaaao222222233oocccco323o..
+..o113oocccaaoo3222222ooo2222223ooocccccoo311o..
+..o1133ooobaaaaooo32222222222ooobbbbccooo3311T..
+..o3333oocooaaaaaaaooooooooooaabbbbboocoo3333o..
+..o3333oooccoooaaaaaaaaaaaaaaaabboooccoco3333o..
+...oooooococcccoooaaaaaaaaaaaooooccccoccooooo...
+........ocoozcccccooooooooooocccczccoooco.......
+........ocoooczcccccccccccccccccccco..ooo.......
+........oo..oooczccczccczccccczccooo............
+..............oooocoozcczcoozcoooo..............
+..............o33oooozcccco.oo333o..............
+.............o13333o.oocco..o33331o.............
+.............o33333o...oo...o33333o.............
+.............ooooooo...P....ooooooo.............
diff --git a/parts_pl_src/body/pl_coconut_c.txt b/parts_pl_src/body/pl_coconut_c.txt
new file mode 100644
index 0000000..b20bfd7
--- /dev/null
+++ b/parts_pl_src/body/pl_coconut_c.txt
@@ -0,0 +1,50 @@
+# pl_coconut_c: from pixellab_src/pl_coconut_c/base.png (variant of pl_coconut) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 41)
+# head_top at (35, 18)
+# back at (31, 33)
+# tail at (55, 49)
+....................o..oo...o...................
+..................o.cooxxoo^o...................
+.................occbxzxbzbboo..................
+..................obxxxxxxzccco.................
+...................ozxxxzzbco...................
+..................obzxzxzbb3co..................
+...............ooobbbbbzcbzcccooo...............
+.............oozxxbbbzccccccccbbboo.............
+...........oobxxbbxxxxxcbzxxxxbcbbboo...........
+..........occxxxccxxxxbxxxxxxxccxxbbbo..........
+.........ozxcbxxcxxxxxbxbxxxxxxxxxbcbbo.........
+........o3xxxxxxxzxbxx333bbxxxxxxxxxxbbo........
+.......obxxxxxbxx333b322222b33zxbxxxxxbbo.......
+......obxbbxxxbx31b111111112bb33bxxxxxbbbo......
+......oxxbbxxbb311b111111111bc2233bxxbbcbo......
+.....ozxxbxxx311bb111111111cc222223xxbccbbo.....
+.....ozxxxxx31111bb1111B111c112222c3xxxbbbo.....
+....ozxxxxx3111111b1111111b111122ccc3xxbbbbo....
+....ozbcxxxbbb11111b1111111111112c223xx3bbbo....
+....ozbccx2111oooo11111111111oooo22233xbbcbo....
+...obxbcxx211oooooo111111111oooooo2223xxccbbo...
+...obxxxxx211ooaooo111111111ooaooo2223xx3bbbo...
+...obbxxxx111oooooo111ooo111oooooo2223xx33bbo...
+...obbxbx3111ocoobo11ooooo11ocooco22223x33bbo...
+..oobbcbx3b112obbo311ocoAo112obbo222c23xbc3coo..
+..ocobcxx3bb113oo31111ooo11113oo212cc23xbccoco..
+..occo33x32bb1111111111111111111122ccc3bbbocco..
+..ocbco3x32bbc2111111ooooo1111112ccc2cbbboccoo..
+.o3ocbcoob332c221c111ooooo111c12222233booccco3o.
+.o2ooccccoo32222c2111obbbo112cc222333ooccccoo2o.
+o223oocccbboo32cc2222oaaao2222cc333oocccccoo312o
+o213ocoocbbbboocc22222ooo222222cooocccccooco311o
+o223occcoobbaaaooo32222222222ooobbbbccooccco311T
+o333oocbccooaaaaaaaooooooooooaabbbbcooccccco333o
+o3333ocbcccxoooaaaaaaaaaaaaaaaabbooocccbccoo333o
+.oooooobcccxxxxoooaaaaaaaaaaboooozcccccccoooooo.
+......occcccb3xxxxooooooooooocxxxxxcccccco......
+.......oocbbczcxxxxx3xxcxccxxxxxccxzcccco.......
+.........occccccxbxxxxxxxxccxxccccccccoo........
+..........ooccccccccxxxcxzccccccccccoo..........
+............oooooocccczcccccccoooooo............
+.............o1333oocccccccooo3331o.............
+.............o33333oooooooooo33333o.............
+.............ooooooP........ooooooo.............
diff --git a/parts_pl_src/body/pl_coconut_d.txt b/parts_pl_src/body/pl_coconut_d.txt
new file mode 100644
index 0000000..ad0c24d
--- /dev/null
+++ b/parts_pl_src/body/pl_coconut_d.txt
@@ -0,0 +1,63 @@
+# pl_coconut_d: from pixellab_src/pl_coconut_d/base.png (variant of pl_coconut) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 37)
+# head_top at (35, 15)
+# back at (31, 33)
+# tail at (52, 49)
+....................oo......................
+....................o3o.....................
+....................o1o.....................
+....................o12o....................
+...................o112o....................
+...................o112o....................
+...................o1122o...................
+...................o1122o...................
+...................o1122o...................
+...................o1122o...................
+...................o1122o...................
+.................ooo1222o^o.................
+..............ooo1112223322ooo..............
+............oo3111111111112223oo............
+...........o31111111111111122223o...........
+..........o3111111111111111122233o..........
+.........o311111111111111111122333o.........
+........o11111111111111111111222333o........
+.......o2111111111111111111111222333o.......
+.......o1111111111111111111111122333o.......
+......o111111111111111111111111223333o......
+......o111111111111111111111111222333o......
+.....o31111111111111111111111111222333o.....
+.....o11111111111111111111111111222333o.....
+.....o111111111111111111111111112223333o....
+....o3111111111111111111111111111223333o....
+....o1111111111111111111111111111222333o....
+....o1111111oooo11111111111oooo11222333o....
+...o2111111oooooo111111111oooooo12222333o...
+...o2111111oowooo1111B1111oowooo12222333o...
+...o2211111oooooo111ooo111oooooo22222333o...
+...o2211111ocooco11ooooo11ocooco22222333o...
+...o22211112occo211ococo111occo222222333o...
+...o222111111oo21111ooA11111oo1222222333o...
+...o222211111111111111111111111222222333o...
+..oco22221111111111ooooo111111222222233oco..
+..oco32222111111111ooooo111112222222333oco..
+..occo3222211111111ocbbo11122222222333occo..
+.o3cccoo22222221111oaaao122222222223ooccc3o.
+.o1occccoo2222222221ooo22222222222ooaccco2o.
+o313occcbaoo22222222222222222222ooccccco313o
+o111ooocbaaaooo32222222222222ooobbcccooo311o
+o3333o3obbbaaaaaooooooooooooobbbbbcoo3oo333o
+o3333oo3oobbbaaaaaaaaaaaaabbbbbbbco333o3333o
+ooooooo333ooobbaaaaaaaaaabbbbbbooo333ooooooo
+.oooooo333222ooobbbbbbbbbbboooo233333oooooT.
+.......o33332222ooooooooooo222223333o.......
+.......o3333322222222222222222333333o.......
+........o33333322222222222223333333o........
+.........o333333332222222233333333o.........
+..........o3333333333333333333333o..........
+...........ooo3333333333333333ooo...........
+............o3ooooo3333333oooo3o............
+............o3333oooooooooo3333o............
+...........o11333o........o33311o...........
+...........o33333o........o33333o...........
+...........ooooooP........ooooooo...........
diff --git a/parts_pl_src/body/pl_coffinbug.txt b/parts_pl_src/body/pl_coffinbug.txt
new file mode 100644
index 0000000..9d49d15
--- /dev/null
+++ b/parts_pl_src/body/pl_coffinbug.txt
@@ -0,0 +1,45 @@
+# pl_coffinbug: from pixellab_src/pl_coffinbug/base.png (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (31, 41)
+# head_top at (31, 26) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (47, 46) (from part/probe)
+..............oooooooooo..............
+............oo1111111222oo............
+...........o12222222233333o...........
+..........o1322222222333333o..........
+.........o13222222^b22333333o.........
+........o13112222caac22333333o........
+.......o1311122222bb2222333333o.......
+......o13111211222aa22222333333o......
+......o31112111122aa22222233333o......
+.....o3111121c1122aa2222b2333333o.....
+.....o111121caaaaaaaaaaaac233333o.....
+....oo1112111ccbbbaacbbbc2233333oo....
+....o2221111111122aa2222223333333o....
+....o2211111111222Ba2222223333333o....
+....o2221111112222aa2222233333333o....
+....o2221111222222bb2222333333333o....
+....o222222222222baab223333333333o....
+....ob22212222222caac23333333333bo....
+....ob222222222222bb333333333333bo....
+.....ob22213333333A333333332333bo.....
+.....ob222211111111111111113333bo.....
+.....o3b2233333333333333333333b3o.....
+...ooo3b3233333323333233333333b3ooo...
+..oo32o3333332oo322223oo2333333o33oo..
+..o333o33o33332222222233oo33o33o33To..
+..o3ooo33o332211111222233333o33ooo3o..
+..o3o.oo3o3o21332111223333o3o3oo.o3o..
+.oo3o...oo3o2owoo1112owoo3o3oo...o3oo.
+o233o....o3o2oooo1122oooo3o2o....o333o
+oooo...ooooo23oo31222ooo33ooooo...oooo
+......o2223o22221222233333o3233o......
+......o33333oo2222223333oo33333o......
+......o2oooooooo323333oooooooo2o......
+......o2oo....o1o3333o1o....o32o......
+......o23o....o2o2332o2o....o22o......
+......o23o....oo.oooo.oo....o22o......
+.....o333o..................o233o.....
+....o233oo..................oo232o....
+....oooP......................oooo....
diff --git a/parts_pl_src/body/pl_coffinbug_b.txt b/parts_pl_src/body/pl_coffinbug_b.txt
new file mode 100644
index 0000000..266caa9
--- /dev/null
+++ b/parts_pl_src/body/pl_coffinbug_b.txt
@@ -0,0 +1,60 @@
+# pl_coffinbug_b: from pixellab_src/pl_coffinbug_b/base.png (variant of pl_coffinbug) (pixellab_library.py extract)
+# pivot at (43, 60)
+# aura at (32, 33)
+# head_top at (31, 7)
+# back at (31, 35)
+# tail at (48, 46)
+........................^o.........................
+................oo......obo......o.................
+................obo....oabo.....oco................
+................oao....oabo....oabo................
+................oaboooocabcoooooabo................
+........oo......oabc222cacc333caaco.....oo.........
+........obo....ocabc222cccc333caaco....obo.........
+........obbo.oo2ccc222222222333cbc3oo.obbo.........
+.........caboo22222222222222223333333obaco.........
+.........oaabc2222222222bb22222233333cacoo.........
+.........oobc2211112222caac2222223333cbco..........
+.........ooc221111122222bc222222223333cco..........
+...oo...o222211111121222aa222222222233333o...ooo...
+...ocoooo222111111111112aa222222222223333oooooco...
+...obaacc221111111111112aa2222222222223333cbabbo...
+....ocaaac21111111c11112aa22222c222222233caacbo....
+....oocac21111111caaaaaaaaaaaaaac22222233cacco.....
+.....oocc211111111ccccbcaacbbbcc2222222333ccoo.....
+.....o222211121111111112aa222222222222223333oo.....
+.....o222221111111111112aa2222222222222233333o.....
+....oo222221111111111122aa2222222222222233333oo....
+ooooocc22222111111111222aa222222222222223333ccooooo
+ocaaaac22222211111112oooooo22222222222223333caaabbo
+.oobbcc222222211112ooo22222oo222222222223333bbbboo.
+...oocc3222222222oo2112212222oo2222222223333bcoo...
+....o33322222222o2oo21211112222ooo222223333333o....
+....o3332222222o222211111A11222322oo2223333333o....
+....o333222222oo2211111111111122233oo23333333bo....
+..ooaac332222oo221111111B11211222222o2333333cacoo..
+.ocaaac33322o22111111111111222222233o3333333bcabbo.
+obbcbcb33322o21111111111111222222233o3333333bbcbbbo
+.ooooo33333oo22111121221112222222233ooo333333ooooo.
+.....o33333o22111111222122221222223333o333333o.....
+.....oo3333o21112111222122222222333333o33333oo.....
+......occ3oo32112112223222222232223333o333bbo......
+.....oaab33o12122222233222233232223333o333babo.....
+....oacbb3oo122223323o2oooo33333333333o333bcbbo....
+...obbco33o1122223333oo33333oo33322333oo33oobbbo...
+...oooo.ooo1222223o33333333333o33333233o3oo.oooo...
+........ooo1322233o322222222333o3333233o3T.........
+........ooo332223o331111122223333333333o3o.........
+........o3o333323o32332111223333o333333o3o.........
+.......oo3o333333o3owoo1112owoo3o333333o3oo........
+......o233oo3333332oooo1122oooo3o33333oo333o.......
+......oooo.o3333oo23oo31222ooo33oo3333o.oooo.......
+...........oo333oo22321222233333oo333oo............
+............o333o3oo2222223333oo3o33oo.............
+............oo33oooooo323333oooooo3ooo.............
+............ooooo...o1o3333o1o...ooo2o.............
+............o23o....o2o3333o2o....o32o.............
+............o23o....oo.oooo.oo....o32o.............
+...........o333o..................o333o............
+..........o233oo..................oo332o...........
+..........oooo......................Pooo...........
diff --git a/parts_pl_src/body/pl_coffinbug_c.txt b/parts_pl_src/body/pl_coffinbug_c.txt
new file mode 100644
index 0000000..2cfebd9
--- /dev/null
+++ b/parts_pl_src/body/pl_coffinbug_c.txt
@@ -0,0 +1,65 @@
+# pl_coffinbug_c: from pixellab_src/pl_coffinbug_c/base.png (variant of pl_coffinbug) (pixellab_library.py extract)
+# pivot at (22, 61)
+# aura at (32, 31)
+# head_top at (31, 3)
+# back at (31, 35)
+# tail at (46, 46)
+.........ooooo^oooooo.........
+........o311122222223o........
+........o112222222223o........
+.......o11333333333333o.......
+.......o11322222222323o.......
+.......3133222222223233o......
+......o1132222222222323o......
+......o1132222222222323o......
+.....o31331222bb2222323o......
+.....o1131122baab2222323o.....
+.....312311222bb22222323o.....
+....o113111122aa222222323o....
+....o113111122aa222222323o....
+...o113311b112aa222b223333o...
+...o11311baaaaaaaabbb23333o...
+...o113111c222aa222c223233o...
+...o2231111222aa2222233233o...
+...o3231112222aa2222233233o...
+....o231122222aa222223323o....
+....o231222222bb222223233o....
+....o231222222bb222233233o....
+....o23322222babb22233233oc...
+....o223222222bb22223323cbc...
+....o32312222222222233ccbbc...
+.....o23122222222222caabbcc...
+....co23122222222ccaaabbbc....
+....cbcc122ccc3ccaaaabbccc....
+....cbbaacccaaaaaaaaacc3o.....
+....cbbaaaaaccbAaaccc333o.....
+....ccbbbbaaaacccc332333o.....
+.....occccbaaaaacc33233oo.....
+....o3o3cccccaaaaacc233o3o....
+....o3ocaaabccBaaaaabc3o3o....
+...o33caaaac33cccaaaabbc33o...
+...o23caacc222223ccaabbc33o...
+..o33ocbb3222222333ccbbco33o..
+..o2oocc3322222222333cbcoo3o..
+.o23o.co23122222223233oc.o33o.
+.o2o...o23122222233233o...o3o.
+o33o...o23122222233233o...o33o
+o2o....o33122222233333o....o2o
+o1o....o3312222333233ooo...o1o
+o1o..oooo332333333233o3oo..o1o
+o1o.oo23o331333333233o331o.o1T
+o2o.o133o332333333233o332o.o2o
+o2o.o13oo332222222333oo32o.o2o
+o3o.o23oo33333333333o.o32o.o2o
+o3o.o23o.ooooooooooo..o32o.o3o
+oo..o23o..............o32o..oo
+....o23o..............o32o....
+....o23o..............o32o....
+....o23o..............o32o....
+....o33o..............o31o....
+....o33o..............o33o....
+....o33o..............o33o....
+....o23o..............o33o....
+...o233o..............o322o...
+...o33o................o33o...
+...ooP..................ooo...
diff --git a/parts_pl_src/body/pl_coilfist.txt b/parts_pl_src/body/pl_coilfist.txt
new file mode 100644
index 0000000..eccfe45
--- /dev/null
+++ b/parts_pl_src/body/pl_coilfist.txt
@@ -0,0 +1,47 @@
+# pl_coilfist: from pixellab_src/pl_coilfist/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 22) (from part/probe)
+# back at (29, 35) (from part/probe)
+# tail at (50, 52) (from part/probe)
+.............ooooooooo................
+............o222a11223oo..............
+...........o11aa11^12233o.............
+..........o121a1121123332o............
+.........o2121112111333223o...........
+.........o2121121111o22112o...........
+.........o222222111oo211113o..........
+.........o11111233ob1133123o..........
+........o111111122111211322o..........
+.......o1111111111113111222o..........
+.......oo111o111w2331113222o..........
+.......o1111113313111113221o..........
+.....ooo32222311111322b3112o.oo.......
+....o21oo1111113ooc2yy33333oo11o......
+...o1131oooooooooyyyyy3323o31111o.....
+..o33113o......oB33bbb2133o31111o.....
+..o123o2o...ooo3yyyyyy23ooo31111o.....
+..o3331oc..o312yy33yy22112oo3211o.....
+...o33cacoo3121111113211122oo22bao....
+...occcc2311211111111211211oaccco3....
+....occ223131111113113221131oaccco....
+....o331232111111211233222311223o.....
+.....o333311121111A1233o22221122o.....
+......oo3211111132222oo.ooo2223o......
+........o111111111133o.....oooo.......
+........o13311131133o.................
+.......o11111111112o..oooooooooooo....
+.......o11111111112ooo31aa1121aaa13o..
+.......o31111131112o2111aa1121aa1112o.
+oo.....oy33333111123o1212b2232a322223o
+o2o....o111111111132oo23222232o111123o
+o11o...o111111111222aoo3ybyyoo3111133o
+o211oo..o111113b2211a22ooooo211211113T
+o2211oooo23333y3211121131aaa211121223o
+.o2211aa3yyyyyyy2212111311aa211112223o
+..o222aa2oyyyyyy32211112111a12122322o.
+..oybyaa23ob3b33y322211212222322233o..
+...ooyy3222oyyyyyyy32223222223222bo...
+.....obyyy3boyyyyy3yyybb222223y3oo....
+......oooooooooobbyyyb3yyy333ooo......
+................ooPoooooooooo.........
diff --git a/parts_pl_src/body/pl_coilfist_b.txt b/parts_pl_src/body/pl_coilfist_b.txt
new file mode 100644
index 0000000..362c9ea
--- /dev/null
+++ b/parts_pl_src/body/pl_coilfist_b.txt
@@ -0,0 +1,60 @@
+# pl_coilfist_b: from pixellab_src/pl_coilfist_b/base.png (variant of pl_coilfist) (pixellab_library.py extract)
+# pivot at (33, 61)
+# aura at (32, 36)
+# head_top at (31, 10)
+# back at (29, 35)
+# tail at (57, 52)
+................................ooo.....................
+..............................ooaabo....................
+...................oooooooo^oobaaabco...................
+................ooo22ab233333bbaaabbo...................
+...............o222aa22211223333bbbbco..................
+..............o2122a2321122333233bbbco..................
+..............o11222221122332322233cco..ooo.............
+..............o2222231122o332232222333oobabo............
+..............o33333322oba3212232222333cbabo............
+.............o211112233oba21112322222333bbbo............
+............o1111111222222233223222222333bbo............
+...........o1111122222211223z223222223333ooo............
+...........o23111o2222222231133322233222333o............
+...........o22222o2222w33311133322322111a333o...........
+...........o2222222233131111z33323211111aabb3o..........
+............o333333311111113c32223211111aaabb3o.........
+............o11111111111zzzccz2223211111aaabb3o.........
+.............oooozz11zccccc3zz2222221111aaabb3o.........
+....oooooo.....o3occccccc3zzzz22232221111bbbb33o........
+...o2112o2oo..o33333zzzzzzzz1z22233221111112b23o........
+..o222222o2o.o333311zzzz1z11zz222233222111122233o.......
+.o22333o2o22oo3331311111zzzz11z22233322111122223o.......
+o2222112o222333311zzzzzzz11111zooooo3322222222233o......
+o22221122o13323z11111111111111o21112o333333222233o......
+o22222223o1o32c11111111111111o3222123o31112222233o......
+o3223333ooo333z1111111111111o3o3322112o1111222233o......
+o32221123o3333zz31111111111o222oo3222233111222233o......
+o32221122o33cz111zzzzzzzzBzo211222222223111222333o......
+o32222223o33311111111111111oA22222222223112222333o......
+.o333oooo33cz1111111111111o1322222222223222223333o......
+.o3333223o3cz1111111111111o113322222222322223333o.......
+..oo33333oozzz311111111111o222222222222322233333o.oo....
+....ooooo.oz111zzzzzzzzzzzo33222222222233333333oo313o...
+..........oz111111111111111o33322333333333333ooo.o213o..
+..........oz111111111111111o3333333333333333oobo..o213o.
+..........o31111111111111111o33333333333333o3oco..o312o.
+..........ozzzz111111111113zzoo333333oooooo33oo...o212o.
+..........oz111zzzzzzzzzzz111zzoooooo33333333o...oa1123o
+..........ooz1111111111111111z33333333333333oo...o31223o
+.........o3ozz11111111111111z332222333333333oo...o22223o
+.........o22o333zz1111111zzzzo2111112333333o3o.ooab2233o
+........oa22o3zz333333333333332111b1233333o3333obab223o.
+........oaa23o3zzzzzzzzzzzzzo2211aab2333o3o323112bb233o.
+........obc223o3zzzzzzzzzzz3o211baabc333oo33222222233o..
+........ob32233o333333333333o2111bab2333o333222223333T..
+.........o332333oozzzzzzzzz3o22111c2333o333332233333o...
+.........o33333333o33zzzz333o3322223333oz33333333333o...
+..........oooo33333oo333333333333333333ozzz33333333o....
+..........o222333333oooooooooo3333333233ozzzzzzz3oo.....
+........oow2322333333o.......o3222222233oz33zz3oo.......
+........ow13w13333333o.......o2121221233ooooooo.........
+.........oooooooooooo.......ow13ww33ww33o...............
+............................ow13w133w13o................
+.............................Pooooooooo.................
diff --git a/parts_pl_src/body/pl_coilfist_c.txt b/parts_pl_src/body/pl_coilfist_c.txt
new file mode 100644
index 0000000..1af5746
--- /dev/null
+++ b/parts_pl_src/body/pl_coilfist_c.txt
@@ -0,0 +1,59 @@
+# pl_coilfist_c: from pixellab_src/pl_coilfist_c/base.png (variant of pl_coilfist) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 38)
+# head_top at (31, 8)
+# back at (29, 35)
+# tail at (50, 52)
+...........ooooooo^...................
+..........o2bb33333oo.................
+.........o2ac23222333o................
+........o22a2212233332o...............
+.......o222211233332222o..............
+.......o332221oo3222232o..............
+......o311223oc322211322o.............
+....oo111122333222332322o.............
+...o111112222223331133223o............
+...o311322212331111133222o............
+...o2222233331111113321223o...........
+...o3333311111111ccc32222co...........
+....o1111ooooooo33333222aco...........
+.....oooo.......oyyyc2aaaco...........
+................oyyyc2aaa3o...........
+.................occ122223o...........
+.................oyy122223o...........
+.................o11122213o...........
+.................o21121123o...........
+................o111121123o...........
+................o11112aacco...........
+...............o13111aaaco............
+...............o11111aaaco............
+...............o111112233o............
+..............o1111122233o............
+..............o111112133o.............
+..............o111112233o.............
+.............o11B112223o..............
+.............o11111aacco..............
+............o111112aacco..............
+...........o131113A23co...............
+...........o1111122233o...............
+..........o1111112133o................
+.........o111111c2233o................
+.........o111111c223o.................
+.........o111111aaaco.................
+........o1111113aacco.................
+........o1333112233o..................
+.......o11111112213o..oooooooooooo....
+.......o11111112223ooo32aa1132aaa2oo..
+.......o31111131123o2212aa2232aa2223o.
+oo.....oy33333111233o2223b3333b333333o
+o3o....o111111122233oo33333333o211233o
+o22o...o111111122322boo3ycyyoo3211133o
+o322oo..o111113c3212b33ooooo221322213T
+o3322oooo23333y3222232232aaa322132333o
+.o3322aa3yyyyyyy3223122322aa322213333o
+..o333bb3oyyyyyy33312212222b13233333o.
+..oycybb33oc3c33y333322322223333333o..
+...ooyy3222oyyyyyyy33333333333333co...
+.....ocyyy3coyyyyy3yyycc333333y3oo....
+......ooooooooooccyyyc3yyy333ooo......
+................ooPoooooooooo.........
diff --git a/parts_pl_src/body/pl_coilfist_d.txt b/parts_pl_src/body/pl_coilfist_d.txt
new file mode 100644
index 0000000..a2fbf4a
--- /dev/null
+++ b/parts_pl_src/body/pl_coilfist_d.txt
@@ -0,0 +1,57 @@
+# pl_coilfist_d: from pixellab_src/pl_coilfist_d/base.png (variant of pl_coilfist) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 33)
+# head_top at (31, 9)
+# back at (29, 35)
+# tail at (47, 52)
+.............oooo^oooooo.............
+..........ooo22aaaaaa222ooo..........
+.........o22222aaaaaa222112oo........
+.......oo1122aaaaa22222211222o.......
+......o221122aaaaa222222222222oo.....
+.....o22222222aa2222222222222222o....
+....o222222222aa2222222233322222o....
+...o23332211222221122233111232222o...
+...o3111321122222112232111112322ao...
+..o21111132222222222311111111232aao..
+..o22211132222222223111122222132aao..
+.o223321112222222223112233322232222o.
+.o3ooo31112222222222112ooooo3222222o.
+.o3o1oo222222222222222oooo1oo322211o.
+.oo1owwo3222222222222owwooo1oo222112o
+.oowowwo322222222222oowwooo11o222222o
+.oowoooo322222222222ooooooowwo222223o
+.oowoooo322222222222ooooooowwo222223o
+.oowcooo322111122222ooooooowwo222223o
+o22wcooc311111112222oooooocw12222233o
+o222cccc111111112222occoobcw22222333o
+o1122cc31111111222222ocbbcc22122233o.
+o1112223111111322222222222221111333o.
+o1111132222222322222222222211111333o.
+.o1111332222222222A322221111111333o..
+..o111133333322233111111111111z33o...
+..o3z11111111ccB1111111111111z33o....
+....ozz1111111111111111111zzz33o.....
+.....oozzz11111111111zzzzzz3ooo......
+.......ooozzzzzzzzzzzzz3oooo.........
+.........ooo3c3cccc3333oo............
+........o3333zzzzzz33333o............
+.......o1223zzzzzz3333333o...........
+.......2233zzzzzzz22332123o..........
+......o122o11111122o322113o..........
+......o2222o111132o2222223o..........
+......o3222ozz112o2222223o...........
+.......o32o1111223o2233oo............
+........oo31111222o3oooooooooo.......
+........331111z222333o3bb332abo......
+.......o213zzzz21123o333b332a23o.....
+.......o211111121123oo3333333223o....
+.......o3111111222222o33333321133o...
+......o1o3111133222122ooooo221113T...
+......o1o333331132212222bb2211233o...
+......o233111111322111222b2221333o...
+.......o33311113c32221222c1133333o...
+.......o33o3333zzz3322222233333zo....
+......o2233ozzzzzzzc333333333zzo.....
+.......oooooozzzzzcczzczzzzzooo......
+.............oooooPooooooooo.........
diff --git a/parts_pl_src/body/pl_condor.txt b/parts_pl_src/body/pl_condor.txt
new file mode 100644
index 0000000..8cb91e0
--- /dev/null
+++ b/parts_pl_src/body/pl_condor.txt
@@ -0,0 +1,50 @@
+# pl_condor: from pixellab_src/pl_condor/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 39)
+# head_top at (31, 21) (from part/probe)
+# back at (31, 31) (from part/probe)
+# tail at (46, 50) (from part/probe)
+.................oooooooo.................
+...............oobaaaaabboo...............
+..............obbaaaaaaaabbo..............
+.............obbaaaaaaaaaabbo.............
+............obaaaaaa^aaaaaabbo............
+............obaaaaaaaaaaaaabbo............
+...........ocaaaaabaaaabaaaaaco...........
+...........ocaaaaabaaabbaaaaaco...........
+..........obcbaaaabbabbaaaabccbo..........
+..........obcobaaaacbcaaaaboocbo..........
+......oo.obbcoobbaacbcaaabooocbbo.oo......
+......o2oobbca1oobbcccbbco31ocbboo2o......
+......o22obbc13ooooyyyooooo1obbbo12o......
+......o32ooacc11aczyyyzca11acbaoo22o......
+....oo3322obabccczboBybzccccbabo3333oo....
+....o32122obbacoozyy1yyzoocbabbo32123o....
+.....o33222obbcyyzyy1yyzyycbbbo22233o.....
+......oo333oobcooczy1yzcoocccoo333oo......
+.....oo31113oocccozy1yzoccccoo22113oo.....
+.....o33222333ooccozyzocccoo23222333o.....
+......o33331123oocozyzoccoo21223333o......
+....ooooo3222233oocozocoo3322223oooooo....
+...o2122o33333223occAcco31133333oo2212o...
+...o2211ooooo3233obcccbo3323ooooo21122o...
+..ooo11113ooo3333obbccao3333oo3331111ooo..
+.oooo211112oooooo3ocbcco3oooooo211112oooo.
+.o3oo223112o2222o33oooo33o2222o211322oo2o.
+oo13o222122o21112ooo22ooo21112o221222o31oo
+oo1oooo222o221111222oo222111122o222oooo1oo
+o33o3oo22oo22111111132111111122oo22o33o33o
+o3o21ooooooo221111111111111122oooooo312o3o
+ooo1oo33ooo3o2221111111111222o3ooo22o31ooo
+.oo13o2oo.o33o22221111112222o33o.oo2o313o.
+.o333ooo..o333oo2222222222oo333o..oTo333o.
+.o33o.....oo3333oo222222oo3333oo.....o33o.
+.o3o.......ooo3o33oooooo33o3o3o.......o3o.
+.oo.........ooooo3o....o3ooooo.........oo.
+..........ooocccco......occccooo..........
+.........obccbcccco....occccbccbo.........
+........obobcobbcbo....obcbbocbobo........
+........o2oco1ocooo....oooco1oco2o........
+........ocooo2ooo........ooo2oooco........
+........oo..oboo..........oobo..oo........
+.............P..............o.............
diff --git a/parts_pl_src/body/pl_condor_b.txt b/parts_pl_src/body/pl_condor_b.txt
new file mode 100644
index 0000000..381f512
--- /dev/null
+++ b/parts_pl_src/body/pl_condor_b.txt
@@ -0,0 +1,54 @@
+# pl_condor_b: from pixellab_src/pl_condor_b/base.png (variant of pl_condor) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 37)
+# head_top at (31, 13)
+# back at (31, 31)
+# tail at (51, 50)
+.................ooo^oooo.................
+...............ooaaaaaaaboo...............
+..............obaaaaaaaaabbo..............
+.............obaaaaaaaaaaaabo.............
+............obaaaaaaaaaaaaaabo............
+............obaaaaaaaaaabaaaao............
+...........ocaaaaaabaaabbaaaaao...........
+..........oocaaaaaabaabbaaaaaaoo..........
+..........obccaaaaabbbbaaaaaacboo.........
+.........obbcocbaaaaccaaaaacocbbo.........
+........oobbcoooobaaccaaaoooocbboo........
+.....oooobbbc3woocccccccco21ocbbboooo.....
+.....owwobbbc1wooooyyycoooowobbbbowwo.....
+.....owwobbacc111czyyyzz2111cbabbowwo.....
+....oo1wobbaaaccczbo1yozccccaaabbow1oo....
+...o1www1obaaacoozyy1yyzoobbaaaco1www1o...
+...o1www1ocbaabyyzyy1yyzyybbaaaco1www1o...
+...o111wwoccbabooczy1yycoobbaacco1ww11o...
+...oo1www1occbbccozyByzcocbbbcco1www1oo...
+..oowwwwww1oocccccozyycocccccco1wwwwwwoo..
+..oowwwwwww11occcccoyzocccccoo1wwwwwwwoo..
+..oo111wwwww11occcccooccccco11wwwww111oo..
+..o33o1wwwwwww1ooccccccccoo1wwwwwww1o33o..
+.o333owww1wwwww113cccccc311wwwww1wwwo333o.
+.o313o1111wwwwwwww1oAc111wwwwwww1111o313o.
+o33113oooowww1wwwww1111wwwwwwwwwoooo31133o
+o31111333oww11wwwwwwwwwwwwww11wwo33311113o
+o313111o3o11ooww1wwwwwwww1wwoo11o3o111113o
+o113111o33oo3ow111wwwwww11w1o3oo33o111311o
+o113113o33333o113o1wwww1oo11o33333o311311o
+o112112o311113oo3o11ww11o3oo311113oo11o11o
+o11211o331111133333o11oo33331111133o11o11o
+o21233o3311111111133oo3311111111133o31313o
+o2133o333111111111133331111111111333o3313o
+o333oo333111111111111111111111111333oo333o
+o333oo333311111111111111111111113333oo333o
+.o33ooo3333111111111111111111113333ooo33o.
+.o2oo.oo33333311111111111111333333oo.oo2T.
+..oo...oo333333331111111133333333oo...oo..
+........oo3333333333333333333333o.........
+..........oo33333333333333333ooo..........
+..........oooooooooooooooooooooo..........
+.........obccbcccco....occccbccbo.........
+........obobcobbcbo....obcbbocbobo........
+........o2oco1ocooo....oooco1oco2o........
+........ooooo2ooo........ooo2ooooo........
+........oo..oboo..........oobo..oo........
+.............P..............o.............
diff --git a/parts_pl_src/body/pl_condor_c.txt b/parts_pl_src/body/pl_condor_c.txt
new file mode 100644
index 0000000..848e1b1
--- /dev/null
+++ b/parts_pl_src/body/pl_condor_c.txt
@@ -0,0 +1,63 @@
+# pl_condor_c: from pixellab_src/pl_condor_c/base.png (variant of pl_condor) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 36)
+# head_top at (31, 4)
+# back at (31, 31)
+# tail at (51, 50)
+..................oo^oooo.................
+.................obaaaaabo................
+................oaaaaaaaaao...............
+...............oaaaaaaaaaabo..............
+..............obaaaaaaaaaaabo.............
+..............oaaaaaaaabaaabo.............
+.............occaaabaabaaaccbo............
+.............ocooaaacbaaacocbo............
+............obc1oobbccbboo1cbbo...........
+............obcwooocyyoooowcbbo...........
+............obac112yxxzc11bcbbo...........
+............obabcccyc1yycccaao............
+............obbaczzzx1zyyzcbbo............
+.............obbcbbyx1zyoocbco............
+.............occccoyz1yocccco.............
+..............oocccoyzocccco..............
+...............occccoocccco...............
+...............ooccccccccoo...............
+................oobcccccco................
+.................obbbcbbo.................
+.................obabbabo.................
+.................obaaaabo.................
+.................obaaaabo.................
+.......oo....oo..obaaaabo..oo....oo.......
+.......o3oo..o3o.obaaaabo.o2o..oo3o.......
+.......o313o.o33oobaaaaboo22o.o313o.......
+.......o3332oo322obaaaabo223oo3333o.......
+.....oo3333323322obaBaabo2232233333oo.....
+.....o3311333322obbaaaabbo2222331113o.....
+......o333333222obaaaaaabo222333333o......
+.......oo333322obbaaaaaabbo222333oo.......
+......oo3111322obaaaaaaaabo2233113oo......
+......o33333322obaaaaAaaabo22333333o......
+......oo33331132obaaaaaabo31133333oo......
+....oo2ooo3333333obaaaabo333333ooo22oo....
+...o21222o33333113obbbbo3113333o222212o...
+...o22112ooooo333332oo333333oooo221122o...
+..ooo11112oooo33333133133333oo2221111ooo..
+.oooo211112ooooooo313313ooooooo211112oooo.
+.o3oo22o112o22222o33oo33o22222o211o32oo2o.
+oo13o222122o21111ooo22ooo21112o221222o31oo
+oo1oooo222o22111122222222111122o222oooo1oo
+o33o3oo22oo22111111111111111122oo22o33o33o
+o3o21ooooooo221111111111111122oooooo312o3o
+ooo1oo33ooo3o2221111111111222o3ooo22o31ooo
+.oo13o2oo.o33o22221111112222o33o.oo2o313o.
+.o333ooo..o333oo2222222222oo333o..ooo333T.
+.o33o.....oo3333oo222222oo3333oo.....o33o.
+.o3o.......ooo3o33oooooo33o3o3o.......o3o.
+.oo.........ooooo3o....o3ooooo.........oo.
+..........ooocccco......occccooo..........
+.........obccbcccco....occccbccbo.........
+........obobcobbcbo....obcbbocbobo........
+........o3oco1ocooo....oooco1oco3o........
+........ooooo3ooo........ooo3ooooo........
+........oo..oboo..........oobo..oo........
+.............P..............o.............
diff --git a/parts_pl_src/body/pl_condor_d.txt b/parts_pl_src/body/pl_condor_d.txt
new file mode 100644
index 0000000..a474833
--- /dev/null
+++ b/parts_pl_src/body/pl_condor_d.txt
@@ -0,0 +1,58 @@
+# pl_condor_d: from pixellab_src/pl_condor_d/base.png (variant of pl_condor) (pixellab_library.py extract)
+# pivot at (34, 59)
+# aura at (32, 35)
+# head_top at (31, 8)
+# back at (31, 31)
+# tail at (47, 50)
+..................ooo^oooo..................
+...............ooobaaaaabbooo...............
+..............obbaaaaaaaaaabbo..............
+.............obaaaaaaaaaaaaabbo.............
+............obbaaaaaaaaaaaaaabbo............
+............obaaaaaaaaaaaaaaaabo............
+...........ocaaaaaabaaaaabaaaabbo...........
+...........ocaaaaaabaaaabbaaaaabo...........
+..........occbaaaaabbabbbaaaaaacco..........
+..........obccbaaaaacabbaaaaabccco..........
+..........obcoobaaaacbbaaaaaboocco..........
+.........obbcooobbaacccaaabbooocbco.........
+.........obbbo11ooccccccccoo31ocbco.........
+.........obbbo13oooozzzoooooo1obbco.........
+........obbaac1112czyyyzcc2111cbacco........
+........obbaaabccczbo1yozcccccbaacco........
+........obbaaaacoozyy1yyzooccbaaacco........
+........oobbaaaboyzzy1yyzzyccaaaccoo........
+......oo3obbbaabooczy1yycooccaabcco3oo......
+.....o3233occbabbcozz1yzoccccabcco333oo.....
+....o221333occcbbbcozyzcoccccccco333333o....
+...o31122333occccccczyzoccccccco33332133o...
+...o211222333occccccozoccccccooo33311123o...
+..o31222121333oooccccBccccooo333322111133o..
+..o22221222233333oocccccooo33333211111233o..
+.o32221121112233333ooooo333333321211112233o.
+.o2222222222122233333333333332221212222233o.
+o312222222222112222333A33222221112112212333o
+o312222222222222212233322122221222122212333o
+o312222222222222212222221122222222222221333o
+o332222222222222222222222222222222222212333o
+o333221222222222222122222222222222222211333o
+o333222222222222222222222222221222222113333o
+o333332222222222222222222222222222222213333o
+.o3333222222222222222222222222222221113333o.
+.o3333122222222221222222222222222222113333o.
+..o333321122222222222222122112222222333333o.
+..o33333312221222222222222212222121333333o..
+...o333333111122222222222222222111333333oo..
+...o33333333222222212222222111123333333oo...
+....o3333333333211122221212213123333333o....
+.....o33333333333133122221123333333333o.....
+......oo3333333333333333333333333333oT......
+.......oo333333333333333333333333333o.......
+.........oo3333333333333333333333ooo........
+...........ooooo33333333333oooooo...........
+............occcooooooooooooccco............
+...........ooccco.........oobbboo...........
+..........occcbcbo.......obbbbbbbo..........
+.........oxccybcbxo.....oxbbbybbc1o.........
+.........o3oozooo3o.....o3ooozooo3o.........
+.........oo..oo..oo.....Po...oo..oo.........
diff --git a/parts_pl_src/body/pl_cornhen.txt b/parts_pl_src/body/pl_cornhen.txt
new file mode 100644
index 0000000..a9f5438
--- /dev/null
+++ b/parts_pl_src/body/pl_cornhen.txt
@@ -0,0 +1,48 @@
+# pl_cornhen: from pixellab_src/pl_cornhen/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 39)
+# head_top at (31, 23) (from part/probe)
+# back at (35, 33) (from part/probe)
+# tail at (46, 49) (from part/probe)
+...............ooooo..................
+.............oo31112ooo...............
+...........oo1232222312o..............
+..........o3231133333323o.............
+.........o12311113^113332o............
+........o11131111311113212o...........
+.......oo213333323211133223o..........
+......o213331111333333333322o.........
+......o111311111311113112312ooo.......
+.....o21113111113111131123223o3oo.....
+....oo22222222222221122223333oo33o....
+....oo21111111111112222333323o223o....
+...oo11111111111111112221232o2223o....
+..o3o113311111113311112212oo222332o...
+..oo11ooo1111111ooo111B323o2222322o...
+.o3o11owo1111111owo111233o23322223o...
+.o3o11ooo1oo3111ooo11123o2332223ooo...
+o33o111o2o112311oo21123o2332223o333o..
+o33o1a11o12222o11111123o22233oo3333o..
+o33o2111o333oo31111aa3o233oooo333223o.
+o33o31111oooco1111A123o33oo323o32211o.
+o33o33211occbbo111123o23oo3312oo32313o
+o23o21133ocaaao222333o233o32212oo3323o
+.o3o21113oooooo333112o3333o32212oo333o
+.o3o21113211111231113o3333o32222ooo33o
+.o3o3222321111123112o23323o312223oo33o
+.o3o3333332222233322o33323oo11122oo33o
+.o3o3211133333333333o33322oo22223ooo3o
+.o3o3221131111123211o33222oo22223o.oo.
+..o3o332231111123212o232323o33233o....
+....oo33333222233322o232323oo3333T....
+.....o33223333333333o23232333o3oo.....
+......o3333322223322o33233333oo.......
+.......o333333333332o3333333o.........
+........oo2233333333o33333oo..........
+..........oooo33333o333ooo............
+...........o33oooooooo33o.............
+..........oo33o......o33o.............
+.........o3123o....ooo33oo............
+.........oo23oo....o32123o............
+..........oooo.....ooo2ooo............
+.....................Poo..............
diff --git a/parts_pl_src/body/pl_cornhen_b.txt b/parts_pl_src/body/pl_cornhen_b.txt
new file mode 100644
index 0000000..3f1f087
--- /dev/null
+++ b/parts_pl_src/body/pl_cornhen_b.txt
@@ -0,0 +1,49 @@
+# pl_cornhen_b: from pixellab_src/pl_cornhen_b/base.png (variant of pl_cornhen) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 39)
+# head_top at (31, 18)
+# back at (35, 33)
+# tail at (46, 49)
+................oo^o.................
+.............ooo1113ooo..............
+...........oo1331113312o.............
+..........o3113333333223ooo..........
+.........o13331133311333311o.........
+........o1a131111311113321a2o........
+.......o31c131111311113321c23o.......
+......o33323333323211233311333o......
+.....o3b133311113333333333311b2o.....
+.....o1ba1311111311113111231ab2o.....
+....o21111311111311113111232bb33o....
+...o33333333222222211322223333333....
+...o11311111111111133333333322b33o...
+..o2a1111111111111111123112322b23oo..
+..o2a11331111111331111131a332222o2o..
+..o211ooo1111111ooo111B22223333o223o.
+.o3211owo1111111owo11111333333oo223o.
+.o1311ooo1oo3111ooo1111132223oo3323o.
+.o13111o2o112311oo2111113222o223223o.
+.o331a11o12222o111111111322o2333333o.
+.o331111o333oo31111aa11233o223332332o
+o33331111oooco1111A111133o3333333332o
+o31333211occbbo1111111333o333oo33222o
+o31311133ocaaao222333333o223o33o3322o
+o31311113oooooo22211111o223o3322o323o
+o323111132111112311111o2333o3312o333o
+.o33322232111112311211o2333o32212o3o.
+.oo333333222222333222o22323o32212o3o.
+..o332b12333333333333o33322o31112oo..
+...o32bb23111112322abo33222oo1122oo..
+...o332223111112322bbo33222oo2222o...
+....o3333332222333222o232223o3223T...
+.....o322233333333333o232323o3323o...
+......o33333222233222o3323233o333o...
+.......o3333333333333o3323233oooo....
+........oo2233333333o333333oo........
+..........oooo33333o33ooooo..........
+...........o33oooooooo33o............
+..........oo33o......o33o............
+.........o3123o....ooo33oo...........
+.........oo23oo....o32123o...........
+..........oooo.....ooo2ooo...........
+.....................Poo.............
diff --git a/parts_pl_src/body/pl_cornhen_c.txt b/parts_pl_src/body/pl_cornhen_c.txt
new file mode 100644
index 0000000..04920bb
--- /dev/null
+++ b/parts_pl_src/body/pl_cornhen_c.txt
@@ -0,0 +1,64 @@
+# pl_cornhen_c: from pixellab_src/pl_cornhen_c/base.png (variant of pl_cornhen) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 37)
+# head_top at (31, 3)
+# back at (35, 33)
+# tail at (47, 49)
+...............ooo^o.....................
+.............oo11111oo...................
+............o111111112o..................
+...........o11111111122o.................
+...........o11111111122o.................
+..........o1111111111222o................
+..........o1oo1111oo1122o................
+..........o1oo1o11oo1122o................
+..........o1oo2131o21122o................
+..........o11o222o11a223o................
+...........o11ooo1112223o................
+............o21111122333o................
+.............o3222233333o................
+..............ooooo33333o................
+.................o333333o................
+.................o333233o................
+.................o322223o................
+.................o112223o................
+.................o112233o................
+................o1111233o................
+................o111122o.................
+................o111122o.................
+................o111222o.................
+...............o1111223ooo...............
+.............ooo1112223o32oo.............
+...........oo23o1112233oo233o............
+..........o2y2o11112233o2233o............
+..........ox3oo11112233o2333o............
+..........o33oo1112223o2333o.............
+..........oo33o111222o233oooo............
+.........o2233o11122o2Boo3333o...........
+........o32222222222o233233223oo.........
+........o32111111112o222222322xxo........
+.......oo11111111111o222222y322xxo.......
+......o3o1111111113A1o22232yx3223o.......
+......oo11oo111111oo11o22322x3333o.......
+.....o3o11oo111111oo21oo22322yo33o.......
+.....o3o11ooooo311oo212oo2232yo333o......
+.....o3o1a1o1222o111112o3o22322o33o......
+....o23o211o333o31113a3o3o32322o333o.....
+....o2oo3111oooo111113o233o33322o32o.....
+....o2oo3221occbo11223o233o333222o32o....
+....o2oo2113ooooo33311o233oo33322o32o....
+....o2oo2112211112311o3333oo33322o32o....
+....o2oo3223211112312o3333oo333322o2o....
+....o2oo3333322223332o3332o2o33322oo.....
+....o2oo3211333333333o3322o2o33322T......
+....o3o3o332311112321o3323ooo33322o......
+....o2o33o33332223332o33233oo32232o......
+....o3o33o32233333333o222333oo2232o......
+....o3o333o3323222332o33333ooo3223o......
+...o23o333ooo33333333o3333oo33o2233o.....
+...o33ooooo.oooo3333o33oooooooo22233o....
+.oo233o......oo3ooooooo3o......oo2223oo..
+o3333o......ooo3o...ooo2oo.......oo22223o
+.oooo.......o22oo...o3112o.........ooooo.
+............oooo....ooo3oo...............
+......................Po.................
diff --git a/parts_pl_src/body/pl_crab.txt b/parts_pl_src/body/pl_crab.txt
index d9b567a..fa07595 100644
--- a/parts_pl_src/body/pl_crab.txt
+++ b/parts_pl_src/body/pl_crab.txt
@@ -1,8 +1,8 @@
# pl_crab: from pixellab_src/pl_crab/base.png (pixellab_library.py extract)
# pivot at (24, 60)
# aura at (31, 43)
-# head_top at (34, 33) (from part)
-# back at (30, 31) (from part)
+# head_top at (34, 33) (from part/probe)
+# back at (30, 31) (from part/probe)
# tail at (51, 52)
...................................ooo...
.....ooooo........................ob12o..
diff --git a/parts_pl_src/body/pl_crab_b.txt b/parts_pl_src/body/pl_crab_b.txt
new file mode 100644
index 0000000..ea5f167
--- /dev/null
+++ b/parts_pl_src/body/pl_crab_b.txt
@@ -0,0 +1,45 @@
+# pl_crab_b: from pixellab_src/pl_crab_b/base.png (variant of pl_crab) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 40)
+# head_top at (34, 25)
+# back at (30, 31)
+# tail at (51, 52)
+.....ooooo...............................oooo.....
+....o2123co.............................oc211o....
+...o2122cao.............................obco11o...
+..o2113cabo..........oooooo^oo..........obco211o..
+.o2123ocbboo.......oo221122222oo.......oobbco312o.
+.o212ocbco13o....oo2211111112222oo....o1ocbbo3223o
+o2222ocbco12o...o3211bb111111bb222o...o13ocbo3222o
+o2223occoo22o..o2211111111111bb2223o..o12ooco3222o
+o3223ocoo122o.o3cb11ooo111111ooo2222o.o2213o32222o
+o32222o31223o.ocbb1o333B1111o333o2bbcoo2221132223o
+o33222222233oo22b1o31113o11o31113obbcoo3222222233o
+.o332222233oo32211o11o11o11o11o11o2bc3oo32222233o.
+.o333222333oo32211o11oo1o11o11oo1o22223oo3323333o.
+..oo333333o.o22111o13o21o11o13o21o22223o.o33333o..
+....oooooo..o22111o11111o11o11111o22223o..ooooo...
+....o3323o.o3221111o111o111oo111o222222o..o233o...
+.....o3223oo322bb11ooooo1111ooooo2222223oo323o....
+.....o32223o322bb111o33o1111o33o22bbb223o3223o....
+......o3322o322bb111o33o1A11o33o22bba233o223o.....
+.......o333o322221111oo211113oo222222233o33o......
+........oooo3222221112211111233222222233ooo.......
+...........o3322222211111112222222222333o.........
+...........o33222bb2222222222222bb22233o..........
+...........o33322bb22o322222oo22bb22333o..........
+............o332222223ooooooo2222222333o..........
+............o3332222223o111o2222222333oooo........
+............oo333222222233322222ba333oo222o.......
+...........oooo33322222222222222aa33o211222o......
+..........o223o3333bb22222222222333o22111222o.....
+.........o333ooo333b32222222222333oo22333222o.....
+.........o23o222oo333332222223333oo223oo2223T.....
+........o23o23333ooo33333333333oo3o23oco3223o.....
+........o3oo23ooo3123o3333333o313oo2oaao3233o.....
+........o3o323o.o123oooooooooo321ooooaao333o......
+........o3o33oo.o23o..........o22o.oocc333o.......
+........ooo23o..o33o..........o33o..oooooo........
+..........o3o...o3o............o3o...o3o..........
+..........oo....o3o............o3o....oo..........
+................oP..............oo................
diff --git a/parts_pl_src/body/pl_crab_c.txt b/parts_pl_src/body/pl_crab_c.txt
new file mode 100644
index 0000000..30aa2b2
--- /dev/null
+++ b/parts_pl_src/body/pl_crab_c.txt
@@ -0,0 +1,45 @@
+# pl_crab_c: from pixellab_src/pl_crab_c/base.png (variant of pl_crab) (pixellab_library.py extract)
+# pivot at (42, 58)
+# aura at (32, 39)
+# head_top at (34, 25)
+# back at (30, 31)
+# tail at (51, 52)
+....................................ooooo.....
+.....ooooo.........................o33212o....
+....o21233o........................obc3112o...
+...o2113cbo.....ooo.......ooo......oabc3112o..
+..o2113cbao....o333o.....o333o....ooaaco311o..
+.o2113ocaaoo..o3www3o...^3www3o..o21oaabo222o.
+.o222obaao12o.owwo1wo...owwo1wo..o21ooabo3222o
+o2223obaoo12o.owwoowo...owwoowo..o221obbo3222o
+o2223obbo123o.owoo2wo...owoo2wo..o2222ooo3222o
+o2223ooo2223o.o1www1o...o1www1o..o33222112223o
+o32221122233o..o111o....oo111o...o33322222233o
+o3322222233o....ooooBooooooooo....o333222233o.
+.o332222333o..ooo33o22222o33ooo...oo33333333o.
+.o33333333o.o332o33o11111o33o333o..oo333333o..
+.oo333333o.o33211oo2111113oo22233o...ooooooo..
+.o3oooooo.o33211111111111112222233o....o333o..
+.o3333o..o3322111111111111222222333o...o322o..
+.o3223o.o332221111111111222222222333o.oo33oo..
+..o22o3o332222aa2111111222222aa222333o33ooo...
+...ooo3o322222aa22oo22A22oo22aa222233o333o....
+....ooo332222222222ooooooo222222222333ooo.....
+......o3322222222222owwwo2222222222333o.......
+.....oc3322222222222233322222222222333co......
+.....ocbc322222222222222222222222233cabo......
+.....occaaacc222222222222222222cccaaacco......
+.....o33caaaaaaaaaabbbbbbbbbbbbaaaaac3o.......
+....ooo3332bbbaaaaaaaaaaabbbbbbabb3333oo......
+...oo2o33332222bbbbbbbbbbbbbb22222333o3o......
+...o223o33332222222222222222222223333o32o.....
+..o123ooo333322222222222222222233333oo32oo....
+..o23o123o333332222222222222233333oo32o32o....
+..o3o2233ooo33333322222222333333ooo321oo3o....
+..o3o233o.o3ooo33333333333333ooo3o.o322o3T....
+..o3o33o..o133ooo3333333333ooo331o..o33o3o....
+..ooo3oo..o13o...oooooooooo...o31o..oo3ooo....
+....o3o...o33o................o33o...o3o......
+....oo....o3o..................o3o....oo......
+..........o3o..................o3o............
+..........oo....................Po............
diff --git a/parts_pl_src/body/pl_crab_d.txt b/parts_pl_src/body/pl_crab_d.txt
new file mode 100644
index 0000000..d5100f0
--- /dev/null
+++ b/parts_pl_src/body/pl_crab_d.txt
@@ -0,0 +1,62 @@
+# pl_crab_d: from pixellab_src/pl_crab_d/base.png (variant of pl_crab) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 24)
+# head_top at (34, 8)
+# back at (27, 31)
+# tail at (40, 52)
+............................oo3..
+....oooo...................ob1o..
+...o1123o..................oaa3o.
+..o213obo...oooo...^ooo..oooaa23o
+.o213ocaoo.o3ww3o.o3ww3o.o2obb33o
+.o22obao12oowwowo.owwowo.o23ob23o
+o223obao12oowwowo.owwowo.o22o223o
+o223ooo223oo1w11o.o1111o.o32333o.
+o322112233o.o11ooooo11o...o3333o.
+o33222233ooooooo222oooo...o333o..
+.o3322233o.32o3o111o333oo..oooo..
+.oo3333oo3312ooo111ooo333o.ooo...
+.o3oooo.332112211112332223o33o...
+.o333o.o332221111122222223ooo....
+.o323o.3322a2222222222aa233o.....
+...333oc3322223ooooo322233cbo....
+...ooooac332222owwo3222333ccooo..
+......ocacc3222333222233ccoo22o..
+......oooaac3333333333ccbb31122o.
+....oo3ooooobbaaAboabaoooo233322o
+....o232223oooooooooooo3o23oo223o
+...o23o333333o333333o3o3o2oco323o
+...o3oo3ooo123o3333o333oo2obo333o
+...o3o3oo.o2o........o2o.ooc33o..
+...ooo2o..o3o........o3o..ooooo..
+.....o3o..ooo........o3o..o3o....
+.....oo...o3B........o3o...oo....
+.........o33o........o33o........
+.........o23o........o32o........
+.........o13o........o31o........
+........o11o..........o11o.......
+........o12o..........o21o.......
+........o13o..........o31o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o1o............o1o.......
+........o2o............o2o.......
+........o3o............o3o.......
+........o3o............o3o.......
+........o3o............o3o.......
+........o3o............o3T.......
+........o3o............o3o.......
+........o3o............o3o.......
+........o3o............o3o.......
+........o3o............o3o.......
+........o3o............o3o.......
+........o3o............o3o.......
+........o3o............o3o.......
+........ooP............ooo.......
diff --git a/parts_pl_src/body/pl_cricket.txt b/parts_pl_src/body/pl_cricket.txt
new file mode 100644
index 0000000..6ef411f
--- /dev/null
+++ b/parts_pl_src/body/pl_cricket.txt
@@ -0,0 +1,45 @@
+# pl_cricket: from pixellab_src/pl_cricket/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (30, 43)
+# head_top at (27, 30)
+# back at (37, 35) (from part/probe)
+# tail at (48, 46) (from part/probe)
+.....................oo................
+.......oo...........o1o................
+......o3o..........o1o.................
+.....o13o.........o1o..................
+.....o3o.........o2o...................
+....o13o........o2o....................
+....o1o........o2o.....................
+....o2o....oooo23o.....................
+...oooo..oo122o^o....ooo...............
+..o1ooo.o3233o3o3o..o122o..............
+..o13ooo11333o3o223o1333o.....oooo.....
+..o13o3o1123o3o223o13333o....o1111o....
+.o133o3o1223o11233333333o...o111112o...
+o31o3o22122o12223o23333ooB.o21111123o..
+o31o3o2212222222333333o2oooo21111233o..
+o33o33221222223333322222ooocaa11133bo..
+.o3o33321222233322222222o3oaaaaaabbbo..
+.obb3o331233333ooo222222o3caaaaabbbbo..
+..oboco333333oow1coooooococaaaaabcbbo..
+..oboo1o1333ooowwc3o2333o33oobbbb333o..
+...ooowooooo1oow133o1223oo333oobbc33o..
+...o3ow1122211ww23Ao1223obo3333occbbo..
+..o3o3o212222222333o11123bbo3331o333o..
+.o33o3o33333333333o111123bboo3312o33o..
+o2oco33owooocwo33o1111113oob3co11obbT..
+o23oo33owoabcwo3oo1111123obo3o1o1obbo..
+o1b3o33oooaaaooo332111223obbooa3ocbbo..
+.o23o3oo33ooo3333o1112223o3bo12oo333o..
+..oo1oo33333333333o12223o3bboooboc33o..
+...o3333o3333333333o123o3o3bbo33ocbbo..
+...co333co3333333333ooo333oboo33ocbbo..
+...o3o3o..oo333333333o33oboo.obboc3o...
+...o33oo..c3ooo3bb3b33oo33o..o33oo33oo.
+....oc3o.ob3o..ooooooco333o...o3o.o3cao
+...o33o..ooo...........3b3o...o33o..ooo
+..oac3o................o3o.....o3bo....
+..oooo.................o23o.....ooo....
+.......................oabo............
+........................Po.............
diff --git a/parts_pl_src/body/pl_cricket_b.txt b/parts_pl_src/body/pl_cricket_b.txt
new file mode 100644
index 0000000..34a2ad6
--- /dev/null
+++ b/parts_pl_src/body/pl_cricket_b.txt
@@ -0,0 +1,55 @@
+# pl_cricket_b: from pixellab_src/pl_cricket_b/base.png (variant of pl_cricket) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 36)
+# head_top at (27, 17)
+# back at (37, 35)
+# tail at (52, 46)
+..........oo............ooo....................
+.........o3o...........o13o....................
+........o13o..........o13o.....................
+.......o12o..........o13o......................
+.......o13o.........o13o.......................
+......o12o.........^13o........................
+......o13o........o13o..ooooooooo..............
+......o1o....oooo.o23ooo1111baabboo............
+......o3o..oo1112o23o1111111bbbbb11ooo.........
+...oo.o3ooo111113o3o3331111oo1bbb1111ooo.......
+..o31oo3o3111113o33o111331oo1o1111111babo......
+..o331o331111133o3331111oo112o1111111babbo.....
+..o33o1o111113331111111o31222o1111111bbbbco....
+.o13o11311111331111111o312222o11122222bbbco....
+o21o111311111311111111o122222o212222222ccc3o...
+o21o111333333311111112o122222o22222222222233o..
+o22o211333333311111232312223o22222bbb2222223o..
+o32oo1111111111111ooo2332223o3222bbabc2222233o.
+.o3oco31111111333ocoo2332233o3222babbbc222233o.
+..ooboo1111111ooooao11333333o3222bbbbbc222233o.
+..o1o11111111111oooo11133ooo33222bbbbcc2222333o
+..o11111111111111111111113o3332222cbccc2222cc3o
+..o33333333333333311111113o33322222ccc2222babco
+...ow11111111111w133111113o33B22222222222babbco
+...ow1cccooooooow1oo311A13o33322222222222bbbcco
+...ow13ccooooooow1ooo31113o33332222222222bbccco
+....oo3cccoooooooooooo1113o3333oo322222222cccco
+.....o3cccoooooooooooo1113o333o11oo22222223cc3o
+.....o3ccccccccccccooo1133o333o3113o2222223333o
+.....o3ccccccaaaaaccoo133o3333o33113o22233333o.
+....o33ccaaccaaaabccoo133o3333ooo311o33333333o.
+...o1wccaaaaaaaaw1cco133o3333333oo311o3ooo333o.
+...o1wcaaaaaaaaaw1c1133o333333333o311oo111o33o.
+...o11wwwwwwwww1w11133o333333333o11111o11113o..
+....o1111111111111333o333333333o311111o11113T..
+.....o222222222222ooo3333331113o33311o311113o..
+......oooooooooooo3333333321111o1o312o11111o...
+......o33o333333333333333o21111o1oooo311112o...
+......o33oo33333333333333o111113o333o31111o....
+......o333oo3333333333333o111113o333oo3113o....
+......o3333ooo33333333333o111113o3oo.o33333o...
+.......o333o..oooo3333333o31113ooo....oo333o...
+........o33o..o3ooooooooooo3113o........o33o...
+........o23o.o33o.........o3333o.......o333o...
+.......o12o..ooo...........o22oo......o333o....
+......o112o................o11o.......oooo.....
+......oooo.................o11o................
+...........................o11o................
+............................Po.................
diff --git a/parts_pl_src/body/pl_cricket_c.txt b/parts_pl_src/body/pl_cricket_c.txt
new file mode 100644
index 0000000..5242f57
--- /dev/null
+++ b/parts_pl_src/body/pl_cricket_c.txt
@@ -0,0 +1,45 @@
+# pl_cricket_c: from pixellab_src/pl_cricket_c/base.png (variant of pl_cricket) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 40)
+# head_top at (27, 23)
+# back at (37, 35)
+# tail at (47, 46)
+...............oooooooo..............
+............oo^22222222ooo...........
+.....o3o..oo222222oo222222oo.........
+....o13ooo2211122o3o22222222oo.......
+....o2oo22111122o1o2222222222ao......
+...o1oo21111112o1o2222222222aaao.....
+...o1o22111122o1o22222aa2222aaaao....
+...o2o2111122o13o2222baab222aaaaao...
+...o3o2112222o3o22222baab22222aa2o...
+..oooo222222o3o2222222bbb222222222o..
+..o2o3o2ooooo3o2222222222222222222o..
+.o222ooo222o3o3oo22222222222bbb2223o.
+.o222221112o3o333o222222222bbbbb223o.
+o322o2211122222223o22222B22bbbbb223o.
+o32o32222222222223o22222222bbbbb2233o
+o32o32222222222222o322222222bbb22233o
+o32o32222222222223o32222222222222333o
+o32oo322222223ooooo32222222222222333o
+o332co322222oow1c3A32222222222223333o
+o332o1o3223ooowwc3o32222222222233333o
+o333owooooo1oow123o32222222222333333o
+o333ow1122211w1223o32222222333333333o
+.o33oo212222222233o3333333333333333o.
+.oo33o33322333333o333ooo33333333333o.
+..o333owooocwo33o333o333o3333333o3T..
+...o33owoabcwo3o333o33333o33333o3oo..
+...oo33ooaaaooo3333o32223o3333o33o...
+...o3o333ooo3333333o32113o333o3333o..
+..o233o333333333333o321133o33o3333o..
+..o2233o333333333333o21123o33o3333o..
+..o223o.oo33333333333o2223o33oo3333o.
+..o333o...oo333333333o2223ooo..o333o.
+...o23o.....ooo3333333o333o.....o33o.
+...o23o.....o33oooooooo333o.....o33o.
+...o23o....o333o......o323o.....o33o.
+..oaa3o....oooo.......o323o....o333o.
+..oooo................o223o....oooo..
+......................oaa3o..........
+.......................Poo...........
diff --git a/parts_pl_src/body/pl_cricket_d.txt b/parts_pl_src/body/pl_cricket_d.txt
new file mode 100644
index 0000000..29c4e6e
--- /dev/null
+++ b/parts_pl_src/body/pl_cricket_d.txt
@@ -0,0 +1,45 @@
+# pl_cricket_d: from pixellab_src/pl_cricket_d/base.png (variant of pl_cricket) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (30, 42)
+# head_top at (27, 27)
+# back at (37, 35)
+# tail at (53, 46)
+.....oooo...............oooo.................
+....o1111o.............o1111o................
+...o11oo32o...........o323321o...............
+...o1o..o33o.........o13oooo2o...............
+..o1o....o33o.......o23o....o1o..............
+.o12o.....o3o...oo^o23o.....o2o..............
+.o2o.......33ooo111o3o......o2o..............
+o13o.......o3o1111o333o......o2o.............
+o13o......o233111333222oo....o2o.............
+o13o.....o2222122222222oooo..o2o.............
+o22o.....o12222222211122o21o.o2o.............
+.o22o...o311222222113322o221oo3o.............
+..ooo...o332222222233332o322o2o..............
+........o1o3222223o11132o322Booo.............
+........o1o3322223oc1132o3222121o............
+........occ3222223311322o32222211o...........
+.........o32111112333222oo32222131o..........
+.........o1111111112223o33o22222311o.........
+.........1111111w111211o333o33222131o........
+........o11111111111111o3333o33222311o.......
+........o111111111111A1o3222o333222211o......
+.......o111111111111111o321133333222211o.....
+.......o111111111111111o32112o333oooo211oo...
+.......o111111111111111o32212o3oo3111o2111oo.
+.......o11111111111111o3o3211ooo11111o222211T
+.......o11111111111111o3332112o1221221o22233o
+........o111111111111o333o2211o2223221o3333o.
+.......oo11111111111o33333o211o223oo32o333o..
+.......o3o111111111o333333o221o3o33o321ooo...
+......o23o11111111o33333333322o3o33oo31o.....
+......o23oo111111o333333333223ooo33oo32o.....
+......o23oo11111oo33333333o223o.o33o.o3o.....
+......o33ooo111o..ooooooooo22o..o33o.o3oo....
+.......o3oo.o11o..........o23o...o3o..o33o...
+......o23o...oo...........o33o...oo3o..ooo...
+.....o233o................o3o.....o32o.......
+.....oooo.................o11o.....ooo.......
+..........................o22o...............
+...........................Po................
diff --git a/parts_pl_src/body/pl_crystalball.txt b/parts_pl_src/body/pl_crystalball.txt
new file mode 100644
index 0000000..1d835d7
--- /dev/null
+++ b/parts_pl_src/body/pl_crystalball.txt
@@ -0,0 +1,43 @@
+# pl_crystalball: from pixellab_src/pl_crystalball/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 43)
+# head_top at (31, 30) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (46, 52)
+...............oooooo...............
+............oo31111113oo............
+..........o31111222222113o..........
+........o311111222233322113o........
+.......o31221111223333233313o.......
+......o112111223oooo333223311o......
+.....o112111132o3^33o323223311o.....
+.....o12211133o311233o22233331o.....
+....o12211133oo211233o333333331o....
+...oo222113332o31223o233o332231oo...
+...o132113o322332233o22233222231o...
+...o1331333112333B33322123322331o...
+...o3333o322222o333o222222333333o...
+..o13123o22222223oo32222222o33331o..
+..o1312o3223oo22222222oo322333331o..
+..o1333o22311oo222222oo11322o3231o..
+..o1223o23o11ooo2222o1o11o32o3321o..
+..o1323o33o1aooo2222oooa1o33o3231o..
+..o1332o33o1acao2222oaca1o33o3231o..
+...o223o333111o22A222o111333o331o...
+...o122o33a33322oooo22333a33o221o...
+...o112o333322223aa322223333o211o...
+...o1123333333332222333333332111o...
+....o113o3333333333333333333211o....
+....o3112o3333333333333333o2113o....
+.....o1112o2233333332223oo2111o.....
+......o31122223ooooo22oo31113o......
+....occoo11222o212222222111oocco....
+...ocbbabccc122211111122ccccbbbcT...
+...oabbaabaaccccccccccccaabaabbao...
+...ocabaaaaaaaaaaaaaaaaaaaaaabaoo...
+..oycccccbaaaaaaaaaaaaaaaabcccccyo..
+..oocoocccccccccccccccccccccooocoo..
+.occo..oooooccccccccccccooooo..occo.
+oaaco...o333oooooooooooo333o...ocbao
+ocbco...o323o..........o323o...ocbco
+.ooo.....ooP............ooo.....ooo.
diff --git a/parts_pl_src/body/pl_crystalball_b.txt b/parts_pl_src/body/pl_crystalball_b.txt
new file mode 100644
index 0000000..5ad7428
--- /dev/null
+++ b/parts_pl_src/body/pl_crystalball_b.txt
@@ -0,0 +1,63 @@
+# pl_crystalball_b: from pixellab_src/pl_crystalball_b/base.png (variant of pl_crystalball) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 29)
+# head_top at (31, 4)
+# back at (31, 35)
+# tail at (36, 52)
+...............oo^ooo...............
+............ooo111111ooo............
+..........oo112222222111oo..........
+........oo12222aabbbbb2221oo........
+.......o3122bbaaaaaaaabbb211o.......
+......o1222bb1aaaabbaaaabbb21o......
+.....o12b111aabbbabbbbbaaabb21o.....
+....o12b1111abbboooobbbaaabbb21o....
+...o12bb111babbo3233obbbaaabbb21o...
+...o22b111aaabo311233obbbbaaabb2o...
+..o12bb111bbooo211233ooobbbaabbb1o..
+..o22b111bbo32o31223o233obbbaaab2o..
+.o12bb11bbo322o32233o2223obbaaabb1o.
+.o1baa1bbo31123o323o322123obbaabb2o.
+.o2baabbo322222oo33o2222223obbbab2o.
+o1bb1abc322222223oo322222223bbbab21o
+o1ba1abo32222222222222222223obbaab1o
+o1babbbo2223oo22222222oo3222obbaab1o
+o2babbbo22311oo222222oo11322obbaab2o
+o2babbbo23o11ooo2222o1o11o32obbaab2o
+o2babbbo33o1aooo2222oooa1o33obaaab2o
+o2baabbo33o1acao2222oaca1o33obaaab2o
+o22babbo333111o222222o111333obabb22o
+.o2baabo33a33322oooo22333a33obabb2o.
+.o1bbabo333322223aa322223333oaabb1o.
+.o12baabo33333332A223333333ooaab21o.
+..o1bbabbooo333333333333333baabb1o..
+..o12baaabbboo33333333oob3oaabb21o..
+...o1bbaaabbbbooo333oobbbobaabb1o...
+...o12bbbaabbcbbbooobbbbbaaabb21o...
+....o12bbbaaabbbbbbbbbbaaabbb21o....
+.....o12bbbbaaaaaBbaaaaabbb221o.....
+......o112bbbaaaaaaabbbbbb211o......
+......oo1222bbbbbaabbbbb2221oo......
+.....ocacccc222222222222ccccaco.....
+.....obaaaaaaaaaaaaaaaaaaaaaaco.....
+....occccccbbbbbbbbbbbbbbcccccco....
+....obaaaabbcccccaacccccacaaabao....
+...obacbobaccabacaacaaacaacoccaco...
+...obaccoocacacacaacacacccoobcaco...
+....oaao.ocacaaacaacaaacaco.oaao....
+.....oo..occcccccccccccccco..oo.....
+........obacccaaaaaaaccccco.........
+........obaccccabbbbaccccco.........
+.........oocccccaaaaccccco..........
+...........occcccaaccccoo...........
+............occccaaccco.............
+.............occcaacaco.............
+.............ocacaacacT.............
+.............oaacaacabo.............
+............obaacaacaabo............
+...........obbaacaacbabbo...........
+..........occccccaacccccco..........
+..........oaaccccccccccaao..........
+.........obaaaaaaaaaaaaacco.........
+.........obbbbbaaaaaaccccco.........
+..........oooooooPoooooooo..........
diff --git a/parts_pl_src/body/pl_crystalball_c.txt b/parts_pl_src/body/pl_crystalball_c.txt
new file mode 100644
index 0000000..eb52b46
--- /dev/null
+++ b/parts_pl_src/body/pl_crystalball_c.txt
@@ -0,0 +1,43 @@
+# pl_crystalball_c: from pixellab_src/pl_crystalball_c/base.png (variant of pl_crystalball) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (31, 24)
+# back at (31, 35)
+# tail at (41, 52)
+.............oo^ooo.............
+..........oo31111113oo..........
+........o31111222222113o........
+......o311111222233322113o......
+.....o31221111223333233313o.....
+....o112111223oooo333223311o....
+...o112111132o3233o323223311o...
+...o12211133o311233o22233331o...
+..o12211133oo211233o333333331o..
+.oo222113332o31223o233o332231oo.
+.o132113o322332233o22233222231o.
+.o1331333112333B33322123322331o.
+.o3333o322222o333o222222333333o.
+o13123o22222223oo32222222o33331o
+o1312o3222222222222222222333331o
+o1333o2222222o2222o2222222o3231o
+o1223o2ooooooo2222ooooooo2o3321o
+o2323o3o1bob1o2A22o1bob1o3o3232o
+o2332o3oo111oo2222oo111oo3o3232o
+.o223o33ooooo222222ooooo33o332o.
+.o222o33b333222oo222333b33o222o.
+.o122o33332222233222223333o221o.
+.o1223333333332222333333332121o.
+..o113o3333333333333333333211o..
+..o3112o3333333333333333o2113o..
+...o1112o2233333332223oo2111o...
+....o31122223ooooo22oo32213o....
+......o12222o222222222222o......
+......oooo222222222222oooT......
+.....o333oooooooooooooo333o.....
+....o223oo33ooo33ooo33oo322o....
+....o33oo223o.o32o.o322oo33o....
+...o23o.o23o..o22o..o32o.o32o...
+...o23o.o23o..o22o..o32o.o33o...
+...o3o..o33o..o33o..o33o..o3o...
+....o....ooo..o33o..ooo....o....
+...............Po...............
diff --git a/parts_pl_src/body/pl_crystalball_d.txt b/parts_pl_src/body/pl_crystalball_d.txt
new file mode 100644
index 0000000..debc5f0
--- /dev/null
+++ b/parts_pl_src/body/pl_crystalball_d.txt
@@ -0,0 +1,43 @@
+# pl_crystalball_d: from pixellab_src/pl_crystalball_d/base.png (variant of pl_crystalball) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 43)
+# head_top at (31, 24)
+# back at (31, 35)
+# tail at (46, 52)
+...............oo^ooo...............
+............oob1111113oo............
+..........o311b122222211ao..........
+........o31111b222233222a13o........
+.......o312211wa3233333aa313o.......
+......o112www32aoooo333a33311o......
+.....oa12wwww33a3233o3aa333311o.....
+.....oaaawww33o311233oa333333ao.....
+....o12caaw33oo211233oao3333ac1o....
+...o2222caa332o31223o233o3aac313o...
+...o132ww3cb22332233o222aa333331o...
+...o133w333112333B33322a23o33331o...
+...o3333o322222o333o2222223o3322o...
+..oaaa33o223ooo23oo32ooo322oo3331o..
+..o13wao323oww1o2222o1wwoaa3o3331o..
+..o133aa22owwowo2222owowwoaaa3331o..
+..o1223oa3owwooo2222ooowwo32ac321o..
+..o1323aa3owwbbo2222obbwwo33ocac1o..
+..o1333a333owwo322222owwo333o33cco..
+...o2aao33b333322Aoo23333b33o331o...
+...oaaco33b22222occco2222b33o221o...
+...oac2o33cc222occcco222a333o211o...
+...oa1233aa3333ocbbbo333ao33o111o...
+....o111ac333o3oaaaao3333a3o211o....
+....o31aco333a33oooo33333aa2113o....
+.....occ12ooaa33333333aoo3acc1o.....
+......o31122aoooooooooaa311aco......
+....occoo11ac2o2122222ca111oocco....
+...occcbcccc12221111112cccccccccT...
+...obccbbcbbccccccccccccbbcbbccbo...
+...ocbcbbbbbbbbbbbbbbbbbbbbbbcboo...
+..oyccccccbbbbbbbbbbbbbbbbccccccyo..
+..oocoocccccccccccccccccccccooocoo..
+.occo..oooooccccccccccccooooo..occo.
+obbco...o333oooooooooooo333o...occbo
+occco...o323o..........o323o...occco
+.ooo.....ooP............ooo.....ooo.
diff --git a/parts_pl_src/body/pl_cub.txt b/parts_pl_src/body/pl_cub.txt
index 1a7abc4..85215c7 100644
--- a/parts_pl_src/body/pl_cub.txt
+++ b/parts_pl_src/body/pl_cub.txt
@@ -1,9 +1,9 @@
# pl_cub: from pixellab_src/pl_cub/base.png (pixellab_library.py extract)
# pivot at (38, 60)
# aura at (31, 40)
-# head_top at (31, 28) (from part)
-# back at (38, 28) (from part)
-# tail at (46, 37) (from part)
+# head_top at (31, 28) (from part/probe)
+# back at (38, 28) (from part/probe)
+# tail at (46, 37) (from part/probe)
...ooooo.....oo.....oo..................
..oo2223oo..o1o.....o1o.....oooooo......
..o2222223o.o11ooooo11o...oo322223oo....
diff --git a/parts_pl_src/body/pl_cub_b.txt b/parts_pl_src/body/pl_cub_b.txt
new file mode 100644
index 0000000..579a18b
--- /dev/null
+++ b/parts_pl_src/body/pl_cub_b.txt
@@ -0,0 +1,53 @@
+# pl_cub_b: from pixellab_src/pl_cub_b/base.png (variant of pl_cub) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 37)
+# head_top at (31, 16)
+# back at (38, 28)
+# tail at (46, 37)
+.......ooooo.....oo.....oo....................
+......oo2223oo..o1o.....o1o.....oooooo........
+......o2222223o.o11ooo^o11o...oo322223oo......
+.....oo3322223oo211cccco112ooo322222333oo.....
+.....o33o3323333111bbbb1113333222233oo33o.....
+.....o333o33o32211aaaa1112233222233o3333o.....
+.....o3333oo32211aaaa1112222332233o33333o.....
+......o333o322211aaa1112222223333o33333o......
+......o33o3322111aa111222222222ooo33333o......
+.......ooo333211aaa1112222222222333333o.......
+........o33oo211aaa11223ooo222223333oo........
+........o3owo311ab11133oo11o2222333oo.........
+....oo..o3ooo311b11113owoo1o22223333o.........
+...o11ooo2ooo111111133oooow322ooooo33o........
+..o11111o2222222222223oooo12oB11111o33o.......
+.o111111o221121111122233333o11111111o3o.......
+.o11111o2o2222222212222333o1111111111oo.......
+o111111o1co2222oo21222233o11111111111o........
+o111111o1ccoooocc21222223o111111111111o.......
+o111111o1122222211122222o1111111111111o.......
+o1111111o111111111122222o1111111111111o.......
+.o111111oo1111111112222oo1111111111111o.......
+.o1111111oo22222222222ooo111111111111o........
+..o1111111oo222222222oA3o111111111111T........
+...o1111o333ooooooooo3333o1111111111o3o.......
+....oooo332222333333332233o11111111o33o.......
+....o3333222222222222222233ooo11ooo3333o.ooo..
+...o23322222bbbbbbbb2222223333oo3333333ooo11o.
+...o2322222bbbbbbbbbbb22222233332222333oo111o.
+..o2o3222bbbbbbbbbbbbbb22222233222223o33o111oo
+..o2o322bbbbbbbbbbbbbbbbb222233222222o33o1111o
+..o2o222bbbbbbbbbbbbbbbbb2222333222222o3o1111o
+..o2o22bbbbbbbbbbbbbbbbbbb2222o3222222o3o1111o
+..o2o32bbbbbbbbbbbbbbbbbbb2222o3222222o3o2113.
+..o3o32bbbbbbbbbbbbbbbbbbbb222o3222222o3o2311o
+..ooo33cbbbbbbbbbbbbbbbbbbb222o3222222o332331o
+...oo333cbbbbbbbbbbbbbbbbbc223oo322222oo3333o.
+....oo33ccbbbbbbbbbbbbbbbcc2333oo222ooo3333o..
+.....o333cccbbbbbbbbbbbcccc333333oooo3o333o...
+......o333cccccccccccccccc33333333333o33oo....
+.......o3oocccccccccccccc33332223333oooo......
+.......o333ooocccccccccc333332222333o.........
+........o33333oooooooooooo333222333o..........
+........o3223333o........o333333333o..........
+.......o32223333o.........o32222233o..........
+.......ooooooooo..........o2322223o...........
+...........................Poooooo............
diff --git a/parts_pl_src/body/pl_cub_c.txt b/parts_pl_src/body/pl_cub_c.txt
new file mode 100644
index 0000000..7c890b4
--- /dev/null
+++ b/parts_pl_src/body/pl_cub_c.txt
@@ -0,0 +1,49 @@
+# pl_cub_c: from pixellab_src/pl_cub_c/base.png (variant of pl_cub) (pixellab_library.py extract)
+# pivot at (30, 59)
+# aura at (30, 39)
+# head_top at (31, 18)
+# back at (36, 30)
+# tail at (34, 37)
+..........o.....o..................................
+...oooo..o1o...o1o....^oooo........................
+...o222ooo1oooo11o..oo22222o.......................
+..o33222o21cccc11ooo22222222o......................
+..o3o222211aab11133322222oo2o......................
+..o33o2211aaa11222222222ooo2o......................
+..o3o2211aab11222222223o3333o......................
+...o22211aa11222222223ooo33o.......................
+...o2221aaa11222222223ooo33o.......................
+..ooo321cc11333oo222233333o........................
+..oowo2111113ooowo22233ooo.........................
+.oooo22222213owowo2233333o.........................
+o1o1111112223ooow223333333o........................
+1oo2222112222oooo3333111133B.......................
+o2ooooo11222223333311111111o.......................
+o21ooo11122222111111111111o........................
+.o11o1111222o21111111111oo.........................
+..oooooooooo111111111ooo...........................
+...o222222111111111333co...........................
+....oooooooo3311133333cco..........................
+...........o1111133333cccT.........................
+...........o1111132222bbccoooooooo.................
+..........o3111112222A222bcccc2cccoo...............
+..........o11111122222222bc2bbc2abc3o..............
+.........o3111111222222222222aa222c23o.............
+.........o2111111222222222222ab2222233o............
+.........o2111111222222222222222222223oo...........
+.........o2211111222222223222222222222o2oo.........
+..........o3111113222222233333332222222o22oo....ooo
+..........oo3111132222222o3333o32222222o3222oooo11o
+..........o3o111132222223o3333o32222222o3322222111o
+..........o33o311o2222223o1111o32222222o3333333111o
+..........o333oo1o222222oo1111o32222223oo3333311oo.
+.........o223333oo222233oooooooo3222223o.ooooooo...
+.........o222333oo222233o.o3333o3222233o...........
+.........o22233o.o22223o...o333oo3333333o..........
+.........o22233o.o22223o....o333oo333223o..........
+.........o2223o..o22223o...o3333o.o33223o..........
+........o33333o..o2222o...o33333o.o33222o..........
+.......ob3a33o..o33333o..oc3c33o..o22222o..........
+.......ob3a33o.oaa3a33o..oooooo..ob3b223o..........
+.......oooooo..oa33a3o...........ooooooo...........
+...............ooooooP.............................
diff --git a/parts_pl_src/body/pl_cub_d.txt b/parts_pl_src/body/pl_cub_d.txt
new file mode 100644
index 0000000..67a1e53
--- /dev/null
+++ b/parts_pl_src/body/pl_cub_d.txt
@@ -0,0 +1,45 @@
+# pl_cub_d: from pixellab_src/pl_cub_d/base.png (variant of pl_cub) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (31, 39)
+# head_top at (31, 23)
+# back at (38, 28)
+# tail at (47, 37)
+...ooooo.....oo.....oo..................
+..oo2222oo..o1o.....o1o.....oooooo......
+..o2211233o.o11oooo^11o...oo322223oo....
+.oo3222223oo211cccco112ooo321122333oo...
+.o33o3323333111cccc1113333212223oo33o...
+.o333o33o32211bbbb1112223222233o3333o...
+.o3333oo32211bbbb1112222232233o33333o...
+..o333o321211bbb1112211222B33o33333o....
+..o33o3322111bb111221112222ooo33333o....
+...ooo332211bbb1112222222222333333o.....
+....o3oo2211bb111222ooo222222333oo......
+....o3o1o211bb11122oo11o22222333o.......
+...oo2owoo11111122owoo1o22222333oo......
+..o3o2oooo11111122oooowo2222233323o.....
+oo11o2oooo11111122oooowo2222233221o.....
+311o11occ111111122occcwo22112222211o....
+ooobb11111111111111ccc111111122221oT....
+..obbb111o1111111111111bbb1111222o......
+..obbb111o11111o111A11bbbbb112222o......
+..o3b111111oooo1111111bbbbb11222o.......
+...o1111111111111111111bbb11222o........
+....o1111111111111111111222222o.........
+.....oo21111111111111222222ooooo........
+.......oooo222222222222oooo3333o........
+..........ooooooooooooo33c332333o.......
+.........o32oo22222223333c3322222o......
+........o312o211111111333co3222222o.ooo.
+........o11o3111111111133cco221222oo11o.
+.......o211o2111111111122cco221222o111oo
+.......o212o211111111112233o222222o3111o
+.......o222o211111111112233o2o2222o3311o
+.......o22oo211111111112333oo2222o333ooo
+........oo32o211111111223133ooooo3333o..
+.........o113o221111222311333o333333o...
+.........o2233oo222222o311333ooooooo....
+.........o33333oooooooo333333o..........
+........oa3c333oo.....o322233o..........
+........oooooooo.......oc3c3o...........
+.......................Poooo............
diff --git a/parts_pl_src/body/pl_cumulus.txt b/parts_pl_src/body/pl_cumulus.txt
new file mode 100644
index 0000000..62fe6fd
--- /dev/null
+++ b/parts_pl_src/body/pl_cumulus.txt
@@ -0,0 +1,45 @@
+# pl_cumulus: from pixellab_src/pl_cumulus/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 42)
+# head_top at (32, 27) (from part/probe)
+# back at (30, 36) (from part/probe)
+# tail at (43, 53) (from part/probe)
+................ooooo...............
+..............oo33333oo.............
+.............o331111133o............
+............o33111111113o...........
+...........o3311111111123o..........
+...........o321111^111112o..........
+..........o322111112a11123o.........
+..........o222222112221122o.........
+.........o322122a2222222223o........
+.......ooo32222222222c22223o........
+.....oo33332222222222222223oo.......
+....o311133222222222c22223332o......
+....o2111233222222222222233311o.....
+...o211122333222222222223333112o....
+...o211222233322B22222233333212o....
+...o212a22233333222222333333a222o...
+...o2222a22333333333333333322223o...
+...o3222222333333333333333322223o...
+...o3222222333333333333333222223o...
+...o3322223333333333333333222233o...
+...o3333333322333A33333333333333o...
+..oo3333333322223322222233333322oo..
+..o212333332222222222222223332222o..
+.o2111333222ooo22222ooo22223222112o.
+.o211233222o111o222o111o2223322112o.
+o32a223222o11o31o2o11o31o2223222223o
+o322a22222o1ooo1o2o1ooo1o222232a223o
+o322223222o13o31o2o13o31o2223322223o
+.o32223222bo111o222o111ob222332223o.
+.o3322332bbbooo22222ooobbb23332233o.
+.o33333332bbb22o222o22bbb233333333o.
+..o3333333222222ooo2222223333T333o..
+...o3333333322222222222333333333o...
+....oo333o33333333333333o33333oo....
+......ooooo333333333333o3ooooo......
+..........o333oooooooo333o..........
+..........o333o......o333o..........
+..........323o........o323..........
+..........22P..........o22..........
diff --git a/parts_pl_src/body/pl_cumulus_b.txt b/parts_pl_src/body/pl_cumulus_b.txt
new file mode 100644
index 0000000..1989695
--- /dev/null
+++ b/parts_pl_src/body/pl_cumulus_b.txt
@@ -0,0 +1,45 @@
+# pl_cumulus_b: from pixellab_src/pl_cumulus_b/base.png (variant of pl_cumulus) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 42)
+# head_top at (32, 22)
+# back at (30, 36)
+# tail at (47, 53)
+................oo^oo...............
+..............oo33333oo.............
+.............o3o2222233o............
+............o33222222223o...........
+...........o3322222222233o..........
+...........o3322222222223o..........
+..........o333222223322233o.........
+..........o333333223332233o.........
+.........oo3b3333333333333oo........
+.......oooo3b33333333b3333oo........
+.....oooooo33bb33333333333ooo.......
+....ooo223o3333b3333c3333ooo3o......
+....oo2223oo3333333333333ooo3bo.....
+...obcb233ooo33333333333oooo3b3o....
+...o33b3333ooo33B333333ooooo3b3o....
+...o333b333ooooo333333ooooo3b33oo...
+...o3333b33oooooooooooooooo3333oo...
+...oo333333ooooooooooooooo3333boo...
+...ooo33333oooooooooooooo3333b3oo...
+...oooob33ooo2ooooooooo3oo33b3ooo...
+...ooooooooo2111oAo22211ooooboooo...
+..oo3oooooo211c111bc111113oooo33oo..
+..o323ooo22o111c1cc1111oo1ooo33bco..
+.oo222oo211ooo11111111oo111o333b23o.
+.oc2233cb1o1oooo111oooo1o112o3b333o.
+oo3c3331c1o12oooo11oooo1o11123cb33oo
+oo33b3311co1222o111o2221o111233bc3oo
+oo333331111oooo11111oooo111bc33333oo
+.oo333o111aaa111111111aaa11c23333oo.
+.ooo3bo21caa1111oooo111aa1b1o3333co.
+.oooboo32111111o1111o11111c2ooobcco.
+..oboooo311c11o111111111ccboobbooT..
+...ooooooo2bcc1111c1cc1b22ooboooo...
+....ooooooob2c2222bb22cc2ooooooo....
+......oooooo22bb2cb22222oooooo......
+..........oooooooooooooooo..........
+..........o33oo......oo33o..........
+..........333o........oo33..........
+..........33P..........o33..........
diff --git a/parts_pl_src/body/pl_cumulus_c.txt b/parts_pl_src/body/pl_cumulus_c.txt
new file mode 100644
index 0000000..a3fb570
--- /dev/null
+++ b/parts_pl_src/body/pl_cumulus_c.txt
@@ -0,0 +1,31 @@
+# pl_cumulus_c: from pixellab_src/pl_cumulus_c/base.png (variant of pl_cumulus) (pixellab_library.py extract)
+# pivot at (30, 44)
+# aura at (30, 34)
+# head_top at (32, 23)
+# back at (30, 36)
+# tail at (43, 44)
+...................ooo......................................
+................ooo222ooo...................................
+..............oo211111122o......ooo.........................
+.............o321111111123o...^o222oo.......................
+.............o2111111111223o.o3211113o......................
+............o221111c1112222oo311111113o.....................
+.........ooo32222112222222233211111112o...oooo..............
+.........o233222b222c222222332222111223ooo2223o.............
+........o2123222222222222233322222b222233111112o............
+.......o21223222222c2222233332222222222321111122o...........
+......o321c22222222222223332222b222222232221c2223o..........
+.....o32222b2222222222222222222222222232222222222oooo.......
+.....o2222222222222222222b222222223333322222222233311o......
+....o322222222222222222222222222233332222b222223331122o.....
+....o32222222222222222222222A2222222222222222333322c22o.....
+....o322222222222222222222333332222b2222222222222222223o....
+...oo3o2222o22o2222o22222322B223222222222211111222222223o...
+..o2o3aoooo2222oooo1222233112222322222223211111b2222b222ooo.
+.o21oaaa2222222222aaa22231112222322222233222222222322222233o
+o212o3aa222ooo2222aaa22311122222322222233222222222332233333o
+o222o3322222222222222331122222333333333333222222333333333oo.
+o3333o333222222222223o222222233333333333333333333333333oo...
+.oooooo33333333333333o322222333333333333333333333333ooo.....
+.......oo333333333333o3333333ooooooooooo33333ooooooo........
+.........oooooooooooooooooooP...........oTooo...............
diff --git a/parts_pl_src/body/pl_cumulus_d.txt b/parts_pl_src/body/pl_cumulus_d.txt
new file mode 100644
index 0000000..6bf4587
--- /dev/null
+++ b/parts_pl_src/body/pl_cumulus_d.txt
@@ -0,0 +1,49 @@
+# pl_cumulus_d: from pixellab_src/pl_cumulus_d/base.png (variant of pl_cumulus) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 41)
+# head_top at (32, 18)
+# back at (30, 36)
+# tail at (50, 53)
+...................oo^oo..................
+.................oo33333oo................
+................o331111133oo..............
+...............o321111111123o.............
+..............o32111111111113o............
+..............o32111111111112o............
+.............o322111112a111223o...........
+............o33222221122211222o...........
+............o322122a22222222223o..........
+..........ooo322222a22222222223o..........
+........oo33332222222222c222223oo.........
+.......o3111332222222222222223333o........
+......o2111123322222222c2222233323o.......
+.....o32111123332222222222223333211o......
+.....o211122223332222222222333332111o.....
+....o32111b22233333222222233333321213o....
+....o3222bb2223333333332233333332b223o....
+....o3222b1b22233333333333333332b2223o....
+....o3322b222223333B333333333322bc223o....
+....o332222222332223333333333322cc223o....
+....o33322222333222233333333332222233o....
+....o33333223332222222222222333222333o....
+...o322333333222222222222222223333333oo...
+..o311122333222ooo222A22ooo22223332222oo..
+.o321111233222owwwo2222owwwo22233222111o..
+.o21111123222owwo3wo22owwo3wo22232221112o.
+o321112223222owooowo22owooowo22232222212o.
+o321bb2232222ow3o3wo22ow3o3wo222232bbb223o
+o322b2b23222aaooooo2222oooooa222232b2b223o
+o332b222322aaaa22222222222aaaa2223222b223o
+o3322b223322aaoo2222222222ooaa22332bb2233o
+o333222333222ooooooooooooooo2222332222233o
+.o33333332222ooowowwwwwoowoo222222332233o.
+.o333333211222oooooooooooooo223111333333o.
+.o3333321111222ooocaaaacooo22321b2133333o.
+..o33332222b122oocaaaaaaco2223222b23333T..
+...o333322b222222oooooooo223333b233333o...
+....oo3332b222b2222222222223333bb333oo....
+......o333bbb333322222223333333333oo......
+.......oo33333ooo333333333oo33333o........
+.........ooooo33oo333333oo33ooooo.........
+.............o22o.oooooo.o32o.............
+.............32P..........o23.............
diff --git a/parts_pl_src/body/pl_cuttle.txt b/parts_pl_src/body/pl_cuttle.txt
new file mode 100644
index 0000000..8b675df
--- /dev/null
+++ b/parts_pl_src/body/pl_cuttle.txt
@@ -0,0 +1,50 @@
+# pl_cuttle: from pixellab_src/pl_cuttle/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (31, 23) (from part/probe)
+# back at (33, 26) (from part/probe)
+# tail at (51, 46)
+.................oooooooooo.................
+...............oo2222222233oo...............
+.............oo22222222222333oo.............
+............o3221111222222233cco............
+...........o3221111122222222acc3o...........
+..........oo22111112222222aaac33oo..........
+.........oo2211112222^2222aaa2333oo.........
+........oo32222222222222aaaa2223ccoo........
+......oooca2222222222aaaab22222ccccooo......
+......o3oca2222aaaaaaabB222222aacc3oo3o.....
+.....ococc222baaabbbbb2222aaaaaac333o3o.....
+....occocc22aaaaab22222aaaaaabbb3333oc3o....
+...o333oc222aaaaa2222baabbbba2222333oc33o...
+...o33occ222baaab2222222222222222333co33o...
+...o33occ2222aaaaaa222222222222223ccco33o...
+..o123occ22222baaaaaaaa2222222222cccco332o..
+..o113occ222222abbaaaaaaaa222aaaaccccoc22o..
+.o222coc322222222bbbabbaaaaaaaaaaccccoc333o.
+.o222co3322222222222222aaaaabaaaaccc3occ33o.
+.o222co3322222222222222baaabaaaaa3333occ33o.
+.o22cco33222222222222222abba222ba3333occ22o.
+.oaacco333222222222222222222222223333oc211o.
+.oaaccoc33222222222222A2222222222333coc211o.
+oaa333oc333222111222222222211122333ccocc221o
+oa3333occ33221111122222222111113333ccocc333o
+o3333ccoc3332oooo1122222211oooo3333cocc3333o
+oc333cco3333owwooo22222222owwooo3333occ333co
+.o33ccco333o2ooooo22222222ooooo2o333o333aao.
+..o3ccco333owocoo2o222222o2oocowo333o3caaao.
+.o333ccco33ow2aoowo222222owooa2wo33occbaaTo.
+.o33332ao33oww2a2wo322223ow2a2wwo33occc333o.
+.o332223co33oowwwo33333333owwwoo33oc333333o.
+..o3112acco333ooo333c33c333ooo333occ33333o..
+...o112acc3o3333333co33oc3333333occ33311o...
+....o13aac33oo333333o33o333333ooccccc33o....
+.....o3aac33ccooo33co33oc33ooocccc3333o.....
+.....o3aaa333ccccooooccooooccc33333333o.....
+.....o33aa32233cccoooooooocc3c31233333o.....
+......o3a311233ccc3333ccc3cc333111333o......
+.......oooo12333ba33333c313cc3331oooo.......
+...........o23333aa333332123cc33o...........
+............o3333aaaa33321123cco............
+.............oooooocab333oooooo.............
+...................ooPooo...................
diff --git a/parts_pl_src/body/pl_cuttle_b.txt b/parts_pl_src/body/pl_cuttle_b.txt
new file mode 100644
index 0000000..dd68b09
--- /dev/null
+++ b/parts_pl_src/body/pl_cuttle_b.txt
@@ -0,0 +1,53 @@
+# pl_cuttle_b: from pixellab_src/pl_cuttle_b/base.png (variant of pl_cuttle) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 36)
+# head_top at (31, 13)
+# back at (33, 26)
+# tail at (54, 46)
+...................oooo^ooooo...................
+................ooo2222222233ooo................
+.............ooo2222222222222233oo..............
+............o222221111222222222333oo............
+..........oo222211111122222222222333oo..........
+.........oc322211111122222222222223333o.........
+........occaa211111222222222222aaab3333o........
+.......occbaab112222222222222baaaabbc333o.......
+......o3322baaa222222222222aaaabb222ccc33o......
+.....o333222baab2222222222aabb222222acc333o.....
+....o33baa222baa222222222aab22222ba222cc333o....
+....o3bbbaa22aaa22222222aaa2222aaabb22ccc33o....
+...o3bb22ba22aaa22222222aaa2222aa22b222cc333o...
+...o3a222ab22abb22222222aBa2222ab22a222cc333o...
+..o32ba2bb22aaa222222222bab2222bbabb222cc3333o..
+..o322abb22abab2222222222baaa2222ab2222bc3333o..
+.occ222222aaab222222222222aaaa2222222aba333333o.
+.o3cb222aaaab2222222222222baaaba2222aabb233333o.
+.o33abaaaaab2222222222222222bbaaaaaaab22233333o.
+.o322aaaab22222222222222222222aaaaaba222233333o.
+o3322222222222222222222222222222222222222333333o
+o3322222222222222221222222221222222222222233333o
+o3322222222222222211222222232222222222222233333o
+occabb2222222222221o3222A223o222222222222accccco
+occaaabba222222111oo22222222oo2222222222baccccco
+occcbaaaaa2222ooooo1o222222o1oooo222222bab33333o
+oc3322aaaa222oooowowo222222owoooooo222bbb233ccco
+o333322baaa23o1ooocwo222222owcooc1o322aa223cccco
+o33ccb22bab22owcccao32222223o2cccwo22bab23cc333o
+o3cccb222ba22321aao3222222223oaa12322bb223cc3c3o
+.occ3cb22aba2221333222oooo22233322222ab233cccco.
+.oc33cb22bab221122222o3222o2222221222bb233cccco.
+.oc333cc2baa22122222222222222222212222cc333cc3o.
+.occ3ccc3bba22122222222333222222212222ccc33333T.
+..occcc33cab221122222222222222222122233ccc333o..
+...occ33cccb221122222222222222221122233ccccco...
+...o3333ccc32222222222222222222222233333cccco...
+....o33cccc333222222222222222222233333333333o...
+.....occcc333332bbb222222222222cccc33333333o....
+.....occc333333ccc222222222233cccccc333333o.....
+......oc3333333ccc333333333333cc333cc3333o......
+.......oo333333ccc33333333333cc33c3cc333o.......
+........oo33333cccc3333333333cc33cccc3oo........
+..........oo3333ccccc333333333ccc333oo..........
+............oo333ccccc333333333cccoo............
+..............ooo3ccccc3333333oooo..............
+.................ooooooPoooooo..................
diff --git a/parts_pl_src/body/pl_cuttle_c.txt b/parts_pl_src/body/pl_cuttle_c.txt
new file mode 100644
index 0000000..832fdc9
--- /dev/null
+++ b/parts_pl_src/body/pl_cuttle_c.txt
@@ -0,0 +1,53 @@
+# pl_cuttle_c: from pixellab_src/pl_cuttle_c/base.png (variant of pl_cuttle) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (31, 36)
+# head_top at (31, 13)
+# back at (33, 26)
+# tail at (48, 46)
+.............oooo^ooooo.............
+...........oo2222222233oo...........
+.........oo22222222222333oo.........
+........o2221111222222223bco........
+.......o22221111222222ooabo3o.......
+......oo22111112222222aaa2333o......
+......o3222222222222aaaa2223co......
+.....oca222222222aaaaa22222ccco.....
+....occa2222aaaaaaaa222222aacc3o....
+....occ222aaaaaaaa2222aaaaaac33o....
+...occc22aaaaa32222aaaaaaaaa3333o...
+...occ222aaaao222aaaaaaaa2222333o...
+..o3cc222aaaao222222222222222333co..
+..o33c2222aaaaa2222B2222222223ccco..
+..o3cc22222aaaaaaaa2222222222bccco..
+.o2ccc222222aaaaaaaaaa222aaaaacbco..
+.o2c332222222oaaaaaaaaaaaaaaaaccb3o.
+.o2c332222222222222aaaaaaaaaaacc33o.
+.ocb332222222222222caaaacccaa2333co.
+.ocb3332222222222222oooo2223o2333co.
+occcc3322222222222222222222222333cco
+o333c33322211222222222211222223cbcco
+o333bb3322111122222222111122223cbcco
+o33cbb3332ooo1122A22211ooo22223ccc3o
+o33bc3333owooo22222222ow1oo22223333o
+o3cbc333o2oooo22222222oooo2o222333ao
+o3ccc333ow3oo2o222222o2oocwo22233bao
+o33ccc33owwccwo222222owoawwo223ccc3o
+o332ab222owwwo22222222owwwo222b3333o
+o3222bb222ooo2222222222ooo222bb3333o
+o212abb222222222o22o222222222cc3311o
+.o12abb222222222o22o2222222bbbcc33o.
+.o23aab222bb222aooooc22222bbbc3333o.
+..o3aaa222bbb2oo22bcoo2bbb22223333T.
+..o33aa22222bb2222bbb2bb3c2122333o..
+..o33aa21222bb2222bbb2bb33313233co..
+..o333311222bb32222b213bb3331233co..
+..o33b3112222oa22222212bb3332333o...
+...o3b3313222oaaa2222112bb323333o...
+....o33333222oaaa2222111bbb3333o....
+.....o33333bccc222222111ccc333o.....
+......o333bbbo3222c2233333ccco......
+.......o33bb3333ccc3333333cco.......
+........occc333bccb3333333oo........
+.........ooo3obb33cc33333o..........
+............ooo333cccoooo...........
+...............ooPooo...............
diff --git a/parts_pl_src/body/pl_cuttle_d.txt b/parts_pl_src/body/pl_cuttle_d.txt
new file mode 100644
index 0000000..6cc1daf
--- /dev/null
+++ b/parts_pl_src/body/pl_cuttle_d.txt
@@ -0,0 +1,58 @@
+# pl_cuttle_d: from pixellab_src/pl_cuttle_d/base.png (variant of pl_cuttle) (pixellab_library.py extract)
+# pivot at (28, 58)
+# aura at (31, 33)
+# head_top at (31, 7)
+# back at (33, 26)
+# tail at (52, 46)
+..................oooo^ooooo..................
+................oo2222222233oo................
+..............oo22222222222233oo..............
+.............o2222222222222223ccoo............
+...........oo2211222222222222bbcc3o...........
+..........o2221111222222222bbbbc333o..........
+.........o22211112222222222bbbb2333co.........
+........o2221111222222222bbbb22223ccco........
+.......o22211112222222bbbbb222222bcccco.......
+......o22211122bbbbbbbbbb222222bbbbc333o......
+......o221111bbbbbbbbbb2222bbbbbbbb3333o......
+.....o222112bbbbbbb22222bbbbbbbbbb223333o.....
+.....o222112bbbbbb2222bbbbbbbb2222223333o.....
+....o2222222bbbbbb222222222222222222333cco....
+....o2222222bbbbbb222222222222222222333cco....
+....o22222222bbbbbbb2222222222222222bcccco....
+...o3222222222bbbbbbbbbb22222222222bbbcccco...
+...o322222222223bbbbbbbbbbb222bbbbbbbbcccco...
+...o32222222222222bbbbbbbbbbbbbbbbbbbbcc33o...
+...o32222222222222222222Bbbbbbbbbbbbbb3333o...
+...o32222222222222222222bbbbbbbbbbb2223333o...
+...o322222222222222222222bbbb2222bb2223333o...
+...o32222221111222222222222211112222223333o...
+...o32222211111122222222222111111222223333o...
+...o332222ooooo1122222222211oooo3222223333o...
+...o33222o33oooo11222222211o3oooo322233333o...
+...o3322o13wwoooo22222A221owwooooo22233333o...
+....o332o1owwoooo22222222oowwoooo1o223333o....
+....o332o1ccoooco22222222occoooc31o223333o....
+....o333o1ccoooco22222222occoooc31o223333o....
+.....o33owcccoo1o22222222occcoo13wo23333o.....
+.ooo.o33owwcaaaao22222222ooaaaaa3wo33333o..oo.
+o111ooo33owwaaao2222222222oaaaawwo333333o.oc2o
+o333b2oo33ooooo222222222222oooooo233333ooocc2o
+o3c33233o33322222222222222222222333333o33cc33o
+.oc333333o333332222222222222223333333o333c33o.
+..oooooo33o3333333322222222233333333o3oooooo..
+...o11223o2223333333333333333333333o332221o...
+..o11223o122233322333333333333332223o333221o..
+..o22cco112333o22233333333222o3322222o3c321T..
+..o2cooo13c33o222233ooooo32222o3332211ooo22o..
+...oo..o33cooo11233o3333oo3221oooo3221o..oo...
+.......o33o33o1133o333333o3211o333o322o.......
+........oo333o223o33222233o222o3333o22o.......
+.........o333o33co32222222o22coo333ooo........
+.........o3233ooo3322222222ooooo333o..........
+.........o323ooo33322222223333ooo33o..........
+..........oo3o.o333oo3333o2233o.ooo...........
+...............o33333oooo32223o...............
+...............o3333oo..oo2223o...............
+...............o3333o....o2223o...............
+................oooP......oooo................
diff --git a/parts_pl_src/body/pl_dancedragon.txt b/parts_pl_src/body/pl_dancedragon.txt
new file mode 100644
index 0000000..05131d1
--- /dev/null
+++ b/parts_pl_src/body/pl_dancedragon.txt
@@ -0,0 +1,43 @@
+# pl_dancedragon: from pixellab_src/pl_dancedragon/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 43)
+# head_top at (30, 27) (from part/probe)
+# back at (40, 34) (from part/probe)
+# tail at (45, 44) (from part/probe)
+........oo...........................
+.......o1zo..ooo.........oo..........
+.......ozbooba11co......o1zo.........
+......o1bboaaao11^o..ooo1zzo.........
+......ozzbooaoob1zboo1zozzbo.........
+.....oobbcooo211zzo3ozzbzbo..........
+....o1oobo3ozzzzo33oozzzbobo.........
+...o112o3222333333oabobbbbbooo.......
+..o2111321bcc222o11112ooooo212o......
+..o211131cb1c11o11111111o32333o......
+...o22123cbabo1111111222o3oBco.......
+...oo222oabbco11122222222occoo...oo..
+...o1o22o3c1o11222ooooooocco2o..o11o.
+..oo1bo2o333o122ooo22oc1ooo23ooo11ao.
+..oaa1o1occco22obab1aocoo223322o11ao.
+..oobcco333332obo1ao1oc1o33312oa1a21o
+..o1ooo222233ooccbao1ocoaco222oa22a2o
+.o11o2211122ooobbaoa2oc3aao33oo3o22o.
+o123oc3222311coobca2oc31oo3212oo2o2o.
+o112oo33333occoccAocc11oo22223obo2o..
+o211112ooo33oo31111122o2o333oocbT2o..
+o2222222222211133322o1122o322ooo3o...
+.o2222ooooo22211113111122o3oo3333oo..
+..oooooaocooo22211111122ooo332323bo..
+...ooococccccoo2222222oo333322bbcbo..
+...o2oc1cbbbccooooooooo333bbcabobbo..
+...o22c1cccccaoco22o33bacabobbo33oo..
+...oa2oc11212aco222o33ocab33oo333oo..
+....oa12occcoo22222c32223222bbcc3co..
+....oa11112222222aobbab222oabooobo...
+....oo2a111a1a2aoo3ooobc2aboo33oo....
+...o33o2a1a1122o33o212obacoo3333o....
+..ob13cooaa12o333obaac3oooocb3oco....
+..o1b1acoooooooooo333obbooab1bao.....
+...ooooooo......ob1b2cobo.ooooo......
+................o1b1b1co.............
+.................oPoooo..............
diff --git a/parts_pl_src/body/pl_dancedragon_b.txt b/parts_pl_src/body/pl_dancedragon_b.txt
new file mode 100644
index 0000000..6b8d09f
--- /dev/null
+++ b/parts_pl_src/body/pl_dancedragon_b.txt
@@ -0,0 +1,57 @@
+# pl_dancedragon_b: from pixellab_src/pl_dancedragon_b/base.png (variant of pl_dancedragon) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 36)
+# head_top at (30, 11)
+# back at (40, 34)
+# tail at (47, 44)
+......................oo................
+................o...^o11o...............
+...............o1ooo1111o...............
+...............o1oo1111zo...............
+.........ooo..o1zz11111zo.ooooo.........
+.........o11ooo1z11111zzzz1111yo........
+.........o111oz1z1111zz111111zzo........
+.....ooooo111z111111zz11111zzzoooo......
+.....o1111z11z111111z11111zz111111oo....
+.....o1111zo1z11111zz111zz111111111zo...
+.....oz111ob1z1111zz111zz11ooo1111zzo...
+...ooozz1ozbzz111zzz11zzzzoyzo11zzzoo...
+..o1111zzozczz111zzzzzzzoooyzoz11111zo..
+..o11111zozzoz11zzzzzzzoyzozcoz111111zo.
+..oz111zzocoozz1zzzzzooozzbzoozz1111111o
+...ozz1o3ooo33zzzz33323ozzzccozzzz11z11o
+..oo11ooo333223z33322ooooccccooozzzzzzo.
+.o111oo11o332223222oo1111oooo222o11zzo..
+o1111o2111o32bb222o11111112o2333o1111zo.
+ozzzzo22111o3a1b2o111111112o333oz11111zo
+.ooz1o33211o3aabo1112222222o333oz11111zo
+.oz11oooo2133cc3o1122ooo22oo33ozzzzz11zo
+.o111oo2co233333o22oco22oo333ozzzzzzzzzo
+o111zo2c1o33333333oo1c1ao33333oz1111zooo
+ozzzzo1cooo333333oooocb1o33333Bz1111zo..
+.oo1oo1caoo333333ocooab1o11333ozz1111zo.
+.o11o2o1aa3111133oaaAc12o11133ozzz111zo.
+.o1o111ooo11111133ooocco111133oz1zzz1zo.
+o11o1111o111112131111111111133oz1zzzzzo.
+ozzo3111oo1111o31111111111122ozz11zoooao
+.oo1o221113333111111111112222ozz11zooa2o
+..o1oo2211111111111112222223oz1zz1zoo2o.
+..o1zzo321111111112222222ooozz1zozzoo2o.
+..ozo1zoo22222222222ooooozzzzz11oooo2o..
+...oo1zzzoo2222222ooozzzzzz1zozzo33ooT..
+....ozo11zzooooooozzzzz11oz1zooo3ca1o...
+.....oozzo1zzzzzzz1z11zz1ooozo333ca1oo..
+......oooo11z11zzz1oz1oozo33oo322211ao..
+......o33ozzo11zozzoozooo3333ba22a11ao..
+......o313oo3o1zooo33oo33bc22ba22aa13o..
+......oaa13333oocc3333o33b11132222313o..
+......ooa1113333cc3333o31111a3322223oo..
+.......o3111aa11111ac3o11111a332aaa3bo..
+.......oo311aa11111acocaaa1113ccoooco...
+.......obo31111111boo3oooaa11coo3cco....
+......o333oo33aa33o33o312oaacoo33cco....
+.....oay3b3oo3ccooo3o3aa22oooo3b3o3o....
+.....o1b1a33ooooooooo3333acooab1bao.....
+......oooooo.......oa1b2coco.ooooo......
+...................o1b1b1co.............
+....................Pooooo..............
diff --git a/parts_pl_src/body/pl_dancedragon_c.txt b/parts_pl_src/body/pl_dancedragon_c.txt
new file mode 100644
index 0000000..a051f31
--- /dev/null
+++ b/parts_pl_src/body/pl_dancedragon_c.txt
@@ -0,0 +1,48 @@
+# pl_dancedragon_c: from pixellab_src/pl_dancedragon_c/base.png (variant of pl_dancedragon) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 40)
+# head_top at (30, 23)
+# back at (40, 34)
+# tail at (47, 44)
+.........oo...............oo..........
+........o1zo.............o1zo.........
+........ozbo..........ooozzzo.........
+.......o1bbo.........o1zozzbo.........
+.......ozzbooooooo^ooozzbzbo..........
+......oobbo33bbbb223oozzzbobo.........
+.....o11o322bb2222o1111oobbbooo.......
+....o2211o22b2222o1111112oooo22o......
+....o33211o2b223o11222222o32233o......
+.....ooo22o2222o1222ooooo3333co.......
+...oooooooooo32o22oobao33333cco.......
+..o1111111111o3ooozoz1o33333co2o......
+.o1o2111112o11o33ozoz1oooo333b3o......
+o11o2111112o122o22oooo2112o3333o......
+o12222111222222322211122223o3bo.......
+o22222222222222222222oooo22oB33o......
+.ooooooooooooooooooooa2oc22o322o..oo..
+.o1ac11b11aoaaocaaa1oaoo222o333o.o11o.
+.o1aooooo1oo1aoo1oo1oooo222o33ooo11ao.
+.o1o..oooooo1aoooooooooo222ob32oo11ao.
+..oo..oooooooobbbbooo1ao222obbboa1a2ao
+......oooobbcbbbbbAooaao223o3oooa22a2o
+...o.o2ooaabaaabcoc1oco1233ooo3o3o22o.
+...oo2ooaabaacbbooc1ao22233o3333o3o2o.
+..o1ocoaabbac1cc11cco2233oo333333o2o..
+..o1ac111212c1ccoo112233o3332233bo3T..
+.o1cccccccccccoo112222oo3322b223b3o...
+.o22111111111122222ooo33332bb223b3oo..
+..o22222222222223oo33332222bb22333bo..
+...oooooooooooooo3333322222ab22bbcbo..
+.....o3333333c333332222ba22abcabobbo..
+.....ob3333333c32223c22baaabobbo33oo..
+.....ob322222cb22223b222cab33oo333oo..
+.....ooba22bbab22b33b22223333bbbb3bo..
+.....oooaa2bac222bc3bbab222oabooobo...
+.....obooa3bac33bcc3ooobc2aboo33bo....
+....o333oobbaaabcc3o313obacoo333bo....
+...oby3b3oooccccc3obaac3oooo3b3oco....
+...o1b1ac3o.ooooooo333obbooab1bao.....
+....oooooo.......ob1b2cobo.ooooo......
+.................o1b1b1co.............
+..................Pooooo..............
diff --git a/parts_pl_src/body/pl_dancedragon_d.txt b/parts_pl_src/body/pl_dancedragon_d.txt
new file mode 100644
index 0000000..0dffc8b
--- /dev/null
+++ b/parts_pl_src/body/pl_dancedragon_d.txt
@@ -0,0 +1,44 @@
+# pl_dancedragon_d: from pixellab_src/pl_dancedragon_d/base.png (variant of pl_dancedragon) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 42)
+# head_top at (30, 25)
+# back at (40, 34)
+# tail at (47, 44)
+........oo...........................
+.......o1zo..ooo.........oo..........
+.......ozbooaa11c^......o1zo.........
+......o1bboaaao11bo..ooo1zzo.........
+......ozzbooaoob1zboo1zozzbo.........
+.....oobboooo211zzo3ozzbzbo..........
+....oooobo3ozzzzo33oozzzbobo.........
+...o111o3222333311111oobbbbooo.......
+..o2111122bcc2221111111oooo212o......
+..o211112ca1bco111111112o32333o......
+..o2o2111caac21111222122o3occo.......
+...ooo21122c22122ooo2222occBoo.......
+...o1bo222222112oaaaoo22occo2o...oo..
+..o1a1co2222222occb11oo22oo23oo.o11o.
+..o1aooo222222oc1obb1ao22333322o11ao.
+..o1aooo222222ocooob11o2233312oo11ao.
+.oo1aooo222222ocoooa11o22ao222oa1a2ao
+.o2oaao1111112ocoocz12o22ao33ooa22a2o
+o112oo111111112ocaz12o222o3212o3o22o.
+o111121311131112oAooo2112o2223oo2o2o.
+o21111111111111112222a112o33oocco2o..
+.o21111111111111111111122o322ocao2T..
+..oo21111111111111111122oo3oo33o3o...
+...oooo222222222222222ooooo333333oo..
+....oocooooooooooooooo33333322323bo..
+....oococccccooooo2oo33332ab22aacbo..
+...oc3c1obbbcoooo22o33oa22aaoaaobbo..
+...oa3c1occcoaoco22o33aacaaoaao33oo..
+...ooaoc11212aco22ao32ocaa33oo333oo..
+....o312occcoo22acao32223222aacc3bo..
+....ooa11222212aacobaaa222oacooobo...
+....aoo212aac12aoo3oooac2aaoo3bbo....
+...o33oo3aaaab2o33o212oaacoo333bo....
+..oa13boo32a3ooo3obaac3ooooob3ooo....
+..o1b1aooooooooooo333oaaooab1bao.....
+...oooooo.......ob1b2coao.ooooo......
+................o1b1b1oo.............
+.................oPoooo..............
diff --git a/parts_pl_src/body/pl_dartfrog.txt b/parts_pl_src/body/pl_dartfrog.txt
new file mode 100644
index 0000000..409799f
--- /dev/null
+++ b/parts_pl_src/body/pl_dartfrog.txt
@@ -0,0 +1,43 @@
+# pl_dartfrog: from pixellab_src/pl_dartfrog/base.png (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (31, 42)
+# head_top at (31, 26) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (47, 46) (from part/probe)
+.........oooo.............ooooo.........
+.......oo33ccoo..........occ333o........
+......oooo222cooooo^oooooc222oooo.......
+.....oo21oo11aco3333333oca11o1oooo......
+.....o31oo3o112o2233332o211o11oo3o......
+.....o3ooo3o1122ccc2ccc2211o3ooo3o......
+.....o3ooooo22112b222b21122ooooo3o......
+.....o22223o321111111111123o32222o......
+.....oo222o13222111111122232o222ooo.....
+.....ooooo2332222111112222332oooo3o.....
+.....o3333331122ob111bo221133333o2o.....
+.....o31211111122111112211112222ooo.....
+......o3bo2111111111111111113ooooo......
+.......o31oooooooooooooooooooacoo.......
+........oo31111111111111133ccooo........
+.........oooo33b333B33bboo3ooooo........
+.........oooo333333333333o3ooooo........
+........o333ooo3333333333ooo3ooo........
+......oo31123ooooo3A33ooooo222ooo.......
+.....o311ab23333oooooooo333ba11cco......
+....o211acc332223333333222oocb2a2oo.....
+...o2112ooooo2111333333112ooooo2112o....
+...oa12oooooo2111111111112ooooo3211To...
+..ooa11ooooooo32111111112ooooooo311coo..
+..oo211coooooooo3222222ooooooooo211coo..
+...o311coooooooooooooooooooooooo212oo...
+....o211coooooooooooooooooooooob11ooo...
+....o311coooooooooooooooooooooob12oo....
+..oooo213oooooooo......oooooooo223o3....
+.obboo333oooooo..........oooooo33oo.ooo.
+.oooooooo233o..ooo....ooo..o33oooooooaao
+o1aoooo211o1ooo3..o..o..3ooo1o12oobbooo.
+oaboo.o312oo21oooo....oooo12oo31o.oo....
+.oo..oo2oo.oooaz1ao..oz1aaooo.oo2oo.....
+....oa1ao.....obaao..obaao.....oa1ao....
+....ocabo......ooo....ooo......ocabo....
+.....ooP........................ooo.....
diff --git a/parts_pl_src/body/pl_dartfrog_b.txt b/parts_pl_src/body/pl_dartfrog_b.txt
new file mode 100644
index 0000000..d622388
--- /dev/null
+++ b/parts_pl_src/body/pl_dartfrog_b.txt
@@ -0,0 +1,50 @@
+# pl_dartfrog_b: from pixellab_src/pl_dartfrog_b/base.png (variant of pl_dartfrog) (pixellab_library.py extract)
+# pivot at (27, 61)
+# aura at (31, 42)
+# head_top at (31, 20)
+# back at (31, 39)
+# tail at (49, 46)
+.................oo........ooo................
+...............oo22o......o22oo...............
+...............ooo22oo^ooo22ooo...............
+..............oowoo22222222owooo..............
+..............ooooo22222222ooooo..............
+..............o22oo32222223oo22o..............
+..............oooo3321221233ooo...............
+..............o332222o22o222233o..............
+..............o3222222222222223o..............
+..............o32oooooooooooo2oo..............
+...............oo111111111111oo...............
+................oooooooooooooo................
+................ocooooooooooco................
+...............obco33oooo33occo...............
+...............ob3o3333333333cco..............
+..............ob33232333323233co..............
+..............ob32222222222233obo.............
+.............ob3222112222112223oo.............
+.............ob2221111111111322oo.............
+.............ob22o2111111113322bo.............
+.............o223o2111111112o32bo.............
+.............o22oo2111B11112oo22o.............
+.............o22oo2111111112oo22o.............
+......oooo..o222oo2111111112oo222o..oooo......
+.....o1122o.o223oo2111A11112ooo22o.o2211o.....
+....o112222oo213oo2111111112ooo12oo222211o....
+....o222oo23o212oo2211111122ooo12o32oo222o....
+.....oo2ooo3o212ooo32211133ooo212o3ooo2oo.....
+.....ooooooooo123ooo322223oooo212oooooooT.....
+......oooooooo113oooooooooooo321oooooooo......
+.......ooooooo113oooooooooooo311ooooooo.......
+........oooooo313oooooooooooo311ooooo.........
+..........ooooo23o..oooooo..o311oooo..........
+...........oooo223o.........o31oooo...........
+..........ooooo223o.........o31o3ooo..........
+.......oo33oooo323o.........o31oo333ooo.......
+.oooooo2233ooo.o33o.........o33oooo3333oo.....
+oaa2222oo23oo..o223o.......o322o..oo32oo2ooooo
+obcooooo2oo...o2222o.......o222oo..oo2ooooobao
+.oo...o2o..ooo2oo1o3o....oo2o1oo2oo..o2o...ooo
+.....oabo.oab2ooo2oo2oo.oa2oo2ooo2ao.obao.....
+.....ooo..oooo..o2o.ooo.ooo.o2o..ooo..ooo.....
+................oao.........oao...............
+................ooP.........ooo...............
diff --git a/parts_pl_src/body/pl_dartfrog_c.txt b/parts_pl_src/body/pl_dartfrog_c.txt
new file mode 100644
index 0000000..7dc12e6
--- /dev/null
+++ b/parts_pl_src/body/pl_dartfrog_c.txt
@@ -0,0 +1,52 @@
+# pl_dartfrog_c: from pixellab_src/pl_dartfrog_c/base.png (variant of pl_dartfrog) (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (32, 38)
+# head_top at (31, 15)
+# back at (31, 39)
+# tail at (53, 46)
+..................oooo^ooooo..................
+...............ooocc33aaa333oooo..............
+.............oo333b111aaa22bbc33oo............
+...........ooooo11111122222aa22ooooo..........
+.........ooo22aao222a22222222ooa233oo.........
+........ooooo2ooaooooooooooooobo2oooooo.......
+.......o3o21oo11acoccc333cc3ob21o2ooooo.......
+......ooo31oo3o123o3ab333aa3321o11oo3oooo.....
+.....oo2o3ooo3o1233222222222221o3ooo3oooo.....
+....ocaao3ooo3o3222221111222223o3ooo3ooooo....
+....o3aao22oooo32222o1111o22223o3ooo2ooocoo...
+...o3112oo233o332222o2222o222233ooo2oooccco...
+..o3211oooooo33222222222222222233oooooocccoo..
+..o3111oo3333322222ooooooooo2222333333oooooo..
+..oaa12oo32122222oo11111111ooo22222133ooooooo.
+.ocaa13o221o2oooo1111111111111oooooo1oooooooo.
+.o3aa23o311oo11111111111111111111oo11oooooooo.
+.o311233o11111111111111111111111111111ooooccco
+.o311233o11111111111111111111111111111ooooccco
+o3a11223o11111111111111111111111111111ooo2ccoo
+ocaa1223o11111111111111111111111111111oo22oooo
+ocaa22233o111111111111111111111111111ooo22oooo
+o3b12222ooo11111111111111111111111112ooo2aoooo
+o3112a222oo111111111111A111111111111ooo2aacoco
+o312aaa22ooo1111111111B111111111111ooo22aacoco
+o3322aa223ooo211111111111111111112ooo2222aoooo
+o3c2222222ooooo11111111111111112oooo22222ooooo
+o3cc2222aa2ooooooo1111111111ooooooo222222oooco
+.oc22222aoo22oooooooooooooooooooo222oo22acooco
+.oo22222oo3o322ooooooooooooooooo23333o22aoooo.
+.oo32aa2o322o3222ooooooooooooo222o211oo2oocco.
+..oooaaoo222oo2222223333332222222o2112ooooccT.
+..occo2ob1aboo2222222222222222222o21a1ooooco..
+..occooob1a2oo32222222aa222222222o21a1oooooo..
+...oooooo221ooo2222222bb222222223oa113ooooo...
+....oocco2a1boo3222222222222222ooo112ooo3o....
+.....occo3b1cooobb2222222222aaoooo1b3oooo.....
+.....ooooo223ooocco33222222occoooo23ooooo.....
+....ooooooo23ooooooccooooooooooooo33oooooo....
+....oooooooo333ooooccooooccoooo33oooooooaao...
+...o1aoooo212o2ooooooooooccoooo2o23oobbooo....
+...oacoo.o313oo31oooooooooooo13oo32o2oo.......
+....oo..oo3oo.oooa21ao..o21aaooo.oo3oo........
+.......oa1ao.....ocaao..ocaao.....oa1ao.......
+.......ocaco......ooo....ooo......ocaco.......
+........ooP........................ooo........
diff --git a/parts_pl_src/body/pl_dartfrog_d.txt b/parts_pl_src/body/pl_dartfrog_d.txt
new file mode 100644
index 0000000..2718ae1
--- /dev/null
+++ b/parts_pl_src/body/pl_dartfrog_d.txt
@@ -0,0 +1,50 @@
+# pl_dartfrog_d: from pixellab_src/pl_dartfrog_d/base.png (variant of pl_dartfrog) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 40)
+# head_top at (31, 17)
+# back at (31, 39)
+# tail at (55, 46)
+...................oooo^oooo....................
+.................ooccccc22ccccoo................
+...............oocbbbb22222bbbbboo..............
+..........ooo.oo2bbbbb22oooo2bbbbco.............
+.........o3bboo22222222obb11o2bbbbboo...........
+........oo21bboo22222oob12222oo2bbo23o..........
+.......ooo21233ooooooob12oooo3o222222oo.........
+......oowoo1233333333311o2oooooo222bbboo........
+......o3ooo222bb2bbb231o3woo3o3o222bbbco........
+......o3ooo322o22bo2232o3ooo3o33o22bbbcoo.......
+......o233o322222222233ooooo3o333322bbcoo.......
+.......o23o221222211233oo3322o32232222223o......
+.......oooo2211111222233o333oo2212o22222oo......
+......o33322o211232222233ooo322222o3222bbco.....
+......o22222o2223o22222233333222223o222bbco.....
+......o2o22222222222222222221122223o222bbco.....
+......oo2oo2222222222222222o312222oo222bbcco....
+......oo322oooooooooooooooo333222ooo2222bcco....
+.....ocbo33311111111111111333322ooo222222cco....
+.....ocb2o333333333333333333322ooo2222222ooo....
+.....oc223oo333333333333333333ooo2222222oooo....
+.....oo2223oo333333333333333ooo322222oo2oooo....
+....oooo2o222ooo3333333Booooo322222222ooooooo...
+..oo22oo3ob2222oooooooooAo2222222222bbcoooo22o..
+..o212ooobb2232222222222222222233222bbboooo212o.
+.ob2222oob222o222211111111112223o2222bbooo222bco
+ocbb222oob222o222111111111111123oo222bbcoo22bbbo
+ocbb222oo222oo221111111111111113ooo2222ooo32bbbo
+ocb22oooo222oo2111111111111111112oo22223oo32bbco
+oc222oooo2223o3111111111111111112o32222ooo2222cT
+.o2222oob2222oo211111111111111112o22222coo222oo.
+.ooo222ocb222bo22111111111111112ob222bbooo22ooo.
+..oooooooc322bbo2211111111111122ob222bcooooooo..
+...ooooooo2222bco22111111111122obb222oooooooo...
+....ooooooo2222co22222222222222ob2223ooooooo....
+...ooooooooo222oo22222222222222oo223ooooooooo...
+.oo33ooooooooooooo222222222222ooooooooooooo33oo.
+oa1cooo22oooooooo2oooooooooooo2o3ooooooo2oooc1ao
+oaacoa1acoooo22o2oo..........oo22322ooooca1aoaao
+.ooooaaco..oo2ooo32ooo....ooo23oooo2ooo.obaaooo.
+.....ooo..oo2oooooaa1ao..oa1aaooo.oo2ao..ooo....
+.........oa1aoo..oocaao..oaaaoo....oa1ao........
+.........oaabo.....ooo....ooo.......aaao........
+..........ooP.......................ooo.........
diff --git a/parts_pl_src/body/pl_daruma.txt b/parts_pl_src/body/pl_daruma.txt
new file mode 100644
index 0000000..f6ff262
--- /dev/null
+++ b/parts_pl_src/body/pl_daruma.txt
@@ -0,0 +1,41 @@
+# pl_daruma: from pixellab_src/pl_daruma/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 44)
+# head_top at (31, 29) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (49, 51) (from part/probe)
+..............oooooooo..............
+............ooo222222ooo............
+..........ooo2133311122oo...........
+.........oo323333^111113ooo.........
+........oo3b333311111112cooo........
+.......oo3b33331111111113b3oo.......
+......oo32333331111113333223o.......
+......oc32oooooooooooooooo23co......
+.....oob2oooozzzzzzzzzzoooo2boo.....
+.....ob2ooobboz111111zobbooo2bo.....
+....oo23ooobbboo1111oobbbooo33oo....
+....o22oaooobbabo11obabboooao3oo....
+...oo23ozoo2obbboB1obbbo2oozo33oo...
+...o32oazza11oooa11aooo11azzao3oo...
+...o32oa11a1oo1a1111a1oo1a11ao3oo...
+..oo33oa11aw11wa1111aw11wa11ao33oo..
+..ob3oa1oozawwaz1111zawwazoo1ao3bo..
+..oo3oaoo1ozzoooa11boozzzo1ooao3oo..
+..oc3oaoa1o1oaacoAboaaco1o1aoao3bo..
+..oo3oaoo11obaacooocbaabo11ooao3oo..
+..oo33oaooobbbboooooobbbboooao33oo..
+..ooo2oazzaobboac11caobboazzao3ooo..
+.o3ooo2oz111oo1a1111a1oo111zo2ooo3o.
+.o2ooob1o11111a111111a11111o1booo2o.
+oc2oocb3313a111111111111c3133ccoo2bo
+o2boocob33c31111111111113c33bocoob2T
+o223oobo3cb3333b3333b3333bb3oboo322o
+o233oocoob3b3333bb3b3333b3cooboo332o
+oo3ooooooob333bb33c3b3333cooooooo3oo
+.ooo..ooooboo3333b3b333oocoooo..ooo.
+.......oooooooobbbbcooooooooo.......
+........oooooooocoobbcoooooo........
+.........ooooooccbbbooooooo.........
+...........oooooooooooooo...........
+............oooooPoooooo............
diff --git a/parts_pl_src/body/pl_daruma_b.txt b/parts_pl_src/body/pl_daruma_b.txt
new file mode 100644
index 0000000..96e83aa
--- /dev/null
+++ b/parts_pl_src/body/pl_daruma_b.txt
@@ -0,0 +1,59 @@
+# pl_daruma_b: from pixellab_src/pl_daruma_b/base.png (variant of pl_daruma) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 35)
+# head_top at (31, 7)
+# back at (31, 38)
+# tail at (53, 51)
+....................ooo^oooo....................
+..................ooo111111oooo.................
+................ooo1133311111ooo................
+...............oo31333311111132oo...............
+..............ooob333311111111obooo.............
+.............ooo3b3333111111113coooo............
+............oo33b333311111111133b3oo............
+...........oo3111333311111133333113oo...........
+..........oob31oooooooooooooooooo13bo...........
+..........oob1ooooozzzzzzzzzzooooo1boo..........
+.........oob1oooobboz111111zobbbooo1boo.........
+.........oo13oooobbboo1111oobbbbooo33oo.........
+........oo11oaoooobbabo11obabbooooao3ooo........
+........o313ozooo1obbbo11obbboo1oozo333o........
+.......o231oazzaa1woooa11aooow11azzao33oo.......
+.......o211oa11aa1oo1a1111a1ooo1a11ao33oo.......
+.......o211oa11aa1oo1b1111b1oo11b11ao33oo.......
+......oo333oa11aa1111a1111a11111a11ao333oo......
+......ob33oozoobaa11az1111za11aazoozoo33bo......
+......oo33oooo1oozzooob11boozzzzo1oooo33oo......
+......ob33obob1oo3oaabobboaaboo1o1bobo33bo......
+......oo33oboo11oobaabooobbaaboo11oobo33oo......
+......oo3oobboooobbbboooooobbbbbooobbbo3oo......
+......oo3obaabbboobbobbbbbbobboobbbbbbo2oo......
+.......ooobaababbcoobbbbbbbbooobbabbabo2o.......
+.......oobbaaaabbbbbbbabbbbbbbbbbaabaaboo.......
+......ooobaaaaaaabbbbbabbbabbbbbaaabbabooo......
+.....oooobabaaaaabaabaabbbabbbaabaaacaboooo.....
+....o21oobababaabaaabaabAaababaaacaacaboo13o....
+...oc11oobbbabaaaaaaaaabbaaaabaaacaacaboo11co...
+...oaa1oobbbabaccaabaaabbaaaaabaacbaccboo1aao...
+..o2aaaoooobabaccaabaabBbaaaaabaacbccoboocaa1o..
+.oo11aaoooobbbaccaacaabbbaaaaabaacbccooooc11aco.
+.ob111oo3oocccaccbbcaabbbcaacbccacbccoo3oo1aa1o.
+ocaaa1o33ooocccccbbcbbbbbcaacbccccccooo3ooca113o
+o3aaaco3333occcoccbcbbbbbcbccbccocccoo333o3111co
+o311acooo13ooccocccccbbbbcbcccccoccoo23ooo31aaco
+oba113ooob13oocooccccccbbcccccccocoo33booocaaaco
+o33333oobb333ooooccccccccccccccoooo333bbooocac1o
+oooooooobb3331ooooccoccccccoccoooo3333bboooooooo
+o1111zoobob333c33ooooccccccoooo33c333bobooz1111o
+o111zzooobo33bb333222ooccoo222333bb33oboooz1111o
+oz11azooobooob3bo3333oooooo23333b3boooboooza11zo
+.oz1zo.ooooooooo3333oooooooo3333ooooooooo.oz1zo.
+..ooo...oooooob33333bb33bo3b33333boooooo...ooT..
+.........ooooobooo33333b3ob3332oobooooo.........
+..........ooooooooooobbbbbbooooooooooo..........
+...........ooooooooooobooobbboooooooo...........
+............ooooooooobbbbbbooooooooo............
+...............oooooooooooooooooo...............
+...............oooooooooooooooooo...............
+...............ooooooo....ooooooo...............
+................ooooP......ooooo................
diff --git a/parts_pl_src/body/pl_daruma_c.txt b/parts_pl_src/body/pl_daruma_c.txt
new file mode 100644
index 0000000..43ad68f
--- /dev/null
+++ b/parts_pl_src/body/pl_daruma_c.txt
@@ -0,0 +1,59 @@
+# pl_daruma_c: from pixellab_src/pl_daruma_c/base.png (variant of pl_daruma) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 35)
+# head_top at (31, 7)
+# back at (31, 38)
+# tail at (50, 51)
+.................oo^ooo.................
+...............oo222222oo...............
+..............o2223222222o..............
+.............o22333222222co.............
+............o12333222222aaco............
+...........o113332222222bacco...........
+..........o11333222222222baaoo..........
+.........oo233322222222222babo..........
+.........o12232222222222222b33o.........
+........o313322222222222222222o.........
+........o3333222222222222222211o........
+.......o333322222222222222222113o.......
+.......o323322222222222222222233o.......
+......o33222222222222222222222333o......
+......o3322oooo2222222222oooo2333o......
+......o322ooccco22222222occcco233o......
+.....oo322ooocccoo22222occcooo223oo.....
+.....o3223aooocccco22occcco2oa3233o.....
+.....o3223aowwoocco22occcowwba3233o.....
+....o3323a1bww2ooo3333ooo2wwb1a3333o....
+....o3223a1bww2ooaazzzaoo2wwb1a3333o....
+....o3223a11bwwwwb1111bwwwwb11aa333o....
+....ob23a1111bbbb111111bbbb1111a33bo....
+....ob23a11111aaoooooooooz11111a33bo....
+...oob23a111111ocaaaaaaaco11111a33boo...
+...oob23a11111ocaaacccccaco1111a333oo...
+...oo322aa111occccooooooccco11aa3333o...
+...o33223a111occoo111111occo11a32333o...
+...o332223a11oooz111A1111oo11z322333o...
+...o3322223z1111111111111111a3222333o...
+...o3322222233a11111111111z332222333o...
+...o332222222233333B3333333222222333o...
+...o33222222222222222222222222222333oo..
+..oo33222222222222222222222222222333oo..
+..o1o33aaa222222222222222222222ab333ooo.
+.o31o33aaab2222222222222222222baab33o2o.
+.o21o33aaab2222222222222222222baab33o2o.
+.o23o33aaab2222222222222222222babb33o22o
+oc23o333bb222222222222222222222bb333o22o
+ocb3o3332222222222222222222222223333o22o
+o2c3o333222222222222222222222222333o322o
+o223oo33322222222222222222222223333o322o
+o233oo3332222222222222222222222333oo332o
+o33ooo333322222222222222222bb23333ooo33o
+.ooo..o3333baa222222222222baab3333o.ooT.
+......o3333baaa22222222222babb333o......
+.......o333bbba22222222223bbbb33oo......
+.......oo333bbb33222122333333333o.......
+........oo333b3333333333333333oo........
+.........oo333333333333333333oo.........
+..........ooo33333333333333ooo..........
+............oooo3333333ooooo............
+...............ooooPoooooo..............
diff --git a/parts_pl_src/body/pl_daruma_d.txt b/parts_pl_src/body/pl_daruma_d.txt
new file mode 100644
index 0000000..f20f2b4
--- /dev/null
+++ b/parts_pl_src/body/pl_daruma_d.txt
@@ -0,0 +1,41 @@
+# pl_daruma_d: from pixellab_src/pl_daruma_d/base.png (variant of pl_daruma) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 44)
+# head_top at (31, 26)
+# back at (31, 38)
+# tail at (49, 51)
+..............ooo^oooo..............
+............ooo3o3111ooo............
+..........ooo33oo31111coo...........
+.........oo13oo3311111c1ooo.........
+........oo1c33o31111cc11cooo........
+.......oo3c33o3111111o113cooo.......
+......oo31333b31z111b1333oo3o.......
+......oc313ooooo3oooooooo313co......
+.....ooc13ooazzzzzzozzzaoo33coo.....
+.....oc13o11zz1111o1111a1ao31co.....
+....oc13oa11ww1111oz111111ao3coo....
+....ob1oc33211ww3113ww11333ao3oo....
+...ooo3oazccb2223B131122cazco333o...
+...oo1oba1c1wcccz11zcccw1azcao33o...
+...o31oo1o21oo2a11o1a1oo1o1oao33o...
+..oc33ozo1a1111c1111c1111ao1aoo3oo..
+..o3coa1ooza11cc1111cc11azooaao33o..
+..o3ooaoo1ozzz11czzc11zzzo1ooaoo3o..
+..oc1oao11o1o1ww1A11ww1o1o11oco1co..
+..oo1oaoo11o1w1w111ww2w1o1aooao1oo..
+..ooc3oaooo1w1w1133311ww1oooao31oo..
+..ooo3oa1za1w112czza31ww1a1zao3coo..
+.o3ooo1oz111w12cz11aa2ww111zo1cco3o.
+.o1oooc1oz11113a1111a2ww11zo1cooo1o.
+oc1oocc331o11a3azcczab1w1o133cooo1co
+o1coococ33o1w1311111131w1o33cocooc1T
+o1o3ooco3cc3w13c3333c3113co3ocoo1o1o
+oo33ooc1oc3c3133cc3c3311b3coocoo3o3o
+oo3oooo1ooc331cc33c3c3313cooooooo3oo
+.ooo..ooooco33333c3c333oocozoo..ooo.
+.......ooooooooccoccooooooooo.......
+........oo3ccoooooocccoaoooo........
+.........oooocooccccoozoooo.........
+...........ooooccoocooooo...........
+............oooooPoooooo............
diff --git a/parts_pl_src/body/pl_dashbird.txt b/parts_pl_src/body/pl_dashbird.txt
new file mode 100644
index 0000000..aaca049
--- /dev/null
+++ b/parts_pl_src/body/pl_dashbird.txt
@@ -0,0 +1,46 @@
+# pl_dashbird: from pixellab_src/pl_dashbird/base.png (pixellab_library.py extract)
+# pivot at (42, 60)
+# aura at (33, 39)
+# head_top at (24, 26) (from part/probe)
+# back at (36, 36)
+# tail at (47, 51)
+..................................ooo...
+........oo..oo...................o23o...
+........oo.o2o..................o223o...
+.......o2oo22oooo............ooo212o..oo
+.......o23o22o33o............ooo112ooo3o
+.......o2332^3333oo.........o3o2113oo33o
+.......o2232222233o.........o33aaaoo33o.
+......oo22222222233o.......obb211ao333o.
+.....o22o22211122233o......o3b1112b12o..
+....o112222211122223o.....oo32111oaa3ooo
+....o312222112oo2223o.....o33211231ao33o
+....oo3222113o1o22233o....o33111313o233o
+....owo222oooww1o2233o....o3211312ob33o.
+....ooo2222ooaw1o2233o....o322333o33bo..
+....oo2x222oa11o3233ooooooo33332o333ooo.
+....o3x1c12oooo32233o333B33oo3333ob333o.
+...o3x11122oo222333o322222233oo333b3oo..
+..o2x1112oo3o33333oo222222a2a33ooooo....
+.o2x112oo33o3333o3o22A1111a222a33o......
+.ox12oo32ooooooo33o2221111a222a33o......
+o213o3ooo....o33333221111333ooooo3o.....
+o2oooo.......o333222221111122a33b3oo....
+ooo.........o3322222233223332a33bo3o....
+............o332222222o33333ooo3oo......
+............o3211211223ooooooooo........
+.............o2211111233333333o..ooo....
+..............o222222222322223oooc3o....
+...............o2222222223222233333o....
+...............o33oooooooooba23ooc3o....
+...oo..........oab33o.......ooo.oc3o....
+..o21o..........o23o............o23T....
+.ooo23o..........o3o............o13o....
+o21co323oooooooooc23o...........o13o....
+.o233o31212123333333o...........o33o....
+..ooo3o3313oooooooooo..........oo11o....
+.....ooo3oco................ooo23133o...
+........oo21o..............o212c1o22o...
+..........o2o..............oooo13oo1o...
+...........o..................o2o.o2o...
+..............................Po...oo...
diff --git a/parts_pl_src/body/pl_dashbird_b.txt b/parts_pl_src/body/pl_dashbird_b.txt
new file mode 100644
index 0000000..485c649
--- /dev/null
+++ b/parts_pl_src/body/pl_dashbird_b.txt
@@ -0,0 +1,46 @@
+# pl_dashbird_b: from pixellab_src/pl_dashbird_b/base.png (variant of pl_dashbird) (pixellab_library.py extract)
+# pivot at (39, 59)
+# aura at (33, 39)
+# head_top at (24, 22)
+# back at (36, 36)
+# tail at (46, 51)
+.........oo..oo........................
+........o2o.o2o..................ooo...
+........o2o^22o.................o23o...
+........o23o22ooo..............o223o...
+........o23322333o...........oo212o..oo
+.......o3222222223o.........o3o112o.o3o
+......o232222222222o.......o333112oo33o
+.....o22222222223c23o......o33a112o33o.
+....occ22222222cbc23o.....o3c31113233o.
+....ocbccccccccbbc223o....o3c21123a3o..
+....ocbbbbbbbbbbc2223o...oo3211131a3ooo
+....ocbbbbbbbbbc22223ooooo332112312o33o
+....oo2x22ccccc222223o333oooo113133333o
+...o3xx2o232222222233o3222222o322oc33o.
+..o3x222223222222233o322222222oo33c3o..
+.o3x22223o322222233o322222222222o3333o.
+.ox2223oo333333333o3322B222222222o333o.
+o2223oo33333333ooo3322211112332222ooo..
+o2oo3oooooooooo333222211111a22ooo22o...
+ooooo.o3333333332222A211111a22222o2o...
+......o2332222222222221111ooooo22o22o..
+.....o32211111112222231111112a2233o2o..
+.....o22111111111222233222222a22333oo..
+.....o2111111111111223oo3333333333o3o..
+.....o211111111111112223oooooooooo33o..
+.....o211111111111112222333333333333o..
+......o2111111111111122222233333333o...
+......o2211111111111122222332222233o...
+......oo32111111111112222332222223o....
+.......o32211111111122223332222223o....
+........o3222222222222233o3222222o.....
+.........oooo222222222233o332222oT.....
+..........o33oo32222222oooo33333o......
+...........oo33oooooooo....o333o.......
+...........oo3o.............o3o........
+......oooooo23oo............o3o........
+.....o13o3233333o.......oooo22o........
+.....ooo133oooooo......o13o23o2o.......
+........ooo............oooo1oo1o.......
+..........................Po..oo.......
diff --git a/parts_pl_src/body/pl_dashbird_c.txt b/parts_pl_src/body/pl_dashbird_c.txt
new file mode 100644
index 0000000..95d7ad5
--- /dev/null
+++ b/parts_pl_src/body/pl_dashbird_c.txt
@@ -0,0 +1,66 @@
+# pl_dashbird_c: from pixellab_src/pl_dashbird_c/base.png (variant of pl_dashbird) (pixellab_library.py extract)
+# pivot at (33, 62)
+# aura at (31, 30)
+# head_top at (24, 6)
+# back at (36, 35)
+# tail at (36, 51)
+......oo.o...............
+......2o2oo..............
+......232o3o.............
+....o^222223o............
+...o12221122o............
+...oo2213oo22o...........
+...oo22oo2o22o...........
+...o312oc1o22o...........
+..o3122ooo333o...........
+.o113oo2o333o............
+.223o3oooo33o............
+oooooo..o333o............
+........o333o............
+........o223o............
+........o32o..........o..
+........o22o.........33o.
+.......oa22o......ooo2o..
+.......o22o.......o112ooo
+......oa22o......o3aaoooo
+......o12o.......oc11o333
+......o12o......o321232o.
+.....o11ao......o32132c3o
+.....o122o......o3232o33o
+.....o122oooooooo332o3c3.
+.....o12222ac222o333oooo.
+.....o112a2222232c333ooo.
+.....o212222211a22a3oo...
+......o22222A11o3oooo....
+......o3322221112a2c3o...
+.......o222223333o3coo...
+........o22222ooooooo....
+........o222233333o......
+........o3ooo3223B.......
+........oa33ooa2o........
+.........o3o.oa2o........
+.........o3o..o2o........
+..........oo..oao........
+..........oo..o3o........
+..........oo...oo........
+..........oo...oo........
+..........o3o..o2o.......
+..........o2o..o1o.......
+..........oo...o2o.......
+..........oo...o2o.......
+..........oo...o2o.......
+..........oo...o2o.......
+..........oo...o2o.......
+..........oo...o2o.......
+..........oo...o1T.......
+..........oo...o1o.......
+..........oo...o2o.......
+..........oo...o1o.......
+.........o2o...o1o.......
+.........o2o...o1o.......
+.........o2o...o1o.......
+........o13o...o1o.......
+......oo223o.oo13o.......
+.....ooo2oooo2221o.......
+.......oo...oo2o2o.......
+..............P.o........
diff --git a/parts_pl_src/body/pl_dashbird_d.txt b/parts_pl_src/body/pl_dashbird_d.txt
new file mode 100644
index 0000000..cce5874
--- /dev/null
+++ b/parts_pl_src/body/pl_dashbird_d.txt
@@ -0,0 +1,47 @@
+# pl_dashbird_d: from pixellab_src/pl_dashbird_d/base.png (variant of pl_dashbird) (pixellab_library.py extract)
+# pivot at (23, 58)
+# aura at (32, 36)
+# head_top at (24, 18)
+# back at (36, 36)
+# tail at (51, 51)
+........oo...^o..oooooooooo...............
+........2o..o2ooo2222222233ooo............
+.......o2o.o22o322222222222233oo..........
+.......o23oo22oooo2222222222223oo.........
+.......o2323223333o32222222222333o........
+.......o22232222233o32222222222233o.......
+......o2222222222223o22222222222233o......
+.....o22222222222223o32222222222233o......
+.....o12222222111222o332222222222333o.....
+....o1122222211122223o32222222222233o.....
+....oo112222113322223o32222222222233o.....
+....oo31222113ooo2223o322222222222233o....
+....owoo2223oowwo2223o322222222222233o....
+....o1co2222oobwo2223o3222222222222333o...
+....ooo31122oaa122233o3222222222222333o...
+....oo2x11122oo32223o33222222222222333o...
+....o2x13111o2222233o32222222222222333o...
+...o2x11112oo222233o332222222222223333o...
+...ox1111oo2o33333o33A222B222222223333o...
+..o1112oo2oooooooo33222222222222233333o...
+.o11123ooo3333333322222222222222233333o...
+o1123oo3333333333222222222222222233333o...
+o13ooo3333333322222222222222222233333o....
+ooo..o3333332222222222222222222333333o....
+......o333322222222222222222223333333o....
+......o33322222222222222222223333333o.....
+.......o332222222222222222233333333o......
+.......o333222222222222222333333333oo.....
+........o3333222222233333333333333oo3o....
+.........o33333333333333333333333oo322o...
+..........oo33333333333333333333oo3232o...
+............o3333333333333333333232oo22o..
+.....ooo....o333o333333333oo33c322o.o222o.
+...ooo21o...o233oooooooooo..o333oo..o222T.
+...o22o22o..o23o.............ooo....o2o23o
+....o33o22oo12o.....................o2oo2o
+.....o3332o11o......................o1o.oo
+......o333223o.......................o....
+.......o3332o.............................
+........oo33o.............................
+..........ooP.............................
diff --git a/parts_pl_src/body/pl_dimetro.txt b/parts_pl_src/body/pl_dimetro.txt
new file mode 100644
index 0000000..9f46e02
--- /dev/null
+++ b/parts_pl_src/body/pl_dimetro.txt
@@ -0,0 +1,44 @@
+# pl_dimetro: from pixellab_src/pl_dimetro/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (31, 29) (from part/probe)
+# back at (32, 35)
+# tail at (45, 45) (from part/probe)
+................oooooo..................
+...............o111222oo................
+..............o112333332oooo............
+............oo1a233a3333a222o...........
+...........o1113b33a3333b3333o..........
+...........o1233b3a3b33b3c3b33o.........
+..........o1a233b3b^33bb3b3b33o.........
+..........o123b3b333333b33oa33o.........
+..........o133bb3b33b33bb3b3b3bo........
+.........o1233b33bb3accb33b33ba3o.......
+.........o123bb33b33c3c3bb3b3a333o......
+.........o2a3b3b3b33c3c33b33b3c333o.....
+........o123b33ob3b3Boco333bbb3b33o.....
+........o13b3b3c33b3333333oc33bb33o.....
+........o23333bc33321111122o3cc33o......
+.....ooo3233oooc311111112322ooc3bo......
+....o222221111221111222113322o3b33o.....
+...o31221111111111111332111222o333o.....
+...oc121111ooo11111111331133223ooo......
+...oo22211oo1o311111A13312322232ooooo...
+...o3222211oc13111211111222233322o33o...
+..o1112223ooc1313a2322222223322o222oooo.
+.oaaaa1123c31311o13322222223112o3T22222o
+oaaaaab11113311oa11o323222311112o333333o
+obaaccb1111111oo112o222323311112o33333o.
+.obbbbb111oooo3113o2112333311112o222oo..
+.obbbooooo11bb223o31111o33o11112o3oo....
+..oobbbbbbbbboooo3o2111o22331112oo......
+....ooooooooo33322o21113o23311123o......
+..........oooo2222o3111333oo312333o.....
+.........o3ooooo222o2112oo..o333o3o.....
+.........o33ooo.ooo31112o....ooo33o.....
+.......oo33333o.oco21112o...o33333o.....
+......o233333o....o21123o..o2o3312o.....
+......o33o333o...o322223o...oooooo......
+.......oooooo...o131322o................
+................ooo1312o................
+..................oPooo.................
diff --git a/parts_pl_src/body/pl_dimetro_b.txt b/parts_pl_src/body/pl_dimetro_b.txt
new file mode 100644
index 0000000..9ba7a19
--- /dev/null
+++ b/parts_pl_src/body/pl_dimetro_b.txt
@@ -0,0 +1,43 @@
+# pl_dimetro_b: from pixellab_src/pl_dimetro_b/base.png (variant of pl_dimetro) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 44)
+# head_top at (31, 24)
+# back at (32, 35)
+# tail at (54, 45)
+...................^oo.....................
+................ooo1112ooo.................
+...............o1113333331o................
+..............o1123ac333333o...............
+.............o11333ac333cc33o..............
+............o113cc33c333cc333o.............
+...........o11333c33cc33cc3333o............
+...........o13c33333c3333333c3o............
+..........o1133c33333333ooo3c3o............
+..........o1333333211111113oo33o...........
+..........o1333311111111aa112o3o...........
+........oo213311111aB111aaa112oo...........
+.......o21111111111aaa111aa1122o...........
+.....oo2111111111111aa1111111112o..........
+....o12211111111111111113311ac122o.........
+...o2122111111111111111a3311ac1222o........
+...o2121111ooo11111111113311111222o........
+...o222211oowo311121111111112222222o.......
+...o222221wobw3111211111111222222222o......
+..o1112223oobw313a2311111222222223222o...oo
+.oaaac1123b32311o132A2222222221111o211ooo1o
+ocaaaac11113311oa112222222222111111o311113T
+ocaabbc1111111oo1122223222232111111o33333o.
+.occccc111oooo3113o2112322232111111o3332o..
+.occcooooow1cc223o211113333o2111111o222o...
+..oocccccccccooooo211113333o2111111oooo....
+....ooooooooo3333o211113o22o2111112o.......
+......ooooo333322o211111o22o3111123o.......
+.......o3oooo2222o311111o23o3311133o.......
+.......o33ooooo222311112ooooo3333333o......
+.......o333ooo.ooo311112ooooooo33333o......
+.....o333333oo...o311112ooooo.oo3333o......
+....o3333333o....o311122o3oo.o333333o......
+....o3233333o...o3111122ooo..oo23133o......
+.....ooooooo...ow312112o......oooooo.......
+...............ooow3w12o...................
+.................ooooPo....................
diff --git a/parts_pl_src/body/pl_dimetro_c.txt b/parts_pl_src/body/pl_dimetro_c.txt
new file mode 100644
index 0000000..18567fa
--- /dev/null
+++ b/parts_pl_src/body/pl_dimetro_c.txt
@@ -0,0 +1,61 @@
+# pl_dimetro_c: from pixellab_src/pl_dimetro_c/base.png (variant of pl_dimetro) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 38)
+# head_top at (31, 11)
+# back at (32, 35)
+# tail at (54, 45)
+...........................ooo...............
+..........................o12o...............
+........................oo12o................
+.......................o1122o................
+......................o1122o.................
+.....................^11222o.................
+....................o112222o.................
+...................o1122222o.................
+..................o112b222o..................
+.................o1122b222o.....ooo..........
+................o11222b222o....o12o..........
+...............o112222b222o...o123o..........
+..............o1122222b22o...o1233o..........
+..............o1ab2222b22o..o11333o..........
+.............o112b2222b22o.o21233o...........
+.............o122b2222b22o.o21b33o...........
+.............o122bb222b22o.o2233o............
+............o1122bb222bb33o22b33o............
+............o1222bb222bb33o22b33o............
+...........o112222b222bb3332bb3o.............
+...........o122222b223bb3332b33o..ooo........
+...........o12b222bb23bb3332b33o.o122o.......
+...........o13b222bb33bb333bb33oo1133o.......
+..........o1233b23bb33bb33bb333o2133o........
+..........o1333b333b33bb33bb33332333o........
+..........o1333b333b33bb33bb333bb33o.........
+..........o1333bb33bb33b33bc333bb3o..........
+..........o23333b333b33bc3bc33bb3oooo........
+..........o23333bb33b33cc3bc33bb3o223o.......
+..........o23333bb33ccBcc3cc3cc333233o.......
+..........o233333bb33c3333333cc33c33o........
+..........o2333333b3321111122o33cc3o.........
+.......ooo3233ooo33111A1112322ooc33oo........
+......o222221111221111222113322oc3333o.......
+.....o31221111111111111332111222o3c3o........
+.....oc121111ooo11111111331133223ooo.........
+.....oo22211oowo311111113312322232ooooo......
+.....o322221wocw3111211111222233322o33o....oo
+....o1112223oocw313a2322222223322o221oooo.o1o
+...oaaab1123c31311o13322222223112o3322111o13T
+..obaaaaa11113311oa11o323222311112o33323333o.
+..oaaaacc1111111oo112o222322311112o3333332o..
+.oaaaaccccccoooo3113o2112333311112o222oooo...
+.oaaaccccooo2222223o31111o33o11112o3oo.......
+oaaaccooo222222oooo3o2111o22331112oo.........
+oaacco.oooooooo33322o21113o23311123o.........
+oacco.......oooo2222o3111333oo312333o........
+obco.......o3ooooo222o2112oo..o333o3o........
+obo........o33ooo.ooo31112o....ooo33o........
+oco......oo33333o.oco21112o...o33333o........
+.oo.....o233333o....o21123o..o2o3312o........
+........o33o333o...o322223o...oooooo.........
+.........oooooo...ow31322o...................
+..................ooow3w2o...................
+....................ooPoo....................
diff --git a/parts_pl_src/body/pl_dino.txt b/parts_pl_src/body/pl_dino.txt
index 4d22521..bb54cf7 100644
--- a/parts_pl_src/body/pl_dino.txt
+++ b/parts_pl_src/body/pl_dino.txt
@@ -1,9 +1,9 @@
# pl_dino: from pixellab_src/pl_dino/base.png (pixellab_library.py extract)
# pivot at (33, 60)
# aura at (31, 40)
-# head_top at (28, 24) (from part)
-# back at (38, 30) (from part)
-# tail at (45, 48) (from part)
+# head_top at (28, 24) (from part/probe)
+# back at (38, 30) (from part/probe)
+# tail at (45, 48) (from part/probe)
.................oo...............
...............oo12o..............
..............o2122o..ooo.........
diff --git a/parts_pl_src/body/pl_dino_b.txt b/parts_pl_src/body/pl_dino_b.txt
new file mode 100644
index 0000000..f9d38a6
--- /dev/null
+++ b/parts_pl_src/body/pl_dino_b.txt
@@ -0,0 +1,49 @@
+# pl_dino_b: from pixellab_src/pl_dino_b/base.png (variant of pl_dino) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 40)
+# head_top at (28, 21)
+# back at (38, 30)
+# tail at (47, 48)
+.................oo................
+...............oo12o...............
+..............o2122o..ooo..........
+.............^212223ocbco..........
+..........ooo2122222oooco..........
+.......ooo1131122212222oo.ooo......
+......o311111122111111222occo......
+......o3111111111111111222oco......
+.....oao31111111112ooo21222o.......
+.....o1ao211111112oaaoo322co.......
+.....o11o21111113oa111o322cco......
+.....o1oo22222223o1o11a322ccoo.....
+...oo111111111222ooo11aB2222oco....
+.oo11111111111122ooo113222ccoco....
+o11111111111122223o113222c22oo.....
+o111111111112222222222bb22cco......
+o1o1111113o12222222222222222o......
+o13111111o112222223222222223o......
+o1111111111122223oo22222223oco.....
+o311111111112223o2222222233oco.....
+.oooooooo2223ooo2222222233ooo......
+..o211111oooo222222222333oo........
+...oo22222222223A3333333ooco.......
+.....oooo33333333333333333co.....oo
+....o333333333333333111232o.....o1o
+...o11111111111112232111322oo..o12o
+...o1111111111111122o2112o2ocoob12o
+..o11111111111111112o21b2o23oc1c12o
+..o1111111111111111o11113o23oc11bo.
+..o111111111111111o11112o223o1b13o.
+..o111111111111111oo112o3223o113T..
+..o1111111111111111o13oo2223o333o..
+..o31111111111111112oo322223o33o...
+...o311111111111113211112233o3o....
+...o33111111111113221111c23ooo.....
+....o331111111113321111cc33o.......
+.....o33333333333331bb1133o........
+......ooo333333333o211223o.........
+.......o3oooooooooo3333333o........
+.......o233333o....o333333o........
+......o1o12333o...o3122223o........
+......oooooooo....o1oa13oo.........
+..................Pooooo...........
diff --git a/parts_pl_src/body/pl_dino_c.txt b/parts_pl_src/body/pl_dino_c.txt
new file mode 100644
index 0000000..f5ec81b
--- /dev/null
+++ b/parts_pl_src/body/pl_dino_c.txt
@@ -0,0 +1,63 @@
+# pl_dino_c: from pixellab_src/pl_dino_c/base.png (variant of pl_dino) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (33, 33)
+# head_top at (28, 7)
+# back at (38, 30)
+# tail at (50, 48)
+.....................oo.....................
+....................o13o....................
+...................o122o..ooo...............
+..................^12223oo23o...............
+.................o122222ooo3o...............
+..............ooo2122222222oooooo...........
+.............o212112221122222o23o...........
+............oo212122212222222333o...........
+............ooo2222212ooo22222oo............
+............ooo222222oaaao32223o............
+............owo22222owowwa32222ooo..........
+...........oo3322222ooowwa32222o32o.........
+........ooo222211222oooww3222cco33o.........
+.....ooo2221111222222oaw3222c22o3o..........
+...oo22111111222222222222bb22ccoo...........
+..o2111222222222222222222222223oo...........
+.o212222222222222222oooo3222223oo...........
+o211232222222222oooo2222332223o33o..........
+o2222222222ooooo22222222232233o33o..........
+.o33333oooo2222222222222223333ooo...........
+..oo33333333333333333333333333o.............
+....oooooooooooooooooooo333323o.............
+..................oo3333332223oo............
+...................o333332222o32o...........
+...................occcc222bc333o...........
+..................occccc2222333o............
+..................o222122222B3o.............
+..................o2111222bbcco.............
+.................ocbbbbb22223ooo............
+.................ocbbbbA22223o33o...........
+.................o21112222bbcc33o...........
+................o2211122222223oo............
+................ocbbbbbb222223o.............
+...............occbbbbbb222223ooo...........
+...............o21111122222222o32o........oo
+..............oo211111222212o2o33o.......o2o
+.............oo3211111222o212o2oo.......oo2o
+............o2ocbbbbbbb223o212ooooo.....o22o
+............o2ocbbbbbbb222o222o2o23..ooocb2o
+...........o2o221111112222o222o2o33o32oo1bco
+...........o2o22111111222o3222o23oooo3bb22o.
+...........owocbbbbbbbbb2ow323o22bc2b21b23o.
+............oocbbbbbbbbb2ooowo222bc1b21b2o..
+.............o2222222222223333222b11b22c3o..
+.............o2222222222222222222b12b233T...
+..............oc22222ccc222222222b22c333o...
+..............occcccccc3321122233c33333o....
+.............o3o322222232211222o33333oo.....
+.............ocoo322223o2bbbb23o333oo.......
+.............o233o33333o211122ooooo.........
+.............oc233oo333o2bbb23oo............
+..............o33333ooooo22223o.............
+..............o22233o...o333233o............
+..............o22233o...o222233o............
+.............ow3w333o..o3222233o............
+..............oooooo...owow3ooo.............
+.......................Poooo................
diff --git a/parts_pl_src/body/pl_dino_d.txt b/parts_pl_src/body/pl_dino_d.txt
new file mode 100644
index 0000000..8f1ba0c
--- /dev/null
+++ b/parts_pl_src/body/pl_dino_d.txt
@@ -0,0 +1,50 @@
+# pl_dino_d: from pixellab_src/pl_dino_d/base.png (variant of pl_dino) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 39)
+# head_top at (28, 18)
+# back at (38, 30)
+# tail at (48, 48)
+..............ooo..................
+.............^223ooooo.............
+......oo....o212322222oo...........
+......obo..o2122212222bco..........
+......obcoo3212212322cbcoo.........
+......occc2312222233cbcc22o........
+.......oc223122233222cc3222o.......
+......o212221223322122333223o......
+......o3212222232212222332222o.....
+.....oao32222222213ooo32332223o....
+.....owao322222223oaaoo3333222oo...
+.....owwo32222223oawwwo333222222o..
+.....owoo33333333owowwa333331233o..
+...oo333222222333ooowwaB3322323o...
+.oo22222222221233oooww3333c2233o...
+o21111111112223333oww3333c22233o...
+o222222222223333333333bb32cc233o...
+o2o2222223o23333333333322223333o...
+o23222222o223333333oo3322222333o...
+o3222222222233333oaoaoa2212233o....
+o322222222223333oawawaa2213333o....
+.o333333333333oaawaow2222133oo.....
+..owooooooaaaoawoA2212232233o......
+..o32222222w22222222223333o3o......
+...o2312312222212223223333oo.....oo
+....o312322222212223333333o.....obo
+...o23323312232332333322233o..oobbo
+..o123333322233323323321233o.obb2bo
+.o213322233233222322o2222333ob122bo
+.o22o22222233222222o3222333322122co
+.o23322122222212222ow222333322223co
+.oo3o331221222122223o223o3333222cT.
+..oo3332221222222233ow3o323333333o.
+...o3332221222223333ooo332333333o..
+...o322323212223233222223333333o...
+....o2223322222323222122333oooo....
+....o2123333222333222122333o.......
+....o3123o3332333332222233o........
+.....oo333o33333333323233o.........
+......oo333ooo33ooo3333333o........
+.......o223333ooo..o332233o........
+......owow3333o...o3222233o........
+......oooooooo....owoaw3oo.........
+..................Pooooo...........
diff --git a/parts_pl_src/body/pl_diver.txt b/parts_pl_src/body/pl_diver.txt
new file mode 100644
index 0000000..23c4ce3
--- /dev/null
+++ b/parts_pl_src/body/pl_diver.txt
@@ -0,0 +1,46 @@
+# pl_diver: from pixellab_src/pl_diver/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 42)
+# head_top at (29, 28) (from part/probe)
+# back at (31, 37) (from part/probe)
+# tail at (43, 50) (from part/probe)
+...............oooooo................
+.............oo122222oo..............
+............o11oaooao23o.............
+............o1o313323o3o.............
+...........oo2ooaooaoo3oo............
+.........oo2oo222oo233oo3oo..........
+........o2222oooooooooo2223o.........
+.......oa21122oo^ooooo222222o........
+......o21111222oooooo222222c2o.......
+.....o2a11112oo22aa22oo222o2o3o......
+.....322ac1o22222ab32222o2o33oo......
+....o22co2o222boooooob222o2oo3bo.....
+..oooa222oab2oo222233oo2bbo222booo...
+.o12oa22o2bao2221222233oab3o22bo31o..
+.o12o222o2bo221122222233o33o223o31o..
+o122o22o23bo211222222223o3b3o33o322o.
+ob23o32o33o3333222B223o33o33o33o32bo.
+oo3co32o33o3oo33222233oo3o33o33oc3oo.
+oo3co33aboo3o3133223313o3ocaa33oc3oo.
+.o3co33bbco33212322321233ocbb33oo3o..
+.ooco33o33o33111322311133ob3o33oooo..
+...o3b3o3bo3233322A233333ob3o333o....
+...o3o3o33bo32222oo32223o323o3c3o....
+....ooo3o3bo3332occo2333o32o3o2o.....
+....o12oo3bbo3333333333oab3oo32o.....
+....o33ocoaa3oo333333oo3aao3o3oo.212.
+.113.oooc3o333boooooob333o33ooo..2113
+o11o..ooo3oobb333ab3333bo33ooo...o11o
+o21ooo2ooo33ooo33ab33ooo3cooo3313112o
+o221112oooooo33oooooo32oooooo3T2222o.
+.o22333o33ooo233oc33331ooo33oo3333o..
+..oo3ooo23ooo123oooo321ooo313.oooo...
+.......o12o.o212oooo312o.o213........
+.......o12o..o12o..o21o..o31o........
+...1113123o..o11o..o21o..o3213111o...
+.o1111223o.o3o12o..o2133o.o3311111o..
+.o322233o..11112o..o32211o.o332222o..
+..oooooo.o111123o...o32211o.oooooo...
+.........o21223o.....o2223o..........
+..........ooooP.......oooo...........
diff --git a/parts_pl_src/body/pl_diver_b.txt b/parts_pl_src/body/pl_diver_b.txt
new file mode 100644
index 0000000..e2a18ae
--- /dev/null
+++ b/parts_pl_src/body/pl_diver_b.txt
@@ -0,0 +1,47 @@
+# pl_diver_b: from pixellab_src/pl_diver_b/base.png (variant of pl_diver) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 39)
+# head_top at (29, 20)
+# back at (31, 37)
+# tail at (48, 50)
+.............ooo^oooooooooooooooooo..
+..........ooo1111111111111111111112o.
+.......ooo11111111111111111111111333o
+.....oo11111111111111111111111223333o
+...oo1111111111111111111111112333333o
+..o111111111111111111111111223333333o
+.o1111111111111111111111112333333333o
+.o12222222222222222aa11112333333333bo
+.o1222222222222222222aaa1333333333bbo
+.o122233222212322222222a1333333333bbo
+.o1221oo2221oo22222oo22a1333333333b3o
+.o122o33o22ob3o221o33o221333333ooo33o
+.o122o33o22ob3o221o33o22133333o333o3o
+.o1222oo2222oo32221oo22213333o33112oo
+.o222222222222222221222213333o321oooo
+.oo2222222222222222222222333o332o333o
+..o322ooo222222222oo22222333o332o333o
+..o222ob3o2222221oB3o2222333o333o333o
+..o22oo33o2222221ob3o2222333o333o33oo
+..o22o333o2222222o3Ao2222333oo333o3oo
+.o12222oo32222222ooo32213o33boo333o3o
+.o2222222222222222232222o2o3bcooooo3o
+.o2222222222222222222222133o3ccccc33o
+.o3322222222222222222222233o3cccc3ooo
+.o2232222222222222222233233o3ccccooo.
+.o2232222222222222222232233occcccoo..
+.o222332222222222222233223occccoo212.
+.o222233222222222222232223occoo..2113
+oo2222223322222222232222233ooo...o11o
+o2ooooooooooooo33333322233ooo331o112o
+o221112oooooo33oooooooooooooo332222T.
+.o22333o33ooo233o333331ooo33oo3333o..
+..oooooo23ooo123oooo321ooo313.oooo...
+.......o12o.o212oooo312o.o213........
+.......o12o..o12o..o21o..o31o........
+...1113123o..o11o..o21o..o321o111o...
+.o1111223o.o3o12o..o2133o.o3311111o..
+.o322233o..11112o..o32211o.o332222o..
+..oooooo.o111123o...o32211o.oooooo...
+.........o21223o.....o2223o..........
+..........ooooP.......oooo...........
diff --git a/parts_pl_src/body/pl_diver_c.txt b/parts_pl_src/body/pl_diver_c.txt
new file mode 100644
index 0000000..2ea9049
--- /dev/null
+++ b/parts_pl_src/body/pl_diver_c.txt
@@ -0,0 +1,43 @@
+# pl_diver_c: from pixellab_src/pl_diver_c/base.png (variant of pl_diver) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 42)
+# head_top at (29, 24)
+# back at (31, 37)
+# tail at (48, 50)
+...............o^oooo................
+............ooo111111oooo............
+...........o11111111111abo...........
+.........o21111111111111cboo.........
+........o1111111111111112b22o........
+.......o1111111oooooo11112222o.......
+......o11a211oo122222oo11222b2o......
+.....o11aa2oo122ooooo11oo223aco......
+.....o1111o123oo22222oo22o23ccco.....
+....o11111o2oo21111112oo2o322cao.....
+..oooa111o23o2o111111o23o2o222cooo...
+.o21oaa11o2o21o11111o222o22o223o21o..
+.o21oac1o2oo111o1111o112232o223o212o.
+.o21occ1o2o11111o1Bo11122o2o223o212o.
+.oo2o311o2o111111o1111122o2o223o21oo.
+.oo2o322o2o1111111o111122o2o2a3o23oo.
+.oo3o322o2o211111o1o11222o2o3aooo3oo.
+.oo3o3222o2o2111o111o222o2oo33ooc3o..
+..oco3222o22o11o31A12o22o2o3333occo..
+...oo3y322o22oo311122ooo2oo3y333oo...
+....oay3322o22oo33333o22oo33y333o....
+....oa3y3y23o222ooooo23oo333y33o.....
+.....ccy3y313oo222222oo33333y33o.221.
+.113.ocyyy32333ooooooo3333yy33o..22y3
+o11o..occy3333333333333333yaco...o11o
+o21ooo2oo333bb333333333y33yao331o122o
+o221ac2ooo33ooc3333333o33aooo332222T.
+.o223c3o33o3o1333333331o3o33oo3333o..
+..oooooo23ooo123o33o311ooo313.oooo...
+.......o12o.o212oooo312o.o213........
+.......o12o..oy2o..o21o..o31o........
+...1113123o..o2yo..o21o..o321o111o...
+.o1311123o.o3oc2o..o2133o.o3211aayo..
+.o322233o..111b2o..o32111o.o3322c3o..
+..oooooo.o111223o...o32111o.oooooo...
+.........o21223o.....o2223o..........
+..........ooooP.......oooo...........
diff --git a/parts_pl_src/body/pl_diver_d.txt b/parts_pl_src/body/pl_diver_d.txt
new file mode 100644
index 0000000..90a25db
--- /dev/null
+++ b/parts_pl_src/body/pl_diver_d.txt
@@ -0,0 +1,64 @@
+# pl_diver_d: from pixellab_src/pl_diver_d/base.png (variant of pl_diver) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 38)
+# head_top at (29, 3)
+# back at (31, 37)
+# tail at (52, 50)
+.....................^oooo......................
+....................o22223o.....................
+...................o2112223o....................
+..................o211222233o...................
+..................o112222233o...................
+.................o21122222333o..................
+.................o21222222233o..................
+.................o21222222233o..................
+.................o21222222233o..................
+................o2122222222233o.................
+................o21222ooo22233o.................
+................o2122o112o2233o.................
+................o212o11oo3o233o.................
+................o212o2ooo2o2333o................
+...............o2212o3ooo2o2333o................
+...............o22122o333o32333o................
+...............o221223ooo322333o................
+...............o2212223332223o3o................
+...............o2212222222233o3o................
+...............o32122222222c3o3o................
+...............o322a222222333o3o................
+..............ooo33a222233333o3oo...............
+.............o111ooa33333c33ooo33o..............
+.............o33111ooooooooo2223oo..............
+.............oo3311111112222233oo...............
+............oa2ooo333332333ooooo3o..............
+...........o211222ooooooooooo33332o.............
+..........o2a11112oo22ab22oo222o2o3o............
+..........322ac1o22222bc32222o2o33oo............
+.........o22co2o222coooooob222o2oo3co...........
+.......oooa222oac2oo222233oo2cco222booo.........
+......o12oa22o2cao2221222233oac3o22bo31o........
+......o12o222o2co221122222233o33o223o31o........
+.....o122o22o23co211222222223o3c3o33o322o.......
+.....oc23o32o33o3333222B223o33o33o33o32co.......
+.ooo.oo33o32o33o3oo3322A233oo3o33o33oc3oo..ooo..
+oc11ooo33o33acoo3o3133223313o3ocba33oc3oo.o221o.
+obo2o.o33o33ccco33212322321233occc33oo3o.o12obo.
+.oo21ooo3o33o33o33111322311133ob3o33oooo.o12oo..
+.oo21o..o3c3o3co32333222233333ob3o333o...o12oao.
+oao21o..o3o3o33co32222oo32223o323o333o...o22oao.
+oao21o...ooo3o3co3332occo2333o32o3o2o....o223co.
+oco211o..o12oo3cco3333333333oac3oo32o....o123ao.
+.oao21oooo33ocobb3oo333333oo3bbo3o3ooo...o123ao.
+.oao311112ooo33o333cooooooc333o33oo311ooo1223oo.
+.obo3311133ooo33obb333ac3333bo3o32o311111223ao..
+..ooaa33333o11233ooo33bc33oooo33211o3322233obo..
+...obboaabo111233o23oooooooo11o33111o3333baoT...
+....oooaboo11133oo1133o33o3211oo3211oobaobbo....
+..ooooooooo1133ooo1123ocoo3211ob33111obbooooo...
+.o11111ooo1123oaoo1123oooo3211obo32111ooo1111o..
+o1133311112333oboo1123o..o3211oooo311111111111o.
+o13aoab33333oooo.o1123o..o3211o.oaa31111133oo21o
+o2oooaboab3abooooo3223o..o3211ooooob333333aoo33o
+o3o..oooaboboo11111223o..o32211111oboabobbo..o3o
+........oooo.o1122223o....o32222221ooooooo...oo.
+.............o222333o......o3333322o............
+..............oooooP........ooooooo.............
diff --git a/parts_pl_src/body/pl_dobsonfly.txt b/parts_pl_src/body/pl_dobsonfly.txt
new file mode 100644
index 0000000..10a5146
--- /dev/null
+++ b/parts_pl_src/body/pl_dobsonfly.txt
@@ -0,0 +1,43 @@
+# pl_dobsonfly: from pixellab_src/pl_dobsonfly/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 42)
+# head_top at (20, 35) (from part/probe)
+# back at (33, 34) (from part/probe)
+# tail at (46, 44) (from part/probe)
+............ooo...........................
+..........oo112o.........oooo.............
+........o3z32222o......oo1112o............
+......o3b3a3ooooo.....o3z22222o...........
+.....ob3c3oo........o3b3aoooooo...........
+....ozb3oo.........ob3b3o.................
+...oaz3o..........ozb3oo..................
+...obao..........oaz3o....................
+..o33co..........obao.....................
+..ob3o..........o33o......................
+.o33co.........oabooooBoooooo.............
+.oz3o1ooo^ooooooz3o11bbbbbc22o............
+o13aoo22222222oz3o11122bbbcc22ooooooooooo.
+o12o11112222oo13aobb1122c3333322222222222o
+o12o111112o31o12o233c22332222222222222212o
+o12o11111o211o12o123oc32221112222222212oo.
+o12o2111o1111o1o1113o3211111122222112oo...
+o1o.oo11o1111o1o1oooo2111111111111ooo.....
+o1o...oooo111o1oo2aoA11111112ooooo3o......
+o1o.....o1o11ooo1o1ooooooooo33c33c3o......
+ooo....o2ooooooaooao33o333cc33c33c3T......
+.......o21oooooaooac3ooo33cc33c3ooo.......
+........o1obbbbo1ab33o33ooooooo3321o......
+........o32oab1oo233oooo333321o33322o.....
+.........o311213333oo332o333211ooo22o.....
+.......o22oo333oooo3o3211oooo21o.o33o.....
+......o11233oooo3oooo3211o..o31o.o33o.....
+......o11oooo..oo.o2ooo21o...o2o.o3o......
+......o223o.......o2o.o22o...o2o.o3o......
+.......o223o....oooo..o22o...o2o.oooooo...
+........o333o..occc3o.o33o...o2o.o3c32co..
+.........oo33o..oooo..o3o.....oooooooooo..
+.......ooooooo.......o33o.....oc32bbo.....
+......ob3123co.......oooo......ooooo......
+......oooooooo.......oc22o................
+.....................o3b2bo...............
+......................Poooo...............
diff --git a/parts_pl_src/body/pl_dobsonfly_b.txt b/parts_pl_src/body/pl_dobsonfly_b.txt
new file mode 100644
index 0000000..e28c8b0
--- /dev/null
+++ b/parts_pl_src/body/pl_dobsonfly_b.txt
@@ -0,0 +1,47 @@
+# pl_dobsonfly_b: from pixellab_src/pl_dobsonfly_b/base.png (variant of pl_dobsonfly) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 39)
+# head_top at (20, 25)
+# back at (33, 34)
+# tail at (46, 44)
+................ooooooooooo...................
+..............oo11111111133ooo................
+............oo111111111233o333o...............
+...........o11111111113ooo33333o..............
+..........o1111111113oo333333333o.............
+.........^1111111113oo31111333333o............
+........o1111111112oo3111111333333o...........
+.......o11111111113o31111111133a333o..........
+......oo1111111113o311111aa3333aa333o.........
+.....o1o111111112oo111111aa333333333o.........
+.....o1o111111123o3111a1333333333333o.........
+....o11211111113o33111a33333ooooo333o.........
+....o13111111122o331113333ooooooooooo.........
+....o1211111112233331333oo333aaaa22boo........
+....o11211111222222333Boo3211111111bbbo.......
+....o11211112221112223oo211111111112bb2o......
+....o1122112211122222oo11111111111112222oo....
+....oo11222211oooo322o3111111111111111a222o...
+....obo111111oo1boo22o32222111111111111122o...
+....o1o11111oo1oabo23Aoooooo333322111111222o..
+....oooo1111o1aoobo33o333333ooooooooooooooo3o.
+...o2oao1113oaaoaoo13o333333333333o3333b33333o
+..o113oo1113oobbbo113o3b33bb33b333oo333b33boo.
+.o1333o3oooo33ooo213oo3b33bb33b33b3oooooooo...
+.o12oooo22233233o12oo33b33bb33b33b3T..........
+o11o...oooo22ooo133o333b33bb33b3ooo...........
+o12o...oo11oo1oo12oo333oooooooo3321o..........
+o1o.....o331123o12o3oooo333321o33322o.........
+o1o.....ooo3333o12o3o332o333211ooo22o.........
+o1o....o333ooooo1oooo3211oooo21o.o33o.........
+o1o...o11133oooo1oooo3211o..o31o.o33o.........
+o12o..o11oooo..o2oo2ooo21o...o1o.o3o..........
+.o2o..o223o....o2oo2o.o22o...o2o.o3o..........
+..oo...o223o....o2oo..o22o...o2o.oooooo.......
+........o333o..obob3o.o33o...o2o.o3b32bo......
+.........oo33o..oooo..o3o.....oooooooooo......
+.......ooooooo.......o33o.....ob32aao.........
+......oa3123bo.......oooo......ooooo..........
+......oooooooo.......ob22o....................
+.....................o3a2ao...................
+......................Poooo...................
diff --git a/parts_pl_src/body/pl_dobsonfly_c.txt b/parts_pl_src/body/pl_dobsonfly_c.txt
new file mode 100644
index 0000000..e15d650
--- /dev/null
+++ b/parts_pl_src/body/pl_dobsonfly_c.txt
@@ -0,0 +1,51 @@
+# pl_dobsonfly_c: from pixellab_src/pl_dobsonfly_c/base.png (variant of pl_dobsonfly) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (31, 37)
+# head_top at (20, 16)
+# back at (33, 34)
+# tail at (56, 44)
+...........ooo........................................
+.........oo112^.......ooo.............................
+........o3z2222o....oo112o............................
+......o3b3aooooo...o3z2222o...........................
+.....ob3c3o......o3b3aooooo...........................
+....ozb3oo......oz3b3o................................
+...obz3o.......oaz3oo.................................
+...ocao........obao...................................
+..ob3o........o33o..........oo2o......................
+.o33co........ab3o.......ooo123o......................
+.oz3o.ooooooooz3o.......o1o122o.......................
+o13aoo33333ooz2o.......o133223o.ooo...................
+o12o22222332o12o......oo132223oo13o...................
+o12o1222o322o123o....o13232233212o....................
+o12o212o2112o1o23o...o3323223322ooo...................
+o1o.o31o1111o1o2oo..o33333233322222o..................
+o1o..oooo222o1o2o3o.o3333323332322o...................
+o1o....o1o22oo2o323oooooc33333332ooo..................
+ooo....o1ooo233332233333b333bo333211o..............ooo
+.......o2223oo3332222222bbbBbcco3333o.............oo2o
+........ooooo223222222222ab22aa3oo3oo............oo12o
+.............o22322222111ab12a223co33o..........o121o.
+.............o21322233211Aa12a222c333o..........o132o.
+............o311322312321aa11a222cco3ooo.......oo2321o
+............o3111332112311111a22a2ccc333o.....o1o2322o
+............o3211332112o322223332223co33o.....o2o232o.
+............o3o11232112o3333333322133oo3ooo....o2333o.
+............o3o22233112o3333ooo3221233o3o2o.....o2oo..
+.............o3oo23o2112ooooo33oo21123o31oo.....o2o...
+.............o333oooo112o...o333o31122o3b22oo..oo2T...
+.............o33o...o211o...o333o32112o3321aboo223o...
+.............o33o....o21o...o3333o3112o3332c32223o....
+.............o33o....o21o...o3333oo2222oo333333oo.....
+.............o33o....o23o....o3333oo2211ooooooo.......
+............o33o.....o23o.....o3333oo3222o............
+............o33o.....o2o........o333ooo322o...........
+............o3o......o3o.........oo3o..oo33o..........
+............o3o......o3o..........o3o....o33o.........
+............o3o......o3o..........o3o.....o3o.........
+............o3o......o3o........ooo3o.....o3o.........
+..........oo33o......o3o.......occ3co.....o3o.........
+.........ob23bo......ooo.......oooo......o33o.........
+.........ooooo.....oo33o................ob3bo.........
+..................ob23bo................oooo..........
+..................ooooP...............................
diff --git a/parts_pl_src/body/pl_dobsonfly_d.txt b/parts_pl_src/body/pl_dobsonfly_d.txt
new file mode 100644
index 0000000..0b3a3dd
--- /dev/null
+++ b/parts_pl_src/body/pl_dobsonfly_d.txt
@@ -0,0 +1,43 @@
+# pl_dobsonfly_d: from pixellab_src/pl_dobsonfly_d/base.png (variant of pl_dobsonfly) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 41)
+# head_top at (20, 26)
+# back at (33, 34)
+# tail at (50, 44)
+............ooo..........................
+..........oo112o..ooooooooooo............
+........o^z222oooo11111oo1112o...........
+......o2b2a2oo11111121o3z22222o..........
+.....ob2c2ooo1111111o2b2aoooooooo........
+....ozb2ooo11111111ob2b2o11111111o.......
+...oaz2o2o11111111ozb2oo1111111122oo.....
+...obao2o11111111oaz2o1111111111112o.....
+..o32coo111111112obao11111111111111oo....
+..ob2o2211111112o32o11111222221111111oo..
+.o32coo11211212oabo211B222222111131111o..
+.oz2oo111112122oz2o212222211111111111oo..
+o12ao111211222ozao22222211111112113313o..
+o12oo11122222o12ao222221111111311113333o.
+o12o222122o21o12o2222211111211311311333o.
+o12oo2222o211o12o1222221121111111131333o.
+o12oo322o1111o1o1112o3221121131111333333o
+o1o.oo22o1111o1o1oooA3212113122131333332o
+o1o.o2oooo111o1oo2aoo322211333233333333oo
+o1o.o222o1o11ooo1o1o33221111o3233323333o.
+ooo.o12o2ooooooaooao2o111111o3233333333T.
+....o12o21oooooaooac2o11111333323333233o.
+....o322o1obbbbo1ab2o2111112o333332233o..
+....o3222o2oab1oo222o1111122o333332333o..
+....o323222112122223o1111123o333333333o..
+.....o22322oo332233o1121112o333233333o...
+......o233o22233333o2111222o33333333o....
+......o233o33233333o1111222o3333333oo....
+......o323oo3333333o131222oo33333ooo.....
+......o33333oo33333o331223o3333oooooooo..
+.......o3333oooo3o33o33233o33ooo.o2222co.
+........oo333oooooo3o33233ooo.oooooooooo.
+.......ooooooo...o.ooo3o3o....oc22bbo....
+......ob2133co.......oooo......ooooo.....
+......oooooooo.......oc22o...............
+.....................o3b2bo..............
+......................Poooo..............
diff --git a/parts_pl_src/body/pl_dodo.txt b/parts_pl_src/body/pl_dodo.txt
new file mode 100644
index 0000000..efa9f60
--- /dev/null
+++ b/parts_pl_src/body/pl_dodo.txt
@@ -0,0 +1,48 @@
+# pl_dodo: from pixellab_src/pl_dodo/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 39)
+# head_top at (29, 22) (from part/probe)
+# back at (41, 36) (from part/probe)
+# tail at (43, 49) (from part/probe)
+............ooooooo....................
+..........oo1112223oo..................
+........oo11111111113oo................
+.......oo11111111^11133o...............
+......o21111111111211133o..............
+.....o1121111211111111133o.............
+.....o1112112111133131133o.............
+.....oo312221113ooo3311133o............
+.....o1o3333213o11oo311133o............
+.....ow3ccc33oo2ww1o311133o............
+.....ooo322cbo3w3wwo311133o............
+.....o322122cc2o2w1o311333o............
+...oo32113o23co211o3223333o............
+..oaa11233322ccooo21111333o............
+.oaa1aa22222223o2111111333o.....ooo....
+oca1bbbb22222223oo1111133o...ooo223o...
+ob1bbbcc333333boobo111233o..o23o223o...
+obbbcccooooooooobb331133o...oB33223o...
+obcccoo3oooccco3bo32333oooo.o33322oooo.
+obcco..o3ocbco33o33333oo333oo33323o223o
+occo....ocbco23o33Aooo3311123o33333233o
+.oo....ooboo23ooooo33311111133o333233o.
+.oo...o3o3o23o3333333111111111oo3233oo.
+.....o33ooooo333331131111111113o333ooo.
+.....o33o33333331111311111111231o3333oo
+.....o2o2233333111113o11111123311oooo..
+.....o2o2123321111113o3111212o22b11o...
+.....o3o11111111111113o3113331112ooo...
+......oo311111111111133o333222b21o.....
+.......o3111111111111133oo11112oo......
+........o2111111111111333ooooooT.......
+........o3111111111113333333333o.......
+.........o33111111133332113333o........
+..........o333333333332111133o.........
+...........oo33333333o211333o..........
+............ooo333333o33333o...........
+.............ooooooooooooooo...........
+..........oooobbboo....o33o............
+.........oo2bb23obo..oo323o............
+.........oooo1booo..obb2bbbo...........
+............ooo.....oo1bo1oo...........
+......................Po.oo............
diff --git a/parts_pl_src/body/pl_dodo_b.txt b/parts_pl_src/body/pl_dodo_b.txt
new file mode 100644
index 0000000..ad46c05
--- /dev/null
+++ b/parts_pl_src/body/pl_dodo_b.txt
@@ -0,0 +1,64 @@
+# pl_dodo_b: from pixellab_src/pl_dodo_b/base.png (variant of pl_dodo) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 31)
+# head_top at (29, 3)
+# back at (41, 36)
+# tail at (40, 49)
+...........ooo^oo..................
+.........oo112223oo................
+........o1111112222oo..............
+......oo2111111122233o.............
+....oo1221112111112223o............
+....oo1321121113313223o............
+....oo332231123oo332223o...........
+....ooo333312oo1oo22223o...........
+....oooccc33ooww1322223o...........
+....ooo322ccoo3ww322223o...........
+....o322123coo2wo322223o...........
+...oa2112o23cooo2112233o...........
+.oaa1a2223223o321111333o...........
+oaa1aaa2222223oo211133o............
+oa1aacc3333333obo11133o............
+oaacccoooooooobb33223o.............
+oaccooo3oocco33o32333o.............
+oaco..o3oaao2bo333333o.............
+.oo....ooao23oooo3333o.............
+.oo....o3o23oo3333333o.............
+........oooo.o3333333o.............
+.............o3333233o.............
+.............o322223o..............
+.............o211223o..............
+.............o111223o..............
+............o2111223o..............
+............o1111223o..............
+............o1111223o..............
+...........o2111A223o........oo....
+...........o21111223o.....ooo22o...
+..........o211112223o....o23o22o...
+..........o211112233ooo..o23322o...
+.........o3111111123223ooo33322ooo.
+........o3111111111222223oB3322223o
+.......o311111111122211113o3333233o
+......o33111111111221111123o33233o.
+......o32111111112231111123o3333o..
+.....o1321111111123321112223o3333o.
+.....o1ocaaaaaaabbco221121332o333oo
+.....o2ocaaaaaaabbco322221331oooo..
+.....o3occcaaacccccco322333112oo...
+......o33211111122233o33321321o....
+.......o32211112222233o33221oo.....
+.......o322222222223333oooooo......
+........o332222223332223333o.......
+.........o3333333333222233o........
+..........oo333333o311223T.........
+..........o3ooo333o31122o..........
+..........o233ooooo33223o..........
+...........o333o...o333o...........
+............o33o....o33o...........
+............obbo....o33o...........
+............o2bo....o33o...........
+............o2bo....o23o...........
+.........ooo32bo....o22o...........
+........o13b2bbo...o323bo..........
+........ooo1booo..oo1bo1o..........
+...........oo.......Po.o...........
diff --git a/parts_pl_src/body/pl_dodo_c.txt b/parts_pl_src/body/pl_dodo_c.txt
new file mode 100644
index 0000000..1429c17
--- /dev/null
+++ b/parts_pl_src/body/pl_dodo_c.txt
@@ -0,0 +1,52 @@
+# pl_dodo_c: from pixellab_src/pl_dodo_c/base.png (variant of pl_dodo) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 38)
+# head_top at (29, 15)
+# back at (41, 36)
+# tail at (47, 49)
+................o^oo......................
+.............ooo113o......................
+..........ooo111123oooo...................
+.........o1121111221111oo.................
+........o3111111111113333oo...............
+.......oo1111111111133333o................
+......o1111111111111111113oo..............
+.....o1121111111111111111113o.............
+....o31111111211111111113333o.............
+....o3311212211113313111133oo.............
+....o3oo12331113ooo3311111133o............
+....oo1o3333313o11oo311111113o............
+....oow3ccc33oo2ww1o3111113333o...........
+....oooo322cao3w3wwo3111113333o...........
+....oo322122cc2o2w1o311111333oo...........
+...oo32113o23co211o3111111133oo...........
+..oaa11233322ccooo211111313333oo..........
+.oaa1aa22222223o211111113333333o...ooo....
+oca1aaaa22222223oo111112333oo333ooo223o...
+oa1aaacc333333boobo11123333333333oo223o...
+oaaacccooooooooobb331323oo3333333o3223o...
+oacccoo3oooccco3bo33333o33333B3333o22oooo.
+oacco33o3ocaco33o3333oo33111133333o23o223o
+occo1133ocaco23o33Aoo33311111113333o33233o
+.oo11332oboo23oooo33331111111111333o3233o.
+.oo13323o3o23o3333311112111111133333o33oo.
+.o113a133oooo33333131112111111133o33o3ooo.
+o113321133333333311331131111131133o3o333oo
+o313311111333331111131132111113132o3oooo..
+o33331aa111331111aa11311o1121133312ooo....
+o1oo11aa11131111aaa11311o3133132212oo.....
+.o2o11a1111111111aa111313o313331211oo.....
+.o2o31111aa111111111113133o32221121o......
+..oo31111aa111aa11111111333oo111121o......
+...o31aa111111aa111aa13133333ooooooT......
+....o3aa11111111113cc3333113333333o.......
+....o3aa111aa11131331333111133333o........
+.....o33331cc1y333333331111133o3o.........
+......o33333333bb3333331111333oo..........
+.......oo3bb333bb3333o33111333o...........
+.........ooo333333333o3333333o............
+.........oooooooooooooooooooo.............
+.........oo2bb23obo..oo333o...............
+.........oooo1booo..obb2bbbo..............
+............ooo.....oo1bo1oo..............
+......................Po.oo...............
diff --git a/parts_pl_src/body/pl_dodo_d.txt b/parts_pl_src/body/pl_dodo_d.txt
new file mode 100644
index 0000000..9867080
--- /dev/null
+++ b/parts_pl_src/body/pl_dodo_d.txt
@@ -0,0 +1,57 @@
+# pl_dodo_d: from pixellab_src/pl_dodo_d/base.png (variant of pl_dodo) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 34)
+# head_top at (29, 10)
+# back at (41, 36)
+# tail at (43, 49)
+............ooooo^oooo.................
+.........ooo2222222333oo...............
+.......oo221111111122233oo.............
+......o2111111111111112333o............
+.....o211111111111111122233o...........
+....o21111111111111111112333o..........
+...o2111111111111111111122233o.........
+..o222111111111111111111222333o........
+..o221111111111111111122222233o........
+.o2222112121112111211222222233o........
+.o22222121211121112122222222233o.......
+.o22222221211221122222222222233o.......
+o222222222222222222222222222233o.......
+o2222222222222222222222222222233o......
+o2223322222222222233322222222233o......
+o223ooo2222222223oooo32222222333o......
+o223o1o222222222o1oo1o2222222333o......
+o223ooo223332222oooowo2222222333o......
+o223ooo332113222ooocwo2222222333o......
+o222oooo21112322ooo1o3222222233o.......
+o3222232111o1332233332222222333o.......
+.o222o2111121133222222222222333o.......
+.o222o211111133o222222222223333o.......
+..o22oo333333aao22222222223333o.ooo....
+..o322ooo3333o3222A2222223333ooo223o...
+...o22223ooo3322222222233333o33o223o...
+....o3322333222222222233333ooB33223o...
+.....o33322222222232333333ooo33322oooo.
+......o33333333333333333oo3oo33323o223o
+.......ooo333333333333oo33333o33333233o
+.......o33oooooooooooo32222233o333233o.
+......o3o333333333333222112223oo3233oo.
+.....o33o2223333333332211222223o333ooo.
+.....o33o22222222222322122222231o3333oo
+.....o3o2212222222223o22222223311oooo..
+.....o3o2112222222223o3222222o22b11o...
+.....o3o21211221122223o3223331112ooo...
+......oo222112212122223o333222b21o.....
+.......o3322112122222223oo11112oo......
+........o3222122122122333ooooooT.......
+........o3322222222223332333333o.......
+.........o33322232232322222333o........
+..........o333233333332222233o.........
+...........oo33333333o222333o..........
+............ooo333333o33333o...........
+.............ooooooooooooooo...........
+..........oooobbboo....o33o............
+.........oo1bb13obo..oo312o............
+.........oooo1booo..obb1bbbo...........
+............ooo.....oo1bo1oo...........
+......................Po.oo............
diff --git a/parts_pl_src/body/pl_doll.txt b/parts_pl_src/body/pl_doll.txt
new file mode 100644
index 0000000..955ca84
--- /dev/null
+++ b/parts_pl_src/body/pl_doll.txt
@@ -0,0 +1,40 @@
+# pl_doll: from pixellab_src/pl_doll/base.png (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 43)
+# head_top at (32, 27) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (45, 49) (from part/probe)
+.........oooooooooo.........
+.......oo22222^22ccoo.......
+......o221112222caaaco......
+.....o22111122222ccaaco.....
+.....o2133122222222ccco.....
+....o2231132222223322cco....
+....o2311b1o22223113233o....
+....o2o1bc1o22231131o23o....
+....o231111o222o1331o23o....
+....o22o11o22223o11o323o....
+....o2223o2222223oo3233o....
+....o322222222222222333o....
+....o32c3b2222b22b3c333o....
+.....o33obooooboobo333o.....
+......o3322222b223333o......
+.......o33333B333333o.......
+.......ooo3333333oooo.......
+......o3o3ooooAooo33oo......
+.....o33o33333333o3333o.....
+....o23o222333333o33222o....
+...o223o2222222333o32222o...
+..o222o2cacac222333o32222o..
+.ob223ocaaaaacc22333o322bco.
+o2ob33oaaaaaaa222333o3aoc22T
+o22cococaaaaaaa23333oc32222o
+o2223oocccaaaa333333oo32222o
+o3233o.occccccc333oooo33223o
+oo33oo.ooocccc33oo33oooo33oo
+.oooo..o33oooooo3333o..oooo.
+.......o2333o..o3223o.......
+.......o2233o..o2223o.......
+.......o2223o..o2223o.......
+.......o2233o..o2223o.......
+.......ooooP....ooooo.......
diff --git a/parts_pl_src/body/pl_doll_b.txt b/parts_pl_src/body/pl_doll_b.txt
new file mode 100644
index 0000000..90e61eb
--- /dev/null
+++ b/parts_pl_src/body/pl_doll_b.txt
@@ -0,0 +1,53 @@
+# pl_doll_b: from pixellab_src/pl_doll_b/base.png (variant of pl_doll) (pixellab_library.py extract)
+# pivot at (34, 59)
+# aura at (32, 36)
+# head_top at (32, 13)
+# back at (31, 41)
+# tail at (47, 49)
+...........ooooo^oooo.............
+.........oo2222222222ooo..........
+.......oo2222222222222cco.........
+......o222112222222222caco........
+.....o221111222222222caacco.......
+....o2211111222222222caaacco......
+...o221111122222222222ccaacco.....
+..o221111122222222222222ccccco....
+.o2221112222222222222222222cco....
+.o2222222222222222222222222233o...
+o22222223332222222222222222233o...
+o2222223111o2222222233322222333o..
+o22222o111b1o2222223111o2222233o..
+o22222o11bb1o22222o11o11o222233o..
+o22222o11bb1o22222o13o11o222233o..
+o22222o11111o22222o1oo1o3222233o..
+o222223o111o2222223o11o33222233o..
+o2222223ooo322222223oo332222333o..
+o322222233322222222233222222333o..
+o3222222222222222222222o2222333o..
+.o322222o22b2222b222b2o2222333o...
+.o3222222ooboooobooobo22222333o...
+.o332222222b2222b222b222223333o...
+..o3322222222222A222222223333o....
+...o332222222222222222223333o.ooo.
+....o3332222222222222233333o.2112.
+.....o33333222222223333333o.2.112o
+......oo3333333333333333oooo.1211o
+.....o3ooo33333B333333oo333o..212o
+....o22333oooooooooooo333333o.222o
+....o22o223333333333333333223o.oo.
+...o222o222222222222223332222oo...
+...o22o2222aaa22bbb22233o32222o...
+..o222o222baaaaaaaac2223o32222o...
+..ob23o222baaaaaaaac22233o322bco..
+.o2ccco222baaaaaaacc22233o32bb2o..
+.o22c3o222baaaaaaccc22233o3b222T..
+.o2223o2222caaaaccc222233o32222o..
+.o2223o32222caaccc2222333o32222o..
+.o3233oo32222cccc22223333o33222o..
+.oo33ooo333222cc22233333oooo22oo..
+..oooo.o3333333333333333o..oooo...
+.......o33ooo333333ooo33o.........
+........o3333oooooo33333o.........
+........o22333o...o33223o.........
+........o22223o...o22223o.........
+........ooooooo...Poooooo.........
diff --git a/parts_pl_src/body/pl_doll_c.txt b/parts_pl_src/body/pl_doll_c.txt
new file mode 100644
index 0000000..b36deb4
--- /dev/null
+++ b/parts_pl_src/body/pl_doll_c.txt
@@ -0,0 +1,59 @@
+# pl_doll_c: from pixellab_src/pl_doll_c/base.png (variant of pl_doll) (pixellab_library.py extract)
+# pivot at (30, 59)
+# aura at (31, 34)
+# head_top at (32, 7)
+# back at (31, 41)
+# tail at (45, 49)
+.........ooooo^oooo.........
+.......oo22222222cboo.......
+......o221112222caaaco......
+.....o22111122222ccaabo.....
+.....o21oooo2222222cbbo.....
+....o22o1111o22222223cco....
+....o2o1o11o1o222222233o....
+....o2o1cco31o222222223o....
+....o2o11co11o222222223o....
+....o2o1cc1c1o222222233o....
+....o22o1111o3222222233o....
+....oc22oooo322222222c3o....
+....oaa22222222222c2obbo....
+.....oaa22222222222cbbo.....
+.....obbc222222223obbbo.....
+......obc33333333c3bbo......
+.......oo333333333coo.......
+.........oooooooooo.........
+........oooo3333oooo........
+.......o333333333333o.......
+......o22223c33333333o......
+......o222co32222aa33o......
+.....o222c3cc222aaaa33o.....
+.....o2o33c22222caaao3o.....
+....o22oc32222222cbco33o....
+....o23o3c2222222223o33o....
+...o22oo322222222223oo22o...
+...o22oo32222A2222cboo22o...
+...o23oo322222222aaboo32o...
+..o22o.o3c222222cabbo.o22o..
+..o22o.occ22222caabbo.o22o..
+..o23o.oaaac2222cabbo.o32o..
+.o223o.oaaaa22222cbbo.o322o.
+.o233o.oaaaa2222233co.o322o.
+.o23o..obaabbB333333o..o32o.
+.o23o..obbbb33333333o..o32o.
+oa23o..o3bc3oooo3333o..o322o
+oac3o..o3333o..o3332o..o322o
+oc23o..o2233o..o3222o..o32ao
+oa23o..o2223o..o3222o..o32ao
+oa23o..oa223o..o3222o..o322o
+oc23o..oaa23o..o3222o..o32ao
+o222o..oaa23o..o3223o..o22cT
+o2223o.oac23o..o323ao.o3222o
+o2223o.oc223o..o32cao.o3222o
+o2233o.o2223o..o32aao.o3322o
+o323oo.o3223o..o3caao.oo323o
+.o33o..oc2c3o..o32aao..o33o.
+..oo...oac23o..o32cao...oo..
+.......obbc3o..o322co.......
+.......ob223o..o3222o.......
+.......o2223o..o3222o.......
+.......oooooP..oooooo.......
diff --git a/parts_pl_src/body/pl_doll_d.txt b/parts_pl_src/body/pl_doll_d.txt
new file mode 100644
index 0000000..18dda98
--- /dev/null
+++ b/parts_pl_src/body/pl_doll_d.txt
@@ -0,0 +1,60 @@
+# pl_doll_d: from pixellab_src/pl_doll_d/base.png (variant of pl_doll) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 30)
+# head_top at (32, 6)
+# back at (31, 41)
+# tail at (45, 49)
+..............oooooo^ooooo..............
+...........ooo222222222222ooo...........
+.........oo222222222222222cbboo.........
+........o22222222222222222caaaboo.......
+......oo22211122222222222caaaaabbo......
+.....o2222111112222222222caaaaaabbo.....
+....o22211111112222222222caaaaaaabco....
+....o22211111122222222222caaaaaaaccco...
+...o222111111222222222222ccaaaaacccbo...
+..o22221111122222222222222caaaacccabbo..
+..o222221122222222222222222caacccaabbo..
+.o2222222222222222222222222cccccaaaabbo.
+.o22222222222222222222222222cccaaaaabbo.
+o22222222222222222222222222aaccaaaaaabbo
+o2222222oooooo22222222222cacc2cccaaaabbo
+o222222oo1111oo2222222222cc22222caaabbbo
+o22222o11111111o222222222c222222caabbbbo
+o2222o1111cc111oo222222222222222cacccbco
+o2222o1111ccc111o222222222222222cc233cco
+o2222o11ccccc111o222222222ooo2222223333o
+o2222o11ccccc111o22222222o111o222223333o
+o2222o11ccccc111o22222222o1oo1o22223333o
+o3222o111cccc111o2222222o11oo1o22223333o
+o3222oo11111111o22222222o1ooo1o22223333o
+o33222oo111111oo2222A222o1ooo1o22233333o
+o332222o11111oo3222222223o111o222233333o
+.o332222oooooo322222222222ooo322233333o.
+.o332222222222222222222222222222333333o.
+..o33222222222222222222222222223333333o.
+..o3332aa222aa222222aa2222aa22cc33333o..
+...o333aao22aa222222aa2222aa2occ3333o...
+....o33332ooaaooooooaaooooaao3333333o...
+.....o333332aa222222aa2222aa333333oo....
+......o33333aa222222aa2233aa33333oo.....
+.......oo3333333333333333333333oo.......
+.........oo33333333B333333333oo.........
+...........oo33333333333333oo...........
+............oooooooooooooooo............
+...........o33o333333333o333o...........
+..........o23o2223333333o3332o..........
+.........o223o22222223333o3222o.........
+........o222o2cacac2223333o2222o........
+.......oa223ocaaaaacc22333o322aco.......
+......o2oa33oaaaaaaa222333o3aoc22T......
+......o22cocobaaaaaaa22333oc32222o......
+......o2223oobbbaaaa333333oo32222o......
+......o3233o.obbbbbbb333oooo33223o......
+......oo33oo.ooobbbc33oo33oooo33oo......
+.......oooo..o33oooooo3333o..oooo.......
+.............o2333o..o3223o.............
+.............o2233o..o2223o.............
+.............o2223o..o2223o.............
+.............o2233o..o2223o.............
+.............ooooP....ooooo.............
diff --git a/parts_pl_src/body/pl_dormouse.txt b/parts_pl_src/body/pl_dormouse.txt
new file mode 100644
index 0000000..73070f9
--- /dev/null
+++ b/parts_pl_src/body/pl_dormouse.txt
@@ -0,0 +1,47 @@
+# pl_dormouse: from pixellab_src/pl_dormouse/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 41)
+# head_top at (32, 28) (from part/probe)
+# back at (31, 44) (from part/probe)
+# tail at (43, 52) (from part/probe)
+............ooo.................
+...........ozzboo...............
+...........occcbco..............
+............ooccbo..............
+...........ooooccoooo...........
+.........oobbbcccbbbcoo.........
+........obbbzzczczzbbcco........
+.......occzyzzzczzyzccbco.......
+......ocbzczzzcz^zzczbcbco......
+.....occbczczczzzcczczbcbco.....
+....ocbccbbbcbbbbbbbbccbcbco....
+...occcbcbccbcccccccccbcbccco...
+...occccccoooooooooooccccccco...
+..occccoo3333333333333ooccccco..
+.ooccco33222222222222233oocccoo.
+o2occo33oooo22222223oooo3oocco2o
+o2bco33oaoooo222223ooooao3oocb2o
+o2abo3oawwoooo2222owwoooao3oba2o
+o3abo3oaowoooo2222oowoooao3oba3o
+o33bo3owoooooo2222oooooowo3ob33o
+.o33o3owoooo1o1111oooo1owo3o33o.
+..ooo32owoooo11Aa11oooowo23ooo..
+....o322oooo111oo111oooo223o....
+.....o31111111111111111113o.....
+....oo3ooooo111B1111111223oo....
+..oooccocbbboo211112223cccco....
+occcoooobbcbbbo2222bbcbbcooo....
+.occo333obbccbcoocccbbbco33o....
+..ooo3222ocbbccobocccco2223o....
+....o32211ooccobboccoo11223o....
+....o3321aaaoo2ooco2aaa2233o....
+....o32oobabaaa2ocbobaaoo23o....
+....o322ooco11aaobcbocoo223T....
+....o33221111111aobco112233o....
+.....o332111111111oco11233o.....
+.....o3332a111111111aa2333o.....
+......o3333aaaaaaaaaa3333o......
+.......oo333aaaaaaaa333oo.......
+........oooo33333333oooo........
+.......oabccooooooooccbao.......
+.......ooooP........ooooo.......
diff --git a/parts_pl_src/body/pl_dormouse_b.txt b/parts_pl_src/body/pl_dormouse_b.txt
new file mode 100644
index 0000000..cb6ef86
--- /dev/null
+++ b/parts_pl_src/body/pl_dormouse_b.txt
@@ -0,0 +1,55 @@
+# pl_dormouse_b: from pixellab_src/pl_dormouse_b/base.png (variant of pl_dormouse) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (32, 13)
+# back at (31, 44)
+# tail at (50, 52)
+..................ooo.......................
+.................ozzbo^.....................
+.................occcbco....................
+..................ooccbo....................
+.................ooooccoooo.................
+...............oobbbbccbbbbooo..............
+.............oobbzzzzcczzbzzbbo.............
+...........oobbzzbzzzczzzzzzzbbo............
+..........obbbzzbzzzzzczzzzzzzzcco..........
+.........obbzbzzbzzzzzzczzbzzzzzcco.........
+........ocbzzbzbzbzzzzzzczzbzzbzccco........
+.......occbzbbzbbbczzzzzzzczbzbbzccco.......
+.......occbcbbbbbbcbbbbbbbbbczbbbzccco......
+......occcccbbbccccccccccccccbbbbbccco......
+......occccccccoooooooooooooccccbbccco......
+.....occccccooo3333333333333oooocccccco.....
+.....occccoo33322222222222223333oocccco.....
+.....occoo3332oooo22222222oooo2333oocco.....
+......oo33222oaoooo222223ooooao22233oo......
+.....o333222oawwoooo2222owwoooao222333o.....
+....o3322222oaowoooo2222oowoooao2222233o....
+....o3332222owoooooo2222oooooowo2222233o....
+...o3322bbbbowoooo1o1111oooo1owobbbb2223o...
+...o222ba111abwoooo11aa11oooowobaa11b222o...
+..o222ba1aaaaabooo111oo111ooobaaaa111b222o..
+..o222baaaaaaaab111111111111bbaaaaaa1b222o..
+.o2222baaaaaaaab111111111111bbaaaaaaaab233o.
+..o322bbaaaaaaab111111A11111bbaaaaaaabb22oo.
+.oo2223bbaaaaboooo22111112223obbaaaabb2222o.
+.o22222cbbbabocbbboo32223333ccobbabbbc33223o
+o3222113ccbbcobbcbbbo3333bbcbbcobbbcc322323o
+o32321123ccc3ocbbccbcoocccbbbc33ccc33112333o
+o3332122133333occbbccBboccccoo2233321112233o
+.o33232212232222ooccobbocooo32122311111223o.
+.o33332212232211aaoo3ooco33ba1122311111323o.
+.o3333222222o21aaa3333ocbo3aaa123211211333o.
+.oo3332222223oobab2222obcbobaboo2211222333o.
+..o33332222223333322222obco33332222223233o..
+..o333323222222222222113oco21222222223333o..
+...o333332222222122221111122212222232333o...
+...o333332232222222221111112222222232333T...
+....oo33332232233222221111122322322333oo....
+.....oo3333232233322233222222322323333o.....
+......oo33333323333223322322332333333o......
+.......oo3333333333323323333333333ooo.......
+.........oo33333333333333333333333oo........
+..........oo3333oo33o333o33o333o3o..........
+............occcooooo333ooooccc3o...........
+............ooooo...oPoo...ooooo............
diff --git a/parts_pl_src/body/pl_dormouse_c.txt b/parts_pl_src/body/pl_dormouse_c.txt
new file mode 100644
index 0000000..b4f19fd
--- /dev/null
+++ b/parts_pl_src/body/pl_dormouse_c.txt
@@ -0,0 +1,60 @@
+# pl_dormouse_c: from pixellab_src/pl_dormouse_c/base.png (variant of pl_dormouse) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 28)
+# head_top at (32, 8)
+# back at (30, 44)
+# tail at (35, 52)
+...............oo...................
+..............oybo^.................
+..............occbco................
+..............ooocboo...............
+............oobbcccbboo.............
+...........obbbycycybbco............
+...........ccyyyycyyyccbo...........
+..........obycyycycycybcco..........
+...ooooo.ocbcyccyyycycbcbco.ooooo...
+..o22222occcbcccccccccccccco22222o..
+.o22bb322occcooooooooocccco223bb22o.
+o22baab32occ3333333333oocco23baab22o
+o22aaabb3oo33222222222233oo3bbaaa22o
+o22aaaab3o3oooo222222oooo3o3baaaa22o
+o22aaaabb3oawooo2222owooao33baaaa23o
+o32aaaabb3oawooo2222owooao33baaaa2oo
+.o22aaab33owoooo2222oooowo33baaa23o.
+.oo3aaa333owoooo1111ooo1wo333aaa3o..
+...o3333o32oooo11aa11oooo23o3333o...
+....oooo.o3111111111111113o.oooo....
+..........o21111111111112o..........
+..........oooooooA222oooo...........
+........occccobbbooobbbo............
+.........occooobccbcccoo............
+..........ooo33oooccoo3o............
+...........occ32aaocb2oco...........
+...........o3o2a11acboo3o...........
+..........o23321111obooo2o..........
+..........obo3111111o13obo..........
+.........ooco3111111113ocoo.........
+.........o11o32a1111a23o11o.........
+.........oaaoo32111a23ooaao.........
+.........oabo.o322223o.obao.........
+.........obo..o3oooo3o..obo.........
+..........o...o3o..o3o...o..........
+..............obo..oco..............
+..............oco..oco..............
+..............o1B..o1o..............
+..............obo..obo..............
+..............obo..obo..............
+..............o1o..o1o..............
+..............o2o..o2o..............
+..............oco..oco..............
+..............oco..oco..............
+..............o1o..o1o..............
+..............o1o..o1T..............
+..............obo..obo..............
+..............obo..obo..............
+..............o1o..o1o..............
+..............o2o..o2o..............
+..............o2o..o2o..............
+.............oabo..obao.............
+............oaabo..obaao............
+............ooooP..ooooo............
diff --git a/parts_pl_src/body/pl_dormouse_d.txt b/parts_pl_src/body/pl_dormouse_d.txt
new file mode 100644
index 0000000..b96bc23
--- /dev/null
+++ b/parts_pl_src/body/pl_dormouse_d.txt
@@ -0,0 +1,57 @@
+# pl_dormouse_d: from pixellab_src/pl_dormouse_d/base.png (variant of pl_dormouse) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 35)
+# head_top at (32, 11)
+# back at (31, 44)
+# tail at (45, 52)
+................oooo......................
+...............ozzzbo^....................
+...............occccbco...................
+................oooccbo...................
+..................occbo...................
+...............oooooccooooo...............
+.............oobbbbcccbbbbcoo.............
+............obbbbzzczczzbbbcco............
+..ooooo....occzzzzzzczzzzzbcbco....ooooo..
+.o22222o..ocbzczzzzzczzzzbzbcbco..o22222o.
+o3233322oocbbzczzzzzzczzzczzbbbcoo3233323o
+o32bbb33occbzczczzzzzzccczczbccbbo33bbb23o
+o3aaabbocbcccbbbcbbbbbbccbcbcbcbbcobbaaa3o
+o3aaabocccbbcbccccccccccccbcbccbcccobaaa3o
+o3aaabocccccccooooooooooooocccccbccobaaa3o
+o32aaocccccoooooooooooooooooooccccccoaa23o
+o332aoccccooo333333333333333oo3cccccob23o.
+.o33occco3333322222222222222333ooccco333o.
+..ooocco3322222222222222222222233oocoooo..
+...ooco332ooooo22222222222ooooo223ocoo....
+....oo332oaooooo222222222oooooao223oo.....
+....o332oaooowwoo2222222owwooooao233o.....
+....o322oaooowwoo2222222owwooooao2233o....
+....o322oaooooooo2222222oooooooao2233o....
+...o3322owooooooo2222222ooooooowo2223o....
+...o3322owooooo2o211A112ooooo2owo22233o...
+...o3322owo2ooo2o1111111ooooo2owo22233o...
+...o33222ow2222o111aaa111o2222wo222233o...
+...o332222ooooo11111a11111ooooo2222233o...
+...o3322211111111111o11111111111122233o...
+....o32211111111111o1o111111111112233o....
+....o33211111111111111111111111111333o....
+.....o332111111111111111111111111333o.....
+......o332111111111111111111111123oo......
+.......o333221111111B111111112233oo.......
+........ooooo3322222222222233oooo.........
+.........o333oooooooooooooooo333o.........
+........o33222333aaaaaaaa33322233o........
+........o332211oaaaaaaaaaao112233o........
+.......o333321aao11111111oaa123333o.......
+.......o333332aao11111111oaa23o333o.......
+.......o3323oobao11111111oaboo3233o.......
+.......o33222ooo1111111111ooo22233T.......
+........o33222a111111111111a22223o........
+........o332221111111111111122233o........
+.........o33222a1111111111a22233o.........
+.........o333333aaaaaaaaa2333333o.........
+..........o33333333333333333333o..........
+...........o333oooooooooooo333o...........
+..........oaabbo..........obbbao..........
+..........ooooP............ooooo..........
diff --git a/parts_pl_src/body/pl_draco.txt b/parts_pl_src/body/pl_draco.txt
new file mode 100644
index 0000000..7054d42
--- /dev/null
+++ b/parts_pl_src/body/pl_draco.txt
@@ -0,0 +1,49 @@
+# pl_draco: from pixellab_src/pl_draco/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 38)
+# head_top at (25, 20) (from part/probe)
+# back at (36, 34) (from part/probe)
+# tail at (45, 50)
+...........oooo.......................
+........ooo2133oooo...................
+.......o1223^121133oo.................
+.....oo1131133111133co................
+....212111211bo1211333o...............
+...o13111211o2b3133133o...............
+...o2111311ozo211133133o..............
+...o111121o11z2111o3313o..............
+..o1121122ooyz21o1o33133o........booo.
+..3111113ooo1o1211o33323o.coo...obboo.
+.o131113311111o11oooo3ooo111o...bb....
+.211113111111occcbao3o3311oo...cbo....
+o111121112oooccba1bo33oooo.....o3o....
+o11o111obocoocbbbbo33333o......o3o....
+o1111ooooococba1boo3333o.......o3o....
+.oooocooooccoaba1o33323o........o3o...
+....ocococbcbbaooo3312cB........o33o..
+..ooccccobbbabbo223323o..........o2o..
+oobbbbbcbbabaooo22313oo..........o23o.
+obabbabbaba1oo222333co...........o31o.
+.ocbabbaabaoo.o113A3o...........oo333o
+..oa1bb1aboo.o111313o.oobbo...ooco133o
+...oobbooo..o111213o.oocbbbocoabo1323o
+....oooo....o111233ooooooobocboo1323o.
+...........211122233o3331332oo322133o.
+...........2111113233311313312313331o.
+...........o11113111331323333333331o..
+...........o1113111112333321133311o...
+...........oo111332111o333o112o11o....
+...........ooo1133o1123o21o122ooo.....
+..........o33oo111o3323o11o112oo......
+.........ob33o.ooooo3123o.o313c3o.....
+.........o33o......oo323o..o3332T.....
+........o333o...o3oooo12o...ooo3o.....
+........o23o....ooo3oo22o....oo33.....
+.....33o2223o....o3oo313o.ooo3323.....
+.....oo211222o......o13o..ooo13o1o....
+.....21o23ooo......o322o...o23oo1o....
+.....oo.o........oo1123o....oo..o.....
+................31221111o.............
+................ooo32oo12o............
+..................o1o..oo.............
+...................Po.................
diff --git a/parts_pl_src/body/pl_draco_b.txt b/parts_pl_src/body/pl_draco_b.txt
new file mode 100644
index 0000000..cdc4b3a
--- /dev/null
+++ b/parts_pl_src/body/pl_draco_b.txt
@@ -0,0 +1,48 @@
+# pl_draco_b: from pixellab_src/pl_draco_b/base.png (variant of pl_draco) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (31, 39)
+# head_top at (25, 18)
+# back at (35, 34)
+# tail at (47, 50)
+...........o^oooo.....................
+........ooo111111oo...................
+.......o11111122222o..................
+.....oo2111112223333o.................
+....o1132112211122333o................
+...o331122221333222333o...............
+...ooo3222222ooo322333o...............
+...oa3o22222oao3o33333o...............
+...o2oo22222oooxo333333o..........ooo.
+..o32o111222o33x3222333o........o2boo.
+.oa23111112223332aa2333o........o3o...
+.oa22o11o22222222aaa233o.......o2oo...
+o2222222222222222222233o.......obo....
+o2222222222222222222333o.......o2o....
+o222222222222222222233o........o23o...
+.o22222222222222222333o.........o2o...
+.o3222222222222223333oB.........o23o..
+..o32222222222333333occoooo......o2o..
+...o33333333333333ooccb2bbboo....o23o.
+....o3333333333ooo33bbb2bbb2co...o23o.
+.....ooooooooo3333322bb22bb2bco..ob23o
+.......o2222222332A222b22bb2bc3o.o223o
+.......o22111112222222222bc2bc3oc2223o
+.......o11111112222222222b22c333o2233o
+.......o111111122222223222222333o333o.
+.......o1111111222o21233222233333o33o.
+......oo211111122o21112o222311233ooo..
+......o3o11111113o21112o323211223oo...
+......o1o21111113o221b23o2o211223o....
+......o13o1111112o222223o3o22222bo....
+.......ooo3211122o222223o3o222223o....
+.......oooo3222222o22223o3o222233o....
+........ooooo22222o32223o2oo222333T...
+.........oooooo322o32223oo.oo33333o...
+.......oooooooooooo32223oo..ooo333o...
+......o3o33oooo...o32223o..oo33222o...
+.....o3o33ooooo...o22223o.oo322333o...
+.....ooo13oooo...o322223o.o1o1o113o...
+........oo.....oo3322323o..ooooooo....
+...............o13o23322o.............
+...............ooo12oo12o.............
+..................Po..oo..............
diff --git a/parts_pl_src/body/pl_draco_c.txt b/parts_pl_src/body/pl_draco_c.txt
new file mode 100644
index 0000000..8619024
--- /dev/null
+++ b/parts_pl_src/body/pl_draco_c.txt
@@ -0,0 +1,51 @@
+# pl_draco_c: from pixellab_src/pl_draco_c/base.png (variant of pl_draco) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 37)
+# head_top at (25, 17)
+# back at (36, 34)
+# tail at (45, 50)
+.............oo..oo...................
+.........oo.^1o.o1o...................
+.........o3o13oo13o.oo................
+........o132332333oo1o................
+.......o22b222b222233o................
+.....oo2b22233222b223ooo..............
+....o12222311113222233b1o.............
+...o11222311333322222233o.............
+...o22213112ooo32233b23o..............
+...o3222322o1z2222o3b23oo.............
+...ooo223ooo1z21o1o33333bo........ooo.
+..o121123ooo122211o33333co......oo3oo.
+.o131123322222o11ooo333oo.......o3o...
+.211123222222occcbao3b3oo......o2o....
+o111122222oooccba1bo333obo.....o3o....
+o11o222obocoocbbbbo3333oco.....o3o....
+o2222ooooococba1boo33b3ooo.....o3o....
+.oooocooooccoaba1o333boo........o3o...
+....ocococbcbbaooo3333oBo.......o33o..
+..ooccccobbbabbo2233b3oco........o2o..
+oobbbbbcbbabaooo22333o...........o23o.
+obabbabbaba1oo2223A3oco..........o32o.
+.ocbabbaabaoo.o113b3obo..........o333o
+..oa1bb1aboo.o211313o....oo......o133o
+...oobbooo..o211213o..ooobo.ooo.o1323o
+....oooo....o111233ooo33o3cooboo2323o.
+...........221122233o3331332oo322133o.
+...........2111123233321313322313332o.
+...........o11113212332323333333332o..
+...........o2113222222333321133322o...
+...........oo111332212o333o112o22o....
+...........ooo1133o2123o22o122ooo.....
+..........o33oo222o3323o22o122oo......
+.........ob33o.ooooo3223o.o313c3o.....
+.........o33o......oo323o..o3332T.....
+........o333o...o3oooo22o...ooo3o.....
+........o23o....ooo3oo22o....oo33.....
+.....33o2223o....o3oo313o.ooo3323.....
+.....oo212222o......o23o..ooo23o2o....
+.....21o23ooo......o322o...o23oo1o....
+.....oo.o........oo2223o....oo..o.....
+................32221222o.............
+................ooo32oo12o............
+..................o2o..oo.............
+...................Po.................
diff --git a/parts_pl_src/body/pl_draco_d.txt b/parts_pl_src/body/pl_draco_d.txt
new file mode 100644
index 0000000..5587db5
--- /dev/null
+++ b/parts_pl_src/body/pl_draco_d.txt
@@ -0,0 +1,54 @@
+# pl_draco_d: from pixellab_src/pl_draco_d/base.png (variant of pl_draco) (pixellab_library.py extract)
+# pivot at (32, 56)
+# aura at (32, 32)
+# head_top at (25, 9)
+# back at (36, 34)
+# tail at (49, 50)
+.............^oooooooooooo................
+...........oo2213332111333oo..............
+.........oo21223333211133322oo............
+........o212111333112222212233oo..........
+......oo222221133311222221223322o.........
+.....oo33222212222112222333333223o........
+....o11113222122221222311111112323o.......
+...o1111113222121122231111111122333o......
+..o222111113222211223111112222222333o.....
+..o233221113221122231112333333322233o.....
+.o33ooo32113221122231123ooooooo322333o....
+.ooooooo321322222222133ooooooooo32233o....
+.ooo11ooo2222222222223o111oooocco2232o....
+oocc11oooo22222222222oo111oooocc1o233o....
+oocc11oooo2222222222ooc111oooocc1o2333o...
+ooccoooooo2222222222oocooooooozz1o2323o...
+oobboooooo2222222222oocooooooozz1o2323o...
+oobbooooco2222222222occooooooozz1o2333o...
+ooybooooco2222222222occoooooobyy1o2333o...
+ooybboobbo2222222222ocbbbooob1yy122333o...
+o2oyybbbb221111111222obbbbbbbyy1o22333o...
+o22oyyybo2111111111122cbyyyyyy1o222333o...
+oaa2oooo111111111111112oyyyyybo1112333o...
+o1aa1111111o111o1111A112ooooo22aaa133o....
+o11111111111111111111111111111aaa1133o....
+.o1111111111111111111111B111111111233o....
+.o3111111111111111111111111111111123o.....
+..o311111111111111111111111111111133o.....
+...o3111111111111111111111111112333o......
+....oo2111111111111111111111122333o....oo.
+......o2221111111111111111122223oo.....oco
+.......ooo2222222222222222233ooo......ooco
+..........oo33333333333333oooobo......ob3o
+............obbbcbbbbbc333332333o....obb3o
+............obaabaaabbc3333333233oo.obb23o
+............o3caaaaacc32222332333obobb223o
+...........o333caacc22222233333222o323133o
+...........o2332cc2221322223332222o31333o.
+..........o323311221113222233322113o2333o.
+..........o22331111111o2222o2322113o332o..
+..........o21333111112o2122o2322223o22o...
+..........o2223o322222o2112o2o32223ooT....
+..........o2223ooo322o22223ooo33333o......
+........oo22223o33oooo22223ooo33333o......
+.......o1233233o33oooo32223oo323323o......
+.......o2231333ooooo3331311oo123133o......
+........ooooooo....o3313313oooooooo.......
+....................Pooo.oo...............
diff --git a/parts_pl_src/body/pl_dracobeetle.txt b/parts_pl_src/body/pl_dracobeetle.txt
new file mode 100644
index 0000000..f952651
--- /dev/null
+++ b/parts_pl_src/body/pl_dracobeetle.txt
@@ -0,0 +1,43 @@
+# pl_dracobeetle: from pixellab_src/pl_dracobeetle/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 40)
+# head_top at (30, 28) (from part/probe)
+# back at (38, 30) (from part/probe)
+# tail at (52, 51)
+..................ooooooooo...............
+...............ooo322o33323ooo............
+.............ooc3211132223333ooo..........
+...........oo33o221222o2233oo33oo.........
+..........o2o3o1o22^222o3oobbooooo........
+.........o33c3111o22223obb3333333oo.......
+........o32oo21111o33oo2223B31o333o.......
+........oo3o2211112oobb221o3311o333o......
+.......ocoobb221122b2221111o333o33o3o.....
+.......oo33oooob22o3221o333o33booocoo.....
+......o33211133ooco21111333oooo333333o....
+.....o32111111223ob21222ooob333333oooo....
+....o2o2oo1111oo23oc222bb33o322o33oooo....
+....o1o311o2o311o3oocoo3o331o33o33ooooo...
+....oo21122o31133ooooo331o32o33ooboooco...
+....o33133o2113oooooob333o33o3oo33o3ooo...
+...oo2111o1223oooo3ooA333o33ooc333o3co....
+..oo2111113o3oo1co33obcococo333o33oco.....
+.oa31111123ooo21o323ooco333o333cbooo......
+ooo111112333ob11323ooooc333bccooooo333o...
+o331111o333333oo23oaabobbbbooooooo3211oo..
+.oo21131oo3222333o11abooooooooo3o3333o2o..
+..o3223o333333ooo11aao333o3333ooo33oo33o..
+...o333333oooob1b1aaooooo332213oooo.o3co..
+....oooooo1aaaooobaooo3oo3333213...o33ooo.
+.....o11aaaooo33aa3ooo3ooo33oo32o..o3oo3ao
+...oooooooo..ooo33oo3323..oo.o23o..oooaoao
+..o233ooo.......oo..o3o3o...o33co....oaooT
+.o1oo33o............o11oo...o33ooo....oo..
+.ooooaoo............o1o3o...oooo3ao.......
+....oo.............o213o.....oo3oao.......
+.................oo313oo......oaooo.......
+................o12oooo........oo.........
+...............o1oo33o....................
+...............oooo1oo....................
+..................oao.....................
+..................oP......................
diff --git a/parts_pl_src/body/pl_dracobeetle_b.txt b/parts_pl_src/body/pl_dracobeetle_b.txt
new file mode 100644
index 0000000..d72b634
--- /dev/null
+++ b/parts_pl_src/body/pl_dracobeetle_b.txt
@@ -0,0 +1,53 @@
+# pl_dracobeetle_b: from pixellab_src/pl_dracobeetle_b/base.png (variant of pl_dracobeetle) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 35)
+# head_top at (30, 14)
+# back at (38, 30)
+# tail at (52, 51)
+.................oo^ooooooo................
+..............ooo111bbbbc33ooo.............
+............oo11baaaaabbbb3333oo...........
+...........oo11baaaaaabbbbbc3333o..........
+.........oo1111baaaabbbbbbbbc333oo.........
+........o2o1111bbbbbbbbbbbbbc2333ooo.......
+.......oooo11111bbbbbbbbbbbc22333o32o......
+......o111oo111111bbbbbbcc2222333o322o.....
+.....o11111ooo1111111111122233333ooo2co....
+....o111111ooooooo1111ooooo33333ooooooco...
+...o311111oo11111oooooooooooooooo12333oo...
+...oab1111o1111112oooo111112ooo21122333oo..
+..oaabb11o21111112o22111111133o212223333o..
+..oabbb22o11111112o21111111133oo12223cc33o.
+.obabbb2oo1111111oo11111bbb1333o1222abbc3o.
+.obbbc22oo3211112oo1111bbbbc333o1222abbcc3o
+.obbbc22ooo222222o2111baabbBc33oo22bbbbcc3o
+.obbc22oboobbbb2oo211bbabbbbbc3oo22bbbbcc3o
+.occc22oo22oooobbo221bbabbbbbc33o22bbbccc3o
+.oc222o21111122oob222bbbbbbbbcc3o22bbbccc3o
+.o322o32111111123oc22bbbbbbbbcc3o333bccc33o
+.o33o122111112222oob2Abbbbbbbc33o3333cc333o
+.oo3o1311111211122oo22bbbbbbbc33o3333333ooo
+.ocoo331111211122ooob3bbbbbccc33o3333333oco
+..oco3311113112ooooob33ccccccc33oo333333oo.
+..ooo111111312ooo33ooo33cccc3333oo3333occo.
+...o211111333o21o33oooo33333333ooooooocoo..
+..o21111123ooo21o33ooco3333333ooooooccoo...
+oo3111112333ob11333oooc3333333ooooccooo....
+oa31111o333333o333oaaoocoooooocccoooooo....
+oo321121333222333o11a2ooccccccoooo3211oo...
+..o3223o333333ooo11aa2ooooooooo2o3333o2o...
+...o333333ooooaaa1aa2222ooooooooo33oo22o...
+....oooooo1aaaaaaaa22oooo332113oooo2o33o...
+.....o11aaaooo22aa2ooo3oo3333213...o33ooo..
+.....oooooo.oo22222ooo3ooo33oo22o..o2oooao.
+...oooooo.....oooooo3323..oo2o23o..oooaoao.
+..o233ooo...........o3o2o...o333o....oaooT.
+.o1oo33o............o11oo...o33ooo....oo...
+.ooooaoo............o1o3o...oooooao........
+....oo.............o212o.....oo2oao........
+.................oo312oo......oaooo........
+................o12oooo........oo..........
+...............o1oo33o.....................
+...............oooo1oo.....................
+..................oao......................
+..................oP.......................
diff --git a/parts_pl_src/body/pl_dracobeetle_d.txt b/parts_pl_src/body/pl_dracobeetle_d.txt
new file mode 100644
index 0000000..dac1a31
--- /dev/null
+++ b/parts_pl_src/body/pl_dracobeetle_d.txt
@@ -0,0 +1,46 @@
+# pl_dracobeetle_d: from pixellab_src/pl_dracobeetle_d/base.png (variant of pl_dracobeetle) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 40)
+# head_top at (30, 24)
+# back at (38, 30)
+# tail at (52, 51)
+........................ooo...............
+.......................o21o...............
+......................o1112o..............
+............oo....o^ooo1122o..............
+...........o21oooo322oo1122ooo............
+...........o211o33111331223o3oo...........
+...........o221o221212o1223oo33oooooo.....
+..........o2o221o222122o3oobbooo1112o.....
+.........o33c3111o22222obb3333o11122o.....
+..ooo...o32oo21111o33oo2223B31o1222oo.....
+..oabo..o33o2111112oobb221o3311o22oo......
+..oaaboocoobb1112oob2221111o333o2oo3o.....
+..oaaaboo33ooooooabo221o333o33booocoo.....
+..ocaaac3211133bacbo1111o33oooo3333ooo....
+...ocaabc11111caacbo1222ooob3333331112o...
+...occaaco111caacabo222bb33o322o311222o...
+....ocaco1o2oaaccboocoo3o331o33o32222oo...
+....o3c1122o3aacbooooo211oo2o33ooooooco...
+....o33133o21bccooooob1111o3o3oo33o3ooo...
+...oo2111o1223oooo3ooA2232o3ooc333o3co....
+..oo2111113o3oo1co33obcoooco333o33oco.....
+.oa31111123ooo21o323ooco333o333cbooo......
+ooo111112333ob11323ooooc333bccooooo333o...
+o331111o333333oo23oaabobbbbooooooo3211oo..
+.oo21131oo3222333o11abooooooooo3o3333o2o..
+..o3223o333333ooo11aao333o3333ooo33oo33o..
+...o333333oooob1b1aaooooo332213oooo.o3co..
+....oooooo1aaaooobaooo3oo3333213...o33ooo.
+.....o11aaaooo33aa3ooo3ooo33oo32o..o3oo3ao
+...oooooooo..ooo33oo3323..oo.o23o..oooaoao
+..o233ooo.......oo..o3o3o...o33co....oaooT
+.o1oo33o............o11oo...o33ooo....oo..
+.ooooaoo............o1o3o...oooo3ao.......
+....oo.............o213o.....oo3oao.......
+.................oo313oo......oaooo.......
+................o12oooo........oo.........
+...............o1oo33o....................
+...............oooo1oo....................
+..................oao.....................
+..................oP......................
diff --git a/parts_pl_src/body/pl_dragonegg.txt b/parts_pl_src/body/pl_dragonegg.txt
new file mode 100644
index 0000000..58f1d4c
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonegg.txt
@@ -0,0 +1,43 @@
+# pl_dragonegg: from pixellab_src/pl_dragonegg/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (43, 52)
+..........oooooo..........
+........oo222222oo........
+.......o2221111222o.......
+......o221111111122o......
+.....o231o11^1111132o.....
+....o2111311111111232o....
+...o22113o31131331112o....
+...o2113oooo32ooo31122o...
+..o2213ooobboobbooo122o...
+..o223oooobb11bb3oo1132o..
+.o2o23oo3221111223oooo2o..
+.o23oooo2112112112oooo33o.
+.o3ooooooo211112ooooooo3o.
+o2ooooooc1o2222o1c3oooooo.
+o3oo3oooboo2222oob3oo33oo.
+oooo3oo2bb322223bb2oo333o.
+ooo33ooo3221111222ooo333oo
+o2o3ooooo32oB2o22ooooooo1o
+o1oooooooo333333ooooooo12o
+o2ooo11oooooAoooooo11o122o
+o21o3212oooooooooo2132o22o
+o2323o33o11ooooooo33o3o22o
+o232oo1o111111oo11o1oo32bo
+ob222oo321111131223oo33bbo
+obb2222222222232222222bbbo
+o3b33obb2222bb222bbb22b3oo
+o3bbo3bbb22bbbb22bbbbbb3o.
+.33o332bb2bb2bb2bb22bb33o.
+.o3o32o2bbbb23bbb3232333T.
+.o3o31o33bb2222bb223333o..
+..oo331o32222222223333o...
+...oo223o3333333333333o...
+...oo3323o3333233333oo....
+....oo322oo3333333ooooo...
+...oooo33ooo3333ooo33co...
+...ooooooooooooooo213oo...
+......ooooooPooooooooo....
diff --git a/parts_pl_src/body/pl_dragonegg_b.txt b/parts_pl_src/body/pl_dragonegg_b.txt
new file mode 100644
index 0000000..8cf3bbd
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonegg_b.txt
@@ -0,0 +1,61 @@
+# pl_dragonegg_b: from pixellab_src/pl_dragonegg_b/base.png (variant of pl_dragonegg) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 34)
+# head_top at (31, 6)
+# back at (31, 41)
+# tail at (44, 52)
+............oo^ooo............
+..........oo333333oo..........
+.........o3331111233o.........
+........o3311111bb133o........
+.......o3cc11111bb1133o.......
+......o3cbbb111111111cco......
+......o3cabb11111111baaco.....
+.....o33cabb11111111baaco.....
+.....o331cc111111111baacco....
+....o3331111111111111ccc3o....
+....o33211111bbb1111113333o...
+...o33311111babb1111111333o...
+...o33111111babb11111113333o..
+...occ1111111bb111111b11333o..
+...oabb1111111111111bbb1333o..
+..ocabb1113111111331bbb133cco.
+..occc1113o31111ooo1111133cco.
+..o331111ooo113ooboo311333cco.
+..o332113oooo1o3bb3oo113333co.
+..o33o31oo323o311223o33o3333o.
+.o33oooooo2112112112ooooo333o.
+.o33oooooooo211112oooooooo33o.
+.ooooo3oooc1o2222o1c3oo3oo33o.
+.ooooo3oooboo2222oob3oo3ooo3o.
+.o3oo33oo2bb222223bb2oo333ooo.
+.o31oooooo3221111222ooooo3o1o.
+o331ooo11oo32o22o22ooo11o3o13o
+o3331o2213ooo33333ooo2123o133o
+ob331o2333o11ooAooo1o3333o333o
+oab311oo1o311111oo113o1oo3333o
+oab31111331111113111133133333o
+obb311111111111121111111cc333o
+o3331bb1111111111111111caac33o
+o3311bbb111111cc111111caaac33o
+o3311bbb11111caac11111caaac33o
+o33311b111111cBaac11111ccc333o
+o333111111111caaac1111113333co
+obb3111111111ccccc1111133333bo
+obbb1111111111111111111333cbbo
+obab3111b11111111111bb333bbbbo
+obbb311bbb1111bb111bbbb33bb33o
+o3bb33bbbbb11bbbb11bbbbbbb333o
+o3bbbb3o2bb1bbbbbbbbb33bb3333o
+o33333o33bbbbb11bbbb33333333o.
+.o333o33o3bbb3333bb333333333o.
+.o333o33o3333333333333cc3333o.
+..o33o32o333333333333ccc333T..
+..o33o31o33333ccc3333ccc33o...
+...o3o321o3333cccc33333333o...
+....ooo223o333cccc333333oo....
+.....oo3323o333cc333333o......
+......oo322oo3333333ooooo.....
+......ooo33ooo3333ooo33co.....
+.......ooooooooooooo213oo.....
+........oooooP....oooooo......
diff --git a/parts_pl_src/body/pl_dragonegg_c.txt b/parts_pl_src/body/pl_dragonegg_c.txt
new file mode 100644
index 0000000..cca918b
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonegg_c.txt
@@ -0,0 +1,40 @@
+# pl_dragonegg_c: from pixellab_src/pl_dragonegg_c/base.png (variant of pl_dragonegg) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 45)
+# head_top at (31, 26)
+# back at (31, 41)
+# tail at (45, 52)
+............oo^ooo............
+...........obb33bbo...........
+..........oobb11bb3o..........
+.........oo222111223o.........
+........oo3211111112oo........
+........oooo111111oooo........
+........o3c1o1111o1c3o........
+........o3boo2222oob3oo.......
+.......o32b2222222bb22o.......
+.......o3yy11111111yy2o.......
+.......o32oc1cccc1co22o.......
+........o22occaaacc22oo.......
+.......ooo22oaaaaa123ooo......
+....oooo33o321111123oo3ooo....
+..oo11o212ooo33333ooo3oo11oo..
+.o1333o11oooooBooooo3112o331o.
+o1o33o3212oob3oooobo3122o33o1o
+o2133o3o33oo3bboob3o33o3o3312o
+o221o1oo1o1ooobbbo3oo1oo1o122o
+o222322oo221111A11o12oo222322o
+obb23222222111111322222222222o
+o3b222222222222223222222bb22bo
+o3bbb2oobb2222bb222bbb22bbb2bo
+o33bbo33bbb22bbbb22bbb32b3bb3o
+.o33bo32obb2bb2bb2bb22bbb333o.
+.o333o31o2bbbb23bbb322bb3333o.
+..o33o331o2bb2222bb223233333T.
+..o33oo22o22222222222333333o..
+...o3o3322o3333333333333o3o...
+...oo3oo322o33333333333333o...
+....oo2oooooo33323333333oo....
+.....oo2oooooo3333333333o.....
+......oo3ooooo3333333ooo......
+.......oooooooPoooooooo.......
diff --git a/parts_pl_src/body/pl_dragonegg_d.txt b/parts_pl_src/body/pl_dragonegg_d.txt
new file mode 100644
index 0000000..bd675c6
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonegg_d.txt
@@ -0,0 +1,53 @@
+# pl_dragonegg_d: from pixellab_src/pl_dragonegg_d/base.png (variant of pl_dragonegg) (pixellab_library.py extract)
+# pivot at (30, 59)
+# aura at (32, 36)
+# head_top at (31, 13)
+# back at (31, 41)
+# tail at (43, 52)
+............ooo^oooo............
+..........oo22222222ooo.........
+.........o2221111112222o........
+.......oo221111111111222o.......
+......oo22111111111111122o......
+.....o22111311111111111122o.....
+....o2211113111111111111122o....
+....o221111o311131333111112o....
+...o221113ooooo33oooo3111122o...
+...o21113oooaaaoooaaoo221122o...
+..o22113oo33ccc33acc33o221222o..
+..o2112oo332ccc22ccc233oo1112o..
+.o2232oo3322ccc11ccc2233o33122o.
+.o223oo332222211111222233o3312o.
+.oo2ooo3211122111122111233o322o.
+oo3ooo32211122211122111223oo222o
+o23ooo32oooo22211122oooo23ooo22o
+o3oooo3oo1ooo222222oo1ooo3ooo33o
+o3oooo3oa11oo222222oo1oao3oooo3o
+.oo3oo3oaoooo222222ooooao3oooo3o
+.oo3oo33coooo222222ooooc33oooo3o
+.oo3oo32cccc32222223cccc23oo33oo
+.oo3oo32222222111122222223oo33o.
+..o33oo222222211A12222222ooo33o.
+...o33o3222222o22o2222223oo33oo.
+..ooo3oo3322222222222233ooo3o1o.
+..o1oooooooo3322222333ooooooo1o.
+..o1oooo11oooo33333ooooooooo12o.
+..o22oo2112ooooBoooooo111o1222o.
+..o221o2313oooooooooo31322o222o.
+..o232o3o33o31ooooooo33333o22co.
+..o2322oo1o111111oo13o1oooo22co.
+..oc222ooo221111131223ooo33ccco.
+..occ222222222222322222222cccco.
+..o3c33cccc2222cc222ccc222c33oo.
+..o3ccoooccc22cccc22ccccccc33o..
+..o33co33ccc2cc2cc2cc22cc2333o..
+..o333o33o3cccc23ccc3222b2333o..
+...o33o32o33cc2222cc22323333o...
+...o33o32oo3222222222232333T....
+...o33o332o322222222233333o.....
+....o3oo333o33333333333333o.....
+.....ooo3333o333323333333o......
+.......ooooooo33333333ooooo.....
+.......oooooooo33333oo333ao.....
+........o1oooooooooo33321oo.....
+........ooooooP....ooooooo......
diff --git a/parts_pl_src/body/pl_dragonfly.txt b/parts_pl_src/body/pl_dragonfly.txt
new file mode 100644
index 0000000..1f2a19d
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonfly.txt
@@ -0,0 +1,39 @@
+# pl_dragonfly: from pixellab_src/pl_dragonfly/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 43)
+# head_top at (31, 30) (from part/probe)
+# back at (31, 36)
+# tail at (40, 55) (from part/probe)
+....................o.....................
+...........ooooo...oao...ooooo............
+..........o31123oooa^aooo32113o...........
+.........o3111223occccco3121113o..........
+........o311ooo33333333313ooo113o.........
+........o11ow2oo333323333oo2wo11o.........
+.ooooo..o1o2woooo3331333oooow2o1o...ooooo.
+o1w111ooo1o2ooooo3333333ooooo2o1oooo111w1o
+o12www21o1o1ooo3o333B333o3ooo1o1o111www21o
+.o11ww12o11o333oo3333333oo333o11o211ww21o.
+.o1111w12o11oooo1o33333o1oooo11o21w11112o.
+..o21w21w2o11111o3333333o11111o2w12ww12o..
+...o211w122ooooo33o333o33oooooo22ww112o...
+....oo22112o333333ooooo3333333o21122oo....
+......oo222oacc3333oab3333cccao222oo......
+........oooooaac3333A3333caaaooooo........
+......oo22222occ333333333bcco22222oo......
+....ooww11w222oo3333333333oo222w11wwoo....
+...o1w11ww212oooooooooooooooo212ww11w1o...
+....o21ww212occoo33333333oocco212ww12o....
+......ooooooacco3333333333occaoooooo......
+..........o3acocc32222223ccoca3o..........
+..........o33oo333333333333oo32o..........
+.........o223oo332222222233oo322o.........
+.........o223oo333222223333oo322o.........
+........o2233ooc3333223333coo3322o........
+........o23o3oooccccccccccooo3o32o........
+........o23ooo.oo33333333oo.oTo32o........
+.........oo....oco333333oco....oo.........
+...............occoooooocco...............
+..............o333ooccoo333o..............
+..............o233o.oo.o332o..............
+..............oooP......oooo..............
diff --git a/parts_pl_src/body/pl_dragonfly_b.txt b/parts_pl_src/body/pl_dragonfly_b.txt
new file mode 100644
index 0000000..95c7473
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonfly_b.txt
@@ -0,0 +1,43 @@
+# pl_dragonfly_b: from pixellab_src/pl_dragonfly_b/base.png (variant of pl_dragonfly) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 41)
+# head_top at (31, 24)
+# back at (31, 36)
+# tail at (41, 55)
+.......................^........................
+......................obo.......................
+...............oooo...obbo...oooo...............
+..............o31123ooccccoo32113o..............
+...ooooo.....o31112233333333121113o.....ooooo...
+..o1w111o...o311ooo3333233333ooo113o...o111w1o..
+.o1wwww11o..o11ow2oo33332333oo2wo11o..o11wwww1o.
+o1wwwww111o.o1o2woooo333333oooow2o1o.o111wwwww1o
+o1www1w1111oo1o2ooooo333333ooooo2o1oo1111w1www1o
+o1www1w11111o1o1ooo3o333333o3ooo1o1o11111w1www1o
+o1wwww211111o11o333oo333333oo333o11o111112wwww1o
+o1wwww121111o311oooo23333332oooo113o111121wwww1o
+.o1wwww22111o3311111333B33333111133o11122wwww1o.
+.o1wwww11222o333333333o33o333333333o22211wwww1o.
+..o1www11122o33bbb3333oooo33333bb33o22111www1o..
+..o211w111222o3bbb333333333333bbbco222111w122o..
+...oo2111122oo3ccc333333333333cccooo2221112oo...
+.....oo2222o33oocc33333A333333ccoo33o2222oo.....
+.......oooo33333oo333333333333oo33333oooo.......
+.....oo112ob333333oooooooooooo333333bo211oo.....
+....o1w11obb3o33333333333333332222o3bbo11w1o....
+...o1wwwo3bco32bbb223333333322bbb23ocb3owww1o...
+...o1wwwo223o32bbb222222222222bbb23o322ow1w1o...
+...o111ob22o332bb22222222222222bb233o22bo111o...
+....oooob22o332222222222222222222233o22boooo....
+.......o223o332222222222222222222233o322o.......
+.......o23oo332222222222222222222233o322o.......
+.......o23oo333bb22222222222222bb333oo32o.......
+.......o33ooo33cbb222222222222bbc33ooo32o.......
+........oo..o33ccc322222222223ccc33o..oo........
+.............o3ccc333333333333ccc3o.............
+..............oo3333333333333333oT..............
+................ooo3333333333ooo................
+................occoooooooooocco................
+................o333o......o333o................
+................o233o......o332o................
+................oooP........oooo................
diff --git a/parts_pl_src/body/pl_dragonfly_c.txt b/parts_pl_src/body/pl_dragonfly_c.txt
new file mode 100644
index 0000000..651740f
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonfly_c.txt
@@ -0,0 +1,46 @@
+# pl_dragonfly_c: from pixellab_src/pl_dragonfly_c/base.png (variant of pl_dragonfly) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 40)
+# head_top at (31, 21)
+# back at (31, 36)
+# tail at (44, 55)
+...................o^o....................
+................oo.o2o.oo.................
+............oooo32o322o23ooooo............
+............o22o322322323bb22o............
+.........oooo322322222322bc23ooo..........
+.........o222322222222222222322o..........
+........ooc222222323222232222223oo........
+.......o33222322222322232222222222o.......
+......o22223oooo322322222ooooo222bo.......
+......o322o31123o2222222o32113o22boo......
+......o32o3111223o2222233121113o222o......
+.....ob22o11ooo33322222323ooo11o2222o.....
+.....o22o11ow2oo333222233oo2wo11o233o.....
+.oooo322o1o2woooo3322233oooow2o1o23oooooo.
+o1w11oo2o1o3ooooo3322233ooooo3o1o22o111w1o
+o12wwo32o1o1ooo3o332B233o3ooo1o1o222oww21o
+.o11wo22o11o333oo3322233oo333o11o233ow21o.
+.o111o222o11oooo1o32222o1oooo11o223o1112o.
+..o21oo322o11111o2222223o11111o22b3ow12o..
+...o21o3b22ooooo22o2A2o22ooooo2223o112o...
+....oooo33b2222222ooooo22222222333o2oo....
+......oooooo3322322222222323333ooooo......
+.......oowwwoo32333222233333oowwwoo.......
+......oowwbwwwooooo3oo33oooow1ccwwoo......
+....oowo2wcwwwwwwwwowwoowwwwwwccw1owoo....
+...o1w11o11w1wccwwwwwwwwwccww1w11o11w1o...
+....o21w1oo111ccw1w1www1wbc1111oo1w12o....
+......oooooooo1111111w11111ooooooooo......
+.........o3333oooooo11oooooo333bo.........
+........o2223o333333oo333333o3222o........
+.......o2b32o22222333333222b2o2b22o.......
+.......o2222o22322222222232b2o2c22o.......
+.......oo223o22bb222222223222o322oo.......
+........o23oo32bb2223222b2222oo32o........
+........o2ooo3b22222222222233oo33T........
+.........oo.o3323223bb2223333o.oo.........
+.............o333b3333333b33o.............
+..............o33coo33oo333o..............
+.............o2233o.oo.o3322o.............
+..............oooP......oooo..............
diff --git a/parts_pl_src/body/pl_dragonfly_d.txt b/parts_pl_src/body/pl_dragonfly_d.txt
new file mode 100644
index 0000000..8eeaa27
--- /dev/null
+++ b/parts_pl_src/body/pl_dragonfly_d.txt
@@ -0,0 +1,40 @@
+# pl_dragonfly_d: from pixellab_src/pl_dragonfly_d/base.png (variant of pl_dragonfly) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 43)
+# head_top at (31, 27)
+# back at (31, 36)
+# tail at (44, 55)
+.................ooo^oooo.................
+...............oo32222222oo...............
+.............oob3221111223aoo.............
+............o3ba3211111223ab3o............
+...........o33cac22111122cac33o...........
+..........o3323cac2211223ac3333o..........
+..........o33322ca322223ac23333o..........
+.ooooo...o3333322cc2222bc2233333o...ooooo.
+o1w111oo.o33ooo212bb22ac112ooo33oooo111w1o
+o12www21oo33o11o3113B23113o11o33o111www21o
+.o11ww122o33owwooo232232ooowwo33o211ww21o.
+.o1111w12o33owwoo1o3223o1oowwo33o1w11112o.
+..o21w21wo333owwwwo3333owwwwo33bo12ww12o..
+...o211w1obb33oooo333333oooo33bboww112o...
+....oo2211oca333333333333333cabo1122oo....
+......oo222ocac333333333333baco222oo......
+........ooooobab333ooAo333bacooooo........
+......oo22222obb33o3333o33bbo22222oo......
+....ooww11w2oooo3333333333oooo2w11wwoo....
+...o1w11ww2o223oooooooooooo323o2ww11w1o...
+....o21ww2o2123o3333333333o3112o2ww12o....
+......ooooo2233ob22222222bo3312ooooo......
+..........oo33o33b111112b33o33oo..........
+..........o3ooo323333333323ooo3o..........
+.........o23ooob3311111123booo33o.........
+.........o133oo3b32111122b3oo331o.........
+........o2133oo33b333333b33oo3312o........
+........o22o3ooo3b333333b3ooo3o22o........
+........o33ooo.oo33333333oo.ooo33T........
+.........oo....o3o333333o3o....oo.........
+...............o33oooooo32o...............
+..............o313oobboo312o..............
+..............o333o.oo.o332o..............
+..............oooP......oooo..............
diff --git a/parts_pl_src/body/pl_drake.txt b/parts_pl_src/body/pl_drake.txt
index fac257d..9911cd9 100644
--- a/parts_pl_src/body/pl_drake.txt
+++ b/parts_pl_src/body/pl_drake.txt
@@ -1,9 +1,9 @@
# pl_drake: from pixellab_src/pl_drake/base.png (pixellab_library.py extract)
# pivot at (32, 60)
# aura at (28, 41)
-# head_top at (25, 24) (from part)
-# back at (26, 42) (from part)
-# tail at (48, 50) (from part)
+# head_top at (25, 24) (from part/probe)
+# back at (26, 42) (from part/probe)
+# tail at (48, 50) (from part/probe)
............ooo.........................
...........o22o.........................
..........o222o.........................
diff --git a/parts_pl_src/body/pl_drake_b.txt b/parts_pl_src/body/pl_drake_b.txt
new file mode 100644
index 0000000..6840c33
--- /dev/null
+++ b/parts_pl_src/body/pl_drake_b.txt
@@ -0,0 +1,48 @@
+# pl_drake_b: from pixellab_src/pl_drake_b/base.png (variant of pl_drake) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (29, 41)
+# head_top at (25, 19)
+# back at (26, 42)
+# tail at (52, 50)
+............o^o..........................
+...........o22o..........................
+..........o222o..........oooo............
+.........o22oooooo.....oo112o............
+......oooo11122222ooo.o1112o.............
+.....o2222111223oo22oo11122o.............
+.....o222211221111o2311122o..............
+.....oo222222111113221122o...............
+....ooco22222112o23222222ooo.............
+....oowo222221oo2o32222cccbco............
+....oooo222222wowc3222cccbboo............
+..oo111111222ooowc2222ccbbo..............
+.o11111111112oyowc222222oo...............
+o111111111111cccbaa22222o................
+o1311111111111111111121oo................
+o11111311111111111111221oo...............
+o111111111111111111112211o...............
+o2111111131111111111122oo................
+.o21333331111111111122o33o...............
+.o2211111111111111222oo222ooo............
+..oo221111111122222oo22222oao............
+....oo222222222oooo22222222oc............
+......ooooooooo22A2222222222o............
+.....o22bbbbbbB22222222222222o...........
+.....ocaabbbaaab2221222222222o...........
+....oocaaaaaaaab2221112222222bo..........
+....ocaccccccccc23211113222222o..........
+...oocaaacaaaaaaa3111123222222o..........
+...oocaaacaaaaaao1111223222222o..........
+..o1occaacaaaaaao11112o2222222o.oo.....oo
+..o2ocacccccccco211112o21122222obo.oooo2o
+..o2occaacaaaaao221222o1111222223oobo222T
+..o22ocbacaaaaao32222o11111222222222222o.
+..o23ooccccccccowo3owo1111122o22222222o..
+...o2ooobbcaaaacoowoo21111222o2222222o...
+....oo2oobcbbbbbbcoco22222222o11311oo....
+.....o22ooccbbbbcccco2222222o111ooo......
+....owo233ooocccccccoo222222oooo.........
+....oowo2333ooooooooo2222222o............
+.....oooooooo......owo11o122o............
+...................oow2ow2oo.............
+.....................Po.oo...............
diff --git a/parts_pl_src/body/pl_drake_c.txt b/parts_pl_src/body/pl_drake_c.txt
new file mode 100644
index 0000000..b28f810
--- /dev/null
+++ b/parts_pl_src/body/pl_drake_c.txt
@@ -0,0 +1,50 @@
+# pl_drake_c: from pixellab_src/pl_drake_c/base.png (variant of pl_drake) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (29, 40)
+# head_top at (25, 17)
+# back at (26, 42)
+# tail at (52, 50)
+..............^o..........................
+.............o2o..........................
+............o22o..........................
+...........ooooooooo......oooo............
+..........o211111113oo..oo112o............
+.......ooo211112222222oo1112o.............
+......o212211122222222311123o.............
+......o21222222111132311123o..............
+......o2122222211223231123o...............
+......o21222221113o323222oooo.............
+......o2111222122oo3233333cbao............
+....oo2111112222o13322occcbboo............
+...o1111121212ooowc222ccbbboo.............
+...o1111111112oyow222233ooo33oo...........
+...o11111111222222a22333o333333o..........
+...o11131112222222332123o3333333o.........
+...o211111222233223322113o3322333o........
+...oo22222223322333333221o3222233o........
+...oo33333332233333333ooo322222233o.......
+..o22o333322333333o333333322222233o.......
+..o211oooooooooooo33332222222222233o......
+.o211113333333333332222222222222233o......
+o22111111133333332222222222222222333o.....
+o21111111111111111A22222222222222233o.....
+o21111111111111111112222222222222233o.....
+o21111111111111B11112222123222222233o.....
+o21111111111111111112221123222222233o.....
+o21111111111111111112211112o22222333o.....
+o2211111111111111111o111112o22222333o.....
+.o211111111111111111o111112o22222333o.....
+.o211111111111111111o111113o2222333o......
+.o22111111111111111o1111123o2223333o...ooo
+..o3311111111111111o1111123o2233333oooo22o
+..o3331111111111111o222222o3333333obo2223T
+...o333311111111111o322o3o3333333o333223o.
+...oo33333311111113owo3owo333333o333333o..
+....o333333333333333oowoo333333o33333oo...
+.....oo333333333333333o3333333o3333oo.....
+......ooo3333333333333333333ooooooo.......
+.......oooooo333333333333333o.............
+......owo2233oooooooo3222333o.............
+......oowow333o....owo22o233o.............
+.......oooooooo....oow2ow2oo..............
+.....................Po.oo................
diff --git a/parts_pl_src/body/pl_drake_d.txt b/parts_pl_src/body/pl_drake_d.txt
new file mode 100644
index 0000000..dfcd046
--- /dev/null
+++ b/parts_pl_src/body/pl_drake_d.txt
@@ -0,0 +1,49 @@
+# pl_drake_d: from pixellab_src/pl_drake_d/base.png (variant of pl_drake) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 40)
+# head_top at (25, 18)
+# back at (26, 42)
+# tail at (52, 50)
+............o^ooo..........................
+.........ooobbbcoooo.......................
+........obobabcc1111o......................
+.......oobaaccc111333oo....................
+......o2baacc1122111123o.ooo...............
+......o2babc212211133333o11o...............
+.....o22abbc122122112233113o...............
+.....o13abc212222222331112o................
+.....o13bbc222222223211123o................
+.....o33bbc22211232311122ooo...............
+.....o23bc22211233231123o33o...............
+....oo22c2221133o3223333cbb3o..............
+...o32211122123oo3222cccbbooo..............
+.oo2222111222oo1332122bbbo33o..............
+o11111111212ooowc221113oo33o...............
+o11111111112oyow222221133333o..............
+o111111111222222b2222213o233o..............
+o11113111222223322211331o22o...............
+o21111112222332222211133332o...............
+.o22222223332222322121333333o..............
+..o33333322222332221221o33o3o...........o..
+...o2222222333332212122o33ooo..........oco.
+....oooooo332222221A232o33o...........obco.
+......o2222222212212233o3o..........oocaco.
+.....o21222222B1221223333o.........occaacco
+.....o3112212121213323333oo......o.o1cabbco
+.....o111211212122o3333232oo....o1o21cb2bco
+.....o131211222223o332222333o..oo1221c12cco
+.....o331212123333322222223oo.oo212212123co
+......o3121212333322232222233oo11112122233o
+......oo331223333212233222223221111122233o.
+.....o2o3322233o11112o321222222111122223oo.
+.....o12o33223o311123o311123222221112333T..
+.....o223o3333o211123o11111332222223333oo..
+.....o2o2oo333o22122o11112233332222233oo...
+.....owoo23o33o32233o1111233333332333oo....
+......oo2233ooowo3o2o2112233o3333333o......
+.......ooo333oooowooo232233oo33333oo.......
+......owo222333oooo.o333333o.ooooo.........
+......oowow2233o.o.o2222223o...............
+.......oooooooo...owo12o123o...............
+..................oow1ow1oo................
+....................oP.oo..................
diff --git a/parts_pl_src/body/pl_dromaeo.txt b/parts_pl_src/body/pl_dromaeo.txt
new file mode 100644
index 0000000..655ecd4
--- /dev/null
+++ b/parts_pl_src/body/pl_dromaeo.txt
@@ -0,0 +1,48 @@
+# pl_dromaeo: from pixellab_src/pl_dromaeo/base.png (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (32, 40)
+# head_top at (32, 22) (from part/probe)
+# back at (40, 33) (from part/probe)
+# tail at (44, 43) (from part/probe)
+...............o..oo................
+............o.ozoczbo...............
+...........o3ozb22abooo.............
+..........o3322222^zzzzco...........
+........oo33zzzab222abbbbo..........
+.......o132222zzab22333oo...........
+.......o112zza22ab2222333o..........
+.......o12azzaa222113323cco.........
+......o222aaaz22111113222cco........
+......o3322b22311123323233co........
+.......o2222223113ooo3223coo........
+.....oo222222233oo21o32233o.........
+....o1111112222oco11a32223o.........
+...o11111112222ooo1131cc3cco.....oo.
+..oc111322222222ccc3111333Bo....o2o.
+..o1111oc111111111111ooo3o......o23.
+..o11121111111122oooo33o3o.....o323.
+...o11111111o213333333o3o......o123o
+...o1o1oo1oo1oooooooooo.......o3123o
+....o.o..o.oo33333333ooo.....oo2123o
+..........1oo33333333333oo..o332223o
+...oo.....oo333333A3233333ooo3z3223o
+..oyyoo...o3333331321113o33oo2zz233o
+.o1ccaao.o33311221121aacoo3ozz2z333o
+oyyooazac3o3111123oo32133o323oT333o.
+oyoo1bbba3o1111133ab322c3333o2b23o1.
+ooo1yoob33311111oazazb233o33o3b333o.
+..o1o33323o31111occczb33333333333o..
+...ooo3333o32111o1occc33o223o333o...
+......oo3ooo3121o1ooyo3o22233o33o...
+........o..oo1313o3oyoo3zz23oooo....
+...........o3o333233o3bzzzb3oo......
+............o3oo3333o33bbc3oo.......
+.............o3coooooo3333o.........
+........oo....occco...oocco.........
+.......oaccooocccc3....occco........
+......ocoabobacccoooooobbcco........
+......oocccabccoobzcobzaboco........
+........oooccoo.occozbccozbo........
+...........o....ooooccoooaco........
+...................ooo..oco.........
+.........................P..........
diff --git a/parts_pl_src/body/pl_dromaeo_b.txt b/parts_pl_src/body/pl_dromaeo_b.txt
new file mode 100644
index 0000000..da0514c
--- /dev/null
+++ b/parts_pl_src/body/pl_dromaeo_b.txt
@@ -0,0 +1,52 @@
+# pl_dromaeo_b: from pixellab_src/pl_dromaeo_b/base.png (variant of pl_dromaeo) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (32, 37)
+# head_top at (32, 15)
+# back at (40, 33)
+# tail at (50, 43)
+................oo3o^ooo................
+.............ooo11111113ooo.............
+...........oo211111111111zaoo...........
+.........ooaa11111111111zzyyzoo.........
+........ozya11111zab1111zzzzzb2o........
+.......ocaaa11111zzab1111zzzzb22o.......
+......o1aa111yyz11bbb11111zzb2223o......
+.....o111111zyyzb11111111111122223o.....
+.....o111111zzzzb1111111111111122bbo....
+....o11112111bb11111111111111111babo....
+....o133112111111211111111111111bbbbo...
+...o31oo3121111111113331111111113bbbo...
+...o11o1o32111113113ooo311111111333bbo..
+...o11owoo11111133oo11o32111111113333o..
+..oa11o1coooo1111ocoww2321111111133333o.
+..o1111oyxxzzo311ooo1133111111zzb23333o.
+..o111ozxzzzaao311ccc33211111zzzab3333o.
+.o111ozzzzzozabo2113332111111zzzaab3333o
+.o111ozzzzzzzabo311111111111Baaaaab3333o
+.o311obzzzzzabbo31111111111111bbbb23333o
+o33311obbbbbbbo2211111111111122bbb23333o
+oaa3113ooooooo3211111111111112222233333o
+ozab1113333332221111A11111zz1222233333bo
+ozab2112222222211111111111zzb22233333bbo
+oaab2211112222111111111111zzb22333333bao
+obbb3221111111111111111333oo222333333bao
+.ob332222111111111111223323o323333333bao
+.o333322211121112111133o122o3333333333bo
+.o33332222112211222oooo1122o3333333333T.
+..o333322222222222o1zzzzz22o3333bbb33co.
+..o333bb3222222222ozzzzb222o333abbb33o..
+...o33bba222222222occczc333o33babbb33o..
+...oc33baa32223222o1occc33o333bbbb33o...
+....oo3bbb33323323o1ooyooo33333bbb3o....
+.....o3333333333233o3oyo33333333333o....
+......oc33333b33333333o33333333333o.....
+.......o3333bbbb3333333333333333oo......
+........ooo3baab33333333333333oo........
+..........ooooobb3333333333ooo..........
+.........oacooooooooooooooocco..........
+........ocoabobacccoooooobbcco..........
+........oocccabccoobzcobyaboco..........
+..........oooccoo.occozbccozbo..........
+.............o....ooooccooozco..........
+.....................ooo..oco...........
+...........................P............
diff --git a/parts_pl_src/body/pl_dromaeo_c.txt b/parts_pl_src/body/pl_dromaeo_c.txt
new file mode 100644
index 0000000..9f68b32
--- /dev/null
+++ b/parts_pl_src/body/pl_dromaeo_c.txt
@@ -0,0 +1,62 @@
+# pl_dromaeo_c: from pixellab_src/pl_dromaeo_c/base.png (variant of pl_dromaeo) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 34)
+# head_top at (32, 7)
+# back at (36, 31)
+# tail at (49, 43)
+.................o....oooo...........
+................oao.ooaaabo..........
+...............oaao^aaaabbo..........
+..............oaaaoaaabbbo...........
+..............oaaaoaabbboo...........
+.............oabbcbabbbcooo..........
+.............oabbcbbbbcccbbo.........
+............oaacbbbcbccbbbbbo........
+............oaacbbcccccbbccoo........
+............oaacbbccocccccoo.........
+............oabccbc33ooocccco........
+...........o2bbcc3322222ooooo........
+..........o22cbcc32222222o...........
+.........o122cb32222113223o..........
+........o31122c22211122322o..........
+........oo31222222123333223o.........
+........o1o22222223oooo3223o.........
+........o1o2222222oo11o3223o.........
+........o1o2222222ooo1o3223o.........
+........oooyyyy222oob122233o.........
+......ooy111zyyy222bb22223o..........
+....ooyy1yyyyyyyyy22222233o..........
+...oy11yyyyyyybbby3222333o...........
+..o11yyyyyzzzzzyy3333333o............
+.oy1yyyyzoooooooooo3333o.............
+.o1yyzooo......o3333333o.............
+oyyzoo.........o3333333B.............
+oyzo...........o222333o..............
+ooo...........o2222223o..............
+..............o2222A2o...............
+..............o111223o...............
+.............o2111223o...............
+.............o2112223o.............o.
+............o211122233o...........o2o
+............o1111222222ooo........o2o
+......ooo..o211112222222o3o......o22o
+.....oyyyo.o2111112232222o3o.....o12o
+....oyzcyzoo2111112233322o32o....o12o
+....ozoyzz3o211111ooo32223322o..o213T
+....oooyo33o21111oyyyy233o322ooo2123o
+......ozoo3oo1111o1zyyooo32222211223o
+.......o.oo.o2111ozoyzo332222222223o.
+............o2111o3ozo3222223322233o.
+.............o222222o33222yz332223o..
+............oo322222333222yz333333o..
+............ozo3333333o22y2zo3333o...
+............oyzoo33333o22yzzo33oo....
+.............ozzzoo3333yyyzoooo......
+..............ozzzoooooozzzzo........
+...............ozzo.....ozzzo........
+...........oooozzzo.....ozzzo........
+.........ooyyzzzzzzooooozyyyo........
+.........ozozyzzozzo11yzyyzyo........
+..........oozooo.oozzo11zoo1o........
+............o.....oooozzo.ozo........
+......................Po...o.........
diff --git a/parts_pl_src/body/pl_dromaeo_d.txt b/parts_pl_src/body/pl_dromaeo_d.txt
new file mode 100644
index 0000000..cbed193
--- /dev/null
+++ b/parts_pl_src/body/pl_dromaeo_d.txt
@@ -0,0 +1,56 @@
+# pl_dromaeo_d: from pixellab_src/pl_dromaeo_d/base.png (variant of pl_dromaeo) (pixellab_library.py extract)
+# pivot at (35, 58)
+# aura at (32, 33)
+# head_top at (32, 9)
+# back at (40, 33)
+# tail at (49, 43)
+...................^ooo..............
+..............ooo.ocyco..............
+.............oyboocacco..............
+..........oooyybc222cc3oooooo........
+.........o22bybb2222yyyyyyycco.......
+.......oo2222222222222yyyccccco......
+......o122222aabb2222222cccccco......
+.....o21122aaaaaabb22222223333o......
+....o222222222aaaab22222222333o......
+...oo222222yyb222ab222222222333o.....
+..o2222222byybb22222211122222333o....
+.o22112222byybb2222111112222223cco...
+.o22111122bbbb222211111122223223cco..
+.o332111222bb22222111123333232233cco.
+.o3oo2112222222222222ooooo3332233cco.
+..oooo3232222222322ooooo1oo332233coo.
+..o1woo33222222233owwooo11o322233co..
+..o1ooo22222222223owwooow1o3222333o..
+..ooooo22222222223oooooow1o3222333o..
+..obooo22222222222oooobbw1o2222333o..
+.o3aboo22111112222ocoobbw122222333o..
+o322ab2221111222223cbbbww222222333o..
+oa1a22222222222222222222aa1a222333o..
+oaaa2222o2222o3222222222aa1a22233o...
+o222222222222222222A2222aaaB22333o...
+.o222222222222222222222222222333o....
+..o22222222222222222222222223333o....
+...o33222222222222222222222333oo.....
+....ooo322222222222223333333oo.......
+.......ooo333333333333333ooo.........
+..........ooooooooooooo33oo..........
+..........o333333333333333o........oo
+.........o22322222223333233o......o2o
+........o2233222222233222333o....o32o
+.......o222o2211111oo32222o33o..o212T
+.......oa23o221111oyyb2222o33oooyy22o
+......ocbb3o21111ocbyyb223o333byy223o
+......oxccco21111o1cbbc33o33332y2223o
+......o1oxoo21111o1ocbcoo3223322223o.
+......ooo1oo311111ooxo3332223332233o.
+.........oo3o2222222oo3222y23o3333o..
+..........o23o222222333222yb3o333o...
+..........oc23o333333o322ybc3o3oo....
+...........o333ooo333o322bc33oo......
+............o3333oooooo33333o........
+..........oooccc33o....o3333o........
+.........obcbbbc33o...ooccc3o........
+.........o1c1ccc33o..ocbbccco........
+..........oooooooo...o1o1c1co........
+......................Pooooo.........
diff --git a/parts_pl_src/body/pl_duck.txt b/parts_pl_src/body/pl_duck.txt
index 81f0b55..2437f4c 100644
--- a/parts_pl_src/body/pl_duck.txt
+++ b/parts_pl_src/body/pl_duck.txt
@@ -1,9 +1,9 @@
# pl_duck: from pixellab_src/pl_duck/base.png (pixellab_library.py extract)
# pivot at (35, 60)
# aura at (32, 38)
-# head_top at (30, 19) (from part)
-# back at (34, 34) (from part)
-# tail at (45, 42) (from part)
+# head_top at (30, 19) (from part/probe)
+# back at (34, 34) (from part/probe)
+# tail at (45, 42) (from part/probe)
................ooooooooo............
..............oo222222222oo..........
.............o222^222222222o.........
diff --git a/parts_pl_src/body/pl_duck_b.txt b/parts_pl_src/body/pl_duck_b.txt
new file mode 100644
index 0000000..ae52c06
--- /dev/null
+++ b/parts_pl_src/body/pl_duck_b.txt
@@ -0,0 +1,63 @@
+# pl_duck_b: from pixellab_src/pl_duck_b/base.png (variant of pl_duck) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 34)
+# head_top at (30, 4)
+# back at (34, 34)
+# tail at (49, 42)
+..............oo^ooo................
+............oo222222oo..............
+...........o2211122222o.............
+..........o221112222222o............
+.........o22222222222222o...........
+.........o22222221122222o...........
+.........o222222111222223o..........
+.........o22222oooooo2223o..........
+.........occc222owo222223o..........
+.........oaabc22332w22223o..........
+........ocacbc22wwwb22223o..........
+.....ooobaabbbc22222a2233o..........
+.ooooobaaaaabbbccc2222233o..........
+obaaaaaaaaaabbbbbc222233o...........
+obbbbbbbbbbbccccc3222333o...........
+.ooooooccbbbbbb333333333o...........
+.......oooooooo33333333o............
+...............oo333333o............
+................o333323o............
+................o333223o............
+................o332223o............
+................o32222o.............
+...............o322223o.............
+...............o322223o.............
+...............o22222o..............
+..............o222222o..............
+..............o222223o..............
+..............o222223o..............
+.............o2222223o..............
+.............o222223o...............
+.............o2222A3B...............
+............obaaabbco...............
+............obaaabbco...............
+............o2aaabbco..........ooo..
+...........o322222233ooo....ooo323o.
+..........o3222222222333oooo32o223o.
+.........o3222222222222222oo322223o.
+........o3222222222232222223oo2223o.
+.......o2o2222222222o22222222bo2233T
+.......o2o2222222222o22222222bo2233o
+.......o222222222222o22222223oco333o
+.......oo22222222222o32222222aco33o.
+........o222222222222o322233ccco33o.
+........o3222222222223o33bbcc3o33o..
+.........o3222222222233ooooooo333o..
+.........o3332222222333333333333o...
+..........o33333333333333333333o....
+...........o333333333333333333o.....
+............oo3333333333cc33oo......
+..............ooo333333cccoo........
+...............occoooooobco.........
+.........ooooooccco....obco.........
+.......oobbbbccccccooooccccoo.......
+.......obabbbaabccobbbcccccbco......
+........oooobacooocabbbabbbbabo.....
+............ooo...ooocaabbbbaao.....
+.....................Poooooooo......
diff --git a/parts_pl_src/body/pl_duck_c.txt b/parts_pl_src/body/pl_duck_c.txt
new file mode 100644
index 0000000..a81981f
--- /dev/null
+++ b/parts_pl_src/body/pl_duck_c.txt
@@ -0,0 +1,53 @@
+# pl_duck_c: from pixellab_src/pl_duck_c/base.png (variant of pl_duck) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (33, 37)
+# head_top at (30, 14)
+# back at (34, 34)
+# tail at (50, 42)
+.................^ooooo...............
+...............oo222222ooo............
+.............oo22221222222oo..........
+............o221111122222222oo........
+...........o211111222222211222o.......
+..........o22211222222222211223o......
+.........o222222222222222222222o......
+........o22222222222222222222222o.....
+...oooo.o22311222222211222222222o.....
+.oobaaaco22ooo2222231111322222223o....
+.oaabbbaac222o22222oooooo22222223o....
+obbccccbaac2w2ccc222owo2222222233o....
+obcccccccbaaccabc222332w2222222233o...
+obbcccccccbaaaabbc22wwwb2222222233o...
+.obcccccccbbaaaaabc22222aa22222233o...
+..obcccooocbaaaaaabccco2aa22222233o...
+...obbbboooobbaaaaaabbco2222222333o...
+....ooooocoooobbbbbbooco2222222333o...
+.......occoooooooooccco2222222333o....
+......occooooooobbccoo32222232333o....
+......oboooooobbbooo3B22322333333o....
+......ocaaaaaacoo33322232333333333o...
+.......oooooooo33333323333333332223o..
+........o33333333333A33333332222222o..
+.......o3233333333333322233222222222o.
+.......o2222333332222222222o22222222o.
+......o221222222222222222222oo2222223o
+......o21221222221222322222222o222233o
+.....o221221221221222o222222222o22233T
+.....o222222121212222o222222222o22333o
+.....o222222122222222o2222222333o3333o
+.....o322222222222222o3222222223o333o.
+......o222222222222222o332232333o333o.
+......o2232222222222222o3333333o3333o.
+......o33222222222222222ooooooo3333o..
+.......o33322222222222222333333333o...
+........o3333222223322322233333333o...
+.........o33323333223323333333333o....
+..........o333333333333333333333o.....
+...........oo33333333333333333oo......
+.............oooo3333333333ooo........
+..........oooooocoooooooocco..........
+........ooaaaaccccccooooccccoo........
+........obabbaaabccobbbcccccbco.......
+.........oooobacooocabbaaaaaaabo......
+.............ooo...ooocaaabbbaao......
+......................Poooooooo.......
diff --git a/parts_pl_src/body/pl_duck_d.txt b/parts_pl_src/body/pl_duck_d.txt
new file mode 100644
index 0000000..f6b1e81
--- /dev/null
+++ b/parts_pl_src/body/pl_duck_d.txt
@@ -0,0 +1,51 @@
+# pl_duck_d: from pixellab_src/pl_duck_d/base.png (variant of pl_duck) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 38)
+# head_top at (30, 17)
+# back at (34, 34)
+# tail at (49, 42)
+...................oooo..............
+.................^o1222oo............
+..............ooo11222222o...........
+.............o2o1122222222o..........
+............o2o212222222222o.........
+...........o22o2222222222222o........
+...oooo....o3o2222222112222ooo.......
+.oobaaaco..ooo222223333332o223o......
+.oaabbbaaco..o33333ooooooo2223o......
+obbccccbaabo1oooooo2o1o22o2223o......
+obcccccccbaaccabc22233212o2223o......
+obbcccccccbaaaabbc22111b2o2223o......
+.obcccccccbbaaaaabc22222ao223o.......
+..obcccooocbaaaaaabccco2o22333o......
+...obbbboooobbaaaaaabaco322333o......
+....ooooocoooobbbbbbooco323333o......
+.......occooooooooobbco322333o.......
+......occoooooooaabbooo23333o........
+......oaooooooaaaooo3B23333o.........
+......ocaaaaaacoo33333333ooo.........
+.......oooooooo3333oooooobboo........
+..........o33oooooooccoob2212o..ooo..
+.........o23ooccbbbAooob222211oo323o.
+........o23oo2ooooo223b22222212o223o.
+........o2oo2211222223b222222223o23o.
+........bbo22212222223bb22222222o23o.
+.........oo22212222223ocb2222bbbo233T
+.........3oo22122222223obbbbbooo2233o
+........o323o212222oooooo3333333o333o
+........o3233oooooo33333ob322223o33o.
+.........o23233332223223ob322223o33o.
+.........o23221222223223oobooooco3o..
+..........oo221222223223oocbbcc33oo..
+..........o3o2122223ooooooooo3333o...
+..........o33ooooooo3o333333o3333o...
+...........o333333333o3oooo33o33o....
+............o33333333oo2123o3ooo.....
+.............ooo333333o2122oo........
+..............ooooooooo22223o........
+..........oooo23occo...o3333o........
+........ooaaaaoobbbboooo2223oo.......
+........obabbaaabbbobbbbooobbco......
+.........oooobabooocabbaaaaaaabo.....
+.............ooo...ooocaaabbbaao.....
+......................Poooooooo......
diff --git a/parts_pl_src/body/pl_dumbo.txt b/parts_pl_src/body/pl_dumbo.txt
new file mode 100644
index 0000000..ea92286
--- /dev/null
+++ b/parts_pl_src/body/pl_dumbo.txt
@@ -0,0 +1,48 @@
+# pl_dumbo: from pixellab_src/pl_dumbo/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 39)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (46, 46)
+...................oooooo...................
+................oooo2222oooo................
+..............ooo2111111112ooo..............
+.............oo21111111111122oo.............
+............oo2111111^11111122oo............
+...........oo211111111111111222oo...........
+.....ooooooo21111111111111111223ooooooo.....
+...oo21111oo11111111111111111222oo11112oo...
+...o111111o2111111111111111112222o111111o...
+..o112ooooo2111111111111111112222ooooo211o..
+.o112o333oo2111111111111111112222oo333o211o.
+.o12o3333o221o1111111111111122o222o3333o21o.
+o21o32233o221oooo1111111111oooo222o33223o12o
+o21322233o222ooooo21111112ooooo222o33222o22o
+o21322223o222o2oooo211112oooooo222o32222322o
+o22322223o222o21ooo22B222o1oo2o222o32222322o
+.o2222223o222o12ooo222222o2oo1o222o3222222o.
+.o2222222o322o1o11o222222o1111o223o2222222o.
+..o2222222o22oo111o222222o111oo22o2222222o..
+..o3222222o321oooo21111112oooo123o222222oo..
+...oo222222o2ba111111A1111111ab2o222222oo...
+.....oooooooo2b21111o11o11112b2oooooooo.....
+............oo3222111111112222oo............
+.............ooo222222222222ooo.............
+.............ooooo32222223ooooo.............
+............oo33oooooooooooo33oo............
+.......ooo.oo223oo333oo333oo322oo.ooo.......
+......o211oo2123o2223oo3222o3212oo11To......
+.....oaa2111112o21123oo32112o2111112aao.....
+.....oca211112o21112oooo21112o211112aco.....
+.....obb21123oo11112oooo21111oo32212bbo.....
+.....o32212ooo2ba11oooooo11ab2ooo21222o.....
+.....oobc22ooo3aa21oooooo12aa2ooo22cboo.....
+......oac32ooo3ca21oooooo12ac2ooo32cao......
+......occ323oo3bb22oo..oo22aa2oo323cco......
+......oo3cc23o32222oo..oo22222o32cc3oo......
+........obac2oo3c32oo..oo23c3oo2cabo........
+........ooc33oocac3oo..oo3cbcoo33coo........
+..........ooooocac3oo..oo3cacooooo..........
+..............oocc3oo..oo3ccoo..............
+...............o33oo....oo33o...............
+................ooP......ooo................
diff --git a/parts_pl_src/body/pl_dumbo_b.txt b/parts_pl_src/body/pl_dumbo_b.txt
new file mode 100644
index 0000000..366d9a0
--- /dev/null
+++ b/parts_pl_src/body/pl_dumbo_b.txt
@@ -0,0 +1,50 @@
+# pl_dumbo_b: from pixellab_src/pl_dumbo_b/base.png (variant of pl_dumbo) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 36)
+# head_top at (31, 17)
+# back at (31, 34)
+# tail at (47, 46)
+..........................oo^ooo..........................
+.......................ooo211111ooo.......................
+...oooooooo..........oo111111111111oo...........ooooooo...
+.oo11111111oo.......obb1111111111112boo......ooo1111111oo.
+o111222221111o.....obbba11111111111abbbo....o111112222111o
+o112233ooo2211o...o22baaa111111111aaab22o..o11122o3332211o
+.o22222333o2211o.o2211aaa11111111aaab122o.o21122o3322221o.
+..o22222233o2212ob22111aaa1111111aab1112bo21122o3322221o..
+...o21222233o222obb1111aaaa11111aaa11111bbo122o3322222o...
+....o12222233o2obbaa1111aaa11111aab1111abbo22o33222222o...
+....o122222333oo2baaa111aaa11112bb1111aab22oo333222222o...
+....o122222333oo221aaa111aa1111bbb111aaa222o3332222222o...
+...o1222222233o22111aa111bb1111bbb11bbb1122o3322222222o...
+...o1222222233o22111ooo11bb1111bb11ooo11122o3322222221o...
+...11222222333o22111ooooo11111111ooooo11122o33322222211o..
+...11112222333o22111o2oooo1111112ooooo11122o33322222211o..
+...oo211222333o22111o21ooo111111o1oo2o11122o33322222112o..
+.....oo2122233o22211o12ooo11B111o2oo1o11122o3332221112o...
+.......2122223o22211o1o11o111111o1111o11222o33222112oo....
+.......o1222233o2211oo111o111A11o111oo11222o33222122......
+......o12222333o22111oooo11111111oooo11122o33322212o......
+......o12222223o22211111111111111111111222o32222211o......
+......o112222223o2221111111o11o1111111222o222222212o......
+......o21122222oo222211111111111111112222oo22221122o......
+.......o222222o..o3222111111111111122222o..o222222o.......
+........oooooo....oo2222211111111222222o....oooooo........
+....................o3222222222222222oo...................
+...................ooooo2222222222ooooo...................
+..............ooo.oo223oooooooooooo322oo.ooo..............
+.............o211oo2123o3333oo3333o3212oo112T.............
+............oaa2111112o21123oo32112o2111112aao............
+............oca211112o21112oooo21112o211112aco............
+............obb21123oo11112oooo21111oo32212bbo............
+............o32212ooo2ba11oooooo11ab2ooo21222o............
+............oobc22ooo3aa21oooooo12aa2ooo22cboo............
+.............oac32ooo3ca21oooooo12ac2ooo32cao.............
+.............occ323oo3bb22oo..oo22aa2oo323cco.............
+.............oo3cc23o32222oo..oo22222o32cc3oo.............
+...............obac2oo3c32oo..oo23c3oo2cabo...............
+...............ooc33oocac3oo..oo3cbcoo33coo...............
+.................ooooocac3oo..oo3cacooooo.................
+.....................oocc3oo..oo3ccoo.....................
+......................o33oo....oo33o......................
+.......................ooP......ooo.......................
diff --git a/parts_pl_src/body/pl_dumbo_c.txt b/parts_pl_src/body/pl_dumbo_c.txt
new file mode 100644
index 0000000..b3d7a8a
--- /dev/null
+++ b/parts_pl_src/body/pl_dumbo_c.txt
@@ -0,0 +1,53 @@
+# pl_dumbo_c: from pixellab_src/pl_dumbo_c/base.png (variant of pl_dumbo) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 37)
+# head_top at (31, 13)
+# back at (31, 34)
+# tail at (54, 46)
+..................oooo^ooooo..................
+................oo3333333333oo................
+...............o33222222222233oo..............
+.............oo32222222222222233o.............
+............o33222111122222222223o............
+...........oo322211111222222222223o...........
+...........o32211111112222222222223o..........
+..........o332211111112222222222223o..........
+........ooo3322111112222222222222223ooo.......
+......oo3o33222222222222222222222223o33oo.....
+.....o222o32222222222222222222222223o3223o....
+....o2122o32222222222222222222222223o3222oo...
+...o2123o3222222222222222222222222233o3222o...
+..oo2233o32222o2222222222222222o22233o33222o..
+..o22333o32222oooo22222222222ooo22233o33322o..
+..o22333o32222ooooo22222222ooooo222333o3322o..
+..o32333o32222o3oooo222222oooooo222333o3323o..
+..o32233o32222o21ooo222222o1oo3o222333o3333o..
+...o3223o33222o23ooo222222o3oo2o222333o333o...
+....o333o33222o1o22o222222o22o1o22233o33ooo...
+.....ooooo3322oo111o222222o111oo22333oooo.....
+.........o33222oooo222B2222oooo222333o........
+.........o3332aa22222222222222aa2333oo........
+..........o333aa22222o22o22222aa3333o.........
+...........o33322222222A22222333333o..........
+........ooooo333332222222223333333ooo.........
+....oooooo33ooo33333333333333333oo333oo.......
+..oo3222333333oooo33333333333oooo333333ooooo..
+..o212222233oo333oooooooooooo333oo333222122oo.
+.o322222233oo3333o3333333333o3333ooo33222112o.
+oa32223333oo22233o3223333333oo32223o33332223ao
+oa322333oo2222233o22233332223o322222oo333223ao
+oc22333o32122233o222233332222o33222123o33322co
+oc3233oo2122233o322233oo332222oo3222123o3322cT
+ob323oo2222233oo222233ooo32222oo3322212oo3223o
+oac33oo222233oo212223o..oo32212oo3322122o323ao
+oac33occ2233ooo212233o...o322123oo332222o32cao
+.occ3obac233ooo22223o....o322223oo3322cbo33cco
+.occ3obac233oooac223o....o3222c3oo3332cao3cco.
+..oo3oocc333oooaa223o....o322ca3oo3332caoooo..
+....oooacc333oobc223o....o322cacoo333ccooo....
+......ocacc33oocc3333o..o3332ccooo33caao......
+.......occc3o.ocbc333o..o333ccco.o3ccbo.......
+........ooooo..oacc33o..o333caco..oooo........
+...............ocacc3o..o33caao...............
+................occco....occco................
+.................ooP......ooo.................
diff --git a/parts_pl_src/body/pl_dumbo_d.txt b/parts_pl_src/body/pl_dumbo_d.txt
new file mode 100644
index 0000000..f42be03
--- /dev/null
+++ b/parts_pl_src/body/pl_dumbo_d.txt
@@ -0,0 +1,49 @@
+# pl_dumbo_d: from pixellab_src/pl_dumbo_d/base.png (variant of pl_dumbo) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 37)
+# head_top at (31, 17)
+# back at (31, 34)
+# tail at (53, 46)
+.........................o^oo.........................
+.......oooooo.........ooo2222ooo.........oooooo.......
+.....oo111111oo.....oo2111111112oo.....oo211111oo.....
+....o1111111112o..oo21111111111122oo..o2111111111o....
+...o111111111111ooo2111111111111122ooo211111111111o...
+..o111oooooo21111o211aa111111111aa22o11112oooo33111o..
+..o11o3333333o111211aaab1111111aaab221112o333333o21o..
+.o113333333333o22111aaab1111111baab22213o33333333311o.
+.o1232222233333o2111aaa111111111bb2222oo333322222331o.
+o31332222223333o2111111111111111112222o33332222222312o
+o31322222223333o2111111111111111112222o33332222222322o
+o3232222222233o32111111111111111112222oo3322222222222o
+o3232222222233o221o1111111111111122o222o3322222222222o
+o3222222222223o221oooo1111111111oooo222o3222222222222o
+.o222222222223o222ooooo21111112ooooo222o322222222222o.
+.o222222222223o222o2oooo211112oooooo222o322222222222o.
+.o222222222223o222o21ooo222222o1oo2o222o322222222222o.
+..o22222222223o222o12ooo22B222o2oo1o222o32222222222o..
+..o22222222222o322o1o11o222222o1111o223o32222222222o..
+...o22222222222o22oo111o222222o111oo22o22222222222o...
+....o2222222222o321oooo2111A112oooo123o2222222222o....
+.....oo22222222oo2ba11111111111111ab2oo322222222o.....
+.......oo2222ooooo2a21111o11o11112b2ooooo2222ooo......
+.........ooooooo3oo3222111111112222oo3ooooooo.........
+.............oo333ooo222222222222ooo333oo.............
+............oo3333333oo32222223oo3333333oo............
+........oooo2223o333333oooooooo333333o3322ooooo.......
+......oo1111112oo223333333333333333223oo2111111o......
+.....oaa211112o11113o222233333222o32111oo211112ao.....
+.....oba21123o111112o1112322232112o311111o32112bT.....
+.....oba2123o111123o11112322232111o3211111o3112bo.....
+.....o33222o111123o111113o222o21111o321111oo3223o.....
+.....oob22oo21112oo111113o222o211111o311111o32aoo.....
+......oa33o2ab112oo1bb11o3222oo11ac1o3111aao33bo......
+......oc33o2ab112oo3ba21o32233o11aa2o3113aco333o......
+......oo33o2c3222oo3ab21o33233o12ac2o3223bco3coo......
+.......oc3o332222oo3c322o33333o22cc2o322233o3bo.......
+.......occ3occc22oo32222oo333o322222o32cb3oocco.......
+........oooocac33oooccc23o333o32cccoo33cacoooo........
+...........oocc33o.ocac33ooooo33caco333ccoo...........
+............o333o..oocc33o...o33cco.oo333o............
+.............ooo....o333o....oo33o...oooo.............
+.....................ooP......ooo.....................
diff --git a/parts_pl_src/body/pl_dustdevil.txt b/parts_pl_src/body/pl_dustdevil.txt
new file mode 100644
index 0000000..fec822f
--- /dev/null
+++ b/parts_pl_src/body/pl_dustdevil.txt
@@ -0,0 +1,44 @@
+# pl_dustdevil: from pixellab_src/pl_dustdevil/base.png (pixellab_library.py extract)
+# pivot at (31, 58)
+# aura at (32, 36)
+# head_top at (34, 23) (from part/probe)
+# back at (32, 37) (from part/probe)
+# tail at (46, 45)
+............ooooooooo............
+.........ooo111111111111oo..cbb..
+......ooo1111111111^1111112oaac..
+.....o2211112332222333311111bcc..
+....o2211233311221122113o22111o..
+...o322233222oo111112oo223o2111o.
+...o32233222owwo2222owwo222o2112o
+..ooo23322oowwo1o11owwowo22o2212o
+.oobao332o2owoowo11owoowoo22o112o
+owocbo33o32oo11oo22oo11oo2o2o112o
+ow1o21o3o322oooo3333oooo23oo113o.
+owwo321ooo32o11oooooo11ooo2113o..
+.oww321111ooooo1o11owooo11113o...
+..owww211111122ooooo11111123o....
+...oo3111111111111111112b2coo....
+......ooo11111111A11112b2ooo3o...
+......o2oooo22222B21222oooo33o...
+.....o12o33oooo2222222ooo2o33o...
+....oo1o3212222ooooooo22o2boo....
+....o12o321111111111b22c3o12o....
+....o2ooo221111111111122oo21o....
+...o31211oo221111111122o33o22o...
+...o2o1ooo.oooo222222oo223ooa23o.
+...ooo3o..o3o33oooooo1112o.o1o1o.
+.....ooo.ow2ooo111111112o..o2ooT.
+..........owww111111222oo...oo...
+.........b.oooo222222ooo3obb.....
+........bab....oo322o33o3oc......
+.........bb....oo2222oo2o........
+..............owooooo112o........
+..............owww11112o.........
+...............o311112oab........
+................o32122obb........
+................o1122o...........
+...............o2122o............
+...............o222o.............
+...............o22o..............
+................P3o..............
diff --git a/parts_pl_src/body/pl_dustdevil_b.txt b/parts_pl_src/body/pl_dustdevil_b.txt
new file mode 100644
index 0000000..f38bc7f
--- /dev/null
+++ b/parts_pl_src/body/pl_dustdevil_b.txt
@@ -0,0 +1,48 @@
+# pl_dustdevil_b: from pixellab_src/pl_dustdevil_b/base.png (variant of pl_dustdevil) (pixellab_library.py extract)
+# pivot at (32, 58)
+# aura at (32, 35)
+# head_top at (34, 17)
+# back at (32, 37)
+# tail at (46, 45)
+............ooooooo^oo.............
+.........ooo11111111111ooo...ccc...
+......ooo111111111111111112ooaac...
+.....o22111123222223333111111bcc...
+....o22112333112211221133111111o...
+...o222233222oo111111oo22331111o...
+...o22233222owwo2222owwo22232111o..
+..ooo233222owwowo11owwowo22231112o.
+.oobao33222owoowo11owoowo22233112o.
+owocbo33222oowwoo22oowwoo2223o112o.
+ow2o22o33222oooo3333oooo2222o1112o.
+owwo221ooo32owwoooooowwo22oo1122o..
+.oww321111ooooowowwowooo1111123o...
+..owww211111122ooooo1111111223oo...
+...ooo1111111111111111112b2cooo....
+....ooooo111111111111112b2ooo22o...
+...o22222ooo222222212223oo2222cco..
+..occc222222ooo3222222oo22222ccco..
+.o2ccca11111222ooAoooo22222ccccc2o.
+.o22caaaaa1122222222222cccccccc22o.
+o2211aaaaaaaaaaaaBaaabbaaaccc22222o
+o221111aaaaaaaaaaaaaaaaaaaa1112222o
+o22111111111aaaaaaaaaa111111111222o
+o221111111111111111111111111112222o
+occ2111111111111111111111111122ccco
+ooccaaa11111111111111111111aacccco.
+.occcaaaaa1111111111111aaaaacccco..
+..o2ccaaaaaaaaaaaaaaaaaaaaccccc2o..
+...oo22111aaaaaaaaaaaaaaa222222T...
+.....o22211111111111122222222oo....
+......oo22222222222222222222o......
+........o322222222222222222o.......
+.........o3222222222222223o........
+..........oc222222222cccco.........
+...........occcccccccccco..........
+............occcccccccco...........
+.............o22111112o............
+..............o221222o.............
+...............occcco..............
+...............occco...............
+...............o22o................
+................oP.................
diff --git a/parts_pl_src/body/pl_dustdevil_c.txt b/parts_pl_src/body/pl_dustdevil_c.txt
new file mode 100644
index 0000000..945e389
--- /dev/null
+++ b/parts_pl_src/body/pl_dustdevil_c.txt
@@ -0,0 +1,57 @@
+# pl_dustdevil_c: from pixellab_src/pl_dustdevil_c/base.png (variant of pl_dustdevil) (pixellab_library.py extract)
+# pivot at (31, 57)
+# aura at (32, 27)
+# head_top at (34, 7)
+# back at (32, 37)
+# tail at (44, 45)
+...........oooooooo^ooooooo.......
+.......oooo2222222211111111ooo....
+.....oo22222222333322222111111oo..
+...oo222222333333222222333331112o.
+..o222233333333332222222233333112o
+.o1223333333333333322222223333112o
+o11233333333333333333222233333112o
+o11233333333333333333333333331123o
+o11122ooo333333333333333oo2112233o
+.o1111122ooooooooooooooo111122333o
+.o211111111111111111111111222ooo3o
+.oo11o1111111111111111222222oo.o3o
+...o1ooo211221122222222o22oo3o.o3o
+...oooo2o1oo21oooooo2o23o2o33o..oo
+.....oo2o1o2o133333oo2o2oo333o....
+......o22o22oo22333332222333o.....
+......o2222ooo2223222ooo2233o.....
+......o3222owoooo23ooowo2233o.....
+......o3112o1ooo222ooo1o2233o.....
+......o3112o111o2223111o2233o.....
+......o311113332oAoo33322223o.....
+......o2111112oo2222oo222223o.....
+......o311111o2211222o222233o.....
+.......o321111111112222233o.......
+........o3211111112222233o........
+.........oo3222222222333oo........
+..........ooo3333333333oo.........
+.........oo33333333333o33o........
+........o333222223333o333o........
+........o23222222333222332o.......
+.......o22o221122B222223o32o......
+......o22oo3111111122223oo22o.....
+.....o223o.o32211112222ooo32o.....
+.....o22o...o331222233o3ooo2o.....
+.....o23o....oo3333333o3o.o33oo...
+....o3222o...oo33333oo33o.o3323o..
+....o2o2oo...o1ooooo2233o.oo2o2o..
+....ooo3o....o11112223oo...o3oo...
+......oo......o222223oo3o...oT....
+..............oo3323o2o3o.........
+.............o2o3333o223o.........
+.............o1ooooo223o..........
+.............o111112223o..........
+..............o3332223o...........
+...............o32233o............
+...............o32133o............
+...............o3233o.............
+...............o333o..............
+...............o33o...............
+...............o33o...............
+................Poo...............
diff --git a/parts_pl_src/body/pl_dustdevil_d.txt b/parts_pl_src/body/pl_dustdevil_d.txt
new file mode 100644
index 0000000..3c45e5d
--- /dev/null
+++ b/parts_pl_src/body/pl_dustdevil_d.txt
@@ -0,0 +1,51 @@
+# pl_dustdevil_d: from pixellab_src/pl_dustdevil_d/base.png (variant of pl_dustdevil) (pixellab_library.py extract)
+# pivot at (32, 58)
+# aura at (32, 33)
+# head_top at (34, 14)
+# back at (32, 37)
+# tail at (49, 45)
+............bb..oooooo^o.................
+............ab.o21111113oo...............
+............bco11112222233oooooo.........
+........oooo2o211122222223321113o........
+.......o2111332112222222233111123o.......
+......o21111132222222222222222222o.......
+.b...o211111112222222222222222223o.......
+.bc..o1111111122222222222222222333oo.....
+.bac.o111222122222222222222222222223o....
+..bboo3112222222oo222222oo2222222122o....
+...o33311222222owwo2222owwo222222122oo...
+..o31132222222owwowo22owwowo2222212233o..
+.o311112222222owoowo22owoowo22222222223o.
+o3111122222222oowwoo22oowwoo222222222233o
+o211222222222a2oooo3333oooo2a22222222223o
+o21122222222aa2owwoooooowwo2aa2222222223o
+o22222111222222ooowowwowooo2222221222233o
+o322222112222222222oooo22222222222ab2233o
+.o32222211222222222222222222222222b2233o.
+.oo32222111122222222A22222222111222333o..
+..o33222221111222222222222222111233333o..
+...o33322222221111222222222211133333oo...
+....ooo333332222111112333222223333ooo....
+.....ooo333333222222B3333333233ooo3oo....
+.....o33ooo3333333333333333333333o33o....
+....o323o333333333333333333333233o323o...
+....o22oo321122222222222222221233oo22o...
+...oo23oo321111111122222222113333oo32o...
+..o32223o322111111122222111232333oooa33o.
+..o3o2oooo32211111111111122233333o.o2o2o.
+..ooo3o..o3333221111111222333233o..o2ooo.
+....ooo...oo3333332222222222223oo...oT...
+............o332222222222222333o.........
+............co3332222222223333oc.........
+...........cacoo333333333333ooc..........
+............cc..ooo33333ooooo............
+.................o233333333o.............
+.................owww112233o.............
+..................o322223oo..............
+...................o32233obb.............
+...................o2233o.c..............
+..................o3233o.................
+..................o333o..................
+..................o33o...................
+...................oPo...................
diff --git a/parts_pl_src/body/pl_dynamo.txt b/parts_pl_src/body/pl_dynamo.txt
new file mode 100644
index 0000000..03b109c
--- /dev/null
+++ b/parts_pl_src/body/pl_dynamo.txt
@@ -0,0 +1,44 @@
+# pl_dynamo: from pixellab_src/pl_dynamo/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 40)
+# head_top at (31, 26) (from part/probe)
+# back at (38, 30) (from part/probe)
+# tail at (49, 41) (from part/probe)
+...........ooo.....ooo..............
+..........o11bo...o11bo.............
+..........occco...occcooooo.........
+...........ooo..o^2ooo2o222o........
+.........ooo23o2o2133322o222oo......
+......ooo122o22ooo11122o332222o.....
+.....o23o233ooo122oo3oo22231111o....
+....o33oo233oo2233o22222B2oo1112o...
+....ooo3333112o33obooo2oooocc2222o..
+...oo111112oo222ooo122ocbcb1co222o..
+..oo1oo33oo213322o1233o1cabc1c2222o.
+..o13221122oo13o22o2ooobac1baac222o.
+.o1o222112222o13o22o3ooo1ac1c1c2222o
+.o2c2222223222o132223311o1cacab2222o
+o12b2222222222co3o222223oaacacao223o
+o222222222222bao1322o3ooobacacao322o
+o22oo2222222222232322o3oocacacao223o
+o2owoo22222ooo2232A22oo33oacbcao333o
+o2oooo2222owooo22oo222111oacboao333T
+o2oo332222ooooo2o2o22oo33obobobo333o
+o2oo3o2222oo32o2o2o33o3oooboooo3333o
+o22oo222222o3oo2o2o33oo3obooobo333o.
+o22222332222oo22o3o3322o3bobobo33o..
+.o222oooooo22222o3o3o2222ooobo333o..
+.o22ooooooooo2223o33oooooobooo33o...
+..o2oocccccco223oo33o3oooooo333oo...
+...o22cbbbbco2o3o33o233oooo33ooo....
+....o22occco22oo33o2222o3333o22o....
+....oo2222223oo33oboooooooooo22o....
+....o2ooooooo333o2oo22o.....o22o....
+....o22oo33oo3oooo.o22o.....o.2o....
+....o.2o.ooo.oo22o.o22o.....o.2o....
+....o.2o.....oooo..o.2o....o2332o...
+...o.332o..........o.2o....o2..2o...
+...o...2o..........o.2o.....oooo....
+....oooo..........o.332o............
+..................o...2o............
+...................Pooo.............
diff --git a/parts_pl_src/body/pl_dynamo_c.txt b/parts_pl_src/body/pl_dynamo_c.txt
new file mode 100644
index 0000000..3980084
--- /dev/null
+++ b/parts_pl_src/body/pl_dynamo_c.txt
@@ -0,0 +1,45 @@
+# pl_dynamo_c: from pixellab_src/pl_dynamo_c/base.png (variant of pl_dynamo) (pixellab_library.py extract)
+# pivot at (33, 58)
+# aura at (33, 38)
+# head_top at (31, 23)
+# back at (38, 30)
+# tail at (48, 41)
+...........oo.......oo..................
+..........oabo.....oabo.................
+..........occo.....occooooo.............
+...........ooo...^o2oo2o222o............
+.........oo......o212222o222oo.....ooo..
+......ooo112o..ooo21112o332222o..oo223o.
+.....o23o233ooo122o333222331111oo2223o..
+....o33oo233oo2233o222222oo11111o2233o..
+....ooo3333112o333ooo3oooobc11112o33o...
+...oo11111133322oo3122cabbaco1122o33o...
+..oo1oooooo213322o1233aaBbc1c222223332o.
+.oo132211233o13322o2oobca1caac2222o223o.
+.o1o222112222o13322o3ooaac1cac22222ooo..
+.o2c2222222222o13223311o1cacab22222ooo..
+o12b2222222222333322223oaacaca32223o33oo
+o222222222222b23132o3o3oaacaca32223o122o
+o22oo222222222223222o33oaacaca32233oo3oo
+o2owoo2222ooo22232223333oacboa33333ooo..
+o2oooo222owooo22322A2111oacboa33333o33o.
+o2oo33222ooooo232322oo33obobob33333o333o
+o2oo3o222oo32o2o2333o3oooboooo3333ooooo.
+o22oo22222o3oo2o2333oo3obooobo3333T.....
+o2222222222oo22o23332233bobobo333o......
+o3222ooooo2222233o3o2222ooobo3333o......
+.o22oooooooo2223o33ooooooboo333oo.......
+..o2ooccccco223oo33o3oooooo333ooo.......
+..o322cbbbbo3o3o33323ooooo333o33o.......
+...oo222cco33oo333o22233333ooo33o.......
+...ooo333333oo333oooooooooo..o332o......
+...o33oooooo3333ooo33o........o32o......
+...o23oo33333ooo23o33o........o332o.....
+...o23o.ooooo...o3oo22o........o32o.....
+...o23o.........o33o22o........o332o....
+...o23o..........ooo22o........o332o....
+..o233o............o22o.........ooo.....
+..o333o............o22o.................
+...ooo............o3333o................
+..................o2223o................
+...................Pooo.................
diff --git a/parts_pl_src/body/pl_dynamo_d.txt b/parts_pl_src/body/pl_dynamo_d.txt
new file mode 100644
index 0000000..1fa4a65
--- /dev/null
+++ b/parts_pl_src/body/pl_dynamo_d.txt
@@ -0,0 +1,63 @@
+# pl_dynamo_d: from pixellab_src/pl_dynamo_d/base.png (variant of pl_dynamo) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 29)
+# head_top at (31, 7)
+# back at (38, 30)
+# tail at (40, 41)
+..........ooo.....ooo.............
+.........oaabo...oaabo............
+.........obbco...obbbooooo........
+..........ooo..^o3ooo3o222o.......
+.........ooo2o.o3233333o222o......
+......ooo122o2oooo2233o33222o.....
+.....o23o233ooo122o33o2223111o....
+....o3ooo233oo22oo2222222oo112o...
+....o3oooo3112o333ooo2ooooc2222o..
+...oo111112oo222oo112ocbcbaco22o..
+..oo1oooooo21o32o11o3oacaacac222o.
+..o13221122oo13o2o2o3obacacabc22o.
+.o1o222112222o13o2o33ooaacacac222o
+.o2c2222223222o1o223311oacacac222o
+o12b2222222222co3o2322ooaabcaco22o
+o222222222222bao1o2o3o3obacbcao22o
+o22oo22222222222o2o2o33ocacbcao23o
+o2owoo22222ooo2232o2ooo3oacccao33o
+o2oooo2222owooo22oo22111oaccobo33o
+o2oo332222ooooo2o2o2oo33obcbobo33o
+o2oo3o2222oo32o2o2o3o3oooboooo333o
+o22oo222222o3oo2o2o3oo3obooooo33o.
+o22222332222oo22o3o322oocobooo3o..
+.o222oooooo22222o3oo2222ocobo33o..
+.o22ooooooooo2223o3oooooooooo3o...
+..o2oocccccco223Ao3o33ooooo33o....
+...o22cbbbbco2o3o3o222B3333oo.....
+....o22occco22oo33oooo333oo.......
+.....o2222223oo33o333333o.........
+......ooooooo333oo333333o.........
+......o33333333333333333o.........
+......o23333333333333333o.........
+......o22222233223333333o.........
+......o22222222223333333o.........
+......o22222222223333333o.........
+......o22222222223333333o.........
+.....o322222222223323333o.........
+.....o322222222223o22o33T.........
+.....o322222222223o22o33o.ooo.....
+.....o322222222223o22o33oo222o....
+.....o322222222223o22o3332223o....
+.....o322222222223o22o333223o.....
+.....oo22222222233o22o333333o.....
+.....oo22222222233o22o33333o......
+.....o3o3222222333o223o333o.......
+.....o3o3333333333o223o33o........
+......ooo333333333o333o3o.........
+......o3oo333333333ooooo..........
+......o.3ooo333333322oo...........
+......o.3o..ooooooo33o............
+......o.3o........o.3o............
+......o.3o........o.3o............
+.....o2233o.......o.3o............
+.....o2223o.......o.3o............
+......oooo.......o2233o...........
+.................o2223o...........
+..................Pooo............
diff --git a/parts_pl_src/body/pl_earwig.txt b/parts_pl_src/body/pl_earwig.txt
new file mode 100644
index 0000000..9b79741
--- /dev/null
+++ b/parts_pl_src/body/pl_earwig.txt
@@ -0,0 +1,46 @@
+# pl_earwig: from pixellab_src/pl_earwig/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 41)
+# head_top at (24, 27) (from part/probe)
+# back at (37, 34) (from part/probe)
+# tail at (46, 51)
+............ooo...........................
+...ooo.....o112o..........oo..............
+.oo111oo...o2232o........oco........oo....
+o1122212o...ooo32o......obo.........oco...
+o22oooo22o.....o2o.....obco..........obo..
+.oo....o22o....o1o.....obco..........obbo.
+........o1ooo^oo1o....obbo............obo.
+........o132112o1oo...oabo............obo.
+........o2111113232o.obabo............obbo
+.......o311111113212oobabo............obbo
+.......o2111111111113obbbo............obbo
+......o321111111331123oobo............obbo
+......oa31111123oa212323oo...........obbbo
+......o1o1111131oo12232133B..........obbbo
+.....o3oo111113oo2122321322o.........obbbo
+.....o3131111122212123212213o.......ocbbo.
+......o3211111121211322222132o......obbco.
+.....occ21111221111323o2221312o....ocbbco.
+.....oaco211cbc22232212o222312o....obbcco.
+.....obo.oooacoo33212111o223123o..obabco..
+......o..o2obo333211A111o223223o.obabcco..
+..ooo...oo3oo22221oooo11o2222233obabcco...
+.ooacooo32o211111o212oo11o222232obbccco...
+oaco2b2112o21111oacc22112o222232occcco....
+.oac2b212oo22111oocac222o3o223223occo.....
+....ooooo..o111111oooooo333o22223oco......
+...........o211111111232223oo2223oo.......
+............o211111123332133oo2333o.......
+...........o3o3222223o22o2322oo233oo......
+..........o223oo33233o11o2o212oo233o......
+.........o112oo.o3333o11o33o112oo23T......
+.........o11o...o3o33o11o333o11o.oo.......
+.........o13....o33ooo11o3333o12..........
+........o11o...oo33o.o11oooooo22..........
+........o11o.ooocc3ooo12oooo.o22o.........
+.......oc21o...oooooo312o....o312oo.......
+......ocac3o........o222o....oo3cao.......
+.......ooooo........o2bco.....ooooo.......
+....................ooaao.................
+.....................Pooo.................
diff --git a/parts_pl_src/body/pl_earwig_b.txt b/parts_pl_src/body/pl_earwig_b.txt
new file mode 100644
index 0000000..d82fbec
--- /dev/null
+++ b/parts_pl_src/body/pl_earwig_b.txt
@@ -0,0 +1,46 @@
+# pl_earwig_b: from pixellab_src/pl_earwig_b/base.png (variant of pl_earwig) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (24, 21)
+# back at (37, 34)
+# tail at (46, 51)
+............o^o...........................
+...ooo.....o111o..........oo..............
+.oo111oo...o2232o........oco........oo....
+o1112212o...ooo32o......obo.........oco...
+o22oooo23o.....o2ooooo.obco..........obo..
+.oo....o33oooooo1o2111oooco..........obbo.
+........o331111o1o3311111oo...........obo.
+........o311113o13132111cc1oo.........obo.
+.......o211111313211331cabc13oo.......obbo
+......o1211111311111231cbbc1132o......obbo
+......o12111113111112331ccc11311o.....obbo
+......o1121113213311223111111311o.....obbo
+......oa33222323oa2122311111311c1o...obbbo
+......owo133313woow2223111B131cac1o..obbbo
+.....o2oo111113oo2w22231111311cbb1o..obbbo
+.....o2w311111222w2123332123111cc12oocbbo.
+......o21111111212122o333331111cc12oobbco.
+.....occ211112111113o111o3111111112ocbbco.
+.....oaco211cbc222oo31111o3111111122obcco.
+.....obo2oooacoo3o2o3A111o3311111122obco..
+......o21223bo222112o3333o2311111c22occo..
+..ooooo11112o21111oooo111o223111bbc2oco...
+.ooaco31111211111o211oo11o223211cbc2oco...
+oaco2o3311121111oacc11312o2232222cc2oo....
+.oac2oo133121133oocac233o22232222222o.....
+....ooo11133331111oooooo222232222223o.....
+......o11113111111111322222232222333o.....
+......o2111211111111332222223223333o......
+.......o311131111113323333233231133o......
+.......oo31123111132231112332311113o......
+.......o1o3333333322311111o3o311113T......
+.......o12o322322223311113o3o31112o.......
+.......o123oo2233333311113ooo3211o........
+........o233ooooo333o3113oo..o3223o.......
+........o133o..ocoooo3332o....o333o.......
+.......oc233o...ooooo3112o....o223o.......
+......ocac33o.......o3112o...ooac3o.......
+.......ooooo........o3bc2o....ooooo.......
+....................ooaao.................
+.....................Pooo.................
diff --git a/parts_pl_src/body/pl_earwig_c.txt b/parts_pl_src/body/pl_earwig_c.txt
new file mode 100644
index 0000000..95c502e
--- /dev/null
+++ b/parts_pl_src/body/pl_earwig_c.txt
@@ -0,0 +1,56 @@
+# pl_earwig_c: from pixellab_src/pl_earwig_c/base.png (variant of pl_earwig) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 39)
+# head_top at (24, 27)
+# back at (37, 34)
+# tail at (46, 51)
+...........o..............................
+........oooo..............................
+.......o13o.....oooo......................
+......o13o.....o3111o.....................
+.....o11o.......ooo11o....................
+....o11o...........o31oo..................
+....o13o............o11o..................
+...o11o..............o11o.................
+...o13o..............o311o................
+...o13o...............o11o................
+...o13o...............o13o................
+...o13o...............o13o................
+....o11o.............o333o..........oo....
+.....o11o...........o313o...........o1o...
+......o11o.........o113oo............o1o..
+.......o11o.......o13oo..............o11o.
+........o13oo^oo.o13o.................o1o.
+........o1331111o13o..................o1o.
+........o3111111333o..................o13o
+.......o311111111313o.................o13o
+.......o2111111111113o................oaco
+......o321111111331133ooo.............oaco
+......oa31111133oa31331bco............oaco
+......oao111113aooa3331abbB...........oaco
+.....o3oo111113oo3a33311bb1oo........o223o
+.....o3a311111333a313331bb11o........oaco.
+......o3211111131311333bbb11bo.......oaco.
+.......o21111111111333obb331bbo.....o113o.
+........o11111333333A11ob333bbo....oba33o.
+.........ooooooo33313111o333bb1o..o1abco..
+.........o333333331131bbo333cc1o.o311cco..
+..ooo...ooa1211121oooobbo33ccc13oca123o...
+.ooacoooc3oaaaabbo113oo31o3cc311o3bb33o...
+oaco22b13coaaaaboacc11b13o3cc331o3cc3o....
+.oac32c13oo11111oocac3b3o3oc33331o3co.....
+....ooooo..o111111oooooo333o33331o3o......
+...........obaaaabccc333333oo3331oo.......
+............o3aaabb133333333oo3311o.......
+...........o3o3333333o11o1333o33333o......
+..........o333oo33333o11o1o313o3333o......
+.........o113oo.o3333o11o33o113o333T......
+.........o11o...o3o33o11o333o11oooo.......
+.........o13....o33ooo11o3333o11o.........
+........o11o...oo33o.o11oooooo11o.........
+........o11o.ooocc3ooo12oooo.o11o.........
+.......oc31o...oooooo312o....o313oo.......
+......ocac3o........o322o....oo3cao.......
+.......ooooo........o3bco.....ooooo.......
+....................ooaao.................
+.....................Pooo.................
diff --git a/parts_pl_src/body/pl_earwig_d.txt b/parts_pl_src/body/pl_earwig_d.txt
new file mode 100644
index 0000000..8b5e50c
--- /dev/null
+++ b/parts_pl_src/body/pl_earwig_d.txt
@@ -0,0 +1,50 @@
+# pl_earwig_d: from pixellab_src/pl_earwig_d/base.png (variant of pl_earwig) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (24, 21)
+# back at (37, 34)
+# tail at (46, 51)
+.............................ooooo........
+...........................oobaaaao.......
+..........................obabcccabco.....
+..........................oabooooobb1o....
+............o^o..........oaco.....o111o...
+...ooo.....o111o.........oao.......o1bo...
+.oo111oo...o1232o........oco........ob1o..
+o1112212o...ooo32o.......oco........o11o..
+o12oooo22o...ooo2o........oo.........obco.
+.oo....o22o.o2oo1o.........o.........obco.
+........o1oo121o1ooo..................o1o.
+........o311111o1o12o.................o1o.
+.......oo211111313111o................obco
+......oo2b1111b131122oo...............obco
+.....o311b111b111111111o..............o12o
+.....oo31b111b11331113oooo............o12o
+......oa3b11b123oa21133211oo.........o112o
+......owo111b13woow2113211B1o........o112o
+.....o1oo111113oo2w2133211221oo......obbco
+.....o2w311111222w2133211111oo......o112o.
+......o31111111221113321b21111o.....ob12o.
+.....occ11111211121332331c11111oo..o2bc3o.
+.....oaco211cbc11333211o221111oo...o11cco.
+.....obo.o23aco333322Abbo21b1112o.ob123o..
+......o.o33obo3333111c11o31b1111oo1bb33o..
+..ooo...o12oo33311ooooo11o2b11211o11c3o...
+.ooacoooo21222211o212oo12o22212b1o33cco...
+oaco2b12co111121oacc11c12o222b2b22o3co....
+.oac2b22co211121oocac22co3o22b2222o3o.....
+....ooooo.o1211111oooooo333o2c2222oo......
+..........o12111212113333c23o222c2oo......
+..........o32121212113333c223o22c22o......
+...........oo22221131333332223o2c23o......
+..........o3o33322333322o3323coo333o......
+.........ob13oo332333o11o33oc22ooo3T......
+.........o1bo..oo3333obbo333o21o..o.......
+.........o12o...ooo33o11o33oo211o.........
+........oc12o..oo33ooo11ooo..o1bo.........
+........o1b2o..occ3o.ob1o....oc1o.........
+.......oo12co..ooooooc12co...o312oo.......
+......obac2o........o2122o...oo32ao.......
+.......ooooo........o222o.....ooooo.......
+....................ooaao.................
+.....................Pooo.................
diff --git a/parts_pl_src/body/pl_eel.txt b/parts_pl_src/body/pl_eel.txt
index 23ffc7e..89ca664 100644
--- a/parts_pl_src/body/pl_eel.txt
+++ b/parts_pl_src/body/pl_eel.txt
@@ -1,9 +1,9 @@
# pl_eel: from pixellab_src/pl_eel/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (32, 39)
-# head_top at (31, 20) (from part)
-# back at (39, 26) (from part)
-# tail at (41, 51) (from part)
+# head_top at (31, 20) (from part/probe)
+# back at (39, 26) (from part/probe)
+# tail at (41, 51) (from part/probe)
........oooooooo........
.....ooo222^2333oo......
....o3222222222333o.....
diff --git a/parts_pl_src/body/pl_eel_b.txt b/parts_pl_src/body/pl_eel_b.txt
new file mode 100644
index 0000000..2832c44
--- /dev/null
+++ b/parts_pl_src/body/pl_eel_b.txt
@@ -0,0 +1,50 @@
+# pl_eel_b: from pixellab_src/pl_eel_b/base.png (variant of pl_eel) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (33, 37)
+# head_top at (31, 18)
+# back at (39, 26)
+# tail at (43, 51)
+........................ooooo.....
+.............oooo^oooooo111222o...
+...........oo1111111222o211112o...
+..........o2111111111122o21222o...
+.........o1111111111aa122o2211o...
+........o111111111111a1222o211o...
+........o11111111111111122o2112o..
+.......o211111111111111122oo112o..
+.......o1111112oo1111111ac2o222o..
+.......o111111owoo111111aB2o222o..
+.......o111111ooao1111112223o212o.
+.....oo1111111oo311111122223o1112o
+..ooo11111111111aa1111132223o1122o
+.o11111111111111111111232223o222o.
+o211o11112222211111122o322aco22o..
+o11111122oooo32222222o3222aco22o..
+o222222oo....ooo3333ob222223o22o..
+.oooooo.........oobbbbb22223o22o..
+.................obzzzz2222o222o..
+.................ozazz22223o22o...
+................o2zAzz22223o2o....
+................o111122222o32o....
+...............o11111122a2o32o....
+...............o11111222co333o....
+..............o2111122223o2oo.....
+.............o2a11112223o32o......
+............o2111a122223o33o......
+............o1111111223o.oo.......
+...........o2a11111122ao..........
+...........o211a11113coo..........
+..........o2111111123ao.oooo......
+..........o2111111133o..o12o......
+..........oa11111113ao.o3122o.....
+..........o111111123oo.o3112o.....
+..........o111a11123o..oa3113T....
+..........o111111113o...oz312o....
+..........oz111111123o..oz312o....
+..........ooz111111123ooa3122o....
+...........oa11cz111223331222o....
+...........oazzzzz21122222223.....
+............oczzczz222222222o.....
+.............ooazzzzz222223o......
+...............oooaaaaaa3oo.......
+.................Pooooooo.........
diff --git a/parts_pl_src/body/pl_eel_c.txt b/parts_pl_src/body/pl_eel_c.txt
new file mode 100644
index 0000000..1e8c60a
--- /dev/null
+++ b/parts_pl_src/body/pl_eel_c.txt
@@ -0,0 +1,63 @@
+# pl_eel_c: from pixellab_src/pl_eel_c/base.png (variant of pl_eel) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 36)
+# head_top at (31, 11)
+# back at (39, 26)
+# tail at (43, 51)
+................oo....
+...............o3o....
+..............o33o....
+.............o32o.....
+............o323o.....
+...........o223o......
+..........o223o.......
+.........^123o........
+........o1223o........
+.......o2123o.........
+......o21223o.........
+......o1223o..........
+.....o21223o..........
+.....o22233o..........
+....o222233o..........
+....o2222333oo........
+...o2222222333o.......
+..o212222222233o......
+.o2112222222aa33o.....
+o321222222222223o.....
+o3122222222222223o....
+o312222oo22222223o....
+oo2222o1oo22222aaBo...
+oo2222ooao22222a23o...
+oo2222ooo22223b223o...
+o2222222aa2233b322o...
+.o2232222223obb3223o..
+..o3333333oobbz322co..
+...ooooooo.obzzzbcco..
+...........ozzzz223o..
+...........oaza2223o..
+...........ozzz222o...
+..........oA112222o...
+..........o1112223o...
+.........oz112223o....
+........o2111a22ao....
+........o111222coo....
+.......o11112223o.....
+......oa1112222o......
+.....o211a12223o......
+.....o111122aco.......
+....oa1112222o........
+....o11a1222ao........
+...o11112223o....oo...
+...o11112223o...o23o..
+...o1111222co..o3133o.
+..o1111122cco..o3223o.
+..o111a12223o..oa3223T
+..o111112223o...oz323o
+..oz111122223o..oz323o
+..ooz111z22223ooa3223o
+...oz11cz22222cc32233o
+...obzzzzz32222222333.
+....oczzczz332222333o.
+.....oobzzzz3333333o..
+.......ooozzzaaa3oo...
+.........oPoooooo.....
diff --git a/parts_pl_src/body/pl_eel_d.txt b/parts_pl_src/body/pl_eel_d.txt
new file mode 100644
index 0000000..ec9d0e2
--- /dev/null
+++ b/parts_pl_src/body/pl_eel_d.txt
@@ -0,0 +1,52 @@
+# pl_eel_d: from pixellab_src/pl_eel_d/base.png (variant of pl_eel) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 38)
+# head_top at (31, 16)
+# back at (39, 26)
+# tail at (43, 51)
+............c...........
+...........^bc..........
+......c....abc..........
+......ac...cbc..........
+.cc...bbooocbcoo..cac...
+.bab.ocb22222333obabc...
+.bcbo322222222233bcbc...
+..ccb211222222ab3bco....
+..oc2111222222bc2333o...
+..o22112222222222233o...
+.o3221222221222222333o..
+.o3212222212222222bB3o..
+.o2222222233222222bc3o..
+.o22222222222222223333o.
+.o22222222222222223333o.
+.o33222223332222233333o.
+.owo22222owo322223333bac
+.ooo22222oob322223333cbc
+.ooo22222oo32222333213o.
+.ob22222222bb2233o3333o.
+..o2222222222233ob333o..
+..o3o22o2222333o33333o..
+..o2ooo2323333ob33333o..
+.o13oooo1oooAbbb333bbo..
+o22o...o2o3zzzz3333cbc..
+.oo....o32ozzzz3333oc...
+........oozzzz33333o....
+.......o31zzzz3213o.....
+......o31111z33233o.....
+......o2111112333o......
+.....o3b11112233bo......
+.....o311b12223co...c...
+....o3111112233bo..oao..
+....o3111112233o..o2bo..
+....ob11112223bo.o3133o.
+....o111112233oo.o3223o.
+....o111b12213o..ob3223T
+....o111112123o...oz323o
+....oz111123233o..oz323o
+...cooz111122233oob3213o
+....bob11cz222233332223o
+....cobzzzzz32333333333.
+......oczzczz331213333o.
+.......oobzzzzz213333o..
+.........ooobbbbbb3oo...
+...........Pooooooo.....
diff --git a/parts_pl_src/body/pl_emberant.txt b/parts_pl_src/body/pl_emberant.txt
new file mode 100644
index 0000000..f643b21
--- /dev/null
+++ b/parts_pl_src/body/pl_emberant.txt
@@ -0,0 +1,47 @@
+# pl_emberant: from pixellab_src/pl_emberant/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 40)
+# head_top at (28, 24) (from part/probe)
+# back at (34, 33) (from part/probe)
+# tail at (44, 51)
+..ooooo.....ooooo............
+.o11223o...o11223o...........
+.o1oooo3o..o1ooo3o...........
+..o....o3ooooooo3o...........
+......oo3o2^222o3oo..........
+.....o233111222o3o3o.........
+....o221111112222222o........
+...o32111111222233222o.......
+...o321111112233333223o......
+...232211122233www3322o......
+..owo222222233wcwww322o......
+..owo22222223cwccww3223o.....
+..ooo22222223cowcww3223o.....
+..oc322222223bobbBa3233o.....
+oo33222223o223bbwa3223ooooo..
+owo223333owo2233332233o2112o.
+owwooaoooowo32222bb33o321123o
+.oaaooooboaao22222333o333223o
+..oo33obaaoo22233333o.o3333o.
+....o33333333333333o..o333o..
+......oo33333A33ooo..o323o...
+..ooo...oooooooo333ooo23o....
+.o133o..o3o3333ooo32223o.....
+o1332ooo33o333oo..ooooo......
+o33122223oo222o..............
+o333333oo.o223ooooooooo......
+.o33ooo...o1123occbb1bboo....
+..oo......o2223ocbcaa1a2bo...
+......oo.o211223o22ba22a2bo..
+.....o33oo21123o1o2ooooa2ao..
+.....o232o33332o21o33323bbco.
+.....o2o3o22223o21o3oo3obbcT.
+....o23oo3o3233o32oobco3obco.
+....o23o.ooo333oo2ocbco3oco..
+....o23o...oooo3o2obccb33o...
+....o23o...o3o.oo2occbc33o...
+....o23o..oo3o..o2oooooo3o...
+..oo323o.ob33o..o2o....o3ooo.
+.oaa233o.oooo...o22o...o33bbo
+.oooooo.........obbo....oooo.
+.................Po..........
diff --git a/parts_pl_src/body/pl_emberant_b.txt b/parts_pl_src/body/pl_emberant_b.txt
new file mode 100644
index 0000000..cd039f0
--- /dev/null
+++ b/parts_pl_src/body/pl_emberant_b.txt
@@ -0,0 +1,55 @@
+# pl_emberant_b: from pixellab_src/pl_emberant_b/base.png (variant of pl_emberant) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 37)
+# head_top at (28, 15)
+# back at (34, 33)
+# tail at (49, 51)
+........ooooo......ooooo.................
+.......o22233o....o22223o................
+.......o2oooo3o...o2ooo33o...............
+........o...o33o^ooooooo3o...............
+............oo3o2222222o3oooo............
+...........o33331112222o3o333o...........
+..........o3221111112223332233o..........
+.........o321111111122222222233o.........
+.........o3211111112223333222233o........
+........o33211111122233333322223o........
+........o3322111222233wwww3322233o.......
+.......oww32222222233wccwww322233o.......
+.......owo32222222233bwccww322223o.......
+.......oco32222222233boocww3222233o......
+.o.....oco3222222oo23bobwwa3222233o......
+o1o...o333222222o13o23cwwa322222333o.....
+o1o...ob33333333o1zo223333222222333o.....
+o1o...o3ozooooooo1zo3322bb222222333o.....
+o11o..oozzoocccco11oozo222222333333o.....
+o111ooo1zzooccbbo111ozzo2222333333o......
+.o111111zoooaaaaoz111zzo2333ooooooo......
+.oz1111zo3333333oo1111Bo333o3332223o.....
+..oozzzo3211111133zzzzo33oo333211123o....
+....ooo332222222233ooo33o333322111123o...
+.....ooo33333333333333oo3333322211223o...
+....o23ooo3333333333Ao3333333332222223o..
+...o22o333oooooooooo33332233o3332222233o.
+..o223o2222333333333322222233o333222223o.
+.o112o321112222222222222222333oo33212233o
+.o122o3211122222222222222222233oo3211233o
+.o123o32111222222222222222222333o3211233o
+.o22occc333333333333333333333333o3222233o
+.o22ocbaaaaaaaaaaaaaaabbbbbbbbcco3222223o
+o322ocbaabbbbbbbbbbbbbbbbbbbbbco22222223o
+o333ocbbbbbbbbbbbbbbbbbbbbbbbbo222222223o
+o33ooccbbbbbbbbbbbbbbbbbbbbbbco223222223o
+o333oo3ccccccccccccccccccccccco22o222233o
+.o333o3333333333333333333333333oo322233o.
+..ooooo2222222222222222222233333o33333o..
+......o32222222222222222223333333ooooT...
+.......oo33222222222222233333333oo.......
+.......o3o333322222222333332333oo........
+.......o33oo3333333333333222233o.........
+........o223oo333333333o3222233o.........
+........o32233oooooooooo3322233o.........
+.......o1122333o........o222223o.........
+......o22222333o.......o2111223o.........
+.......oooooooo........o3333333o.........
+........................Poooooo..........
diff --git a/parts_pl_src/body/pl_emberant_c.txt b/parts_pl_src/body/pl_emberant_c.txt
new file mode 100644
index 0000000..a13d52f
--- /dev/null
+++ b/parts_pl_src/body/pl_emberant_c.txt
@@ -0,0 +1,50 @@
+# pl_emberant_c: from pixellab_src/pl_emberant_c/base.png (variant of pl_emberant) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 40)
+# head_top at (28, 17)
+# back at (34, 33)
+# tail at (46, 51)
+..oooo....^ooo.................
+.o1123o..o1123o................
+.o1ooo3o.o1oo3o................
+..o..o3oooooo3o................
+.....o3o2222333oo..............
+....o221112222222o.............
+...o32111122222222o............
+...o32111122333222o............
+..oa32222223caa3223o...........
+..oa3222223caca3223o...........
+..oc3222223coca3223o...........
+.oo33222223ccaa3233o...........
+.oa322222o233322233o...........
+.oaa332oooo222bb333o...........
+.oaaoooocco2222333o............
+..oo3oobbc2223333o.............
+....o33332333333B..............
+.....o33333333ooooooooo........
+.......ooo333ooo32bb222oo......
+.........o333occ21111b122o.....
+........o322o3cb2111111122o....
+........o222o33221111112222o...
+.......o22222o322b111112b222o..
+......o2222222A322222222bb223o.
+.....o232112o22o2222222222222o.
+.....o2o2222o22o3222222222222o.
+....o2oo21123o22o222bb22222b23o
+...o22oo21123o22o222bb22222bb3o
+...o23oo2222o22223222222222233o
+..o22o.o211o2222o3222222222233o
+..o23o.o311o222oo3222222222b33o
+.o33oooo33o2223o33222bb2223bbo.
+.o33o32o3o2222o2o3322bb223333o.
+o333o232o22223o22o333o3333333o.
+o333o2o3o33223o21o3oo3o33333T..
+o33o23oo3o3o33o21oocco3o3bc3o..
+.o3o23o.oo3o3oo31occco3o3cco...
+..oo23o...ooocco2obbcc33oco....
+...o23o...o3ooco2obccc33oo.....
+...o23o..oo3o.oo2oooooo3o......
+.oo323o.ob33o..o2o....o3ooo....
+obb233o.oooo...o22o...o33bbo...
+oooooo.........obbo....oooo....
+................Po.............
diff --git a/parts_pl_src/body/pl_emberant_d.txt b/parts_pl_src/body/pl_emberant_d.txt
new file mode 100644
index 0000000..d6f7580
--- /dev/null
+++ b/parts_pl_src/body/pl_emberant_d.txt
@@ -0,0 +1,48 @@
+# pl_emberant_d: from pixellab_src/pl_emberant_d/base.png (variant of pl_emberant) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 40)
+# head_top at (28, 20)
+# back at (34, 33)
+# tail at (46, 51)
+...ooo.......ooo................
+..obb2o....^cbb2o...............
+.obbb32o.ooocc333o..............
+.oboooo2o131113323oo............
+..o..oo2311111232322o...........
+....o2331111112323222oo.........
+...o2111111111122222112.........
+..oo211111111222222223oo........
+.o322211111112233322222o........
+..o322121121223333322222o.......
+..o332221122233aaa332222o.......
+..3a3222122233acaaa32222o.......
+.o3ac22222223caccaa32223o.......
+.o3oo22222223coacaa322333o......
+.o3c322222223bobbBb32223oo......
+oo232222223223bbab32222333o.....
+oa3223222oao22333322223211bo....
+oaa33booooao22222bb2223211bo....
+o3bb23oobobb322222222332222co...
+.o32223bbb3322222223333b22cc....
+.o3322223322222223233o2bccco....
+..oo3232222222A3333333223co.....
+..oooo3233223233333322233o......
+.o2233o33332323333322233o.......
+obb22333223323333333333o....oooo
+ob222233222222222333ooo..ooobbbo
+ob3233331111121222333oo.o21b1bbo
+.oc333311111111122333cco32111bbo
+..oooo2111111111122333b3331111bo
+.....o2211111111122333bb33211bo.
+.....o3211111111222233bb333223o.
+....o33221111122233233cbo33333o.
+...o12333131132231133bcco3333T..
+..o112333333132311113cc33oooo...
+..o11233o333333311113cc33o......
+..o3123o.oo333o321133c3311o.....
+...o333o...o3oo32213oc3331o.....
+...o333o..oo3o.o3333oooo33o.....
+..o3233o.ob33o..o333...o333o....
+.obb233o.oooo...o212o..o33bbo...
+.oooooo.........obbbo...oooo....
+.................Poo............
diff --git a/parts_pl_src/body/pl_eyespot.txt b/parts_pl_src/body/pl_eyespot.txt
new file mode 100644
index 0000000..b4f1667
--- /dev/null
+++ b/parts_pl_src/body/pl_eyespot.txt
@@ -0,0 +1,49 @@
+# pl_eyespot: from pixellab_src/pl_eyespot/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 41)
+# head_top at (22, 23) (from part/probe)
+# back at (28, 37) (from part/probe)
+# tail at (48, 49) (from part/probe)
+......ooo.......ooo.......................
+.....oabo......oabo.......................
+....oab.......oab.........................
+....ob.....oooob..........................
+....ob...oo111oboooooo....................
+....oboo311^11ob113311oo..................
+.....oo1111111ooo1123111o.................
+....ooo111111123311123111o................
+...o1111111111111111123111o...............
+..oo11111111111112211231112o..............
+..oooo12112112oooo221223112o..............
+.o21oo2211222ooo31o222231ab2o.............
+.o21o1o22222o1oo1o1o22232ab2o.............
+.oooooo2222ooooo2o1o22233bb2o.............
+.o31o1o2222o21oo121o222332b2o.............
+.oo21o11112o2111121o222o3223o.............
+..ooo1111111o21121o2112o3233o.............
+..21111111111oooo321a12o3333o.............
+.o21o1111o11111111ba122o333o..............
+.o221111111111112B2222o3333o..............
+..o22222222222222o222o3333oo..............
+...o2ooooo2222ooooooo3333o2o........ooo...
+....ooo2222ooo33oo3333ooo222o......o111o..
+.....oo1112oo222oooAoo333a22o.....o11112o.
+.....o211111o122oocbb333ba22o.....o11112o.
+.....o313311223oo3333332bb23ooo.ooooo1123o
+..oo..oo22222ooo3ooo22322233o11o31112o233o
+ob13ooo3ooooooc3o312c123233oo111o21111o33o
+o2o23co333333333o2oc2212333oo2111o211abo3o
+oo.oc2o313333332oo2occo233o31o11abo11bbo3o
+....oooc211111111223oo22oo311o32abo322b3o.
+.......oc2222222223333oo32111o32bb2o3T23o.
+.......o3cc222222cb33333311a2o322b2o3333o.
+.......o322222222223333322abco33223o3333o.
+.......o211111111112233322bb3o33333o333o..
+.......o221111111122333332233o333333333o..
+........o2222222222c3ccc3333o33333oco3o...
+.........oc2222222cco223o333o3333occcoo...
+........c2cocccccc33o112o33oco33ooc22coo..
+......oob23oo3333333o112ooob23ooo.ooc23o..
+......o22coo.oooooooo22boo.oo323o...ooo...
+.......ooo..........oc3co....ooo..........
+.....................Poo..................
diff --git a/parts_pl_src/body/pl_eyespot_b.txt b/parts_pl_src/body/pl_eyespot_b.txt
new file mode 100644
index 0000000..7423c2e
--- /dev/null
+++ b/parts_pl_src/body/pl_eyespot_b.txt
@@ -0,0 +1,51 @@
+# pl_eyespot_b: from pixellab_src/pl_eyespot_b/base.png (variant of pl_eyespot) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 40)
+# head_top at (22, 20)
+# back at (28, 37)
+# tail at (52, 49)
+.......ooo........ooo......................
+......oabo.......oabo......................
+.....oab........cab........................
+.....ob......ooooboooo.....................
+.....ob...o^o111ob1112oo...................
+.....obooo111111ob111112oo.................
+......oo11111111oc21111123o................
+.....ooo111111111c211111123o...............
+....o21111111111111111111133o..............
+...occc111111111cccc11111113o..............
+..oaaaac1111111caaaac11111123o.............
+.obaoooac11111caooooac1111123o.............
+.oaowoooc1111caowooooac2222233o............
+.oaoooooc2222caooooooac2222233o............
+.oaoooooc2222caooooooac2222233o............
+.oaaoooac2222caoooooaac22222333o...........
+.ooaaobc211112caoooaac222222333o...........
+.o2caac11111112caaaao2211222333o...........
+ob12cc1111111111cccc211a1123333o...........
+o1a1111o1111o11111111aa1112333o............
+o11111111111111111111111113333o............
+o2111111111111111B1111111333333o...........
+.o311111ooooo1131111111133333333o..........
+.o33111o11111o3111111113333333bbo....ooo...
+..o3331112221111111A1333333333bbo...o111o..
+...o33331111111113333333333322bb3o.o11112o.
+....ooo333333333333333332232223b3o.o11112o.
+..oo23bbb333333333bbboo31122222333oooo1123o
+.o2123b2bbbbbbbbbbboo1111123222333o1111333o
+o1133o212222222222ob11111123222233o111ab33o
+o23bbo211111111111o222223333222233o111bb33o
+o2booo221111111111ob2bb33333222233cb11bb33o
+.oo..o2222211111122ooooo3332222233cb133b3o.
+.....o211222222222222233332222233o3b33333T.
+.....ob21111111111112b33211122333o3b33333o.
+....o3o21111111111112331111123333o333333o..
+....o3ob211111111112231111113333o3333333o..
+....o11ob22111111113o31111113333o333333o...
+.....o13ob22222222b3o3111113333o333333o....
+.....o333ocbb2222bb3o311113333o3333333o....
+......o333oo3bbbbb33o3333333oo333ob222oo...
+......ob233oo33333333o33333o33ooo.oob23o...
+.....ob22bo..ooooooooo2222ooo323o...ooo....
+......oooo..........ob11bbo..ooo...........
+.....................Poooo.................
diff --git a/parts_pl_src/body/pl_eyespot_c.txt b/parts_pl_src/body/pl_eyespot_c.txt
new file mode 100644
index 0000000..90df5f2
--- /dev/null
+++ b/parts_pl_src/body/pl_eyespot_c.txt
@@ -0,0 +1,60 @@
+# pl_eyespot_c: from pixellab_src/pl_eyespot_c/base.png (variant of pl_eyespot) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (29, 36)
+# head_top at (22, 10)
+# back at (28, 37)
+# tail at (52, 49)
+.....ooo......ooo.........................
+....oabo.....oabo.........................
+...oab......oab...........................
+...ob.....^oobo...........................
+...ob...oo11oboooooo......................
+...obooo1111ob113311o.....................
+....oo111111ooo112311o....................
+...ooo1111112331112311o...................
+..o11111111111111112311o..................
+.oo111111111111221123112o.................
+.oooo1211212oooo22122112o.................
+o21oo222222oooo1o22221ab3o................
+o21o1o2222o1oo1o1o2221bb3o................
+oooooo222ooooo2o1o22233b3o................
+oo1o1o222o22oo121o22233b3o................
+oo21o1111o2111121o222o333o................
+o2oo111111o21121o2212o333o................
+o21o1111311ooooo32b22o33o.................
+o22o1111o1111122o222o333o.................
+.o22222222222222222o333o..................
+..oo222222222222ooo3333o..................
+...ooooo2222oooo33333333o.................
+........oooocccc33333333o.................
+..........ocbbbb3333ab33o.................
+..........oc33323311bb3o..................
+..........occccc3311133o..................
+..........o3333b333333o...................
+.........ob3333b333333o...................
+.........o33111b21113o....................
+........o21333231A1a3o....................
+........o1111123B1abbo....................
+.......o2111112111bb3o....................
+.......o211113221113o................ooo..
+.......o13333b222233o...............o111o.
+......o311111b222212o..............o11112o
+.....oo111111b22o212oo.............o11112o
+...oo1o31111b22o21aboo............ooo2113o
+..o11co33333b22o112o3o...........o1111313o
+..o3oo311111b3o112o33o.ooo..ooooo1111ab33o
+...ooo31111133ob3o3332o111oo2111oo111bb33o
+.....oc1111133oooo3311o1111o211111o11bb33o
+.....o3bbbbbb333333111131111o111aao333b3o.
+.....o31111113333311ab1o111a1331bb1o3333T.
+......o1111113333311bb1o11ab1o311b1o3333o.
+......o2111113b333311b1o11bb2o31113o333o..
+......oob33333c33331112o333b2o33333o33oo..
+......oob2cccc3c3333333o33333o3333333oo...
+......o3o2333333c33333o333333o33333ooo....
+.......oooo333332o3333o33333o33333occo....
+.......cccoocccccoc3co3333ooco33ooc33oo...
+.....oo33co.oooooo333oooooo33coo..oc33o...
+.....o33co.......o113o....ooc32o...ooo....
+......ooo........oc33o......ooo...........
+..................ooP.....................
diff --git a/parts_pl_src/body/pl_eyespot_d.txt b/parts_pl_src/body/pl_eyespot_d.txt
new file mode 100644
index 0000000..199cfd1
--- /dev/null
+++ b/parts_pl_src/body/pl_eyespot_d.txt
@@ -0,0 +1,50 @@
+# pl_eyespot_d: from pixellab_src/pl_eyespot_d/base.png (variant of pl_eyespot) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 40)
+# head_top at (22, 20)
+# back at (28, 37)
+# tail at (52, 49)
+......ooo.......ooo........................
+.....oabo......oabo........................
+....oab.......oab..........................
+....ob.....^oooboooooo.....................
+....ob..ooo111ob111211oo...................
+....oboo111111ob11111111o..................
+.....oo1111111ooo11111111o.................
+....ooo111111122o111121111o................
+...cccc1111111cccccc1121111o...............
+.ooaaacc11111caaaaabc1221112o..............
+.oacocac1112oaaooocabc221112o..............
+oacooocac112caooo1ocac2221abo..............
+oaoowooac22caoowoo1oac2221ab3o.............
+oao2oooac22caooooowoac2221bb3o.............
+oao1oooac22cao2oo1woac22221b3o.............
+.oao1oao1111cao21woaac2222233o.............
+..oaaac11111ccaoooaao112322333o............
+.o2ccc1111111ccaaaac1111331333o............
+.oa111o111o1111cccc1aa113313111o...........
+.o21121111111111211111133333111o...........
+.o211322222111123B11112333311111o..........
+..o111oooooo222o1111113323311ab1o....ooo...
+...o22211111ooo11111233313311ab1o...o111o..
+....o32211111111122A333333321bb1o..o11112o.
+.....oo32222211223333322333222233o.o11112o.
+....ooo33333333333333321123222333ooo311ab3o
+..oo13o3333333333313o3211233333333o1131223o
+.o3113o1333333331ooo111a1233331321oo111333o
+o1122o3111111111o11b111123333313111o31ab33o
+o2obbo3111111111o2o2221233333313111o31bb33o
+oo.ooobb11111111oo1obb3o3333333311a1o22b33o
+.....o22bbb111111bbbooo33311133311a1o3333o.
+.....o211bbbbbbbb2222233321111333113o3333T.
+.....oc31111111111112b33211ab13333333o333o.
+....o3o31111111111112331111ab33333313o33o..
+....o33o22111111112b2311111bb333333a3o3o...
+....o11ob2211111122bo311a113333333333oo....
+....o3a3ob22222222bbo311ab133333b3333o.....
+.....o333oobb2222bb3o311bb333322o33333o....
+......o333oobbbbbb33o333333obbooo33333bo...
+......ob233oooo333333o3333oooo...ooob22o...
+.....ob22bo....ooooooo2223o.........ooo....
+.....ooooo..........ob11bo.................
+....................oPooo..................
diff --git a/parts_pl_src/body/pl_fawn.txt b/parts_pl_src/body/pl_fawn.txt
index 37f0f8c..a016787 100644
--- a/parts_pl_src/body/pl_fawn.txt
+++ b/parts_pl_src/body/pl_fawn.txt
@@ -1,9 +1,9 @@
# pl_fawn: from pixellab_src/pl_fawn/base.png (pixellab_library.py extract)
# pivot at (32, 60)
# aura at (33, 39)
-# head_top at (28, 26) (from part)
-# back at (34, 44) (from part)
-# tail at (44, 40) (from part)
+# head_top at (28, 26) (from part/probe)
+# back at (34, 44) (from part/probe)
+# tail at (44, 40) (from part/probe)
.oo................oooo.....
.o2o..............o222o.....
.oo2o...........o313o2o.....
diff --git a/parts_pl_src/body/pl_fawn_b.txt b/parts_pl_src/body/pl_fawn_b.txt
new file mode 100644
index 0000000..fc6b969
--- /dev/null
+++ b/parts_pl_src/body/pl_fawn_b.txt
@@ -0,0 +1,49 @@
+# pl_fawn_b: from pixellab_src/pl_fawn_b/base.png (variant of pl_fawn) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 39)
+# head_top at (28, 25)
+# back at (34, 44)
+# tail at (46, 40)
+.oo................oooo.......
+.o2o..............o222o.......
+.oo2o...........o313o2o.......
+.oo22o.........o21o332o.......
+..oo23o.......o21o333o........
+..oo33o......o32o3o32o........
+...oo33o....o32oo333o.........
+....o33ooo^.o3oo333o..........
+.....oo2222o3oooooo...........
+.....o2111233oooo.............
+....o21112223oo...............
+...o22122ww233o...............
+...ow222wooo23o...............
+...oo222o1wo23o...........oo..
+...o3222o11o23oo..........o2o.
+...o11222oo223oo....oooooo22o.
+..o2112222223oaaoooobc111o33o.
+..o112222233oca1obb22b2112oo..
+.o1122233ooocc11o2bb2bb2222o..
+o2w2233oooccca1ao22b22b22222o.
+o3o33ooacccca11ao222b2b22222o.
+.oooo.oaaaa111aA2222b2b22222o.
+......oa1a1111o32222b2o22222T.
+......oa11111ao22222b3322223o.
+......oa1111aao22222b3o22223o.
+.......oa1a1ao32223333o2222o..
+.......oc1aao322B3o33oo3222o..
+........oaaao33223oooooo3322o.
+.........ocaao322o.oo33oo332o.
+.........oooooo22o..o33o.o332o
+.........o33o.o22o...o3o..o32o
+.........o33o.o22o...o3o..o32o
+.........o23o.o22o...o3o..o32o
+.........o23o.o22o...ooo..o33o
+.........o23o.o22o...o3o..o33o
+.........o23o.o22o..oooo..o33o
+.........o23o.o22o.obooo..o33o
+.........o23o.o22o.oooo..ob3oo
+........o333o.o22o.......oooo.
+........o23ooo222o............
+.......obooo.o223o............
+.......oooo..obboo............
+.............oPoo.............
diff --git a/parts_pl_src/body/pl_fawn_c.txt b/parts_pl_src/body/pl_fawn_c.txt
new file mode 100644
index 0000000..022f8b8
--- /dev/null
+++ b/parts_pl_src/body/pl_fawn_c.txt
@@ -0,0 +1,63 @@
+# pl_fawn_c: from pixellab_src/pl_fawn_c/base.png (variant of pl_fawn) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 32)
+# head_top at (28, 17)
+# back at (34, 44)
+# tail at (44, 40)
+..oo.......................
+..o2o.............oo.......
+..o22o...........o2o.......
+..oo2o..........o23o.......
+..oo2o.........o2o3o.......
+..oo21o.......o2oo3o.......
+.o33o12o.....o22o333o......
+.oc3o12o.....o1o3333o......
+.oc3o22o....o12333b3o......
+.occ3o2o....o1o33bb3o......
+.ooc3o3o...o31o3bbbo.......
+..oc3o3o...o33o3cb3o.......
+...o3o3o...o3o33cbo........
+....oo3oo^oo3o333o.........
+.....o3222233o3oo..........
+....ob2bb2223oo............
+...o32b22ww223o............
+...ow222wooo22o............
+...oo222o1wo22o............
+...oo222o11o22o............
+...o1122ooo223o............
+..o21122222233o............
+..o1122222233o.............
+.o112222233ooo.............
+o2w223333oo33o.............
+o3o33oooocc33o.............
+.oooo...oca33o.............
+........oca32o.........oo..
+........oaa22A.........o2o.
+........oa122o........o22o.
+........o1122o....ooooo33o.
+........o1122o..oo2c22oooo.
+........o11223ooo2c11123o..
+........o1122232211b1b12o..
+........o1122222b11111123o.
+........o1122222212b22b22o.
+........oa122222222222223T.
+........oca1222222233222oo.
+.........oa122222333o222o..
+.........ooaa32223ooo223o..
+..........oobo3B3oo3o323o..
+..........ooooo2oo33oo33oo.
+..........o3o.o2o.o33oo33oo
+..........o3o.o2o..o3o.oo3o
+..........o3o.o2o..o3o..o3o
+..........o3o.o2o..o3o..o3o
+..........o3o.o2o..ooo..o3o
+..........o3o.o3o..ooo..o3o
+..........o3o.o3o..ooo..o3o
+..........o3o.o3o.oooo..o3o
+..........o3o.o3ooboo...o3o
+..........o3o.o3ooooo..oboo
+.........o33o.o3o......ooo.
+.........o23.o33o..........
+........oboo.o22o..........
+........oooo.oboo..........
+.............Poo...........
diff --git a/parts_pl_src/body/pl_fawn_d.txt b/parts_pl_src/body/pl_fawn_d.txt
new file mode 100644
index 0000000..645916c
--- /dev/null
+++ b/parts_pl_src/body/pl_fawn_d.txt
@@ -0,0 +1,61 @@
+# pl_fawn_d: from pixellab_src/pl_fawn_d/base.png (variant of pl_fawn) (pixellab_library.py extract)
+# pivot at (38, 59)
+# aura at (32, 32)
+# head_top at (28, 9)
+# back at (34, 44)
+# tail at (49, 40)
+...........o.............oooo..........
+...........oo...........o322o..........
+...........o3o.........o1o32o..........
+...........oo2o.......o1oo3o...........
+............ooo^.....o2o3o2o...........
+............oo3o....o2ooo3o............
+.............oooooo.oooooo.............
+..............o3112o3oooo..............
+.............o21112o3oo................
+............o21122w2oo.................
+............ow222woo2o.................
+............oo222o1o2o.................
+............o21222o22oo................
+............o1122222ooooo..............
+...........o112222oooo322o.............
+........ooo3w2233ooooo3111oooooo.......
+......oo12o3ooooooao3oo31oo3211oo......
+.....o11o22oooooaaao3oooo2113211oo.....
+....o3132222233oa11o322232111221oo.....
+....o3322233111oo1o3111133211133oo.....
+....ooo22o311111oo2111111332223oooo....
+...ooooooo1111111o11111111oo333oo33o...
+..oo2ooooo1111111o11111113ooooooo23oo..
+..o32311oo3111113o2111113oooo212332oo..
+..o3o111oooo222ooooo222oooooo221232oo..
+..o3o111oooooooo2222oooooooooo222o2ooo.
+.oo3o213ooooo221231122oooooo.oo3o322oo.
+oo213oooo..ooo2ooooA2o2ooooo..ooo122o3o
+oo212ooo....ooo22o11o2ooooo...ooo122o3o
+oo312o3o.....o3oo3oooo33o.....o2o2coo3o
+ocbacc3o.....o2323113o2oo.....ocbaaccoo
+ocbaccco.....o2323223o2oo......obaacco.
+ocbacco......ocaaaaaabcco......obaacco.
+oc322oo......occaaaabbooo.....o322ccoo.
+oo2222o.....o3oocaabbo22oo...o2222ooo..
+oo222o2o...o22oooaccoo11ooo.o2o2222oT..
+oo22oo3o...o22oooccooo111oo.oooo222oo..
+oo222ooo..o3222oooooooo111o.ooo2222oo..
+ooooooo...o3232o3ooooo2111oo.oooo2ooo..
+.ooooo....o3222o3o..oB2o11oo..oooooo...
+..........o3o22ooo..o322o1oo...........
+..........oo3223o....o22oooo...........
+..........o32oooo....oo222o............
+..........o32ooo......oo22oo...........
+...........ooooo.......ooooo...........
+...........oooooo......oooooo..........
+............ooooo......o332oo..........
+............oacoo.......ocaoo..........
+............oaco........ooaco..........
+............occo.........occo..........
+............oooo.........o33o..........
+...........o333o.........oo2oo.........
+..........o2233o.........o222oo........
+.........oo12ooo.........o21o2o........
+.........oooo............Pooooo........
diff --git a/parts_pl_src/body/pl_ferret.txt b/parts_pl_src/body/pl_ferret.txt
new file mode 100644
index 0000000..08977e2
--- /dev/null
+++ b/parts_pl_src/body/pl_ferret.txt
@@ -0,0 +1,46 @@
+# pl_ferret: from pixellab_src/pl_ferret/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 41)
+# head_top at (25, 23) (from part/probe)
+# back at (36, 36) (from part/probe)
+# tail at (47, 48) (from part/probe)
+..ooo....oo..ooo..................
+.oaabo.oo22ooaaaoo................
+obcoboo222^oabbbao................
+oboco211122obobbao..ooo...........
+.oco22112123oobbbo.obco...........
+..o3222222222obcooocco............
+..oo2222ooooooooocoo..............
+.ocboooobbbbbbccccoco.............
+.oocbbbboooobbbcccocco............
+.o1obbbo1o2obbcccooocco...........
+.oooooccooobbccoo3o.oo............
+.ooaaaoocbbbcoo333o...............
+.oaaaaabooooo33333o...............
+obboaaaaabb2233o33o...............
+.oobaaabobb333o333o....ooooo......
+..oobboobc3ooo333o...Bo32222oo....
+....ooooooooo3333o..o222111bb2o...
+........occc33333o.o32222111b23o..
+........occc3333o..o322221112233o.
+.......occcc3233o.o33332222222b3o.
+.......obbbb2233A.o33333222222b33o
+.......obaab2233o.o3333o3222b2233o
+......obaaa22233o..o3333o222222c3o
+......obaaa22223o..oo33o222122b33o
+......obbbb222233o..o3o3221222233o
+......oaaaa222222ooooo32212222333o
+......oaaaa2222222222222112223333o
+......oaaaa222222222211122223333T.
+......obaaa322222222222222233333o.
+.....o3obaa3322222222222223333o3o.
+....ob2occcc3332222322223332233o..
+....ob2ocbbbco3bb2333333333bb23o..
+....o22oobbbbobbb23333333oobb33o..
+....o223oobbbobb233oo3333occc333o.
+...o3223o.obbo22233o333333o33333o.
+..oab323o..ooo2223o33333oooooo33o.
+..obobco....o31233oooooo..occb3o..
+...ooo.....oab323o.......ocbobo...
+...........oaoaco.........oooo....
+............oooP..................
diff --git a/parts_pl_src/body/pl_ferret_b.txt b/parts_pl_src/body/pl_ferret_b.txt
new file mode 100644
index 0000000..5f6d919
--- /dev/null
+++ b/parts_pl_src/body/pl_ferret_b.txt
@@ -0,0 +1,49 @@
+# pl_ferret_b: from pixellab_src/pl_ferret_b/base.png (variant of pl_ferret) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 40)
+# head_top at (25, 18)
+# back at (36, 36)
+# tail at (51, 48)
+............o^oo..........................
+.........ooo1113oooo......................
+........o13111311111o.....................
+.....oooo1111311ooo11oo...................
+....oabo3111233oaaaoo11o..................
+...obboo313223oabbbao111oo................
+...obo223333322aobbao133o.................
+....o322o3o21222ocabo3111o................
+....oo222o2222222bco323111o...............
+...ocoo2222oooooooo22331133o..............
+...oocboooobbbbbccco3311113o..............
+..o3oocbbbboooobbbco33111133o.............
+.o32o1obbbo1o3obbcco23331133o.............
+.o13oooooccooobbcco323111123o.............
+o112ooaaaoocbbbcooo33311133oo..oooo.......
+o133oaaaaaboooooo33233111132ooob22boo.....
+.o3obboaaaaabb223o2233311332o22111bb2o....
+.o13oobaaabobb3o333131111232o222111222o...
+o1333oobboobb33223311311B323o22211122b2o..
+o331333ooooo3333113111113333o33222222b2oo.
+oo111133322333131131112132o3ooo322222223o.
+.o111131332222111111113122ooo3oo222b2223co
+.o11111311131111111A313322ooo3oo2222222cco
+.o13111311131111113133332ocoooo3o2222bbcoo
+.o331312111111111131223ooocc2oooo22122b3oo
+..o313111111113131333o3o3occ2222oo122223co
+..o233111111313133o2oooo32bb22122oo222ooco
+..o2o3121111323333ooo3o322bbb22122oo2bc3co
+...oo333111132233oo3o332222bb22222o3co3oo.
+....o2o321133223ooo32232222bb222112ocoo3o.
+.....oo2331323ooo3222222222bb222112ooooT..
+.....ooo23333oo33222212o222bc222222o3ooo..
+.....oooo223ocoo2221212o222co222222oooo...
+.....o333oooccoo2221121o22cco222223o......
+.....o3o3occcco32221212o33cco222223o......
+.....ooo3oocccoo2232222o3occo32222ooo.....
+......oo3oooccoo3232o2o3oocco33233ooo.....
+......oooooooccoo23232o3o3ccoo3ooooo......
+.....oaaoooo.oooo3333oooocoo.ooooooo......
+.....oboboo....oo3333oooooo..ocb33o.......
+......ooo.....oaaoaoo.......ocbobo........
+..............oaoaco.........oooo.........
+...............oooP.......................
diff --git a/parts_pl_src/body/pl_ferret_c.txt b/parts_pl_src/body/pl_ferret_c.txt
new file mode 100644
index 0000000..1379d68
--- /dev/null
+++ b/parts_pl_src/body/pl_ferret_c.txt
@@ -0,0 +1,50 @@
+# pl_ferret_c: from pixellab_src/pl_ferret_c/base.png (variant of pl_ferret) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (29, 40)
+# head_top at (25, 22)
+# back at (33, 33)
+# tail at (46, 48)
+....ooo.........ooo..............
+..ooa22o.......o2aaoo............
+.oaaaa2o......oaaaaaao...........
+.oabcc22o....o2bccbaao...........
+oabbbcc2o...o22obbbbaao..........
+oabbbcc3oo^oo2cobbbbbao..........
+oabbcco3222222coobbbbao..........
+oabcco21112222coocbbbao..........
+obbco2111222222oocbbabo..........
+.obo222222222222ooobbo...........
+..o22222221122223bbbo............
+..o222222222222233oo.............
+..ooo22223ooo222233o.............
+..owo2222ow2o222233o.............
+..oooaaa2oooo222333o.............
+..ooaaaaaboobb2233o..............
+..oaaaaaaa22bb2333B..............
+..ooooaaaabb23333o...............
+..oaoaaabobb333oo................
+...obbbbbb3oooo3o................
+....oooooooc3333o................
+........occc3333o................
+........occc3233o................
+........obbb32A3o................
+........oaaa2233o................
+.......o2aaa2233o................
+.......oaaa222233o....ooooo......
+.......oaaa222233o...o22222oo....
+.......oaaa2222233ooo22111222o...
+......o2aaa2222222222211122222o..
+......o2aaa2222222222222222222o..
+......o2aaaa2222222222222222222T.
+......o2aaaa2222222222222222222o.
+......o2baaa2322222322223222222o.
+......oooaaaao22bb233333o22bb22o.
+......o3obbbbo32bb2o3333o32bbb2o.
+......o33obbbbo2b22o3333bo22b23o.
+......o233obbbo2223obbbbboo22333o
+......o23o.oobo2223obbbooo.o3333o
+.....oo23o...oo223ooooo33o..o333o
+....ob223o...o3223o.oc33o..o3333o
+....obo3o...oa222o..oooo...obo3o.
+.....ooo....oaobco..........ooo..
+.............oooP................
diff --git a/parts_pl_src/body/pl_ferret_d.txt b/parts_pl_src/body/pl_ferret_d.txt
new file mode 100644
index 0000000..c8e1e0b
--- /dev/null
+++ b/parts_pl_src/body/pl_ferret_d.txt
@@ -0,0 +1,47 @@
+# pl_ferret_d: from pixellab_src/pl_ferret_d/base.png (variant of pl_ferret) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (25, 21)
+# back at (36, 36)
+# tail at (49, 48)
+.................ooooooooo................
+......ooo....o^ooooo222222ooo.............
+.....oaabo.oo33ooaaaoo2122222oo...........
+....obcoboo3333oabbbao212222222o..........
+....oboco311133obobbao22ooo22122oo........
+.....oco33113233oobbbo2obco2221123o.......
+......o3333333333obcooocco222211223o......
+.....ooo3333ooooooooocoo322222112223o.....
+....oocboooobbbbbbccccoco222222222233o....
+...o2oocbbbboooobbbcccocco22222222223o....
+...o2owobbbowo2obbcccooocco22222222233o...
+...o2oooooccooobbccoooo3oo222222213233o...
+..o22ooaaaoocbbbcoooooo3222222222132333o..
+..o22oaaaaabooooo3oooo33222222222122233o..
+.o22obboooaaabb33oooo3322222222223222333o.
+.o222oooccoaobboooo333322222222222222333o.
+.o2222oobbccbboooo3333222B22222222222233o.
+o2222223oooooooo3333222222222222222223333o
+o2212222333333333332222222222222222223333o
+o2222222223333323222222222222222222223333o
+o3222122222222222222A22222222222222223333o
+o322122222222222222222222222222222223333o.
+o322132222222222222222222223322222223333o.
+.o22222222222222222222222222332222233333o.
+.o32222122222222122212222222222222233333o.
+.o33222222222232322232222222222222233333o.
+.o3322222222222332322222222222222333333o..
+.oo333222222222332222222222222223333333o..
+..o33322222222222222222222222222333333T...
+..o33333222222222222222222223233333333o...
+...o333333222322222222223223333333333o....
+....o3333333323222333322333333333333o.....
+.....o33333333333333333333333333333oo.....
+......o333333333333333333333333333oo......
+.......ooo3333333o333b3o33333333ooco......
+.......occoo33333ob3bbbo333333ooccoo......
+......oaooccoo333obbb3co3333oooccooo......
+......oaoboooooooo3b33oooooo..oooooo......
+.......ooooo...oo3333oo......ocoboo.......
+...............oaoaoooo.......oooo........
+................ooooP.....................
diff --git a/parts_pl_src/body/pl_firecracker.txt b/parts_pl_src/body/pl_firecracker.txt
new file mode 100644
index 0000000..7f8c5e8
--- /dev/null
+++ b/parts_pl_src/body/pl_firecracker.txt
@@ -0,0 +1,47 @@
+# pl_firecracker: from pixellab_src/pl_firecracker/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (25, 24) (from part/probe)
+# back at (41, 36) (from part/probe)
+# tail at (42, 56) (from part/probe)
+.........o....................
+........oco...................
+.........ocooooo..............
+......ooooocacaco.............
+.....oc1^1oaoo................
+....o11aa11oo.................
+...o21111a11oo................
+....o11221a22o................
+..ooo1oo111c3o.............ao.
+.o2111oo112co.............11ao
+o1131131222o.............o113o
+o3o11311123o............o112o.
+.o2o313123o............oo33o..
+.o3oo3322o............o1oooo..
+..o313o3o.............o1311ao.
+...ooooo..............o3322co.
+.oo12ocooo.............oBooo..
+oa112co2111c..........o1a11a..
+oc22o2oc211a..........o1111co.
+.co1113oo2co..........o2c2oo..
+.oa1123b1oo............oooo1o.
+.ooc2oc2111o.oo.oooooo.13111a.
+..oo2oo323aoo1Ao223322o1o133o.
+..o313322ocoo1bacacoaoo31oooo.
+.oa122311oo1o32o31oo23aoo1311o
+.ooc2oo31aoao32o31o32o33o1211a
+..ooooaoooo1o23obbocoo2232b22o
+....c2a22oo1oooooo.oooc331ooo.
+...o112311aoo........oooo1312o
+..oa122c2aoo..........oo32a11o
+..oocooaoboo..........oo23oobo
+...oocoo222o.........oo3o12oo.
+.....o11a22ooo......o3322a1oo.
+....oa112co1ocoo..oo3o3ao211a.
+....ooc2ooo12o23o333o3c12o2bo.
+.....oo.o11b2cacooo33ao212oo..
+.......oo123o223o31o21o33To...
+.......oab2oo212occo311oco....
+........ooo.o22oo22oobao......
+............oaboo33cooo.......
+.............oP..ooo..........
diff --git a/parts_pl_src/body/pl_firecracker_b.txt b/parts_pl_src/body/pl_firecracker_b.txt
new file mode 100644
index 0000000..fc4d5a0
--- /dev/null
+++ b/parts_pl_src/body/pl_firecracker_b.txt
@@ -0,0 +1,54 @@
+# pl_firecracker_b: from pixellab_src/pl_firecracker_b/base.png (variant of pl_firecracker) (pixellab_library.py extract)
+# pivot at (31, 61)
+# aura at (30, 39)
+# head_top at (25, 14)
+# back at (41, 36)
+# tail at (43, 56)
+.......oooooo^o.....................
+.....oo22222222oo...................
+....o222111111222o..................
+...o22111111111122o.................
+..o2211111111111222o................
+.o222111111111122223o...............
+.o222221111111222222o...............
+.o2222222111222222233o..............
+o22222222222222b22233o..............
+o2aab222222222aab2233o..............
+o2abb22222222aaba223co..............
+ocb2bb222bb22ab2ab3cco..............
+oc222ab2baaaab22bacc3o..............
+oc322baaabaaa2222ccc3o..........ooo.
+o33222aab22bb22223c33o.........o112o
+.o3322bb222222223333o.........o1122o
+.o333222222222333333o........o1223o.
+..o3333222222233333o........o2223o..
+...o33333333333333o.........o223o...
+....oo3333333333oo.........o212o....
+......o33333333o...........o212o....
+.......ooooooooo...........o322o....
+.......o3333333o...........o3B22o...
+.......o3222223o............o3323o..
+.......o322222o.............oo333o..
+.......oo222oo2o..Aoo..oooo..oo333o.
+......o32ooo2122oo222oo2222ooooo333o
+......o321111222oo2122o22122322oo33o
+......o322222222oo2122o321223222o33o
+......o32222222o21o222o3222232223o3o
+......o3322222o222o2222o322333111oo.
+.......o3333oo2222o2222o3333o22122o.
+........oooo333333o333oo333o322222o.
+.......o33o333333o3333o.oooo322112o.
+.......o223oo333oooooo.....oo221112o
+......o322233oooo..........o3222222o
+......o3222222oooo..oooo..ooo322222o
+......o322223o222o.o2222oo322o32223o
+......o33223o21122o321112o3211o3333o
+......o3333o221222o321112oo2212o333o
+.......o33o322222oo3222222o2212o33o.
+........ooo322223o33222222o3222ooo..
+..........o332233o33222222o3233T....
+..........o333333o33222233o3333o....
+...........o33333o3333333oo333o.....
+............oooooo3333333ooooo......
+..................o33333o...........
+...................Poooo............
diff --git a/parts_pl_src/body/pl_firefly.txt b/parts_pl_src/body/pl_firefly.txt
new file mode 100644
index 0000000..aa89982
--- /dev/null
+++ b/parts_pl_src/body/pl_firefly.txt
@@ -0,0 +1,41 @@
+# pl_firefly: from pixellab_src/pl_firefly/base.png (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (31, 44)
+# head_top at (32, 30) (from part/probe)
+# back at (31, 42) (from part/probe)
+# tail at (43, 52) (from part/probe)
+...........oo......oo...........
+..........o11o....o11o..........
+...........o1oooooo1o...........
+...........ooobbbbooo...........
+.........oobaoaa^bobcoo.........
+........obbaaoaabbobbcco........
+.......ocbaaacaabbcbbbcco.......
+......ocbaaabbboobbbbbbcco......
+......ocbbbbbco33ocbbbbcco......
+.....occbbbbco3223ocbbcccco.....
+.....occcccoo211112ooccccco.....
+....occccoo3111111113oocccco....
+...occcoo1oooo1111oooo1ooccco...
+...ocoo331o1oo1111oo1o133ooco...
+...ocoo321oo1o1111o1oo123ooco...
+....ooo3211ooo1111ooo1123ooo....
+......o33a1ooo1B11ooo1b33o......
+.......o3322222oo2222233o.......
+.....o23oo33333A333333oo32o.....
+....o1211ooooo3333ooooo1121o....
+...o1111oo2o333oo333o2oo1111o...
+..o11113oo11o333333o11oo31111o..
+.o111112.o11ozzzzzzo11o.211111o.
+oo111122.oo3o111111o3oo.221111oo
+oo111213oz1o11111111o1zo312111oo
+.o111232oz111111111111zo232111o.
+..ooo32ooz111111111111zoo23Too..
+......o33o111111111111o33o......
+......o13o111111111111o31o......
+......o33oz1111111111zo33o......
+......o33ooz11111111zoo33o......
+......o33o.oz111111zo.o33o......
+......o33o..oozzzzoo..o33o......
+.....o22o.....oooo.....o22o.....
+.....ooP................ooo.....
diff --git a/parts_pl_src/body/pl_firefly_b.txt b/parts_pl_src/body/pl_firefly_b.txt
new file mode 100644
index 0000000..3556924
--- /dev/null
+++ b/parts_pl_src/body/pl_firefly_b.txt
@@ -0,0 +1,41 @@
+# pl_firefly_b: from pixellab_src/pl_firefly_b/base.png (variant of pl_firefly) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (31, 44)
+# head_top at (32, 28)
+# back at (31, 42)
+# tail at (45, 52)
+...........oo......oo...........
+..........o11o....o11o..........
+...........o1ooo^oo1o...........
+...........oooaaaaooo...........
+.........ooaaoaaaaoaboo.........
+........oaaaaoaaaaoaabbo........
+.......obaaaabaaaabaaabbo.......
+......obaaaaaaaooaaaaaabbo......
+......obaaaaabo33obaaaabbo......
+.....obbaaaabo3223obaabbbbo.....
+.....obbbbboo211112oobbbbbo.....
+....obbbboo3111111113oobbbbo....
+...obbboo1oooo1111oooo1oobbbo...
+...oboo331o1oo1111oo1o133oobo...
+...oboo321oo1o1111o1oo123oobo...
+....ooo3211ooo1111ooo1123ooo....
+......o33a1ooo1B11ooo1a33o......
+.......o3322222oo2222233o.......
+.....o23oooooooAoooooooo32o.....
+....o121ozyyccyyyycczzzo121o....
+...o112ozy1bb111111cc11zo211o...
+..o111ozy11bb111111bb11yzo111o..
+.o111ooz11bb1111111bbb11zoo111o.
+oo211occbbbbbbbbbbbbbccccco111oo
+oo211occcccccccccccccccccco211oo
+.o222oz111bb11111111bb111zo222o.
+..ooooz111bb11111111bb111zoooT..
+.....occbbcbbbbbbbbbbbbccco.....
+.....occcccccccccccccccccco.....
+......ozy1cc11111111cc1yzo......
+......oozyycc111111cc1yzoo......
+......o3ozzcczyyyyzcczzo3o......
+......o33ooocczzzzccooo33o......
+.....o22o...oooooooo...o22o.....
+.....ooP................ooo.....
diff --git a/parts_pl_src/body/pl_firefly_c.txt b/parts_pl_src/body/pl_firefly_c.txt
new file mode 100644
index 0000000..64b464f
--- /dev/null
+++ b/parts_pl_src/body/pl_firefly_c.txt
@@ -0,0 +1,64 @@
+# pl_firefly_c: from pixellab_src/pl_firefly_c/base.png (variant of pl_firefly) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (31, 36)
+# head_top at (32, 3)
+# back at (31, 42)
+# tail at (41, 52)
+..............o^...............
+..............oo...............
+.............occo..............
+.............obco..............
+............obbbco.............
+............obbbco.............
+...........obabbcco............
+...........ocabbcco............
+...........ocbbbbco............
+..........ocabbbbcco...........
+..........ocabbbbcco...........
+.........occcbbbbccco..........
+.........obccbbbbbcco..........
+........ocbbbbbbbbccco.........
+........ocbbbbccbbccco.........
+.......obaabbbccbbbcco.........
+.......obabbbbccbbbbco.........
+......obbabbbbbbbbbbcco........
+......obbccbbbbbbbbccco........
+......obcccbbbbbbbbcccco.......
+.....obbcccbbbbbbbbcccco.......
+.....obabbbbbbccbbbbbcco.......
+....obbabbbbboooobbbbccco......
+....obaabbbbo3333ocbbbcco......
+....obabbboo331112oobbccco.....
+....obabbo3211111123obccco.....
+...ocbbbooo11111111oooccco.....
+...ocbbo1oooo1111oooo1occco....
+..ocbbo31o1oo1111oo1o13occo....
+..ocbco31oo1o1111o1oo13occo....
+.ocbco3211ooo1111ooo1123occo...
+.ocbco32a1ooo1111ooo1b23occo...
+.ocbco333111111111111333occo...
+..occco3333111Ao1113333occco...
+..ocbccoo333333333333ooccco....
+...occbbco333333333oocccco.....
+....ooccccoooooooooccccco......
+......oooccco3333occcooo.......
+......o33ooco3333ocoo33o.......
+.....o22333oo3B33oo33332o......
+....o2123o33zzzzzc333o322o.....
+...o2112oo3z1111111z3o3222o....
+..o22213o3z111111111zo32221o...
+..o2222ooz11111111111oo22221o..
+.o22222oz111111111111zo222212o.
+o212222oz111111111111zo222211oo
+o212213oz111111111111zo312211oo
+o222232oz111111111111zo232222o.
+.ooo32ooz111111111111zoo33ooo..
+.....oo33z11111111111o33T......
+.oooo3o13o1111111111zo32o......
+..o333o113o11111111zo332o......
+...oooo1133oz11111zo3322o......
+......oo333oooooooo3333o.......
+.......o33o........o33o........
+.......o33o........o333o.......
+......o11o..........o33o.......
+......ooo............Poo.......
diff --git a/parts_pl_src/body/pl_firehose.txt b/parts_pl_src/body/pl_firehose.txt
new file mode 100644
index 0000000..b05e533
--- /dev/null
+++ b/parts_pl_src/body/pl_firehose.txt
@@ -0,0 +1,49 @@
+# pl_firehose: from pixellab_src/pl_firehose/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 41)
+# head_top at (25, 20) (from part/probe)
+# back at (37, 25) (from part/probe)
+# tail at (50, 50)
+..............oooo.......................
+.......ooooo.ocaabooooooo................
+.....oo31112oo^baabo112aboo..............
+....o2111111133ocaaao11bab3o.............
+...o111111111133obaao111aa22o............
+..o11111111111133obabo22cab22o...........
+..oo1111123211123ocabo33cbc22o...........
+.owo11111ooo11123oobbo33cbB222o..........
+.o3o1111o1o3o1123oobbo33cc3322o..........
+o13o11111oo2o1123oobboocco3332o..........
+o1o111111332o1123occooooo333222o.........
+oa111111o11o11233occo...o223222o.........
+o2211o11111aa233oooo....o222322o.........
+.o22221111112233o.......o222322o.........
+..o33oo2222233oo........o333323o.........
+...oo3333333oo..........o222323o.........
+.....ooooooo............o222223o.........
+.......................o332222o..........
+.......................o112323o..........
+......................o1112223o..........
+.....................o2211223o...........
+....................o11123123o...........
+...................o21111223o............
+..................oA2211212o.............
+..................o11132233o.............
+.................o11111223o..............
+................o11111223o...............
+..............ooo2211223oo..ooo..........
+..........ooo33o11123223oooo222oo........
+.......ooo22232o1111223oocbbbc223oo......
+.....oo21123223o1111223ooooaaab223ooo....
+....o2112223333o1111222oo22caaac33o32oo..
+...o11122333333o222232223322caabc3oo322T.
+..o11233o3333ooo3111222223223cbbc3o3113o.
+..o121112oooooooo222232233333cbboo211123o
+..o21111323ooooooo2222333333oooo22311123o
+..o221131111113ooooooooooooo211111131223o
+..o3222111111211111211111111311111123233o
+...o33321111211111121111111113111122333o.
+....oo3322223111111211111111131222333oo..
+......oo33333222222322222222233333ooo....
+........ooooo33333333333333333oooo.......
+.............oooooooPooooooooo...........
diff --git a/parts_pl_src/body/pl_firehose_c.txt b/parts_pl_src/body/pl_firehose_c.txt
new file mode 100644
index 0000000..350ecef
--- /dev/null
+++ b/parts_pl_src/body/pl_firehose_c.txt
@@ -0,0 +1,48 @@
+# pl_firehose_c: from pixellab_src/pl_firehose_c/base.png (variant of pl_firehose) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (31, 40)
+# head_top at (25, 18)
+# back at (37, 25)
+# tail at (50, 50)
+..............^ooo.......................
+...oooo......ocaabooooooo................
+..oaaaaoooooooobaabo11111oo..............
+.oaaaaaaaaaaaaaocaaao111b11o.............
+.oaoooaaaaaaaaabobaao111b111o............
+oaoooooaaaaaaaaabobabo1131111o...........
+oaoooooaaaaaaaaabocabo2231111o...........
+oaooooooaaaaaaabboobbo3232B112o..........
+oaooooooaabaaabbboobbo33332121o..........
+oaooooooaabbbbbbboobbooo333211o..........
+oaooooooaacbbbcccoccoo..oo22112o.........
+oaooooooaaccccccoccco....o32112o.........
+.oaoooooaccccccooooo....oo3311cco........
+.oaaoooaaccccoo.........obocccaco........
+..oaaoaaccooo...........obbaaacco........
+...oaaaooo..............ocbaabco.........
+....oooo................o3cccc3o.........
+.......................o212223o..........
+.......................o111223o..........
+...............oooooooo2111223oo.........
+...........oooo311111o2121123o32oo.......
+.........oo111113112o11111133o3222oo.....
+........o1131122322oA2112233o3322322o....
+........o111213333o11122223o333232111o...
+.......o111123333oc1112233oo3333321112o..
+.......o11122oooooacc2223o33ooo3332111o..
+.......o12213o333oaaaaccco32222oo32111o..
+.......o221112o333caaabcoo323222o21211o..
+.......o3211111oo23ccccco33333oo111121o..
+........o22211112ooo2233oooooo23111123o..
+........oo3321111211ooooooo1111121112oo..
+.......o2oo33221111112111121111112233o2o.
+......o1223o333221111211111211111333o32T.
+......o11223oo33332221111113112223oo3222o
+......o21132ooooo33333222223333ooo333222o
+......o2121122cbbcoooo333333ooocbbc22322o
+......o323111caaac22223oooo2222caaab2323o
+......o333211caac211113111111111caaao333o
+.......o3333obbbo2111131111111123cbbo33o.
+........oo33obbbo3222232222222233cbbooo..
+..........oooobco333333333333333occoo....
+.............oooooooPoooooooooooooo......
diff --git a/parts_pl_src/body/pl_flask.txt b/parts_pl_src/body/pl_flask.txt
new file mode 100644
index 0000000..9ccc2c0
--- /dev/null
+++ b/parts_pl_src/body/pl_flask.txt
@@ -0,0 +1,43 @@
+# pl_flask: from pixellab_src/pl_flask/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 44)
+# head_top at (32, 26) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (47, 50) (from part/probe)
+..............oooooooo..............
+.............oazaaaaaao.............
+............ozzaza^aaaao............
+............obazzzzzazbo............
+............ocbbbbbbccco............
+...........o1obabbbccco2o...........
+..........o11obbbbbccco21o..........
+..........o1113333333o211o..........
+..........o22111111111122o..........
+...........o221111111222o...........
+............oo33333333oo............
+...........oo1211111221oo...........
+.........oo11211111112211oo.........
+........o111111111122111111o........
+.......o11111111111111111111o.......
+......o1111113331B33333333111o......
+.....o133111322222221222223331o.....
+....o13321112111111112222213331o....
+....o13211121111111111111222231o....
+....o1221123oo31111113oo3333331o....
+...o1321113oooo33A333oooo3333331o...
+...o132111o11ooo2222o11ooo331331o...
+...o132211ocoooo2122ocoooo333331o...
+...o133212oo33o32221oo33o3233331o...
+...o1332221333312222133331231331o...
+...oo13112212212222221221333122oo...
+..o2o13112222222222223333333332o3T..
+.o12o1133bbb222233333333bbb3332o21o.
+o112o31333333333333333333333323o211o
+o12o.o113333311333333331133321o.o21o
+.oo...o2123331133133333113321o...oo.
+.......o31133333333133333312o.......
+........oo3113333333333211oo........
+.........ooo311111111113ooo.........
+........o122oooooooooooo221o........
+.......o112o............o211o.......
+........ooP..............ooo........
diff --git a/parts_pl_src/body/pl_flask_b.txt b/parts_pl_src/body/pl_flask_b.txt
new file mode 100644
index 0000000..a461820
--- /dev/null
+++ b/parts_pl_src/body/pl_flask_b.txt
@@ -0,0 +1,63 @@
+# pl_flask_b: from pixellab_src/pl_flask_b/base.png (variant of pl_flask) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 32)
+# head_top at (32, 4)
+# back at (31, 39)
+# tail at (38, 50)
+.......oooo^ooo.......
+......oazaaaaaao......
+.....ozzazazaaaao.....
+.....obazzzzzazbo.....
+.....ocbbbbbbccco.....
+....ooobabbbcccooo....
+...o12obbbbbccco22o...
+..o112obbbbbccco222o..
+..o2113333333333222o..
+..o2211111111121222o..
+...o22211121112222o...
+....o333333333333o....
+....o121122222222o....
+....o111111112222o....
+....o111111111222o....
+....o111133333322o....
+....o133333333332o....
+....o133331133232o....
+....o1o1111122oo2o....
+....o13oo1222oo32o....
+....o13ooo22ooo32o....
+....o13ooo12ooo32o....
+....o13oo1222o332o....
+....o131112222332o....
+....oaa1o1222o3aao....
+....o1311oooo3332o....
+....o131112223332o....
+....o131112223332o....
+....o13111A223232o....
+....oo3111222333oo....
+....oaccccccccccco....
+....oaaaaaaaaaccco....
+....oaaaaaaaaaccco....
+....oaaaaaaaaaccco....
+....oaaaaaaaaaccco....
+....occcccBcccccco....
+....o133333333332o....
+....o131112223332o....
+....o131112223332o....
+...oo131111223332oo...
+..o2o131121222332o3o..
+.o22o131122222332o22o.
+o212o131122212332o221o
+o22oo131122222332oo21o
+.oo.o132222223332o.oo.
+....o133331133332o....
+....o133332233332T....
+....o133333331232o....
+....o133133332232o....
+....o133313333322o....
+.....o1333333332o.....
+.....o3133333322o.....
+......oo1333322o......
+......ooo11222oo......
+.....o22oooooo22o.....
+....o212o....o211o....
+.....ooP......ooo.....
diff --git a/parts_pl_src/body/pl_flask_c.txt b/parts_pl_src/body/pl_flask_c.txt
new file mode 100644
index 0000000..30ea0d7
--- /dev/null
+++ b/parts_pl_src/body/pl_flask_c.txt
@@ -0,0 +1,56 @@
+# pl_flask_c: from pixellab_src/pl_flask_c/base.png (variant of pl_flask) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 40)
+# head_top at (32, 11)
+# back at (31, 39)
+# tail at (49, 50)
+.................oooo^ooo.................
+................oazaaaaaao................
+...............ozzazazaaaao...............
+...............obazzzzzazbo...............
+...............ocbbbbbbccco...............
+..............o2obabbbccco2o..............
+.............o12obbbbbccco22o.............
+.............o2113333333o222o.............
+.............o22111111112122o.............
+..............o222112111222o..............
+...............o3333333333o...............
+...............o1222222222o...............
+...............o1212222122o...............
+...............o1211111222o...............
+...............o1211111222o...............
+...............o1211111122o...............
+...............o1211a11122o...............
+..............o12111a111222o..............
+..............o121111111222o..............
+.............o1221111aa11221o.............
+.............o1211b11aa1bb212o............
+............o1221bbb111b1bc22o............
+............o1221cc1111bbbc222o...........
+...........o122111111a11cc1222o...........
+...........o12211111bac1111222o...........
+..........o12aa1aaaabccaaaaaaa2o..........
+..........o1a11aa1aaaaaaaaaaaa2o..........
+.........o1bbaabaaaaaaaaaaabbcc2o.........
+.........o1bbabbbbooBbbobbbbbcc2o.........
+........o1bba1bbooobAbbbooobcacc2o........
+........o1bbabooooobbbbboooobbcc2o........
+.......o1bb1boooooobbbbo11ooobccc2o.......
+..oooo.o1bb1bocooo1bbbbocoooobbcc2o.ooo...
+.o2122o1bbb1bocoooobbbbooo3cobbccc2o222o..
+o11223o1bbbbbcc33ccbbbbcc33c3bbbbc2o32212o
+o22ooo1bb11bbb3333bbbbbb3333bbbbbcc2ooo22o
+.oo..o1bb11bbbbbbbbbbbbbbbbbbbccacc2o..oo.
+....o1bbbbbbaaabbbboooobbbbaabccaacc2o....
+....o1bbbbbbbbbbbbboaabobbbbbbccbccc2o....
+...o1cb1bbbbbcbbbbbbbbbobbbabbccccccc2T...
+...o1ccbbbbbbba1abbbbbbbabbbbbcccaabc2o...
+..o1ccccca1abbaaabbbabbbaabbcccccabbcc2o..
+..o1cacbcaaabbbbbbbbbbbbbbcccbbcccbccc2o..
+..o1ccbccbabcccccbccccccccccccbccccccc2o..
+..o32ccccccccccccccccccccccccccccccc223o..
+...oo111122222222222222222222222222222o...
+.....ooooooooooooooooooooooooooooooooo....
+...........o222o..........o222o...........
+..........o212o............o211o..........
+...........ooP..............ooo...........
diff --git a/parts_pl_src/body/pl_flask_d.txt b/parts_pl_src/body/pl_flask_d.txt
new file mode 100644
index 0000000..9368338
--- /dev/null
+++ b/parts_pl_src/body/pl_flask_d.txt
@@ -0,0 +1,61 @@
+# pl_flask_d: from pixellab_src/pl_flask_d/base.png (variant of pl_flask) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 38)
+# head_top at (32, 6)
+# back at (31, 39)
+# tail at (47, 50)
+..............oooo^ooo..............
+.............oazaaaaaao.............
+............oazazzzaaaao............
+............obazzzzzaabo............
+............obbbbbbbbbbo............
+............oobabbbbbboo............
+...........o123333333332o...........
+...........o121111111222o...........
+...........o322222222233o...........
+............o3333333333o............
+.............o22222333o.............
+.............o12122233o.............
+.............o12122233o.............
+.............o1212a233o.............
+.............o1212c233o.............
+.............o12122233o.............
+.............o12122233o.............
+.............o1c1cccc3o.............
+.............o1c1aaac3o.............
+.............o1cabbbc3o.............
+.............o1caabbc3o.............
+.............o1caabbc3o.............
+.............o12cabbc3o.............
+.............o12cabbc3o.............
+.............o12caabc3o.............
+.............o122cabc3o.............
+.............o122cabc3o.............
+.............o1222bbc3o.............
+............o22222cbc32o............
+..........oo222222cbc332oo..........
+.........o2222222cbbc23322o.........
+........o222112a2cbc2223332o........
+.......o22211122cAbc22223332o.......
+......o222111cccaBc22222a3332o......
+.....o23c111bbbcabccccccccccc2o.....
+....o2caa11bbbccbbccccccbbbbbc2o....
+....o2cb11aaaacccccccbbbbbbbcc2o....
+....o2bbbbbbbbcaaaaaaaaaaccccc3o....
+...o2cbb1bbbbbbbbbbbbbbbbbbbccc2o...
+...o2cbaabbbbbobbbbbbbbbbbbbbcc2o...
+...o2cbaabbobbobbbbbbooobbbbbcc2o...
+...o2cbbabbooobbbbbbbbbbobbbbcc3o...
+...o2cbbbbbbbbbbbbbbbbbbbbbbbcc3o...
+...oo2bbbbbbbbbbbbbbbbbbbbbccc3oo...
+..o3o2cbbbbbbbbbboobbbbbbbbbcc3o3T..
+.o33o2ccbaaabbbbobbobbbbaaabcc3o33o.
+o323o32cbbbbbbbbbbbbbbbbbbbbc33o322o
+o33o.o2cbbbbbbbbbbbbbbbbccccc3o.o32o
+.oo...o2ccbbbabbbbbbbbbabccc3o...oo.
+.......o2cbbbbbbbbbbbbcbbcc2o.......
+........o2cccccccccccccccc3o........
+.........oo22cccccccccc333o.........
+........o33oo2222233333ooo3o........
+.......o313o.oooooooooo.o321o.......
+........ooP..............ooo........
diff --git a/parts_pl_src/body/pl_flea.txt b/parts_pl_src/body/pl_flea.txt
new file mode 100644
index 0000000..5a54d10
--- /dev/null
+++ b/parts_pl_src/body/pl_flea.txt
@@ -0,0 +1,40 @@
+# pl_flea: from pixellab_src/pl_flea/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 42)
+# head_top at (25, 33) (from part/probe)
+# back at (38, 32) (from part/probe)
+# tail at (48, 35) (from part/probe)
+.....................oo.................
+.................oooo33ooooo............
+..............ooo222222211323o..........
+............oooooooo1111221312oo........
+.........oooo3222112o3111221o122o.......
+........oao2221112211o2222B2o3222oo.....
+........oo221^11111221o222222o222o3o....
+...oooo.o22111111122221o22222o322o3o....
+..oaabbo333333311222222o223333o333o3T...
+.obaaboo2211111322222222o33333o333o33o..
+.obbboo3ooooo21132222233o3ooo3o333o33o..
+.ooccooo22222oo1132222333oaaboo3oooo3o..
+.o1oco222122222o21322233obaabo3obabo3o..
+.o123o2211122223o2233333obabco2obbbo3o..
+.o22o221112122233o233333occcco13occo1o..
+.o22o222112222333ooA333o1occo31ooco323o.
+.o3oo322222223ooo3o2333o12oo22o3oo32o2o.
+o3oowo2222223ooww3oo333o222ooo22oooo2o3o
+o23ooo222222owoww3oo333o223o23oo3oo2o21o
+oo1oaoo333o3oooaw3oo33oo223ooo22.oooooo.
+..o1oo3o3o2ooacww3oooooo333o33ooo.oo312o
+...oo3o112o33owwo3o33ooo33o.o3111oo2ooo.
+....oo322o2233333ooooo33oo..3ooooooo22o.
+...ooo3233333333ooo33ooo...oo322oo22oo..
+..o123o33ao33ooooo223o.....o32oo..ooo...
+..o1233oooo23o..o1223o....o2o32o........
+..oo23o..o23o...ooo23o...oo323o.........
+.o23oo..o22o...o122o3o..o32ooo..........
+.o223o...oo....o1223o...o3o23o..........
+..ooo..........o223o.....oooo...........
+...............ooo3o....................
+..............o223o.....................
+..............o223o.....................
+...............ooP......................
diff --git a/parts_pl_src/body/pl_flea_b.txt b/parts_pl_src/body/pl_flea_b.txt
new file mode 100644
index 0000000..a3759a7
--- /dev/null
+++ b/parts_pl_src/body/pl_flea_b.txt
@@ -0,0 +1,44 @@
+# pl_flea_b: from pixellab_src/pl_flea_b/base.png (variant of pl_flea) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 40)
+# head_top at (25, 25)
+# back at (38, 32)
+# tail at (50, 35)
+..................ooooooooo...............
+...............ooo222233ca3ooo............
+.............^o2222111222ca322oo..........
+........oooooooooo22111112cao222o.........
+.......oaao3222222oo2221122cbo222oo.......
+......ocao2221111222o2222222bao2222o......
+......oco222211122222o2222222ao2222o......
+...ooo.oaaaaaa33222222oo22222cc3223o......
+..oaabocccccccaaa322222o22222oc32233o.....
+.obaao3222222oocaac22222o2B223ca333ooo....
+.ocao22222222223cca32222o22233oa33o32o....
+.oco32211122222233bao2222o33333c3o2122o...
+..o2322111222222333cao233oooo33c321222T...
+.o22o22112222223222oca333oaabo3c322222co..
+.o22o222222222332222ca33obaabo3o33222ac2o.
+oo222o2222222o2222223cc3ocaaco3o3322aa22o.
+o3o22o222222o22222233cc3occcco3o333ca223co
+o2o222322223222233o2Aoc33occo33o3c32223aco
+o23o213222232223oo3233c333oo333oo3332oaa2o
+o22oo332222322ooww3233c333oo3333o333cca22o
+o32ooo322223ooobww3233c3333o33oooo3cc3222o
+o32waoo33333oooaww3233c333oo3o322oo333222o
+.o22222oooooooaww3233cc333ooo22122o33333o.
+.o3322222222223332333co333oo322222oo3333o.
+..o33222222222222333oco33ooo322222ooo33o..
+...o333333222233333ooo333oooo32222o333oo..
+...oo3333333333333o33o33ooooo333oo3233o...
+...aboo3333333333o323ooo...ooo33oo323o....
+..o33cco3333333oo3223o.....o3oo3o.ooo.....
+..o223coooooooooooo23o....o333oo..........
+..oo23o.o233o..oaaac3o...oo333o...........
+.o12oo..o23o...oc33cco..o3123o............
+.o333o...oo....o123oc...o3333o............
+..ooo..........o223o.....oooo.............
+...............ooo3o......................
+..............o123o.......................
+..............o333o.......................
+...............ooP........................
diff --git a/parts_pl_src/body/pl_flea_c.txt b/parts_pl_src/body/pl_flea_c.txt
new file mode 100644
index 0000000..31c99d2
--- /dev/null
+++ b/parts_pl_src/body/pl_flea_c.txt
@@ -0,0 +1,43 @@
+# pl_flea_c: from pixellab_src/pl_flea_c/base.png (variant of pl_flea) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 41)
+# head_top at (25, 26)
+# back at (38, 32)
+# tail at (50, 35)
+.....................oo....................
+....................o1o.ooooo..............
+...............^...o13ooo112oooo...........
+..............o1o.o12o22111oo322ooooo......
+...........o..o1oo3133211223222ooo111o.....
+..........o1oo31oo1132112222222321133o.....
+.........o11oo1133212212332222222233o......
+........oo11oo113222211222oo222ab22ooo.....
+........o2123212232211222112B22aab2222oo...
+........o2113222212212221222o22bab22333o...
+.....oooo212222211222222233o2222cc222ooo...
+....oaaco222221111222aac222o222222222222T..
+...obaa22321221112222aaa22222222222223333o.
+...ocbc21321211122112bbc2222ooo23233233oo..
+oooo332211211112211222222223aabo233c33333o.
+o1112222111112221112221111ocaabo23caco3333o
+.oo21221222112211222213333ocacco23cbco3oooo
+...o22221221121122221A22o33occco333cco2o...
+..o22ooo11212222oooo1222322occo3333co222o..
+.o3oo1wo3122222oow1o31oo332ooo33333o22o2o..
+..o2owwoo22222owoww1o111o332333323o3o222o..
+.o22owaoo32222oooawwo2211o3333o222o3332a2o.
+.oooowaoa22223oooawwo3333o333oo2223o33232o.
+...ooowwo22222oabwwo33oo33333oo3322oooo32o.
+...o22333oooo22oooo3222oo33o33o3332oo333o..
+..o323333222222233333332o33oo3o33a3o3233o..
+..oooo3oo22222213333oooooo3o.oo333oo333o...
+....oo3oo32233313oo3o33oo.oo.oo333o.ooo....
+....o33o3o213oo22oooo23o....o3233o.........
+....oo23oo213ooo2oo3323o...oo333o..........
+...o223o.oo13o.oooo3233o..o3223o...........
+...o333o...ooo...o3223o...o3333o...........
+....ooo..........o323oo....oooo............
+.................o323o.....................
+................o223o......................
+................o333o......................
+.................ooP.......................
diff --git a/parts_pl_src/body/pl_flea_d.txt b/parts_pl_src/body/pl_flea_d.txt
new file mode 100644
index 0000000..a28dfd0
--- /dev/null
+++ b/parts_pl_src/body/pl_flea_d.txt
@@ -0,0 +1,42 @@
+# pl_flea_d: from pixellab_src/pl_flea_d/base.png (variant of pl_flea) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 41)
+# head_top at (25, 28)
+# back at (38, 32)
+# tail at (48, 35)
+...................o..ooo...............
+...............oooo2oo222oooo...........
+..............o2oo2o311232111oo.........
+.............^o2o12311221112222o........
+............o1o22122122111222112ooo.....
+..........ooo1222122221121112211122o....
+.........o2o212212222222112222222oo.....
+........oo2121211212122222B22222222oo...
+........o3212121112211222222332222222o..
+...ooooo2221222112211222222222332223oo..
+..oaabbo2221222222222223222333233322T...
+.oaaacco21111122222222223333333333332o..
+.obabco2oooooo222222233233ooo333333332o.
+..occco2222222o2222222333oaabo33ooo333o.
+.o1oco222122222o22222233oaaabo3obaco33o.
+.o123o2111121222o3222223obabco2obaco33o.
+.o22o222211122223o32A223occcco13occo1o..
+.o22o212212222333o3322233occo31ooco323o.
+.o3oo221212223ooo3o3232333oo22o3oo32o2o.
+o3oow22112223ooww3o32323333ooo22oooo2o3o
+o23oo2221222owoww3o33333333o23oo.oo2o21o
+oo2oo3222223oooaw3o33333333ooo22.oooooo.
+..o2o3223323oacww3o33333333o33ooo.oo312o
+...oo332332333ww33o33333o3o.o3111oo2ooo.
+....oo32332333333o3333o3o3o..ooooooo22o.
+...ooo3333333333o33233o3oo.oo322oo22oo..
+..o113o33ao33o3oo32233oo...o32oo..ooo...
+..o223oooooo3oo.o2223o....o2o32o........
+..oo23o.oo33o...o3223o...oo323o.........
+.o22oo..o22o...o22233o..o32ooo..........
+.o223o...oo....o2123o...o3o23o..........
+..ooo..........o213o.....o.oo...........
+...............ooo3o....................
+..............o123o.....................
+..............o223o.....................
+...............ooP......................
diff --git a/parts_pl_src/body/pl_flutter.txt b/parts_pl_src/body/pl_flutter.txt
new file mode 100644
index 0000000..bbb43bf
--- /dev/null
+++ b/parts_pl_src/body/pl_flutter.txt
@@ -0,0 +1,37 @@
+# pl_flutter: from pixellab_src/pl_flutter/base.png (pixellab_library.py extract)
+# pivot at (27, 59)
+# aura at (32, 45)
+# head_top at (30, 34) (from part/probe)
+# back at (32, 39)
+# tail at (42, 53) (from part/probe)
+............oo........ooo...........
+...........o11o......o212o..........
+...........o22o......o322o..........
+............o33o.....o33o...........
+.............oo2o...o3o.............
+..............o3^...o3o.............
+...oooooo.....o3o...o3o....oooooo...
+..o333333o...o33.....3oo..o333333o..
+.o33222233o.o1o3ooooo31o.o33222233o.
+o332baa2233oo2232222232oo3322baa233o
+o32bacwb23oo222222B22222oo32bacwb23o
+o32bcccb23o22112111121122oo2bcccb23o
+o32bcccboo221331111113o122oobcccb23o
+o332bbb3o221221111111122222o3bbb233o
+o322222oo22oooo111111oooo223o222223o
+o331122o22o1o1oo1111o1oo1o22o221133o
+.o33213o2221oooo11A1oooo1222o31233o.
+.oo332o2222113121111213112222o233oo.
+..oo33o22212w1111111111121222o33oo..
+....oooo22b122111oo111221b22oooo....
+....o33232111111obbo11111123233o....
+...o33ao332111111aa111111223oa33o...
+...o3bwo33221111111111112233owb3o...
+...o3bcco332211111111112233occb3o...
+...o33bbo333222121112222333oTb33o...
+....o333oo3333222oo3223333oo333o....
+.....ooo..o33333o322o3333o..ooo.....
+........oo3oo333o333o33oo3oo........
+.......o223o223oo33oo322o322o.......
+........ooo113oooooooo311ooo........
+...........ooP........ooo...........
diff --git a/parts_pl_src/body/pl_flutter_b.txt b/parts_pl_src/body/pl_flutter_b.txt
new file mode 100644
index 0000000..e725084
--- /dev/null
+++ b/parts_pl_src/body/pl_flutter_b.txt
@@ -0,0 +1,46 @@
+# pl_flutter_b: from pixellab_src/pl_flutter_b/base.png (variant of pl_flutter) (pixellab_library.py extract)
+# pivot at (27, 59)
+# aura at (32, 41)
+# head_top at (30, 30)
+# back at (32, 39)
+# tail at (42, 53)
+..........o..............o..........
+..........oo............oo..........
+..........oo............oo..........
+..........o2o..........o1o..........
+..........o1o..........o1o..........
+..........o1o..........o1o..........
+..........o11o........o11o..........
+..........o11o........o11o..........
+..........o31o........o13o..........
+...oooooo..o33o......o33o..oooooo...
+..o333333o..o3oo^ooooo3o..o333333o..
+.o33222233o.o3322222233o.o33222233o.
+o332baa2233o222222222222o3322baa233o
+o32bacwb23o22221111112222o32bacwb23o
+o32bcccb2o2221111111111222o2bcccb23o
+o32bcccbo221111111111111122obcccb23o
+o332bbbo22111331111113311122obbb233o
+o322222o22112211111111221112o222223o
+o33112o2211oooo111111oooo1122o21133o
+.o3321o221o1owoo11B1owoo1o122o3233o.
+.oo33322211woooo1111oooow11122333oo.
+..oo3o22111w131211A12131w11122o3oo..
+....oo221111w1w111111w1w111122ooo...
+.....o2211b112111oo111211b1123o.....
+.....ob211111111obbo111111112bo.....
+.....oaa111111111aa111111111aao.....
+.....ocaa1111111111111111122aco.....
+.....occaaa111111111111112aacco.....
+.....o3ccaaaa1111111111aaaaac3o.....
+.....o332caaaaaa2222aaaaaacc23o.....
+......o321cccaaaaaaaaaaccc123o......
+......o332111cccccccccc111133o......
+.......obb1111111111111111bbo.......
+.......o3baa111111111111aab3T.......
+........o3aaaaa222222aaaaa3o........
+.........o3ccaaaaaaaaaaac3o.........
+........oo333occcccccco333oo........
+.......o223o22o333333o22o322o.......
+........ooo113oooooooo311ooo........
+...........ooP........ooo...........
diff --git a/parts_pl_src/body/pl_flutter_c.txt b/parts_pl_src/body/pl_flutter_c.txt
new file mode 100644
index 0000000..f7a678a
--- /dev/null
+++ b/parts_pl_src/body/pl_flutter_c.txt
@@ -0,0 +1,48 @@
+# pl_flutter_c: from pixellab_src/pl_flutter_c/base.png (variant of pl_flutter) (pixellab_library.py extract)
+# pivot at (27, 59)
+# aura at (32, 39)
+# head_top at (30, 22)
+# back at (32, 38)
+# tail at (44, 53)
+..................oo........ooo.................
+.................o11o......o212o................
+.................o22o......o322o................
+..................o33o.....o33o.................
+...................oo2^...o3o...................
+....................o3o...o3o...................
+....................o3o...o3o...................
+....oooooo.........o33.....3oo........oooooo....
+...o333333oo......o1o3ooooo31o......oo333333o...
+..o322222233o....oo2232222232oo....o3322c2223o..
+.o33222ac2223o..o22222222222223o..o3222ac22223o.
+o322c22cc22223ooo221121111211222oo33122cc22a233o
+o32ac222221a23oo22133111111331223o32aa22222ac23o
+o32cc22222cb23o2212211111111222223o2ac22222cc23o
+o322222b22222o222oooo111111oooo223o22222a322223o
+o322322c2222o322o1owoo1111owoo1o22ooo222c223223o
+o32ac2222acoo2222w3ooo1111oooow222o3xoa2222ab23o
+o33ac2222aox3o222w131211112131w22223xoa2222ac33o
+o332222222ox3o2212w1w111111w1w212223xxo22222233o
+.o3322ac2oxx3o22b122111oo111221c2233x3o22a2233o.
+..o332ac2o3xxxo2211111ocBo1111112323xxo22ac33o..
+...o33322o333xxoo221111aA1111122ooxxxxo22333o...
+....oo3333o3xxx33oo21111111123oo3xx3x3o333oo....
+.....oooooo33xxxx33ooo3223333o33xxx33oooooo.....
+.....o3333oo3x3xxxxx3333333333xxxx333o3333o.....
+....o3222aoo333x3xxx3xxxcx3xxxx3x333ooa22c3o....
+...o33a22o12oo333xxxxxxxxxxx3xx333oo31o22a23o...
+...o31c22o1232ooo233x3xxxxx3333ooo2231o22223o...
+...o3222o113212222o3333333332oo22212311o2223o...
+...o322ao1132111122oooo33ooo22221111321oa223o...
+...o332ao12311111111222oo22111111111321ob233o...
+....o333o133111111111112211111111111131o333o....
+.....oooo2o3211111111111111111111111331oooo.....
+.........oo32211111111111111111111113oo.........
+..........o33321112111111111112112133o..........
+...........o333111211111111111112233T...........
+............o33322221211111222122333o...........
+.............o33332222222222233333oo............
+..............oo3333o33333333333oo..............
+...............o3223oooooooo3222o...............
+...............o1323o......o32311o..............
+................oooP........ooooo...............
diff --git a/parts_pl_src/body/pl_flutter_d.txt b/parts_pl_src/body/pl_flutter_d.txt
new file mode 100644
index 0000000..ce5d45b
--- /dev/null
+++ b/parts_pl_src/body/pl_flutter_d.txt
@@ -0,0 +1,59 @@
+# pl_flutter_d: from pixellab_src/pl_flutter_d/base.png (variant of pl_flutter) (pixellab_library.py extract)
+# pivot at (28, 58)
+# aura at (32, 33)
+# head_top at (30, 15)
+# back at (32, 39)
+# tail at (42, 53)
+................oo..............ooo...............
+...............ooo.............oooo...............
+..............o311o...........o3211o..............
+..............o322o...........o3222o..............
+...............o332o..........o332oo..............
+...............ooo2o..........o3ooo...............
+.................oo2o........o2o..................
+..................o2o........o2o..................
+..................o3o........o3o..................
+..................o33oo^oooooo3o..................
+.................oo3322222222333o.................
+...............oo2222222222222233oo...............
+...ooooooo...oo22222222222222222223oo...ooooooo...
+..o3333333o.oo22211221111111122222222o.o3333333o..
+.o333222333oo2111111111111111111222223o333222333o.
+o333222233oo22111111111111111111122222o3322222333o
+o332aaaa23o1111111111111111111111122222o32aaaa233o
+o32aaccwao111111111111111111111111122222oaaccwa23o
+o32acccco21111111111111111111111111122223occcca23o
+o32acccco21111111111111111111111111112222ooccca23o
+o32accco2221111111111111111111111111112222occca23o
+o332aaao2221111111111111111111111111112222oaaa233o
+o323222o222223oooo11111111111111ooooo122222o22223o
+o33112o32222oowoooo111111111111ooooo1o22222o21133o
+o33322o3222o1wwwoooo1111111111owwoooo1o2222o22233o
+.o3321o322o11wwwooooo11111111oowwoooo11o222o2333o.
+.oo333o322o11oooooooo11111111oooooooo11o222o333oo.
+..o333o322owwoooooooo1111A111oooooooowwo222o333o..
+...oooo332owwoooooooo11111111ooooooo3wwo223oooo...
+......o332oww32o3332o11111111o2o33313wwo223o......
+....ooo332o1w311oo11o11111111o21oo113wwo233ooo....
+...oooo3332oww211112o111111111o11112wwo2233o33o...
+...o33o33322oowwww1o11111111111owwwwoo22333o33o...
+..o33bao333211ooooo111111B111111oooo222233oab33o..
+..o3bawoo33322111111111oooo11111111122233oowab3o..
+..o3bacco33322221111111111111111112222333occab3o..
+..o3baab3o333222211111111111111122222333o3baab3o..
+..o333a33oo3333222222111111122222223333ooo3bb33o..
+...o3333oooo33333222222222222222233333oooo3333o...
+....oooo..oooo33333222222222222333333ooo..oooo....
+..........o33ooo3333333333333333333oo33o..........
+.........o33aa3ooo33333333333333ooo3aao3o.........
+.........o3aacc33o3333oooooo3333oo3ccwa3o.........
+.........o3abcc3o3333333333333333o3ccca3o.........
+.........o33aa3o112322222222223311o3aa33o.........
+..........o333oo11o321111111123o11oo333o..........
+...........oooo11oo321111111123o311oooo...........
+..............o13oo322111111223oo33T..............
+...............oo.o332222222233oooo...............
+..................o22oo3333o332o..................
+..................o112oooooo211o..................
+..................o112o....o211o..................
+...................ooP......ooo...................
diff --git a/parts_pl_src/body/pl_flyfish.txt b/parts_pl_src/body/pl_flyfish.txt
new file mode 100644
index 0000000..c1f6c1a
--- /dev/null
+++ b/parts_pl_src/body/pl_flyfish.txt
@@ -0,0 +1,46 @@
+# pl_flyfish: from pixellab_src/pl_flyfish/base.png (pixellab_library.py extract)
+# pivot at (41, 60)
+# aura at (31, 40)
+# head_top at (30, 26) (from part/probe)
+# back at (40, 31) (from part/probe)
+# tail at (50, 47)
+...............oo.ooo.................
+............ooo13o11ooo...............
+..........ooo1o1o11231oo..............
+.........o1o1o1oo1231112o.............
+.........o13o13o12221122ooo...........
+........o223o2o22^o1122o11oo..........
+........o23o12o22o3222o1112o..........
+........o3oooooooo333o3112ooo.........
+.......ooo2222222o2ooo33oo21o.........
+......oo2222222222o233oo22112o........
+...ooo2221111oooo22o233oo32B2o........
+..o111o11111o1111o22o233coo33o........
+.oooo2o1111oooooo2o22o223co333o.......
+.owwooo1111o1woo1oo222o22a3oo3o.......
+.owwooo1111oww3ow1o222o222a2ooo....ooo
+.owo3o11111owoo2w1o212o111a22ooo.oo11o
+.o1oo211111o1o1ow1o1112o11a1a2oooo111o
+.oo211111113o1111o31112o11a1122oo1111o
+.o11111111113oooo311112211b11112o111oo
+oo11111113o2112222A1112o1oooo111o111o.
+o21222222o1o2111111111ooo111o2aao33oo.
+o2ooooooo322o111111111o22oooo222o333o.
+o3o222222o33o111111112ooo2111o33o3333o
+.oo3222222oo3221112222o33ooooo3oo3333o
+..oo233322222222222223oo3222oooooo333o
+...oo3333222222222222o23oo2oooo...oo3o
+....oo33333322222222o2333coooo.....ooT
+.....oo3333333333333o333ccoooo........
+......ooo3333333333o3333coo33o........
+........ooo3333333oooooooo322o........
+..........ooooooooooooo333o21o........
+.........oo2ooooooo333o3213o1o........
+........oo12o3o3o3o3222o2111oo........
+.......oo12oo2o2o23o2212o2111o........
+.......o23ooo1o13o23o2211oo11o........
+.......ooo..o1o12o13oo22112o11o.......
+............ooo13o12o.oo2222ooo.......
+...............oo.oo....oo22222o......
+..........................oo2222o.....
+............................Poooo.....
diff --git a/parts_pl_src/body/pl_flyfish_b.txt b/parts_pl_src/body/pl_flyfish_b.txt
new file mode 100644
index 0000000..9503d3a
--- /dev/null
+++ b/parts_pl_src/body/pl_flyfish_b.txt
@@ -0,0 +1,50 @@
+# pl_flyfish_b: from pixellab_src/pl_flyfish_b/base.png (variant of pl_flyfish) (pixellab_library.py extract)
+# pivot at (35, 58)
+# aura at (31, 38)
+# head_top at (30, 16)
+# back at (40, 31)
+# tail at (48, 47)
+..................oo.oo......................
+................oo11^11oo....................
+...............o11122113ooo..................
+..............o111121113111o.................
+............oo11121211311113oo...............
+...........o1o1112221131113111o..............
+...........o1o1132222331131121oo.............
+...........o1o11323223333311223oo............
+...........o231133322o33332232111o...........
+..........oo23333333ooooo33332111oo..........
+.........o3111111112222bbooo322333o..........
+.......oo11111111111222bb222ooo3221o.........
+....ooo21111111oooo112222222233o332o.........
+...o111o111111o1111oo12222bbb223o322o........
+...ooo2o11111oooooo2o11222bbb2222o32o........
+..owwooo11111o1woo1oo11122bbb22bb3o33o.......
+..owwooo11111oww3ow1o111122222Bbbb2o3o.......
+..owo3o211111owoo2w1o1111222222bbb22oo.......
+..o1oo2111111o1ooow1o1111222222bbb223o....ooo
+..oo3211111112o1111o21111222222222222oo..o11o
+.oo121111111112oooo3111112222222222bb2o.o111o
+.o121111111oo1112222111112222222222bb2oo1112o
+.o1o222222211o111111111112222222222bb2oo1122o
+o11o2ooooo3222o111111A111233ooo22222222o113o.
+o11oo22222oo22o111111111211111o22222222o333o.
+o21232222222oo1111111111222oooo22222222o333o.
+o212222222222211111111122222111o2222223o331o.
+oo22222222222222111111222o22oooo2222223o3311o
+.o22222222222222222222222o322oo22222233o3331o
+.o322222222222222222222222oo12o22222333oo332o
+.oo1222222222222222222222223oo222222333o.oo3o
+..o32222222222222222222222122222222333o...ooo
+...o3222222222222222222222111112223333T......
+...oo32222222222222222221111111122333o.......
+....o33222222222222222211111111122o33o.......
+.....o3332222222222222311111111122o3o........
+......oo33333222222223321111111222oo.........
+.......oo3333333333333o2111111122oo..........
+.......o3ooo3333333333o2211111222o...........
+........ooooooo33333333o22111222o............
+.......o222333ooooooooooo322222oo............
+.......o122333o........oo111122o.............
+........oooooo.........oo121122o.............
+.........................Pooooo..............
diff --git a/parts_pl_src/body/pl_flyfish_d.txt b/parts_pl_src/body/pl_flyfish_d.txt
new file mode 100644
index 0000000..af9147c
--- /dev/null
+++ b/parts_pl_src/body/pl_flyfish_d.txt
@@ -0,0 +1,50 @@
+# pl_flyfish_d: from pixellab_src/pl_flyfish_d/base.png (variant of pl_flyfish) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 38)
+# head_top at (30, 17)
+# back at (40, 31)
+# tail at (43, 47)
+.................^oooo................
+................o11111ooo.............
+...............o111111311oo...........
+..............o111211o1111oo..........
+..............o12322o2112o11o.........
+............oo12332oo2223111o.........
+..........oooo2333oooooo3222oo........
+........oo222o3o2222222ooo2o21o.......
+......oo22222222222223223boo221o......
+.....o222211111112222232333oo32o......
+....o1121111111111112223233coo2o......
+...o111111111111111112223233boo1o.....
+..o311111111111111111122232223ooo.....
+..o2oo11111111111oooo11222322a3oo.....
+.oooooo111111111ooooooo2223B2a2oo.....
+.ooowwoo1111111owwooo1o2222322a2o...oo
+oo1owwoo1111111owwooow1o222322a1oooo1o
+oo1ooooo1111111oooooow1o222232a1ooo11o
+oowooooo1111111oooooow1o222232a1oo111o
+oowooo2o1111111ooooo2w1o222232a11o212o
+oow2222o1111111o2oo2211o222232a11o22o.
+o1ow22211111111o22A211o212223ooooo32o.
+o12ooo1111111111oooooo211222o1111o32o.
+o11111111111111111222111122232222o32o.
+o3111111o11111o111111111122o322ooo332o
+o31111111111111111111111122o32211o333o
+.o2211111111111111111111222ooo32ooo33o
+.o3221111111111111111112222o3oooo..oo.
+..o32221111111111111122222o33cco......
+..o3322221111111111222223o333cco......
+...o333322222222222222333o33ccT.......
+....o3333322222222223333o333co........
+.....o33333333333333333o333oo.........
+......oo33333333333333o33ooo..........
+........ooo3333333333oooooo...........
+........o33ooooooooooooo33o...........
+.......o123oo3333333333o311o..........
+.......o12ooo222222222o2o221o.........
+........oo.o2o11111222o2.ooo..........
+...........o22o11132222o..............
+...........o113oooo2112o..............
+...........o213o...o212o..............
+............ooo....o222...............
+.....................Po...............
diff --git a/parts_pl_src/body/pl_flytrap.txt b/parts_pl_src/body/pl_flytrap.txt
new file mode 100644
index 0000000..fd290d3
--- /dev/null
+++ b/parts_pl_src/body/pl_flytrap.txt
@@ -0,0 +1,42 @@
+# pl_flytrap: from pixellab_src/pl_flytrap/base.png (pixellab_library.py extract)
+# pivot at (21, 60)
+# aura at (31, 43)
+# head_top at (31, 26) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (46, 50) (from part/probe)
+...........oooooooooo...........
+.........oo1111^11111oo.........
+.......oo11111111111111oo.......
+......o211o1o111111o1o112o......
+.....o221o111o1111o111o122o.....
+....o2211oaoao1111oao1o1122o....
+...o3aa11oooo111111ooo3112a3o...
+..o33a111222222222222221122b3o..
+..o332112111111111111112122b3o..
+.o3333311233333333333321133o33o.
+.o3b31333313o1oooo1o313333133oo.
+o32b33o1oo1ob1bbbb1bo1oo1o332b3o
+oa33obo1cbobbobbbbobbobo1oc1332o
+o33o1obobbbbbobBbbobbbbbobo1ob3o
+o3oco1bbooooobbbbbbooooobb1oco3o
+.o3ocobocaaaooooooooaaaoobobo3o.
+.oo3obboaaooaooooooaooaaobbo3oo.
+...ooooowoo1woooooowoo1aooooo...
+..ooo3oo1o1o1ooAooo1o1o1oo3ooo..
+.oo33oooo111oooooooo111oooo32oo.
+oo3obbobboooooooooooooobbobbo3oo
+o1o1oobbbbbbbbbbbbbbbbbbbboo1o2o
+o1occabbbbaaaaabbaaaaabbbbboco1o
+o33o1obboaaaaaaaaaaaaaaobbo1o32o
+o31o1obaoaaaaoaaaaoaaaaoobo1313o
+.ob133o1cbobaoaaaaoaboac1o3313T.
+.o333121oo1ob1cbbb1bo1oo121333o.
+..o333112213o1oooo1o312211333o..
+...o333311212322232212113333o...
+...oo3333333111111113333333oo...
+.ooccoo332b3333333333bc33ooccoo.
+ozzcoocoo33333333333223oocooczzo
+oooooobcoooo33333333ooooccoooooo
+....ozzo....oooooooo....obzo....
+...ozboo................oobzo...
+...ooP....................ooo...
diff --git a/parts_pl_src/body/pl_flytrap_b.txt b/parts_pl_src/body/pl_flytrap_b.txt
new file mode 100644
index 0000000..807e3d8
--- /dev/null
+++ b/parts_pl_src/body/pl_flytrap_b.txt
@@ -0,0 +1,60 @@
+# pl_flytrap_b: from pixellab_src/pl_flytrap_b/base.png (variant of pl_flytrap) (pixellab_library.py extract)
+# pivot at (21, 60)
+# aura at (32, 34)
+# head_top at (31, 7)
+# back at (31, 38)
+# tail at (46, 50)
+..................oooo^ooooo..................
+................oo3222222222oo................
+...............o3222222222222oo...............
+..............o222211a222222223oo.............
+.............o322221122222222223o.............
+...........oo32211222222222222223oo...........
+...........o3321122222222222222a33o...........
+..........o33221222222222222222aa33o..........
+.........o3322222222222222222222a233o.........
+.........o332122222222222222222222333o........
+........o3322222222222222222222222233o........
+........o32222222222222222222222222333o.......
+.......o33222222ooo22222222ooo22222233o.......
+.......o3322a22o111o222222o111o2222233o.......
+......o33222a2o11111o2222o11111o2222333o......
+......o3322222o11wo1o2222o1wo11o22222a3o......
+.....o3aa22222o11oo1o2222o1oo11o22222a33o.....
+.....o3a222222oo111oo2222oo111oo22222233o.....
+.....o332222223ooooo322223ooooo322222233o.....
+....o33322222223ooo32222223ooo32222222333o....
+....o332233222223332222222233322222222333o....
+....o3323oo322222222222222222222222233233o....
+....o332ooboo12222222222222222222213oo333o....
+...o3332obbc1oo1122222222222222211oobo3333o...
+...o3332obbc1ccoo11122222222222ooo1cbo3233o...
+...o3332obbc1bb1ooo221222222ooo1cc1bbo2233o...
+...o33322obbobb1cc1oo1ooo1oo1cc1bbobbo2233o...
+...o33322obbbbbobb1cc1cAo1cc1bbobbbbbo223bo...
+...ob3322obbbbbbbbobc1bbb1bbobbbbbbbo22233o...
+..oo333222oboobbbbbbbobbbobbbbbbbbbbo22233oo..
+..oo333222ob1obbbbbbbbbbbbbbbbbbbobo2222b3oo..
+.ozo3cc2222o1cbbbaaaabBbbbaaabbbc1o3222233oco.
+ozzo3cc22222ocboaaaaaabbaaaaaaobc132222233oczo
+ozooo3c322223oo1baoaaoaaaaooaao1oo22222333oozo
+ozooo333222221o1bb1ab1aaaao1oaoo322222233ooozo
+ozzoo33332222212oo1ob1bbboo1oo11222222333oozzo
+ozocoo33322222221123oooooo331122222222333ocozo
+ozoooo33ca2222222211111111122222222223333ooozo
+.oo..o333a222222222333333332222222222333o..oo.
+.....o333a322222222222222222222222223333o.....
+......o33332222222222222222222222223a33o......
+.......o333332222222222222222222223aa33o......
+.......o333333222222222222222222233333o.......
+........o3333332222222222222222233333T........
+........oo333333322222222222223333333o........
+.........oo3333bb332222222233bb33333o.........
+..........oo3333b33333333333333333oo..........
+..........ocoo3333333333333333333oco..........
+........ooccoco3333333333333333oooccoo........
+.......ozzcooccoooo333333333oooccooczzo.......
+.......oooooocco...ooooooooo..occoooooo.......
+...........ozzo................ozzo...........
+..........ozboo................oobzo..........
+..........ooP....................ooo..........
diff --git a/parts_pl_src/body/pl_flytrap_c.txt b/parts_pl_src/body/pl_flytrap_c.txt
new file mode 100644
index 0000000..0d6efec
--- /dev/null
+++ b/parts_pl_src/body/pl_flytrap_c.txt
@@ -0,0 +1,48 @@
+# pl_flytrap_c: from pixellab_src/pl_flytrap_c/base.png (variant of pl_flytrap) (pixellab_library.py extract)
+# pivot at (16, 59)
+# aura at (31, 38)
+# head_top at (31, 19)
+# back at (31, 37)
+# tail at (54, 50)
+.......oooo................................oooo.......
+......o3222o........oooooo^ooooooo........o2223o......
+.....o333212o....ooo22222222222222ooo...oo212333o.....
+.....o33co312oooo2222222222222aaaa222oooo213oc33o.....
+.....o33bbo3122222aaa222222222aaaab22222212obb33o.....
+.....o33bbo3222211aa12222222222bbb222222223obb33o.....
+.....o33bo3222211111222222222222222222222223ob33o.....
+......o3332222222222222222222222222222222222233o......
+......o332222222222222222222222222222222222222oo......
+.....o322bb22222222ooo2222222222ooo22222222bb223o.....
+....o332baab222222owwwo22222222owwwo222222baab233o....
+...o332baaab22222owwwwwo222222owwwwwo22222baaab233o...
+...o332baaab22222owwoowo222222owoowwo22222baaab233o...
+..o3322baab222222o1wooao222222oaoow1o222222baab2233o..
+..o33222bb22222223o1aao32222223oaa1o32222222bb22233o..
+.o33332222222222223ooo3222222223ooo32222222222222333o.
+.o33333222222222222333222222222233322222222222233333o.
+.o33bb322222221111111111111111111221112222222223bb33o.
+o333b33211111133333333333333333333333321111113333b333o
+o3333311333333ooo333oo333oBoa333oc333oo3333333113b333o
+o3331133ooo33aooo313oo313oAoo313oo313ooa33oooo3313333o
+o33313oo3oo31ooooo1oooo1ooooo31ooo31oooo13oob3oo31333o
+o3322obo1ooo1ooooo1oooo1ooooo3ooooo1oooo1oooo1ooo1333o
+o3323obooooo3ooooooooooooooooooooooooooo1ooooooco3133o
+o3323oboooooooooooooooooooooooooooooooooooooooobo3133o
+o3331oboooooooooooobbbbboooooobbbbboooooooooooobo3133o
+o3331obo3oooooooobbbbbbbbbbbbbbbbbbbboooooooo1obo2333o
+.o3313o31ooo1obbbbobaaaaaabbaaaaaabobbbo1oooo1oo3133o.
+.o3331oo3obo1obbbo1aaaaoaaaaaaoaaaoobbbo1obbo1o21333o.
+..o333213oo31obbbo1aaao1oaaaao1oaao1obbo11ooo321333o..
+..o33b3211o33obbo31oaao1oaaaao1oao31obo331o22123333o..
+...o3333311133ooo333oo313obbo313oo33ooo2222123b333o...
+....oo33333211222222oo333oooo333o222221111133333oT....
+......oo33333311111122222222222211111123333333oo......
+........o333333333331111111111113333333333333o........
+........oooo333333bb3333333333333bb3333333oooo........
+......ooccooooo333333333333333333bb333ooooooccoo......
+.....oybcoooccoooooo33333333333333oooooccoooocyyo.....
+.....ooooooycco.....oooooooooooooo.....oyyooooooo.....
+.........oyyyo.........................oobyo..........
+........oyycoo..........................oocyo.........
+........oooP..............................ooo.........
diff --git a/parts_pl_src/body/pl_flytrap_d.txt b/parts_pl_src/body/pl_flytrap_d.txt
new file mode 100644
index 0000000..5ba65c5
--- /dev/null
+++ b/parts_pl_src/body/pl_flytrap_d.txt
@@ -0,0 +1,48 @@
+# pl_flytrap_d: from pixellab_src/pl_flytrap_d/base.png (variant of pl_flytrap) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 36)
+# head_top at (31, 18)
+# back at (31, 38)
+# tail at (47, 50)
+.....................oooo^ooooo......................
+...................oo2222a22222oo....................
+.................oo22211122222222oo..................
+................o322owo222222owo222o.................
+...............o322owwwo2222owwwo223o................
+..............o3222oaoao2222oaoao2233o...............
+..............3c222oooo322223ooo32223o...............
+.............o3c2223333222222333322233o..............
+.ooooooo...oo33222222222222222222223333o.......ooooo.
+o3ca221aooo31133222222212222222223333333o..ooooa22a3o
+.oo3333acaaooo111222221222222222233333111ooca22a33coo
+...ooo3ccaaaccooo111332222222223333111oooaaca33c3oo..
+......oooccacaaacooo113222222233111oooccaaacc3ooo....
+.........ooccaaaaacco11322222311oooccaaccccooo.......
+...........oooccccacco31322231oocccccacoooo..........
+............o3oooooooco312231occccooooo3o............
+............o33333oooooo3223occoooo33333o............
+............o3333oooccooo22oooooooo33333o............
+.............oooocccccco32A3occccccooo33o............
+...........oooccccaacco232213occcccccoooo............
+.........ooacccaaaaaoo223B2313oocaacccccoo...........
+.......ooccacaaaaaoo211322223113oaacaaaaccoo.........
+....oooa2caacccooo211333222233311oooccaacaaaooo......
+..oo2cca223ccoo111133332222223333113oooccc2acc3oo....
+..oc33cc333oo3313333332222222233333222ooo333c33c3o...
+...oooooooo.oo3333333331aa222223333333333ooooooooo...
+..............oo333333333333233333333oooo............
+.............oobo333333333333333333oobo..............
+.............ocbooo33333333333333oo.obbo.............
+............ozco...oooo3333333oooo...obbo............
+...........ozco...obbo.ooooooo.obbo..obzo............
+..........oozo....ocbo.........obzo...obzo...........
+..........ozbo...obzo...........ozzo...ozT...........
+..........ozbo...ozbo...........obzo...ozo...........
+..........obbo...ozb............obzo...ozo...........
+...........ozo...ocbo...........ozbo...oco...........
+...........ozo...obzo...........zzo....obo...........
+...........ozbo...ozbo.........ozbo....oo............
+............ozo...occo.........ozo....oco............
+............ozo....ocbo.......ozco....oco............
+............oo......oco.......oco.....oo.............
+.....................oP.......oo.....................
diff --git a/parts_pl_src/body/pl_fox.txt b/parts_pl_src/body/pl_fox.txt
index 1e19ee8..b2f1aa4 100644
--- a/parts_pl_src/body/pl_fox.txt
+++ b/parts_pl_src/body/pl_fox.txt
@@ -1,9 +1,9 @@
# pl_fox: from pixellab_src/pl_fox/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (32, 40)
-# head_top at (26, 29) (from part)
-# back at (32, 32) (from part)
-# tail at (46, 32) (from part)
+# head_top at (26, 29) (from part/probe)
+# back at (32, 32) (from part/probe)
+# tail at (46, 32) (from part/probe)
ooo...................................
o12oo.............................oooo
o1223oo.........................oo123o
diff --git a/parts_pl_src/body/pl_fox_b.txt b/parts_pl_src/body/pl_fox_b.txt
new file mode 100644
index 0000000..e558e9b
--- /dev/null
+++ b/parts_pl_src/body/pl_fox_b.txt
@@ -0,0 +1,48 @@
+# pl_fox_b: from pixellab_src/pl_fox_b/base.png (variant of pl_fox) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (26, 28)
+# back at (32, 32)
+# tail at (46, 32)
+ooo...................................
+o12oo.............................oooo
+o1223oo.........................oo123o
+.o22223o......................oo1123oo
+.o222223o...................oo1112oco.
+.o2222223o................oo11112occo.
+..o2222223o..............o111112occco.
+..o22222233o............o111113occcco.
+..o222223333o..........o11111occccco..
+...o222233333^oooo....o11112occcccco..
+...o3223333o333333oo.o11112occccccco..
+...oc3333oo211122333o31112occccbbbo...
+....oc33o21111111233o2112occcccbbco...
+....occo11111111112B3222occcccbbbT....
+.....oo11111111111232222occccbbbbo....
+.....o1111b111111122222ocoocbbbbo.....
+.....3111b1b1111122222oco3ocbbbo......
+....o21111a11111222223o33occbbbo......
+....o2a11a111a1222222222o3ocbbo.......
+....o22a1111a1222ooo22233oocbo.....oo.
+....oo222222122ooaao2233occco.....oo..
+....oao2222222ow3aaA22333ooo.....o3o..
+....oa3o2222ooo33ww3223oo111o...o1o...
+....ow2322223a313ww3233111111o..o2o...
+.....o1311223w13ww323oo111131o.o2co...
+....o1o1112222bbb32oo1111111o.ob2o....
+...o1o11122222223oo111111131oo223o....
+....o1112222ooooo11111113133oo33o.....
+...o1112223o111111111111333o33oco.....
+..o211222oo1111111111111333o223o......
+..o2222oo11111111113113333o2222o......
+...oooo11113111131133333oo322222o.....
+.......oo1311111333333ooo3332222o.....
+.........oo333113333oo3o333o2222oo....
+...........oo3333ooo333occco32223oo...
+...........ocoooo.oo22ooooooo3233bo...
+...........oacco..oaaccoccco.oobbbco..
+..........oaacco..oaacooccco...ocbbo..
+.........oaabco..oaaacocccco...ocaaco.
+........occccco.oaaaco.oooo....ocacco.
+.........ooooo..occcco..........oooo..
+.................oPoo.................
diff --git a/parts_pl_src/body/pl_fox_c.txt b/parts_pl_src/body/pl_fox_c.txt
new file mode 100644
index 0000000..957d98f
--- /dev/null
+++ b/parts_pl_src/body/pl_fox_c.txt
@@ -0,0 +1,48 @@
+# pl_fox_c: from pixellab_src/pl_fox_c/base.png (variant of pl_fox) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (26, 28)
+# back at (32, 32)
+# tail at (46, 32)
+ooo...................................
+o22oo.............................oooo
+o2223oo.........................oo122o
+.oo2223o......................oo222ooo
+.oco2223o...................oo1223oco.
+.occ22223o................oo12223occo.
+..oco22233o..............o112223occco.
+..occo22233o............o122223occcco.
+..occo222333o..........o12222occccco..
+...occo22333o^oooo....o12222occccaco..
+...oaco3333o211113oo.o12223occccaaco..
+...oacco3oo111111123o22223occccaaao...
+....oacoo2111111111332223occccaaabo...
+....oaco11111111111B3223occcccaaaT....
+.....oo11111111111112333occaaaaaao....
+.....o11111111111111223oboocaaaao.....
+.....o11111111111111223bo3ocaaao......
+....o111111111111123323333ocaaao......
+....o111111111111ooo322333ocabo.......
+....oo111111111ooaao22233occao.....oo.
+....oao1111111ow3aaA22233occo.....oo..
+....oa3o1111oo333ww322333ooo.....o3o..
+....ow2311113a313w222233oo......o2o...
+.....o1311223ww3ww22233o........o2o...
+.....o3111222222222333o........o2bo...
+.....o11122222222333oo........oa2o....
+....o111222333333ooo3o...ooooo133o....
+...o1122233oooooo3333boooaa22o33o.....
+.o2112233oo...o33333332aa2aa22o3o.....
+.o2222ooo.....o333333222a2aa222o......
+..oooo........o333322222222a222o......
+..............o33323222322322223o.....
+..............oo332o112o33322222o.....
+.............o33o33o112o33o22222o.....
+............o2333ooo113o33o322223o....
+...........o1333o..o113ooooo333333o...
+...........o133oo..o11o.o33oooo332o...
+..........oaa3oo..oaa2o.o33o...o322o..
+.........o123bo..o1223oo333o....o323o.
+........o2o33o..o1223o..ooo.....ob3bo.
+.........oooo...o2o2bo...........ooo..
+.................oPoo.................
diff --git a/parts_pl_src/body/pl_fox_d.txt b/parts_pl_src/body/pl_fox_d.txt
new file mode 100644
index 0000000..a601ebc
--- /dev/null
+++ b/parts_pl_src/body/pl_fox_d.txt
@@ -0,0 +1,59 @@
+# pl_fox_d: from pixellab_src/pl_fox_d/base.png (variant of pl_fox) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 33)
+# head_top at (26, 18)
+# back at (32, 32)
+# tail at (45, 32)
+ooo...........................................oo
+o22oo......................................ooo3o
+o2222oo..................................oo1223o
+o22222oo...............................oo2222ooo
+.o222223o............................oo22222oco.
+.o3222223o.........................oo122223occo.
+..o2222223o.......................o1122223occco.
+..o32222233o....................oo1122223occcco.
+..oo22222233o..................o11222223occcco..
+..oo322222333o................o1122222ooccccbo..
+..oco22222333o..^ooooooo.....o1122222occccccbo..
+..oco3222233oooo22222333oo..o1122223ooccccbbo...
+..obo332233o11111111112333oo3112222occcccbbbo...
+..obco333oo2111111111112233o212222occccccbbbo...
+..obbco3o111111111111111223o222223ccccccbbbo....
+...obboo2111111111111111223322223occcccbbbbo....
+...obbo2111111b11111111122222222occcccbbbbo.....
+....obo21111111b111111112222223oooooccbbbbo.....
+.....o221111b11b11111112222223oo333occbbbo......
+....o322b111b1b1111b1122222223333oooocbbbo......
+....o2221b111b1111b1122222222222o111ocbbo.......
+...o322221b111111b11222222222222313occbo........
+...o222222221111222222222222222223occco.........
+...o2222222222222222222222222223ooccoo..........
+...o2o2222222222222222B2ooo222233ooT............
+...ooaoo2222222222222oAoaaao22233o..............
+...ooaooo22222222222oooooaao22233o..............
+...oaowoo2222222222owwoooaaao2233o..............
+...owowooo22222222oowwoooaaao2233o..............
+...owooooo22222222ooooo3oaww32233o..............
+...ow33ooo22222222ooooo33www32233o..............
+...ow32o3322222222333oo12www32233o..............
+...o3w2213211112223322212ww322333o....oo........
+...o232w1311111111332113ww322333o....o3o........
+...o2bb3311111111111333bbbb2333o....o13o........
+....obbb11131131111111bbbbb333oo...o12co........
+.....o311111331111111111b333ooooo..ob3o.........
+......oo211111111111222233oo33c22oo133o.........
+........ooo3222333333333oo333cc223o333o.........
+...........oooooooooooooo3333cc2223o3o..........
+................o3333333333222b2223oo...........
+................o3333332222222222222o...........
+...............o3o2222o2223323322222o...........
+...............o2o3222o1113o33o22223o...........
+...............o13oc22o1112o33o22223o...........
+...............o133occo1112occo222233o..........
+..............o1223oooo1113oooo333333o..........
+..............o222oo.oo1123o33ooo3333o..........
+..............o123o..o1b123o33o..o333o..........
+.............o1223o.o1111bo33o..o3223o..........
+.............o223o.ob11133oooo..oc23o...........
+.............oooo..ob3123o.......ooo............
+....................oooPo.......................
diff --git a/parts_pl_src/body/pl_frigate.txt b/parts_pl_src/body/pl_frigate.txt
new file mode 100644
index 0000000..43b666a
--- /dev/null
+++ b/parts_pl_src/body/pl_frigate.txt
@@ -0,0 +1,41 @@
+# pl_frigate: from pixellab_src/pl_frigate/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (29, 43)
+# head_top at (30, 28) (from part/probe)
+# back at (33, 40) (from part/probe)
+# tail at (45, 51) (from part/probe)
+.............oooooooo................
+...........oo11111222oo..............
+.........o2111111^11223o.............
+........o111111111122223o............
+.......o2221111222222o223o...........
+.......oo222223222oooo2233o..........
+.......owo22223oooo11o2223o..........
+.......obo322222owowwo2223o..........
+....ooooo1xyy322obowwo22233o.........
+..oo11xxxxxxyz322owwo222233o.........
+.o11xxxxyyyyzzzz32222bb2233o.........
+o1xxxyyzooooooozz3322222333o.........
+oxxyoooocccccccooz322223333o.........
+ozooccccccbbbbbcco222233333o.........
+oo.ocaabbbbbbbbbcco3B33333o..........
+..ocaaaaabbbbbbbcco3333333o..........
+..obaaaaabbbbbbbbcco333333o..........
+.obbaaaabbbbbbbbAcco33o2oo...........
+.obbbaabbbbbbbbbbcco3o1122o.....ooooo
+.obbbbbbbbbbbbbbccco3211222o..oo1122o
+.obbbbbbbbbbbbbbcccoo211222ooo322233o
+.obbbbbbbbbbbbbccccoo2222222oo32333o.
+.ocbbbbbbbbbbbcccco3o222222233o333o..
+..ocbbbbbbbbbccccoc1oo22223222oo3o...
+..occbbbbbbcccccocco3o33332oo333o....
+...occcccccccccccoo133o33o322oooT....
+....occccccccccco1o1333o33oo32223o...
+.....occccccccoo11113333oo33o3333o...
+......ooooooooo11111133333oooooooo...
+...........ooo311111o33ooo...........
+.............ozoooooozo..............
+...........ooozo....ozo..............
+..........oxyzzzo..oyyoo.............
+..........oooxyoo.oxzyxo.............
+.............oo...Poooo..............
diff --git a/parts_pl_src/body/pl_frigate_b.txt b/parts_pl_src/body/pl_frigate_b.txt
new file mode 100644
index 0000000..f53cf7a
--- /dev/null
+++ b/parts_pl_src/body/pl_frigate_b.txt
@@ -0,0 +1,50 @@
+# pl_frigate_b: from pixellab_src/pl_frigate_b/base.png (variant of pl_frigate) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (30, 17)
+# back at (33, 40)
+# tail at (46, 51)
+.................^o..................
+................o12o.................
+...............oo12o.................
+...............o113oooo..............
+..............o1123222o..............
+...........ooo1112222oo..............
+.........oo221111222223oo............
+........o2111111111112333o...........
+.......o211111111111122233o..........
+......o21111111112222222233o.........
+.....o2122111111211222222233o........
+.....o11121111121111222222333o.......
+.....3oo111111211ooo222222233o.......
+.....owwo2111222owwwo322222333o......
+....owwoo211122oooowwo22222233o......
+....owooo222222owoowwo32222233o......
+....owooo233222oooowwo32222233o......
+....ooooo11yz32oooowwo22222233o......
+..oo1111111yyy32owwwo222222333o......
+.o11yyyyyyyyyyyz3ooo2bb2222333o......
+o1yyyzzzzzzzzzyz32222222223333o...ooo
+oyyzoooozzzzzzz3322222222333333o.o12o
+ozoo3222occcco32222222233333322oo112o
+oo.o3223cabbco3222A2B223333322233212o
+...o212caabbco322223333222322222332oo
+..o2112cbbbbco3222222221111332223323o
+.o22112cccccc2211122221111112o223333o
+.o221112oooo221111123211111112o2233o.
+.o31111112222111111223111111112o233o.
+.o321111112211111111232111111112o33o.
+.o33111111111111111123211111222oo33o.
+..o331111111111111112322112112o333o..
+..o3331111111111111122o33112223o33o..
+...o3321111111111111222o3322ooo333o..
+...o33212121111111222222ooooo3333T...
+....o323222112111222222333333333o....
+.....o3332233222222222233333333o.....
+......o3333333322223223333333oo......
+.......oo333332333333333333oo........
+.........oo33333333333333oo..........
+...........oooooooooooooo............
+..........oyzzzzo..ozzoo.............
+..........oooyzoo.oyzzxo.............
+.............oo...Poooo..............
diff --git a/parts_pl_src/body/pl_frigate_c.txt b/parts_pl_src/body/pl_frigate_c.txt
new file mode 100644
index 0000000..1a7663c
--- /dev/null
+++ b/parts_pl_src/body/pl_frigate_c.txt
@@ -0,0 +1,58 @@
+# pl_frigate_c: from pixellab_src/pl_frigate_c/base.png (variant of pl_frigate) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 36)
+# head_top at (30, 9)
+# back at (33, 40)
+# tail at (45, 51)
+............ooooo^oooo...............
+..........oo1111112222o..............
+.........o2111111111222o.............
+........o111111111122222o............
+.......o22111111122222222o...........
+.......o2222222222222o2223o..........
+.......oo222222222oooo2223o..........
+.......owo2222ooooo1w222233o.........
+.......owc32222wcocww222233o.........
+....ooooo1yyy222wwww2222233o.........
+..oo11yyyyyyyyz222222222233o.........
+.o11yyyyyyyyyyyz22222222333o.........
+oyyyyzzzzzzzzzzz22222223323o.........
+oooooooooooo333332222233223o.........
+............ooo333333332223o.........
+...............o33333222223o.........
+...............o33322222223o.........
+...............o32222222223o.........
+...............o22212222233o.........
+...............o21112222233o.........
+...............o11111222233o.........
+...............o11111222233o.........
+...............o11111222233o.........
+...............o11111222333o.........
+..............o11111122233o..........
+..............o11111122233o..........
+..............o11111222233o..........
+.............o211A11222333o..........
+...oooo......oooo11122233o...........
+..obbbco....occcco1122233o...........
+.obbbbbco..obbbbbco222233o...........
+obbaaabbcoobaabbbccoB2333o...........
+obaaaabbbcbaabbbbbco22333o...........
+obaabbbbbbbbbbbbbbcco3333o...........
+obbbbbbbbbbbbbbbbbcco3o2oo...........
+obabbbbbbbbbbbbbbcccoo1122o.....ooooo
+obbbbbbbbbbbbbbbbccco211222o..oo1122o
+obbbbbbbbbbbbbbbbccco211222ooo322233o
+.obbbbbbbbbbbbbbcccoo2222222oo32333o.
+.ocbbbbbbbbbbbbccccoo222222233o333o..
+..ocbbbbbbbbbbcccco1oo22223222oo3o...
+...ocbbbbbbbccccco113o33332oo333o....
+....occbbbbccccoo11133o33o322oooT....
+.....occccccccoo1111333o33oo32223o...
+......occcccco1111113333oo33o3333o...
+.......occcoo3111111133333oooooooo...
+........ooo.ooo11111o33ooo...........
+.............oooooooooo..............
+...........ooozo....ozo..............
+..........oyzzzzo..ozzoo.............
+..........oooyzoo.oyzzxo.............
+.............oo...Poooo..............
diff --git a/parts_pl_src/body/pl_frigate_d.txt b/parts_pl_src/body/pl_frigate_d.txt
new file mode 100644
index 0000000..c905033
--- /dev/null
+++ b/parts_pl_src/body/pl_frigate_d.txt
@@ -0,0 +1,41 @@
+# pl_frigate_d: from pixellab_src/pl_frigate_d/base.png (variant of pl_frigate) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (30, 26)
+# back at (33, 40)
+# tail at (45, 51)
+.............oooo^ooo................
+...........oo11111222oo..............
+.........o2111111111223o.............
+........o111111111222223o............
+.......obc2111122baab2223o...........
+......obbbc22232cabbbc2233o..........
+......obwcc2223cbco11bc223o..........
+......obccc2222cbwowwbc223o..........
+....oooooxxyy32cbcowwbc2233o.........
+..ooxxxxxxxxxz32cbwwbc22233o.........
+.oxxxxxxyyyyyyyz3ccccbb2233o.........
+oxxxxyyyyyyyyzzyy3222222333o.........
+oxxyoooooooooooyyy222223333o.........
+ozoo...occcccccoo3222233333ooo.......
+oo.....ocbcbbbcco333B33333oyyyo......
+.......obbcbbbbco3333333oozzzoo......
+.......oabbbbbbco33333ooyyyoo........
+.....oocabbbbbbccoAoooxxxxyyzo.......
+.....oycaabbbbbccoxxxxxxxoozzo..ooooo
+.....oyycabbbbbbcoxxxxooxx3oo.oo1122o
+.....ooxcbbbbbbbcoxyyxo2oo2ooo322233o
+......oxocbbbbcccoxooxo22222oo32333o.
+......oooocbbccoooxooo22222233o333o..
+.......oo3occoo111oo3o22223222oo3o...
+........o33oo11111113o33332oo333o....
+.........o311111111133o33o322oooT....
+.........o3211111111333o33oo32223o...
+..........o2111111113333oo33o3333o...
+...........o31111111133333oooooooo...
+...........ooo311111o33ooo...........
+.............ozoooooozo..............
+...........ooozo....ozo..............
+..........oxyzzzo..oyyoo.............
+..........oooxyoo.oxzyxo.............
+.............oo...Poooo..............
diff --git a/parts_pl_src/body/pl_frizzbird.txt b/parts_pl_src/body/pl_frizzbird.txt
new file mode 100644
index 0000000..0927756
--- /dev/null
+++ b/parts_pl_src/body/pl_frizzbird.txt
@@ -0,0 +1,49 @@
+# pl_frizzbird: from pixellab_src/pl_frizzbird/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 39)
+# head_top at (29, 25) (from part/probe)
+# back at (41, 29) (from part/probe)
+# tail at (45, 48) (from part/probe)
+.................oo..................
+...............oo2o..................
+.........oo...o213o..oooooo..........
+........o2o..o212oooo2b22o...........
+.......ob3o.o1123o2222223o...........
+......o222oo211321111223o............
+......o122o21112111223ooooooooo......
+..oo.o2113211121^22331111222b12oo....
+..o2oo212311121123211111112222oo.....
+..ob2o2123112122211111112222ooo......
+..o22o12311222211111b122222ooo.......
+.oo22o2231122311112222233333Booooo...
+.oo2233231223112222233211111222a22oo.
+.o2o22323123223322332111a11122222oo..
+.o2o223232232322233212221222222ooo...
+.o2232222232222222223322223oooooo....
+.oo222222322222122222222oo1112222oo..
+.oo2oo22b2b222o3o2222222112112a12bcoo
+.o2231o2c322o3211o22222222222222cco..
+.ooo1o2ooo2231oo11o2a222222333oooo...
+.oo1ooo213oo1ooo11o2a2222233222oo....
+.3o1ob31233o1oc11Aoaaa22222222b22oo..
+o22o12123333o1111o21113ooo222222b22o.
+.o11ooooooo22o32321zz33211oo33333ooo.
+.o2z1222oao2211z1111o2221112o33ooo...
+.o222222ooo2221111bo221121122o322o...
+o232212222222222222o21211222ao3333o..
+o23a211112222222222o2112112222ooo....
+o33o3a2111222222a22o22113aao222o2oo..
+.o3oca32a2a2a2a2ab2oo22223cc322o22oo.
+.o2occoba2a2a2aoca3co22b223ccoooT222o
+..o3ocobcobob3ococbooo2bc22oo22o2o33o
+...ooooccococoocooco33ooco22oo2o223o.
+....oo3oo3o3oo2oo2ooo33oooo32oo222b3o
+......oo3332o22222233333333ooooo2223o
+.......oo3333333333333333oo....ooooo.
+.........ooo333333333oooo............
+...........ooooooooooo...............
+........o3oo3oo....o3o...............
+.......o3o23ooo..ooo33o..............
+.......ooooo....o32o23o..............
+................o3oo2o...............
+.................oPoo................
diff --git a/parts_pl_src/body/pl_frizzbird_b.txt b/parts_pl_src/body/pl_frizzbird_b.txt
new file mode 100644
index 0000000..74703aa
--- /dev/null
+++ b/parts_pl_src/body/pl_frizzbird_b.txt
@@ -0,0 +1,61 @@
+# pl_frizzbird_b: from pixellab_src/pl_frizzbird_b/base.png (variant of pl_frizzbird) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 33)
+# head_top at (29, 11)
+# back at (41, 29)
+# tail at (51, 48)
+....................o............o...................
+...................oo.........oooo...................
+..................obo.......oo2boo...................
+.................o2oo.....oo3a23o....................
+................oa2oo...oo32a22o.....................
+...............ooa2oo..^o321222o.....................
+.........oo...oo222o.oo3211222o....oooooooo..........
+.........bo...o2122o.o31112223ooooo322a23bo..........
+........obo..oo2122oo31111223333332a2223oo...........
+........oa3o.o21122o3111123332211122223oo............
+........o2ao.o211223111122322111122223o..............
+........o22oo311123111112331111a222233o..............
+........o213o31112311112231111b1112233o..............
+.....oo.o213o31a1311112232111111222333ooooooooo......
+.....o3oo212331a13111123111111133333333222aacoo......
+.....o3oo311221a1311122311111223333211122233oo.......
+.....o3aoo11221a1211123111122a2311111112a3oo.........
+.....o323321121a22112231122aa221111111333oo..........
+......o11331122b221a223112aa21111111113333oooo.......
+.o....o31232112b321a22113aa3111111111111111223oo.....
+.ooooooo1133a12b321a22113b211111abb1111222222aa2oo...
+.oba23oo3133a122321b2213bo21111b233333333333333bbbo..
+.oo2111331133b22321b2213c2211bb2221111111333ooooooo..
+..oo321133113bb2322b223c3211b332111B111111222oo......
+...oo3b1133223b2332b2232221b3311111111111112223oo....
+....o33b112323333322222222b32111113b3322112222aaoo...
+...oo2133b223222222222222333212333333333322333332ao..
+..o3111123332222222222222A22233331111a223223333333co.
+..o11222222222222222222222222221111111112o32aoooooboo
+.oa3333c222oo22a2a112o3o2222211222211111113323o...ooo
+oo3oo3c122231o2b321o3211o22222222222211111233bbo.....
+oooooo112oowo2ooo223woow1o2a222222222331111a333o.....
+oo..o1122o1ooo213oo1ooowwo2a22222aa2222311123oobo....
+...o112ooo1ob31233owob1wwoaaa22222aaa22233122oooo....
+...oaoo322o12123333ow1wwo2111ooooo33ab22233b23o......
+..o33oo1211ooooooo22o32321zz332212o33bb2233ob33o.....
+..oa3oo122z1222oao2211z1111o2222111o33b222oobb3o.....
+..oboo312o22222ooo2221111ao222113111o33c223oo3bbo....
+..ocoo312o3212222222222232o21221131ao33ob223ooobo....
+..oo.o1aooa211112222222233o21123a2311o22oo2co.oco....
+.....o2oooo3a2111222222a23o22113aa311222oobco..oo....
+.....o2co3oba32a2a2a2a3aa3oo22123aa3322aooocco.......
+.....occo3occoaa3a2a2aoca3co32a22oa3332aoooocT.......
+.....occo3occoacoa2aoococaooo2a22oa33o332ooooo.......
+.....ocoobocooccoc3cooccoco33ooc2ooc3ooo2coo.........
+.....oc.o33oooccoccoo2oc2ooo33ooc3o33ooooco..........
+.....oo..o3oooco3oco222c2233333oocoobo..oco..........
+.........oco.oco3ooo3333c3333333oooo3o...oo..........
+..........oo.oo.oooo333ooo33oooo...oco...............
+..........oo......ooooooooo3o.......oo...............
+...............o3oo3ooo...o3o........................
+..............o3o23ooo..ooo33o.......................
+..............ooooo....o32o23o.......................
+.......................o3oo2o........................
+........................ooPo.........................
diff --git a/parts_pl_src/body/pl_frizzbird_c.txt b/parts_pl_src/body/pl_frizzbird_c.txt
new file mode 100644
index 0000000..0610fb0
--- /dev/null
+++ b/parts_pl_src/body/pl_frizzbird_c.txt
@@ -0,0 +1,65 @@
+# pl_frizzbird_c: from pixellab_src/pl_frizzbird_c/base.png (variant of pl_frizzbird) (pixellab_library.py extract)
+# pivot at (33, 61)
+# aura at (30, 33)
+# head_top at (29, 4)
+# back at (35, 34)
+# tail at (46, 48)
+.............oo.................
+........oo.^22o.................
+.......o2oo213o.ooo.............
+......o12o111o22a2o.............
+.....o213111o11122o.............
+....o311311211123o..............
+...oo31212211133oooo............
+...o231223113221122co...........
+..oo23123233321a222o............
+..o323132222222333oo............
+..o3322o11112322122o............
+..o3222113o1123322cbo...........
+...o2221o31o12333oooo...........
+..owo22owowwoa2333o.............
+..oo1o3ooowwoa2333bo............
+..o1122owww31aaooooo............
+.o133oo233311a2o................
+.ooooo332111y12o................
+.....oo33222222o................
+.......o3322222o................
+.......o332222o.................
+.......o332222o.................
+.......o222222o.................
+.......o22222o..................
+......o211222o..................
+......o111223o..................
+.....o211122o...................
+.....o111122o...................
+....o3111222o...................
+....31111222o...................
+...o31111122Aoo.................
+...o11111122222ooB..............
+..o311111122233111o.............
+.o32111111223211111o............
+.o321111111231111111o...........
+o2321111111o211112112o..........
+o2o211111aao21211121a1o.........
+o2oba11a1abo2112112212o.........
+o2oaca1abaco311231122a2o........
+o3oacabacbcco22233123b2o........
+obobcbcbcbc2oo2233323322o.......
+.ooo2bcbc2223o32a332a33aoo......
+.o3o22c2222233ooa333b233o2o.....
+..oo22222222233ob3333233o2o.....
+...oo32222223333oo33333o321oo...
+....oo322233333333ooooo33211T...
+.....oo33333332233333o3333221o..
+......ooo3333o2223o33oo3333212o.
+.......o3oo33o2222ooo.o3333321o.
+........o33oooo222o...o33o33222o
+.........o33o.o32o.....o3oo3o32o
+.........o3o...o3o......oo.oooo.
+.........o3o...o2o..............
+.........o3o...o2o..............
+......ooo33o...o2o..............
+.....o3223o3o..o2o..............
+.....ooooooooooo23o.............
+............o2o13o..............
+.............ooPo...............
diff --git a/parts_pl_src/body/pl_frogmouth.txt b/parts_pl_src/body/pl_frogmouth.txt
new file mode 100644
index 0000000..34287eb
--- /dev/null
+++ b/parts_pl_src/body/pl_frogmouth.txt
@@ -0,0 +1,48 @@
+# pl_frogmouth: from pixellab_src/pl_frogmouth/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 40)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (51, 40) (from part/probe)
+.................oooooooo.................
+..............ooo31333313ooo..............
+............oo31331333313313oo............
+..........oo333113313313311333oo..........
+.........o3321333332^22333331233o.........
+........o313111331222223133111313o........
+.......o31111111331222213311111113o.......
+......o3111111111321221331111111113o......
+....ooo1133211111321221331111123321ooo....
+....o331123oo1111123223311111oo221133o....
+...ooo3222occo11111333311111occo2223ooo...
+...o333333o33oo211133331112ooo3o333333o...
+....o33333o2ww3oooo3oo3oooo3ww2o33333o....
+....o3bb33o2ooo3o33oB3o33o3ooo2o33bb3o....
+....o32113oc232co33333333oc232co31133o....
+....o211233occco3bb2aa2bb3occco332112o....
+....o21112ooooobbb22aa22bbbooooo11112o....
+....o3133obb2221bb332233bb1222bbo3312o....
+...o23111obbooooooo3223ooooooobbo11222o...
+..o3133111oobbbbbboo33oobbbbbboo1113213o..
+..o113331122ooobbbbboocbbbbooo221133212o..
+.o1111132222222oooobAbboooo2222222311111T.
+.ob311b3o2221122222oooo2222211222o3b112bo.
+o1333133o221111222222222222111123o3313331o
+o1133331o313111111222222111111313o1333311o
+ob113313o221111111111111111111122o313311bo
+o3113113o222121111111111111121222o3113113o
+o333313o22211111113111131111111222o313333o
+ob33223o22311112111111111121111322o33233bo
+o33b23o2233112111111111111112113322o33b33o
+o33323o2221112211211111121122111222o33333o
+o3332o222221111122211112221221122222o3333o
+.o333o223222311111212212111113222322o333o.
+.oo33oo2323231111111111111111323232oo33oo.
+..o3ooo3323222331112112111332223233ooo3o..
+...oo..o32222222223311332222222223o..oo...
+........o322222222222222222222223o........
+.........oo2oooo2222222222oooo2oo.........
+..........ooobbooo222222ooobbooo..........
+.........obbo22ocooooooooco22obbo.........
+.........oooooboo2o....o2oobooooo.........
+.............oo.oP......oo.oo.............
diff --git a/parts_pl_src/body/pl_frogmouth_b.txt b/parts_pl_src/body/pl_frogmouth_b.txt
new file mode 100644
index 0000000..c674d0a
--- /dev/null
+++ b/parts_pl_src/body/pl_frogmouth_b.txt
@@ -0,0 +1,52 @@
+# pl_frogmouth_b: from pixellab_src/pl_frogmouth_b/base.png (variant of pl_frogmouth) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 38)
+# head_top at (31, 15)
+# back at (31, 32)
+# tail at (54, 40)
+...................ooo^oooo...................
+................ooo33311333oooo...............
+.............oooccc333111333cccoo.............
+...........oo333cac113111131caa33oo...........
+..........oc3331cac113111111aa11333o..........
+........oocca3311aa111111111aa113333oo........
+.......o3333aa311aa111111111a111311133o.......
+.....ooo33111a3111a111111111a112311111coo.....
+.....oc113311131111a1111111a111211111acco.....
+....occa11133133111a1111111111111111aaccco....
+....occaa11131111111111111112211111aaa113o....
+...o3111aa11311111211111111221131111111133o...
+...o33311111131111221111112221331331111333oo..
+..o3323333313oo3111333111131113oo3111131133o..
+..o311111333occo21313331133113occo1133111133o.
+.oc311111113o33oo333333133333oo33o3111111133o.
+.occaaa11133o2ww3oooo33333ooo3ww2o331111aaaco.
+o33311111333o1ooo3o33oB3o33o3ooo1o33321111ccco
+o33111111133oc232co33333333oc232co31113311113o
+o311111113333occco3bb2aa2bb3occco331111133333o
+o311a1111133ooooobbb11aa11bbbooooo11111111333o
+ocaaa111113obb1111bb331133bb1111bbo1111111133o
+occ11111133oaaooooooo3113oooooooaao11111aa333o
+oc3111332113oobbbabboo3Aoobbbbbboo31111333aaco
+o331oo33311133ooobbbbboocbbbbooo33111133333cco
+o33o1121333333333oooobbbboooo3333331133112oo3T
+o3o111112333112233333oooo3333322113333321223oo
+o3o111111o31111122233333333331111113o3222122co
+.o2132111o11111111111333331111111111o31c222cco
+.o3132a13o11111111111111111111111311o3113223co
+.o333aa33o11a111111111111111111111211o31a223o.
+.o333a33o13311111111111112111a1111211o313a23o.
+.o33a333o33a1131111121111211111131211o333a33o.
+.o33a33o33c3313111113111121111a1312113o33a33o.
+.o3aa33o33c33331a1133111221111a1332b33o333coo.
+..oa33o33c333331c1133111223111c1333c333o33co..
+..oa33o33c33333cc1333311333113c33333c33o333o..
+...o33o3cc33333c33333311333333c33333c33o33o...
+...o3oo3cc33333cc3333333333333c33333c33oo3o...
+....oo.occ3333ccc333333333333cc3333cc3o.oo....
+........occ3333cc333333333333cc3333cco........
+.........ooo333cc333333333333cc333ooo.........
+............oooocc3333333333cc33oo............
+...........obbooooooo3333ooooooobbo...........
+...........oooooboo3oooooo3oobooooo...........
+...............oo.oP......oo.oo...............
diff --git a/parts_pl_src/body/pl_frogmouth_c.txt b/parts_pl_src/body/pl_frogmouth_c.txt
new file mode 100644
index 0000000..982d91d
--- /dev/null
+++ b/parts_pl_src/body/pl_frogmouth_c.txt
@@ -0,0 +1,64 @@
+# pl_frogmouth_c: from pixellab_src/pl_frogmouth_c/base.png (variant of pl_frogmouth) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 30)
+# head_top at (31, 4)
+# back at (31, 32)
+# tail at (44, 40)
+.............oo............
+............^13o...........
+...........o313o...........
+...........o31ao...........
+..........o331a3o..........
+..........o3o1c3o..........
+.........oo3c3c3oo3........
+........o3o3cccco3o........
+.......o3oo3ccccoo3o.......
+......o31o3ccccc3o23o......
+.....o112o3ccccc3o211o.....
+....o11ooo3cccco3ooo11o....
+...o31owco3cccco3obwo12o...
+...o2ocwbo3coooo3obo3o2o...
+..o22oaoco3ooooo3oco3o22o..
+.oo23occo33ooooo33oabo32o..
+.o33o3oo333ooooo333oo3333o.
+.o3oa1122323ooo2232222a33o.
+.o3a2212223311123222122a3o.
+..o2211122233x2322211122o..
+..o223111222333222111322o..
+..o222211212222221111122o..
+..oo2221122112212111222oo..
+..o333222221211111222333o..
+.o22333222222111122223322o.
+.o22223221222222212232222o.
+.oa22ao2111122111112oa22ao.
+o23323o221111A111122o32332o
+o22332o2111111111112o23322o
+oa2332o22111B1111122o2332ao
+o32323o3231111111323o32323o
+o3332o222323111323222o2333o
+oa333o223222232222222o333ao
+o33a3o223222222222322o3a33o
+o333oo223232222232322oo333o
+o333oo32222232322222ooo333o
+.o33ooo2222222222222ooo33o.
+.oo3o..o2ooo222ooo2o.oo33T.
+..o3o..oooaoooocaooo..o3o..
+..oo...oao3ooooc3oao...oo..
+........oo3ooboo3oo........
+.........ooobbbboo.........
+..........oo33bbo..........
+..........ooc3bbo....ooo...
+...........oc33bo...oc33o..
+...........oc33bo..ocabbo..
+...........o2c3bo.ooacoo...
+...........o2c3boo3aoo.....
+...........o2c3333oco......
+..........oo3a333cco.......
+..........o23a3ccco........
+.........oo2oaaooo.........
+.........oaaoaooo..........
+.........oaaoaooo..........
+.........oao2aooo..........
+........obbo2aooo..........
+.......oobooaaooo..........
+.......ooooooPoo...........
diff --git a/parts_pl_src/body/pl_frogmouth_d.txt b/parts_pl_src/body/pl_frogmouth_d.txt
new file mode 100644
index 0000000..37525f7
--- /dev/null
+++ b/parts_pl_src/body/pl_frogmouth_d.txt
@@ -0,0 +1,48 @@
+# pl_frogmouth_d: from pixellab_src/pl_frogmouth_d/base.png (variant of pl_frogmouth) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 40)
+# head_top at (31, 19)
+# back at (31, 32)
+# tail at (51, 40)
+.................ooo^oooo.................
+..............ooo11111111ooo..............
+............oobb1111111111bboo............
+...........o222bb11111111bb222o...........
+..........o22222bb111111bb22222o..........
+.........o2222222bb1111bb2222222o.........
+........o321111122bb11bb221111122o........
+.......o22222211122b22b22111222222o.......
+......o3222oooo2112b22b2111oooo2222o......
+......o312owwcco2122222212occwwo2122o.....
+.....o331owwcccco21222211occccwwo122o.....
+.....o321owcwwocco122221occowwcwo112o.....
+....o3311owcooooco322223oboooocwo1123o....
+....o3311owboooobo33B333obcooocwo1113o....
+....o33111obboobo33333333oboobbo21113o....
+....o331111obbbo3bb2aa2bb3obbbo211113o....
+....o33111ooooobbb22aa22bbbooooo11113o....
+....o3331obb2221bb332233bb1222bbo1133o....
+...o22333obbooooooo3223ooooooobbo33322o...
+..o1111333oobbbbbboo33oobbbbbboo3332111o..
+..o111133333ooobbbbboo3bbbbooo333332111o..
+.o1111133333333oooobbAboooo3333333321111T.
+.o111123o3222233333oooo3333322333o322211o.
+obb22223o322111333333333333111333o33222bbo
+o1bbbb23o322111111333333111111133o33bbbb1o
+o111bbb3o321111111111111111111133o3bbb211o
+o11bb233o321111111111111111111113o332bb11o
+o11bb23o33211111111111111111111133o322b11o
+o1bb333o33211111111111111111111133o332bb1o
+o1b333o3333111111111111111111111333o333b1o
+obb333o3333311111111111111111113333o3333bo
+ob333o333333111111111111111111333333o333bo
+.o333o333333311111111111111113333333o333o.
+.o333oo3333333111111111111113333333oo33oo.
+..o3oooo333333331111111111333333333ooo3o..
+...oo..oo3333333333333333333333333o..oo...
+........oo33333333333333333333333o........
+.........oo3oooo3333333333oooo3oo.........
+..........ooobbooo333333ooobbooo..........
+.........obbo22ocooooooooco22obbo.........
+.........oooooboo3o....o3oobooooo.........
+.............oo.oP......oo.oo.............
diff --git a/parts_pl_src/body/pl_furnace.txt b/parts_pl_src/body/pl_furnace.txt
new file mode 100644
index 0000000..9ae6b1e
--- /dev/null
+++ b/parts_pl_src/body/pl_furnace.txt
@@ -0,0 +1,48 @@
+# pl_furnace: from pixellab_src/pl_furnace/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 41)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 37) (from part/probe)
+# tail at (52, 52) (from part/probe)
+...................oooo...................
+...............oooooaaooooo...............
+.............ooobbboccobbcooo.............
+............ooccbaaabbbbbcccoo............
+...........ooccbaaaa^aaabbcccoo...........
+.....ooo...ococcawwaaaaabcccoco...ooo.....
+.....o13oo.occcaaaaabbbaaccccco.oo31o.....
+.....o112oooooccbbbbccccbcccooooo221o.....
+.....o211ooo233oooooooooooooooooo112o.....
+.....oo21oo22222222222222222223oo12oo.....
+.....o33oo3332111111111111112333ooooo.....
+.....ooooo32o3322111111112233o23ooooo.....
+......ooo322oooo3221111233oooo223ooo......
+......oo332oocooooo2112ooooocoo233oo......
+......oo322obowooooo22ooowooobo223oo......
+.....oo3322oa3oooobo12ob3ooo3ao2233oo.....
+.....o33322oa31o23ao11oa32o23ao223c3o.....
+.....o33222oaw211wao11oaw111wao22233o.....
+....oo332211oawwwao1B11oawwwao112233oo....
+....oco322211ooooo111111ooooo112223oco....
+....oocoo22221111111oo1111112222oobcoo....
+....oocccboo22221111111111222oocbbcoao....
+...oo33aobbbcbbaaaaaAaaaabbbbcbboac33oo...
+...oo33o22oaobbbobbbbbbboobbbac2bo233oo...
+..o3o332222o222o3bbboobb3o22bo2222333o3o..
+..o2o332222222222oobaaboo2222222223c3o2o..
+.o21o3332222222ocbaooooabco2222222333o12o.
+.o212o33322b22obbooocbooobbo22b22333o212o.
+o2113o3332222ocobobocaocbocbo2222333o3112o
+o211oo333322ococboaobaocaobcbo223333oo112o
+o2223o333332ocbbboaobaobaoboco233333oo222o
+o2223oo33333ooobboaoybobboboco33333ooo222o
+o2222oooc333ocaoboaoybobboboco333cooo2222o
+o3232ooooc33ocoobobobbobboboco33coooo2323T
+o33o23ooo333ooocbobobcobbobbcooc3oooo2o33o
+oo3oooo.oo333ocbcooooooooobco3o3oo.oooo3oo
+oooooo...ooo3oocbbbbbbbbbbcoo3ooo...oooooo
+..oooo...oooooooooooooooooooooooo...oooo..
+.........o33oooooooooooooooooo33o.........
+........o2w2ooo..oooooooo..ooo2w2o........
+........o222ooo............ooo221o........
+........ooooooP............ooooooo........
diff --git a/parts_pl_src/body/pl_furnace_b.txt b/parts_pl_src/body/pl_furnace_b.txt
new file mode 100644
index 0000000..9afb5bc
--- /dev/null
+++ b/parts_pl_src/body/pl_furnace_b.txt
@@ -0,0 +1,61 @@
+# pl_furnace_b: from pixellab_src/pl_furnace_b/base.png (variant of pl_furnace) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (32, 31)
+# head_top at (31, 6)
+# back at (31, 37)
+# tail at (46, 52)
+....ooooooooooo^ooooooooooooo...
+...oo33333333333333333333333ooo.
+.oo333333333333333333333333333oo
+oo333333333333333333333333333o3o
+o222222222222222222222222222o33o
+o333333333333333333333333332oooo
+oooo3333333333333333333333ooo3o.
+.o3333333333333333333333333o33o.
+.o3333333333333333333333333o33o.
+.o3333333333333333333333332o33o.
+.o3333333333333333333333332o33o.
+.o3333332222222222222223332o33o.
+.o3333333111111111111123332o33o.
+.o33332o333211111112333o232o33o.
+.o33332oooo332111133oooo222o33o.
+.o3333oocooooo3113oooocoo22o33o.
+.o3333oaowooooo22oowoooao22o33o.
+.o3333oa3ooooao22oaooo3ao22o33o.
+.o3333oa32o23ao11oa2o23ao22o33o.
+.o3333oaw211wao11oa111wao22o33o.
+.o33331oawwwao1111oawwao222o33o.
+.o333322ooooo111111oooo2222o33o.
+.o3333222111111oo1111123222o33o.
+.o333boo2222111111112223oc2o33o.
+.o333occbbaaaaaaaaaa222cbo2o33o.
+.o33333o2bbbobbbAbbobbbao32o33o.
+.o33333o333cbbbabbb3o3coo32o33o.
+.o3333oboooooooooooooobo332o33o.
+.o333ocooccccccccbbcccoco32o33o.
+.o333obocccbbbbbbbbbbccbo32o33o.
+.o333oboccbbaaaaaaabbbcbo32o33o.
+.o333obobbbaaaaBaaaabbbbo32o33o.
+.o333obcbbaaaayyaaaaabbbo32o33o.
+.o333obcbbaaaayyyaaaabbbo32o33o.
+.o333obcbaaayyyyyyyaabbbo32o33o.
+.o333obcbaaayyyyyyyaaabbo32o33o.
+.o333obcbaaayyyyyyaaaabbo32o33o.
+.o333obcbbaaaaaaaaaaaacbo32o33o.
+.o333obccbbaaaaaaaaaaccbo32o33o.
+.o333obcccbbaaaaaaaacccbo32oc3o.
+.o333oboccbbbbbbbbbbccbbo32o33o.
+.o333ocbbbbbbbbbbbbbbbboo33o33o.
+.o3333ooooooooooooooooo3333o33o.
+.o3333333333333333333333333o33o.
+.o3333333333333333333333323o3oo.
+.o3333333333333333333333323oooo.
+.o3333333333333333333333333oooT.
+..oooooooooooooooooooooooooooco.
+..ooooooo............ooooo.ooco.
+..obcoooo.............ocbo.ooco.
+..oacoooo.............ocao.ooco.
+..oacoooo.............ocao..ooo.
+..oaoo................ooao......
+..oboo................oobo......
+..ooo..................Po.......
diff --git a/parts_pl_src/body/pl_furnace_c.txt b/parts_pl_src/body/pl_furnace_c.txt
new file mode 100644
index 0000000..62ede90
--- /dev/null
+++ b/parts_pl_src/body/pl_furnace_c.txt
@@ -0,0 +1,49 @@
+# pl_furnace_c: from pixellab_src/pl_furnace_c/base.png (variant of pl_furnace) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 38)
+# head_top at (31, 18)
+# back at (31, 37)
+# tail at (48, 52)
+............ooooooooooo^ooooooooooooo...........
+........oooocbaaaaaabb22222222222bbbcooo........
+......oobbbcooooooooooooooooooooooooobbboo......
+......obboooooooooooooooooooooooooooooobbo......
+......occbbbooooooooooooooooooooooo2222cco......
+......ocbccc2222111aaaaaaaaaaa1abbbccccbco......
+.......occccbc22bcbbbcbbbbcbbbbcbbcbcccoo.......
+..ooo...ooooocccccccccccccccccccccccoooo...ooo..
+oo132o.oooooooooooooooooooooooooooooooooo.o231o.
+o1132oooooo3ooo2233333333333333222oo3222ooo2311o
+o13ooooooo33333oo23111111111113oo333333oooooo31o
+o32o2oooo333313ooooo31111111ooooo311333booo2oo3o
+o22ooooo333311oocoooo23111oooooooo113333ooooo22o
+.oo2oco2333111obo1oooo3111ooo1oobo1113333oooooo.
+..ooooo3333111oa2ooobo1111ob2oo2ao1111333ooooo..
+...ooo23331111oa1331ao1111oa1331ao1111333oooo...
+...ooo333311111oa11ao111111oa11ao111113333booo..
+...oob3333111111oooo11111111oooo11111113332ooo..
+..ooo233311333111111111ooo11111111131113332ooo..
+..ooo233313oo3111111111B11111111113oo313332ooo..
+..oob23331ooooo311111111A11111113ooooo11332ooo..
+..ooo23333ooo11ooo311111111111ooo11ooo31332obo..
+..ooo23333oooo1o11oooooooooooooooo1ooo3133oooo..
+..oooo3331oooooo11oo111oooo11ooooooooo3133oooo..
+..oooo3331ooooooo1oo111oooo11ooooooooo3333oooo..
+..ooboo331ooooooooooo1ooooo11ooooooooo1332oobo..
+..ooooo3331ooooooooooobbbbboooooo1ooo1333ooooo..
+..oooooo331ooo1ooobbbbbbbbbbbbooo11oo1333ooooo..
+...oooooo331oo11obbbaaaaaaabbbbbo11o1133ooooo...
+...oobooo2331oo1bbba1aaaaaa1aabbboo1333oooboo...
+...oooooooo3331oobba11oaaao11aabo11333ooooooo...
+....oooooooo33331ooo11obbbo11ooo1333oooooooo....
+.....ooooboooo33311oooooooooo11333ooooobooo.....
+......ooooooooooo23331111111333ooooooooooo......
+.......ooooooooooooo33333333ooooooboooooT.......
+........oooooobooooooooooooooooooooooooo........
+.........oooooooooooboooooooboooooooooo.........
+.........oooooooooooooooooooooooooooooo.........
+.........o22oooooooooooooooooooooooo22o.........
+.........o3332oo...oooooooooo...oo2233o.........
+........o33332oo................oo23333o........
+........o1o3o3oo................oo3o3o1o........
+........oooooooP................oooooooo........
diff --git a/parts_pl_src/body/pl_furnace_d.txt b/parts_pl_src/body/pl_furnace_d.txt
new file mode 100644
index 0000000..ab5d3ae
--- /dev/null
+++ b/parts_pl_src/body/pl_furnace_d.txt
@@ -0,0 +1,64 @@
+# pl_furnace_d: from pixellab_src/pl_furnace_d/base.png (variant of pl_furnace) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 36)
+# head_top at (31, 3)
+# back at (31, 37)
+# tail at (39, 52)
+...........oo^ooo...........
+..........obwbbcco..........
+..........obwbbcco..........
+..........obabbcco..........
+..........obbbbcco..........
+...........oooooo...........
+...........occcco...........
+...........ocabco...........
+...........obwbco...........
+...........obwbco...........
+...........obwbco...........
+...........obwbco...........
+...........obwbco...........
+...........obwbco...........
+...........obwbco...........
+...........obwbco...........
+...........obabco...........
+...........obabco...........
+...........obabbo...........
+...........obabco...........
+...........obabco...........
+...........obabco...........
+...........oboooo...........
+...........oooaooo..........
+.........ocbaabbbcco........
+........occaaaaabbcco.......
+....o3o.occaaabbaccco.o3o...
+....o23ooocbbbcccccooo22o...
+....o22o2222222222223o1oo...
+....ooo33211111111133oooo...
+.....oo2ooo3211133oo23oo....
+.....o32ocooo212oooco23o....
+....o332o3oobo2o3oo3o23oo...
+....o332o3o22oAo3223o23oo...
+...oo321oawwoB11awwa122ooo..
+...oc3221ooo2111oooo122oco..
+...ooccoo22111111122ocboao..
+...ooaobcbbaaaaaaabbbcaooo..
+..ooo322o2o3bbob3o2c2223ooo.
+..ooo2222222obabo222222oooo.
+.o22o332o2obooboobo2b23oo22o
+o21ooo322oobooaoaobo223oo31o
+o22oooo3occbooaoaooc23oooo2o
+o22ooooooooboobobooc3ooooo2o
+o322ooooocobooboboocooooo22o
+o3o2oooooooboocobobccooooo3o
+ooooo.ooooccoooooocoooocoo3o
+..ooo.oooooooooooooooo..ooo.
+......o3o.oooooooo.ooo......
+......o2o..........o2T......
+......o2o..........o2o......
+......o2o..........o2o......
+......oo............oo......
+......o.............co......
+.....oc.............cco.....
+.....oc..............co.....
+.....oc..............co.....
+.....oP..............co.....
diff --git a/parts_pl_src/body/pl_gamecock.txt b/parts_pl_src/body/pl_gamecock.txt
new file mode 100644
index 0000000..0660481
--- /dev/null
+++ b/parts_pl_src/body/pl_gamecock.txt
@@ -0,0 +1,48 @@
+# pl_gamecock: from pixellab_src/pl_gamecock/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 40)
+# head_top at (26, 24) (from part/probe)
+# back at (38, 34) (from part/probe)
+# tail at (45, 48)
+.........ooo.ooo...................
+........oaacoaao...................
+........oaacoaco...................
+.......ooaaccccooo.................
+......oaa3bcccccco.................
+......oaacc3^oooco.................
+......occc321113o..................
+......oooo2111113o.................
+.....o112211233123o................
+.....o312212oooo13o................
+.....oo3223oo1oo11o......oooo......
+.....owoxyow3woo113o....o2112o.....
+.....ooxxxyowoob211o...o212222o....
+.....ooxcco333b31113o.o21223333o...
+.....ooozzz333211112o.o22232112o...
+....o32occcc33111132o.o2B3222223o..
+....o2occcaao112223ooo3223233oo3o..
+...o3ooccaaco222o3333o323332222o3o.
+..o112ooooooo333333333o333322112oo.
+.o1111123333222222211112o33222222o.
+.o11111111111122221111111o33oo322o.
+o111111111111122A111111133o333o32o.
+o11111111111122222223211233o33o332o
+o3111111111122232222o11a2223o33o33o
+oo3111a1111a2233222o11112113o33o33o
+o3o32122122233322o11111211a3o33o33o
+o33oo32223333322o11111a21123oo3oo3o
+o33o33ooo3332223o21111221233oooo.oo
+.o3o322222222223o2321112233o.ooo...
+.o33o32222222233o332222233o...oT...
+..o33o33333333333oo3333ozo.........
+...ooooo3333333333ooooo3o..........
+......o3oo3333333o333333o..........
+.......o33ooooooo332223o...........
+........o33333o..o33333o...........
+.........oyyoo....ooyyo............
+.........oyyo......oyyo............
+......ooozyyoo....ooyyoo...........
+.....oyzxyyyzyo..oxzxxzxo..........
+....obz1byy1zoo.o1bz2bzb1o.........
+.....oooooooo...oooobboooo.........
+....................Po.............
diff --git a/parts_pl_src/body/pl_gamecock_b.txt b/parts_pl_src/body/pl_gamecock_b.txt
new file mode 100644
index 0000000..2733f79
--- /dev/null
+++ b/parts_pl_src/body/pl_gamecock_b.txt
@@ -0,0 +1,63 @@
+# pl_gamecock_b: from pixellab_src/pl_gamecock_b/base.png (variant of pl_gamecock) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 32)
+# head_top at (26, 4)
+# back at (38, 34)
+# tail at (36, 48)
+........^o.oo................
+.......oacoco................
+......ooacccoo...............
+.....oabccccco...............
+.....obboooooo...............
+.....ooo1111o................
+....o11111221o...............
+....o31122oo13o..............
+.....oyzo1oo13o..............
+.....oyyz3ao13o..............
+.....oocc33312o..............
+......occo3212o..............
+.....occao2112o..............
+.....ooooo1123o..............
+......3bb1112o...............
+.....o1a11113o...............
+....o1aa1112o................
+...o1aa11113o.......oooo.....
+...o1aa1113o.......o2113o....
+..o1aa11113o......o112223o...
+..o1aa11113o.....o2122333o...
+..o1a1111133o....o22232223o..
+.o1aa11111123o...o22323333o..
+o21aa111111122oooo223332223o.
+o21ba111111132113oo33322123o.
+o21ba1111122211111oo3223321o.
+o21ba111223111111133o2333323o
+o21bb2112231111111133o333333o
+o21bb21222o1A11111a13oo33333o
+o22bb22222o111111111333o3333o
+o32bb22222331111a11aB33o33o2o
+o33cbb22222o22111311113oo3o2o
+oo22cb22222332211132113oo3o..
+.o322bb22223o3333113333oo3o..
+.o3333bb22333ooo333333oo.o...
+..oo33bb33333333ooooooo......
+....o33cc33332233333oo.......
+.....ooocc33o222233o.........
+.....o33ooooo222233o.........
+......o333o.oo2223o..........
+......o333o..o3333o..........
+.......o33o...o33o...........
+........ozo....ozo...........
+........ozo....ozo...........
+........oxzo...oyzT..........
+........oxxo...oyyo..........
+........oxzo...oyyo..........
+........oyo.....oyo..........
+........oyo.....oyo..........
+........oyo.....oyo..........
+........oyo.....oyo..........
+........oyo.....oyo..........
+........ozo.....oyo..........
+......oozzoo...ooyo..........
+.....oyzyzzzo.ozyyzo.........
+....ooc1zooooo1zycao.........
+......ooo....oPooooo.........
diff --git a/parts_pl_src/body/pl_gamecock_c.txt b/parts_pl_src/body/pl_gamecock_c.txt
new file mode 100644
index 0000000..1dc2019
--- /dev/null
+++ b/parts_pl_src/body/pl_gamecock_c.txt
@@ -0,0 +1,51 @@
+# pl_gamecock_c: from pixellab_src/pl_gamecock_c/base.png (variant of pl_gamecock) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 39)
+# head_top at (26, 16)
+# back at (38, 34)
+# tail at (46, 48)
+..............oo^.ooo.......................
+.............oaacoaao.......................
+.............oaacoaco.......................
+............ooaacaccooo.....................
+...........oaa3bcccccco.....................
+...........oaaccc3333co.....................
+...........occc3211113o.....................
+...........o3cc21111123o....................
+..........o112211133112o....................
+..........o3111113ooo112o......oooo.........
+.........oooo2223oo1o2112o...oo1113oo.......
+.........oo1o2xy3331o2111o..o21123111oo.....
+.........ooo3xxx31ooc21112o.o2123111123o....
+........o1a3oxccc33cc11112oo222311122333o...
+........o113ooyy3332111122oo222311233333o...
+.......o1111ccccc321111123oo2232223211123o..
+.......o111occaaao1111112o33ooo2232222222o..
+.....ooo111occ3aco111111o332211oo3223oo322o.
+....o223o11133333111122oo221B1112o33222o333o
+...o112332111111112113o3211111111o332112o33o
+..o1113113231111223223221111111113o322222ooo
+..o11231113311113o23311311111111133o333222oo
+.o1313111112322322111113111111211312o33322o.
+.o1133111111133211111A132111111321113o33323o
+o231331aa111111111aa11132111311233113ooo333o
+o221311aa111111111aa11133111133211123o3o333o
+oo223111111111111111111233111111113231oo333o
+.o23o1111111111111111a1233312211113311oo333o
+.o23o21a1111111111111a223o3213223331312oo33o
+.o33o32111111111111111222o3331333211233o.oo.
+..o3o3311a11111111a1122223oo3332223123oo....
+...o3o322211111111112222333oo3333133ooo.....
+....oo33322211111222222333333oo33333T.......
+......o333322222222223333333333ooooo........
+.......oo33333333333333332112333o...........
+........o3333333333333321111133o............
+........o323oo3333333321111123o.............
+.........o2233ooooooo331111233o.............
+.........oo2233333oooo3322333o..............
+..........oo33333o...oo33333oo..............
+..........ooo3yyoo....oo333oo...............
+.........oyzxyyyyyo..oxzxxzxo...............
+........obz1byy1ooo.o1bz2bzb1o..............
+.........oooooooo...oooobboooo..............
+........................Po..................
diff --git a/parts_pl_src/body/pl_gamecock_d.txt b/parts_pl_src/body/pl_gamecock_d.txt
new file mode 100644
index 0000000..777a29b
--- /dev/null
+++ b/parts_pl_src/body/pl_gamecock_d.txt
@@ -0,0 +1,52 @@
+# pl_gamecock_d: from pixellab_src/pl_gamecock_d/base.png (variant of pl_gamecock) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 39)
+# head_top at (26, 16)
+# back at (38, 34)
+# tail at (47, 48)
+.............ooo...................
+............^abcoo.................
+...........obabcbbo................
+...........oabbbbco................
+..........oobbb3333oo..............
+........oo2obb3222222o.............
+.......o112ob322222212o............
+......o1122332222222212o...........
+.....o212222222222222212o..........
+.....o2222222222222222223o.........
+.....o2322222222332222223o.........
+....o23oo222222ooo22222223o........
+....o3bwo22222owoc32222223o........
+....o3woo22222oooc32222223o........
+....o3woo2zz22ooob322222333o.......
+...o2acbcz1xz23bb3aa2222333o.......
+...o2a33zxxxxz2222aa2222333o...oo..
+...o22222zzzzc222222222333oo..o12o.
+...o322222333222222222333333oo212o.
+....o3222233322222222333B3333o222o.
+...o333222222222222333333333332222o
+..o3333322222222233333333333333232o
+..o3332222222222222233333333333333o
+.o3322222222222222222322333333333o.
+.o332112222222221A223222211oo3333o.
+o3331222221111221222322222111o333o.
+o33222211211112212223222222223o333o
+o332212111111122122232222223333o33o
+o3322221112111212222332222223333o3o
+o332222211211122222233322322222o33o
+o33322222222222222222333223333o333o
+.o33232222222222222223333333oo3333o
+.o3333222222222222222333333333333o.
+..o333332222222322223333333333333T.
+..o33333332222333223333333333333o..
+...oo333333333333333333333333333o..
+....o33333333333333333333333333o...
+.....o333333333333333333333333o....
+......oo333333333333333333333o.....
+........o333333333333333333oo......
+.........ooo333333333333ooo........
+............ooooooooooozyo.........
+..........oooyyo......oyyo.........
+.........oyyxyybo...oyxxy2o........
+.........oobooooo..oooaoobo........
+..........oo.........Po..oo........
diff --git a/parts_pl_src/body/pl_gargoyle.txt b/parts_pl_src/body/pl_gargoyle.txt
new file mode 100644
index 0000000..66e0ebd
--- /dev/null
+++ b/parts_pl_src/body/pl_gargoyle.txt
@@ -0,0 +1,48 @@
+# pl_gargoyle: from pixellab_src/pl_gargoyle/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 39)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (44, 52) (from part/probe)
+oo..............................oo
+o2oo..........oooooo..........oo2o
+o211oo.....ooo222222ooo.....oo112o
+oc2112oo.ooo2211111222ooo.oo2112co
+ooo2112coc232111^11222c2coc1122oco
+.oco2122c221b11111112ob22c2122oco.
+.occo2223211o1111111o22223212occo.
+.obco22o221113111113212222o22ocbo.
+.obbo22o2o2211311131113c33322obbo.
+.obbbo23c1122113211112123332obbbo.
+..obbo3321111211311121111333obbo..
+..obco3o211112211312111113o3ocbo..
+..occo3occ3111221122111bbco3ocbo..
+...occooooo31113223112cooooocco...
+....ooocoacoc32333323bocaocooo....
+.....oc2caacooc3333coocbac2co.....
+.....o22caybbaoooccoabbyac22o.....
+.....o212cayaco2222ocayac211o.....
+.....o2112ccc22111123ccc2111o.....
+.....o31oo2111oo11o21112oo12o.....
+.....o322ooo3111A11113ooo223o.....
+....oco22oooaooooooooaooo22oco....
+....o2co22ooaoooBooooaoo22oc2o....
+...o21cco22oooccccccooo22ooc22o...
+...o2bbcoo22oacbbbbcao12ooocc2o...
+..o2122cooo221occcco112ooc2222co..
+..o2211111oo2211111122oo211112bo..
+..o21321b23ooo222222oooc2b1232bo..
+..oc2ccaoa3ooooooooocoocaoaoo2co..
+...oobobobocoocccccccocoboboaoo...
+...ooooococcc3cccc33occcooooooo...
+...o1111b23co33o2223oc32111122o...
+...o1111bb33o332ob22o3331111b2o...
+...o2111bo333o322o22o33o2111bTo...
+....o222o3333o3c333co333o2223o....
+....ocoo32333occcccco3333oooco....
+.....o3333333occcccco3333333o.....
+.....ooooooocoooooooooooooooo.....
+....obc223ccco......oocc322c3o....
+...oboaboa2cco......occbaobaobo...
+...oooabobboo........oobaobbooo...
+......ooooP............ooooo......
diff --git a/parts_pl_src/body/pl_gargoyle_b.txt b/parts_pl_src/body/pl_gargoyle_b.txt
new file mode 100644
index 0000000..9491bf2
--- /dev/null
+++ b/parts_pl_src/body/pl_gargoyle_b.txt
@@ -0,0 +1,55 @@
+# pl_gargoyle_b: from pixellab_src/pl_gargoyle_b/base.png (variant of pl_gargoyle) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 37)
+# head_top at (31, 13)
+# back at (31, 41)
+# tail at (46, 52)
+......oo..............................oo......
+......o2oo..........oo^ooo..........oo2o......
+......o211oo.....ooo222222ooo.....oo112o......
+......oo3112oo.ooo2211111222ooo.oo2113co......
+......ooo3112ooo232111111112c3ooo1123oco......
+.......oco3122o222b11111111ob33o2123oco.......
+.......occo3223211o1111111o22223213occo.......
+.......obco3co221113111113312222o33ocbo.......
+.......obbo33o221111311131112c33333obbo.......
+.......obbbo3322222113311112123333obbbo.......
+........obbo3321112311311121111233obbo........
+........obco3321111321131221111233ocbo........
+........occo3333111123112211113333ocbo........
+.........oco3oooo2211o33o11223ooo3oco.........
+..........o33oocoo211o33o122oocoo33o..........
+.........oo2233aacoooooooooocaa3222oo.........
+.........o33113c1aaco3333ocay1c31122o.........
+.........o321113ccc33o11o23ccc311112o.........
+........oo3221b13331111111133311cc13oo........
+.......ooo32cbb111111111111132222cc3ooo.......
+......o23o3cb332331oooooooo1332222ccoo3o......
+.....o223ooc333333oo111111oo333323cooo33o.....
+....o3122ooo33333o1133333311o3333oo33331co....
+...o2112oo33oo333233311113323333oo323321b2o...
+..ob1113o2213333333333333333333333111o22b12o..
+..obb12oo11111333oooooAoooooo33322111oo3b11o..
+.o21b1ooo311133oo322222222222ooo32222ooo111co.
+.o11bco3oo333ooo2211111111111b2oo3333ooo311co.
+o2b12oo33ooooo2111111111111111c22oooo33oo1bc2o
+o2b12o3322222211111111B11111111c2222233oo1b12o
+o2c12o333222221b1111111111111111c2222333o211bo
+obc12o333c222bb1111111b1111111112c22cc33o21bbo
+oc212o3332c22b1111111111111111122cccc333o21b2o
+o3211oo3322cc21111111111111111222cbb2333o21c2o
+o3323oo332cbc2222111111111111122bbbb233oo2232o
+oa32booo33cb2c22221111111111222bb22bb3oooo23ao
+oboaboooocc222c222221111112222b2222bb3ooooaobo
+.oobboooccc2222cb2222222222222b2222cccoo.oboo.
+...oo..oocco2222c222223o222222222333coo..oo...
+........oocooo222c22222222222222333ooo........
+........oooooooo3cc222222222233333oooT........
+........oooooooooocc33333333333o3oooo.........
+.........ooooooooooc3333333333ooooooo.........
+..........oo3oooooooooooooooooooo3oo..........
+...........oooooooooooooooooooooooo...........
+..........o3o233oooo......oooo323o3o..........
+.........oboaboaaooo......ooobaobaobo.........
+.........oooabobboo........oobaobbooo.........
+............ooooP............ooooo............
diff --git a/parts_pl_src/body/pl_gargoyle_c.txt b/parts_pl_src/body/pl_gargoyle_c.txt
new file mode 100644
index 0000000..02a2859
--- /dev/null
+++ b/parts_pl_src/body/pl_gargoyle_c.txt
@@ -0,0 +1,63 @@
+# pl_gargoyle_c: from pixellab_src/pl_gargoyle_c/base.png (variant of pl_gargoyle) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 32)
+# head_top at (31, 5)
+# back at (31, 41)
+# tail at (41, 52)
+..oo........................oo
+..ooo........o^ooo........oo2o
+..o21oo...ooo22222ooo...oo222o
+..oo222ooo33212222223o.o322ooo
+...oo222o22c1112222oc3o222oco.
+...oco223222311222o223322occo.
+...oco22oo222312232233322occo.
+...occo23322223222223332occco.
+....oco33222222322221223occo..
+....oco3o2112222222112coocco..
+....ocooooo212223212ooooocoo..
+.....oooobco2233322ocboooo....
+......oocaaco33333occac3o.....
+......o2ccbccoooooccbco3o.....
+......o222ccc21112ccc212o.....
+......o22o32221111112oo3o.....
+......o22oo221111111oo23o.....
+......o22oo221111122oo2oo.....
+.......o22oo211111c2o22o......
+........o33o2111122o32o.......
+........oooo2211122oooo.......
+........ooooo311123oooo.......
+........ooooo31112ooo3o.......
+........o3ooo22122ooo3o.......
+.......o332ooo212ooo23o.......
+.......o322ooo212ooo233o......
+......o3c222oo212oo2233o......
+......o22322oo212oo22333o.....
+.....o3222c22o2A2o3233233o....
+.....o22221222o22o2222222o....
+....o322221112o23o11222223o...
+....o22232b111o3o1bb123222o...
+...o222222bb11boo1b11232223o..
+...o222222b1b1bbb1bb1233223o..
+..o3223o21b111b111b1123o3233o.
+..o322oo21b1111111b1123o3223o.
+..o222oo211111b11111123oo223o.
+..o223oo211111Bb11111233o322o.
+.o2223oo211111b1b1111233o3223o
+.o2223oo321111bb11111333o3223o
+.o22223o331111b11111233o32223o
+.o22232o332111111112333o23232o
+.o232o2o333222222222333o2o232o
+.ob32obo333322323223332obo23bo
+..ooboo21233o33333333212ooboo.
+...ooo311223ooooooo322113oo...
+oo...o321223ooooooo321123o....
+oo...o332233oo...oo33223o.....
+o3ooooo33333oo....o33323T.....
+o3213oooo333o.....o3333oo.....
+.oo22oooooooo.....oo333o......
+...ooo.o3333o.....oooooo......
+......oo3333o.....o33333o.....
+.....o322233o.....o322223o....
+....obo2oa23o.....o3a2oaobo...
+....ooobobcoo.....oocbobooo...
+.......oooP.........oooo......
diff --git a/parts_pl_src/body/pl_gargoyle_d.txt b/parts_pl_src/body/pl_gargoyle_d.txt
new file mode 100644
index 0000000..461a43b
--- /dev/null
+++ b/parts_pl_src/body/pl_gargoyle_d.txt
@@ -0,0 +1,57 @@
+# pl_gargoyle_d: from pixellab_src/pl_gargoyle_d/base.png (variant of pl_gargoyle) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 32)
+# head_top at (31, 9)
+# back at (31, 41)
+# tail at (45, 52)
+....................oooooo^oooooo.....................
+..................ooo222222222222ooo..................
+................oo32221111111122222ooo................
+...............o3232211111111111222332oo..............
+.............oo2223cb1111111111112232223o.............
+............o322212311111111111112cc22223o............
+...........o322211131111111111111232222223o...........
+..........o32222111132111111111133222222223o..........
+.........o3222211111131111111113322222222223o.........
+oooo....o332222111111131111111311112222222233o....oooo
+o211oo..o322222222211111111111111122222222223o..oo111o
+oc3212oo33222321111221111111111122111113222233oo2113co
+ooco322o32223111111113111111111311111111322223o223ocoo
+.obco32332232111111111311111113111111111232223323occo.
+.obbcoo32232222221111113111113111112222222322233occbo.
+.obbcco32232333oo311111331123111112oooo33232223occbbo.
+..obbco322333ooccoo211113212311112oocccoo332223ocbbbo.
+..obb3o32233oobboooo2111322231112ooocccbo332223occbo..
+..ocb3o3223oobbwwoooo22233233322oaooobbaoo32223o3bbo..
+..ocbco3223ooabwwooocoo3332333oowwooobbaco32223o3bco..
+...ocbo3223ocabboooocco3332333occoooobbabo32223occo...
+....oco3222obabboooobco3222223occooooybabo32223oco....
+.....oo3222ocabyboobbco2222222ocbboobyyaco21223oo.....
+......o32212oaayyooybco2111A12ocbbooyyaa3211223o......
+......o321112oaaayyyc32111111123cbyyyaa32111223o......
+......o32111123cccc33211111111123cccccc21111123o......
+......o32111111222211111o111o111112222111111133o......
+.......o31111111111111111111111111111111111123o.......
+.......o32221111111111111111111111111111111123o.......
+.......o3222211111111311111111111o111111111233o.......
+........o332221111111oo1111111ooao11111111223o........
+........o33322211111111ooooooo11a111112112233o........
+.........o3332221111111111B11111111112222233o.........
+..........o33322222211111111111111112222333o..........
+...........o333222222222122221112222222333o...........
+............oo33322222222211112222222333oo............
+..............ooo33332222222222223333ooo..............
+................ooooo333333333333ooooo................
+...............o3333oooooooooooooo3333o...............
+..............o2223o33333333333333o322o...............
+..............o1133o32222222223333o3221o..............
+.............o1113oo22111111112223oo3212o.............
+.............o1113o3211111111112223o3211o.............
+.............o2133o3311111111111223o3322T.............
+.............o313oo3331111111111233oo322o.............
+..............ooo.o3233222222223323o.ooo..............
+..................o3233o333333o3323o..................
+..................o33333oooooo32223o..................
+..................o32233o....o32212o..................
+..................o12121o....o12121o..................
+...................ooooP......ooooo...................
diff --git a/parts_pl_src/body/pl_genie.txt b/parts_pl_src/body/pl_genie.txt
new file mode 100644
index 0000000..373ea5f
--- /dev/null
+++ b/parts_pl_src/body/pl_genie.txt
@@ -0,0 +1,46 @@
+# pl_genie: from pixellab_src/pl_genie/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 24) (from part/probe)
+# back at (30, 38) (from part/probe)
+# tail at (42, 48) (from part/probe)
+............oooooo............
+..........oo332233oo..........
+.........o3222222223o.........
+........o12211^122222o........
+........o221111122222o........
+.......o32122222222223o.......
+1......o32222222222223o.......
+1....ooo32222222222223ooo.....
+.1...o3o33o22222222o33o3o.....
+..1..o2o33322222222333o2o.....
+.1....3o3b3332222333b3o3......
+22....oo3o1oo3333oo1o3oo....1.
+.1.....o321cc2222cc123o.....1.
+.111...o321ca2222ac123o....1..
+...11...o322222222223o....1...
+....12...o332oooo233o....1....
+...11.....ooo3333oooo...1.....
+..11.....o333Booo3333o..11....
+.11.....o33oooooooo33o...11...
+1w......o3o22o32233o23o....1..
+1w......o333o22A33o223o....11.
+211122..o3222233oo2223o....11.
+..11111..o3333oo33333o....111.
+...ww111.oo3oo33oo33oo.11111..
+...w11.11oboo33333ooco11112...
+.111....1ocbbaaaabbboc1.......
+1w......w2oobbbbbbcoow2.......
+11.......w1oooccooo3w1...Too..
+o21oo......1ccbbc31w....oaabo.
+.ooaaoo.....1cbbcw.....oboocbo
+...obaaooooo2wc3w..ooooco..obo
+....occaabccooooooooobco...obo
+.....occbbaaaaaaaaabbcco...obo
+......occcbbbbbbbbbbccboooobo.
+.......oocccbbbbbbbccboooooo..
+.........occccccccccboo.......
+..........oocccccccoo.........
+............ooooooo...........
+...........oobbbbcoo..........
+...........oooPooooo..........
diff --git a/parts_pl_src/body/pl_genie_c.txt b/parts_pl_src/body/pl_genie_c.txt
new file mode 100644
index 0000000..8070db6
--- /dev/null
+++ b/parts_pl_src/body/pl_genie_c.txt
@@ -0,0 +1,64 @@
+# pl_genie_c: from pixellab_src/pl_genie_c/base.png (variant of pl_genie) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 39)
+# head_top at (31, 5)
+# back at (30, 38)
+# tail at (43, 48)
+...............o...............
+...............o...............
+..............^o...............
+..............oo...............
+..............o2o..............
+..............o1o..............
+..............o1o..............
+.............o21o..............
+.............o212o.............
+.............o112o.............
+............o2111o.............
+............o2111o.............
+............o2111o.............
+...........o211112o............
+...........o211112o............
+..........o21111112o...........
+..........o11111111o...........
+.........o3111111113o..........
+.........o3111111113o..........
+.........o3o111111o3o..........
+.........ob31111113bo..........
+.........o3233113323o..........
+.........o1wcc22ccw1o..........
+.........o1wca11acw1o..........
+.........o2111111111o..........
+..........o31111113o...........
+...........o133331o............
+...........o311113o............
+............o3333o.............
+.............o333o.............
+.............o223o.............
+...........oo3213ooo...........
+..........o122112211o..........
+.........o1111111111o..........
+.........o11111111111o.........
+........c1131B1111311co........
+.......obb3o21A111o3bbo........
+......o21coo331133ooc12o.......
+......cb3o.o311113o.o3bc.......
+.....o1co..o311113o..oc1o......
+....o21o...o111113o...o22o.....
+....o13o...o311112o...o31o.....
+....o1o.....o11111o....o13.....
+...o11o.....o1111o.....o12o....
+...o1o......o1111o......o1o....
+..o11o......o1111o......o1T....
+.oo11o.....o331133o.....o12oooo
+obo111o....o333333o....o111oco.
+obo113ooo.oo333332.ooooo311oo..
+obo21oobboooooooooooobcoo12o...
+obo22occcbaaaaaaaaabbccco13o...
+.oco23occcbbbbbbbbbbccco33o....
+..ooooocccccbbbbbbbccccooo.....
+.......ooocccccccccccoo........
+..........oocccccccoo..........
+............occccoo............
+...........oobbbbcoo...........
+...........ooooPoooo...........
diff --git a/parts_pl_src/body/pl_geode.txt b/parts_pl_src/body/pl_geode.txt
new file mode 100644
index 0000000..a6e887f
--- /dev/null
+++ b/parts_pl_src/body/pl_geode.txt
@@ -0,0 +1,41 @@
+# pl_geode: from pixellab_src/pl_geode/base.png (pixellab_library.py extract)
+# pivot at (26, 59)
+# aura at (31, 42)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (45, 51)
+............oooooooo............
+..........oo11122223oo..........
+........oo111111222233oo........
+......oo1311121^12222333oo......
+.....o21133111113222332333o.....
+....o3213111113333222223333o....
+....o3123111133oo3322222333o....
+...o322o321133oooo332322o233o...
+...o33ooo3233oooooo3322ooo33o...
+....oooooo33ooowaooo33oooooo....
+....ooooooooooaaccoooooooooo....
+..oo33oaoooooowBaaoooooooo33oo..
+.o123owbaoooooawoaoowooowao332o.
+.o12ooaaoooaooaaoaowcaowacoo33o.
+.o1oooaocowbaoaaoboaocobaoooo3o.
+o213ooocoboacoacoboaoooboooo323o
+o221o13oocooooacoooooocoo31o233o
+o3221213oo22oocAoooo33ooo122333o
+o3222222o1113oooooo3122o1223333o
+o3222323112211oooo3122222223333o
+o33222232222221oo11222222233333o
+o333222233332222112233332223333o
+o3332223c1wo22222223wo1c3323333o
+.o3322231awo32222223woa1322333o.
+.o33322311oo32222223oo11323333o.
+..o3222231abc222222cba1322333o..
+..o33322233322222222333223333T..
+...o333322222oooooo222233333o...
+....o33333322ooccoo22333333o....
+.....o3333333obbbbo3333333o.....
+......oo3333333333333333oo......
+.......oooo3333333333oooo.......
+......o3333oooooooooo3333o......
+......o3..3o........o3..2o......
+.......oooP..........oooo.......
diff --git a/parts_pl_src/body/pl_geode_b.txt b/parts_pl_src/body/pl_geode_b.txt
new file mode 100644
index 0000000..e5c472b
--- /dev/null
+++ b/parts_pl_src/body/pl_geode_b.txt
@@ -0,0 +1,57 @@
+# pl_geode_b: from pixellab_src/pl_geode_b/base.png (variant of pl_geode) (pixellab_library.py extract)
+# pivot at (24, 59)
+# aura at (32, 34)
+# head_top at (31, 9)
+# back at (31, 36)
+# tail at (47, 51)
+.................ooooo^oooooo.................
+..............ooo111112222222ooo..............
+...............oo111112222223ooo..............
+............ooo11111111222222333ooo...........
+.........ooo13311112111112222233333ooo........
+.......oooo313331112111332222333333oooo.......
+.......oo21113331111111332222333233333o.......
+......o33211211111113333332222222333333o......
+......o331222111111333ooo33322222223333o......
+......o331222111111333ooo33322222223333o......
+....oo3222oo32211333oooooo333233222o2233oo....
+....oo333oooo332333ooooooooo33222ooooo33oo....
+....oo333oooo332333ooooooooo33222ooooo33oo....
+......ooooooooo33ooooowoboooo333oooooooo......
+......oooooooooooooobbooocoooooooooooooo......
+......oooooooooooooobbooocoooooooooooooo......
+...ooo333obcoooooooowwoobboooooooooooo33ooo...
+.oo1223oowccbooooooobbwoobooowooooowbbo3332oo.
+.oo122oooaccoooooooobbbooboooccoooobccoo333oo.
+.oo122oooabcoooobooobbbooboowccbowwbccoo333oo.
+.oo1oooooboocoowcaaobbobbcooboococcboooooo3oo.
+ooo1oooooooooooocccobbobbcoobooooccooooooo3ooo
+oo2133ooooccocooaooobbobbcoobooooccooooo33233o
+oo2211o113oooooooooobbobbooooooooooo331oo2333o
+oo3222o223oooooooooocccbbooooooooooo322o33333o
+oo3222122133ooo22ooocccAboooo333oooo112233333o
+oo3222222222o111133ooobccooo31222oo1222333333o
+oo3222233232o1122333ooBccoo232222oo2222333333o
+oo322223323311222111ooccco3312222222222333333o
+oo33222222332222222222ooo11222222222223333333o
+oo33332222333333322222o3312223333332223333333o
+oo33332222223333322222o1112223333332222333333o
+oo3333222233o11wo2222o2222233woo1oo3332333333o
+.oo3332222331aawo3322o2222233wooa1132223333oo.
+.oo3332222331aawo33222o222233wooa1132223333oo.
+.oo33332223311ooo332222o22233ooo11132233333oo.
+...o3332222231bbcoo2222o2223occb1332223333o...
+...o3322222231bbcoo22222o22ooccb1332223333o...
+...o33333222233332222222222223333222333333o...
+....oo3333332222222ooooooooo222223333333oo....
+....oo3333332222222ooooooooo222223333333oo....
+......o333333333222ooooooooo22333333333o......
+.......oo3333333333occccccoo3333333333T.......
+.......oo3333333333occccccoo3333333333o.......
+.........ooo33333333333333333333333ooo........
+..........oooooo33333333333333oooooo..........
+..........oooooo33333333333333oooooo..........
+.........o333333oooooooooooooo333333oo........
+.........o33..33o............o33...2oo........
+.........o33..33o............o33...2oo........
+..........oooooP..............oooooo..........
diff --git a/parts_pl_src/body/pl_geode_c.txt b/parts_pl_src/body/pl_geode_c.txt
new file mode 100644
index 0000000..41df1e9
--- /dev/null
+++ b/parts_pl_src/body/pl_geode_c.txt
@@ -0,0 +1,62 @@
+# pl_geode_c: from pixellab_src/pl_geode_c/base.png (variant of pl_geode) (pixellab_library.py extract)
+# pivot at (26, 59)
+# aura at (32, 32)
+# head_top at (31, 4)
+# back at (31, 36)
+# tail at (45, 51)
+.................o^ooo................
+...............oo22222oo..............
+.............oo222222222oo............
+...........oo2221122222233o...........
+..........o222112bbbb222233o..........
+.........o32112bbbbbbbbb2233o.........
+........o3211bbbbb2bbbbbbb233o........
+.......oo2112bbb2222223cbbb333o.......
+.......o2212bb2111122222obbb33o.......
+......o2212bb211111222222bbb333o......
+......o222bb22112111222222obb333o.....
+.....o211bbb211111132222223bbo33o.....
+....o2211b221111122322222223bo333o....
+....o222bb211111133332222223ooo33o....
+....o22bb221111233ooo32222233oo333o...
+...o322bo32111233ooooo3322223oo333o...
+...o22bbooo1123oooooooo332223ooo33o...
+...o2oooooo3333ooo1aoooo3322oooo333o..
+..oo2ooooooo33oooaaacooo333oooooo33o..
+..o22ooooooooooooaaaaoooooooooooo33o..
+..o22bboaoooooooo1aaaoooooooooooo333o.
+.o222bo1aaoooooooa1oaooo1oooooaooo33o.
+.o22bboaacoooooooaaoaoo1caooo1aooo33o.
+.o22booaacoooaoooaaocoo1ocoo1aaooo33o.
+.o22oooaocoo1aaooaaocooaocooaacoooo3o.
+o322oooacooo1acooacocooacoooaocoooo33o
+o322booocooaoacooacocooacoooaoooooo33o
+o32bbo3oooococoooacooooccooocoo3ooo33o
+o32bb212oooooooooacAooooooooooo12oo33o
+o32bb2222ooo22oooccooooo222ooo122oo33o
+o33bb22213o2112ooooooooo1222o2222oo33o
+o33bb22222112212oooooo21222222222oo33o
+o33bb2222222222112Boo112222222222oo33o
+o33bb2222222222221oo1122222222222oo33o
+o333b2222222222222111222222222222oo33o
+o333b2222222222222222222222222222oo33o
+.o33bb22223333222222222233332232ooo3o.
+.o33bb2223o11o32222222231o1o3222ooo3o.
+.o33ob22231a1oo3222222331oa13222oo33o.
+.o33obb22311ooo322222233oo113223oo33o.
+.o33oob22231aco32222223oca13222ooo33o.
+..o33ob322233332222222223332223oo33o..
+..o33oob22222222oooooo22222223ooo33o..
+..o333oo32222222oooooo22222233oo333o..
+...o33ooo3222222ooccoo2222233ooo33o...
+...o333ooo322222oaaaco222233ooo333o...
+....o333ooo3322223333322233ooo333o....
+.....o333oooo322222222233oooo333T.....
+......o333ooooo33333333ooooo333o......
+.......o3333oooooooooooooo3333o.......
+........o33333ooooooooo333333o........
+.........oo3333333333333333oo.........
+..........oooo3333333333oooo..........
+.........o3333oooooooooo3333o.........
+.........o3223o........o3222o.........
+..........oooP..........oooo..........
diff --git a/parts_pl_src/body/pl_geode_d.txt b/parts_pl_src/body/pl_geode_d.txt
new file mode 100644
index 0000000..97f6fd3
--- /dev/null
+++ b/parts_pl_src/body/pl_geode_d.txt
@@ -0,0 +1,59 @@
+# pl_geode_d: from pixellab_src/pl_geode_d/base.png (variant of pl_geode) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (31, 31)
+# head_top at (31, 7)
+# back at (31, 36)
+# tail at (41, 51)
+................oooo^ooooo................
+.............ooo1111222223ooo.............
+...........oo1111111122222233oo...........
+...........13111122111222223333...........
+........ooo13111122111222223333ooo........
+.......o31113311111113222223323333o.......
+.....oo3212311111133333322222233333o......
+.....oo3133311111333oo3332222223333o......
+....ooo32oo32111333oooo33323322oo33ooo....
+....o3322oo3211133oooooo3323322oo233oo....
+....o333oooo32233oooooooo33222oooo33oo....
+.....oooooooo333oooowboooo333ooooooo......
+.....oooooooooooooobbccooooooooooooo......
+.....oooooooooooooobbccooooooooooooo......
+...oo333obcoooooooowbbbooooooooooo33ooo...
+.oo1233owccbooooooobwobooowoooowwbo3332o..
+.oo12oooabbooobbooobboboowcbbowbbcoo333o..
+.oo1ooooboocowccaoobbocooboccocbbooooo3o..
+.oo1ooooboocowccaoobbocooboccocbbooooo3o..
+o2213ooooccocobacoobcocooboooocooooo3323oo
+o2221oo13ooocoooooobcoooooooocooo21o2233oo
+o332211213ooo222oooccooooo333oooo1223333oo
+o332222223ooo222oooooooooo333oooo2233333oo
+o332222222oo11113oooooooo31222o122233333oo
+o33222232221122211ooAooo2122222222233333oo
+o3332222222222222221oo111222222222333333oo
+o333322222222222222221122222222222233333oo
+o333322222333333222221122233333222233333oo
+o333322223oc1woo2222222223woo1c322233333oo
+.oo332222321awoo3222B22223wooa132223333o..
+.oo333322321acoo3222222223cooa132233333o..
+.oo3333223211ooo3222222223ooo1132233333o..
+...o333222331bccc22222222ccbb132223333o...
+...o3333222233332222222222333322233333o...
+...o3333222222222222222222222223333333o...
+....o33333322222222oooo2222222333333oo....
+.....oo33333222222ooccoo22233333333o......
+.......o3333332222obbbbo2233333333o.......
+........o33333333222222233333333oo........
+.........oo33333333333333333333oo.........
+...........ooo3333333333333oooo...........
+.............o3oooooooooooo3o.............
+............o3333333333333333o............
+...........o22o332222222333o22o...........
+...........o23o321111111133o32T...........
+..........o223o321111111123o322o..........
+..........o23oo321111111123oo32o..........
+...........oo.o332111111233o.oo...........
+..............o333322223333o..............
+..............o3333oooo3322o..............
+..............o2223o..o3222o..............
+..............o2113o..o3112o..............
+...............oooP....oooo...............
diff --git a/parts_pl_src/body/pl_gharial.txt b/parts_pl_src/body/pl_gharial.txt
new file mode 100644
index 0000000..42bc81a
--- /dev/null
+++ b/parts_pl_src/body/pl_gharial.txt
@@ -0,0 +1,31 @@
+# pl_gharial: from pixellab_src/pl_gharial/base.png (pixellab_library.py extract)
+# pivot at (17, 60)
+# aura at (31, 49)
+# head_top at (30, 37) (from part/probe)
+# back at (38, 40) (from part/probe)
+# tail at (49, 49) (from part/probe)
+.............ooo...33ooo....................
+............o113o.o1^111o.oo................
+...........o1113oo11ww113oacooo.............
+...........owo13oo1woow13obcoaao............
+...........ooo13o31oooww3occBccco...........
+...........o31333o1oo2w13oooooooooo.........
+............o3occ32211133obaaoaaoaao........
+............oocaaco33333o2occoccocco........
+...........o3aabcac3oooo33coo3oo33oooo......
+...........obcaaacacc211112o3caaoaaoobo.....
+...........oaabcaac2111111233cccocco3ooo....
+.........ooaccaacc211bb33123o3oo3co2cooco...
+.......ooaacaaccc21113oo1333o333c3333ooccoo.
+..oo..oaaccabbc2111b3Ao11233oo33b33311oT333o
+.o11ooooaaaccc21113owo21o12333o333321b1o333o
+.o111111occc3213b3wooo13313o112o33o211b3ooo.
+o211111o1o321113ooo1112111o311b3cco33113o...
+o21111o311133b3owo1o221111o11112o1o33333o...
+o3o111111333oooo1121111111o31112o1o33333o...
+.ooo322233oowoo22211111111o311c2o3333333o...
+..owooowowo21111111111113o311113ooooo1oo....
+..oowoccco2111111oooooooo3313133.....oo.....
+..o11231111oooooo........oowo33o............
+...oo111ooo................o.oo.............
+.....ooP....................................
diff --git a/parts_pl_src/body/pl_gharial_b.txt b/parts_pl_src/body/pl_gharial_b.txt
new file mode 100644
index 0000000..ca0984a
--- /dev/null
+++ b/parts_pl_src/body/pl_gharial_b.txt
@@ -0,0 +1,38 @@
+# pl_gharial_b: from pixellab_src/pl_gharial_b/base.png (variant of pl_gharial) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (33, 43)
+# head_top at (30, 28)
+# back at (38, 40)
+# tail at (57, 49)
+.........ooo....oooo^...ooooooo.................
+........o223oooo22222oooaaab333ooo..............
+.......o212232o22ww122oaaaaab22bbboo............
+.......owo222232woow123oaaac222aabbco...........
+.......ooo322222oooww23occc2222aaababo..........
+.......oo3222222ooow123o3222222caaabaco.........
+..ooooo32222222222112223o2222222ccbabc3o........
+.o2222222222222222222221o322ab222cbaac33o.......
+o232222222222222222232211o2aaab222ccc2233o......
+o23222o222222222223232231o2aaaac2222222bco......
+o222222222222222233322221o2aaabc222222bacco.....
+o33222223ooooooooo3322221o2aaabc222222abbco.....
+.oooooooo2222233221332221o2cBacc222222babcco....
+o22233322232222222223331o322ccc2222222cabcco....
+o1333333333333223222331o32222222222222ccbcco....
+.o11111111111111113111oA322222222aabc22cccco....
+..ooooooo11111111111oo33222222222aaac222ccco....
+........ooooo33111111112223333222cabc222333o....
+........oo111111111112222322223222cc2223333oo...
+........oo12211113222222322222232222223222occo..
+........oo222322223232223222222332222322223oc3oo
+........oo3322222222332322222223333333222aco333T
+.......o2o1222222223332o22222223o3333o222bco3oo.
+.......o2o1332222232232o22222b23o3331o2222c3o...
+.......o23o132222233223o22222a23o1111o222223o...
+.......o223o13332222231o32222b23o1111o322223o...
+.......ob233o31333223111o3222223o111oo333223o...
+.......o22233oo111111111o322222o113oooo33333o...
+......o2222333oooo311111o222223oooo..oo32333o...
+......o1313333o...ooooooo222223o......oow33o....
+.......ooooooo..........o121322o........ooo.....
+.........................Pooooo.................
diff --git a/parts_pl_src/body/pl_gharial_c.txt b/parts_pl_src/body/pl_gharial_c.txt
new file mode 100644
index 0000000..612784b
--- /dev/null
+++ b/parts_pl_src/body/pl_gharial_c.txt
@@ -0,0 +1,34 @@
+# pl_gharial_c: from pixellab_src/pl_gharial_c/base.png (variant of pl_gharial) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (34, 47)
+# head_top at (30, 38)
+# back at (38, 40)
+# tail at (52, 49)
+.............................oo..................
+.........................o..oaao.ooo.............
+........................oao.oaco.oao.............
+........................oaooaacooaao.............
+.......................oabooabcoaabo.oo..........
+.............ooo..oooo.oabooaccoaabooao..........
+............o223oo2222^bbbocbccobccoaao..........
+...........o2w23o22ww22occ3cc33cb3ccaco..........
+...........owo23o2wow13oc333ccB3b22cccoooo.......
+...........owo2o32ooww3o3c332cb2bb223coaao.......
+...........o1o3232oow13o322b22b22b2223oabo.......
+............ooaa3o22233o322222b22222b33oco.......
+...........oaacbc2ooooo23222222222222233oo.......
+..........oaaaab2222222232222222222222b3oco......
+.........oaaabc22222222232222222222223333oo......
+........oaaa2222222o122233A33222222233333obo.....
+......ooabb222222ooo112333223o333233322c3oco.....
+.....oaabb22233oooo1112332222oo33333o2223o3oT....
+...oo3aa222cccc1111112ooo22222o3333o32222o33co...
+..o2a3c22ccooooo11112211o3222b33333o32222o333bo..
+.oaa3cooooo.....oo321111o322222o113o332b2o33333o.
+occcoo.........o33o211111o32222o1111o32223o33333o
+.ooo...........o333oo2111o322b3o11111o33322ooooo.
+..............o33333oooo1o22223o11ooooo3333o.....
+..............o3333oo...o3222c3oooo...o3333o.....
+.............o1o133o....ooo223ooo....o1o133o.....
+..............o.ooo.....o1o1oo........ooooo......
+.........................P.oo....................
diff --git a/parts_pl_src/body/pl_gharial_d.txt b/parts_pl_src/body/pl_gharial_d.txt
new file mode 100644
index 0000000..9d5a031
--- /dev/null
+++ b/parts_pl_src/body/pl_gharial_d.txt
@@ -0,0 +1,35 @@
+# pl_gharial_d: from pixellab_src/pl_gharial_d/base.png (variant of pl_gharial) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (33, 46)
+# head_top at (30, 32)
+# back at (38, 40)
+# tail at (52, 49)
+........................ooo...............
+..................o^o..ocaao..............
+.................oaaaoobaaaco.ooo.........
+................oaaaabobaabcoocabo........
+................oaaabbcobbbcobaabo........
+...............ooaaabbboccccobbbco........
+...............oocbbbbc3333333cccoooo.....
+........oooo...oooocbb32oooo33oooocaao....
+.......o2223ooo2223o332oaaaaoccaaocbbo....
+.......o323cb3223333o23caaaBcocaabocbo....
+......owo3aac223ow12o23caaabbocbacocco....
+......ow3baac32ooww2o23ccccbboccccoooo....
+......ooaaaa233oow13o22occcccooccco3oco...
+....ooaaaaa22233113o3223ooooo22ooo2b3bbo..
+...oaaaab2222223333o22223333322232233bco..
+.ooaaabb22222222223o22A23332222222233oo...
+o2bbaa2222233222223o2223222322222233o3oo..
+o2b2222223ooo32222o322332222o22223223ooco.
+o222o222oo32222223o222o32222o222322223o33T
+o222223o22222233oo2213o3222b3o223222b3o33o
+o22223o33333oooo222111o222223o2233322booo.
+.o33oooooooooo22221112o222233o22o332223o..
+..oo....o223ooo2111122o332223o22o333323o..
+.......oo2233ooo222222o2222b3o2ooo33333o..
+......o333333o..oo2222o222233oo.o333333o..
+......o313333o....oooo322223o...o323333o..
+.......oooooo........o232233o....oooooo...
+.....................o1o113o..............
+......................P.ooo...............
diff --git a/parts_pl_src/body/pl_ghostkoi.txt b/parts_pl_src/body/pl_ghostkoi.txt
new file mode 100644
index 0000000..b2b665b
--- /dev/null
+++ b/parts_pl_src/body/pl_ghostkoi.txt
@@ -0,0 +1,45 @@
+# pl_ghostkoi: from pixellab_src/pl_ghostkoi/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 40)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (38, 49) (from part/probe)
+............oooooo............
+..........ooaaaaaboo..........
+.........o2aaaaaabc3o.........
+........o221aa^aab233o........
+.......o22111aaaa22223o.......
+......oa21111122222223co......
+.....oca2331112222233ccco.....
+.....oca31o22222222o13cco.....
+....oca31o2o221222o1o13cco....
+.o2ooca31o1o222222o1o13ccoo2o.
+.o2.o32323oo22B222oo32333o32o.
+..o2o32233322333322333223o2o..
+..oo232aa22232oo23222aa232oo..
+.o223333332223aa322233333322o.
+...33322222222332222222233o...
+...33332222222222222222333o...
+..o233aaa322222222222abc322o..
+.o2223caaaa22222222aaacc3222o.
+.o1123ccaaa222A2222aaccc3211o.
+o11133occaa33222233bccco33111o
+o1o1313occc33333333ccco3131o1o
+o1oo11o.occ333333333co.o11oo1o
+oo..1oo..oo333c33333o..o.1..oo
+...3o.....o33accc33o.....o3...
+.........o333cccc333..........
+...3.....o333cccc3333.....3...
+..32....o33333aa33333....322..
+..212...o232333333232T...312..
+.......o22323322322222o.......
+.......o23223232232232o.......
+......o2322232322322232o......
+.....o222223223222322223o.....
+.....o221213113111312212o.....
+....o2211113113o113111113.....
+....o11111o11o.o111o11111.....
+....o11oo1o1....o11o1oo11.....
+.....oo...o1.....31o...oo.....
+...........3.....33...........
+...........P......o...........
diff --git a/parts_pl_src/body/pl_ghostkoi_b.txt b/parts_pl_src/body/pl_ghostkoi_b.txt
new file mode 100644
index 0000000..087faeb
--- /dev/null
+++ b/parts_pl_src/body/pl_ghostkoi_b.txt
@@ -0,0 +1,45 @@
+# pl_ghostkoi_b: from pixellab_src/pl_ghostkoi_b/base.png (variant of pl_ghostkoi) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (31, 40)
+# head_top at (31, 21)
+# back at (31, 32)
+# tail at (41, 49)
+...............oo^ooo...............
+.............oobbbbbcoo.............
+...........oobbaabbbbbcoo...........
+..........o2baaabbbbbbcc2o..........
+.........o22bbabbbbbcccc22o.........
+........o2211ccbbbbcccc2222o........
+.......o2211111ccccc22222222o.......
+.......o21123311222222332222o.......
+......o221231o22222222o132223o......
+......o22231o2o222222o1o13223o......
+...o23o22231o1o222222o1o13223o32o...
+...o22o222323oo22B222oo323223o22o...
+....oo332223332233332233322233oo....
+....o22322aa22232oo23222aa23332o....
+...o2132322222223aa3222222232321o...
+..o212322322222223322222333223212o..
+..o122322233322222222233332223222o..
+.o21223321222233333333222222223221o.
+.o22232321123222222222232223223222o.
+o1223322311231122A32222322232233221o
+o1233321233323122333223233322233321o
+o2233o222322223332233322223223o3322o
+o33ooo322322123222322232223223ooo32o
+.oo..o332232132222322233332333o..oo.
+......o3222332223323222322233o......
+.......o33222333222233322233o.......
+........o332222222322222233o........
+........33333222233222233333........
+........2333333333333333333T........
+......o223o33333333333333o32o.......
+......ooooo33333333333333oooo.......
+.........o2333333333333332o.........
+........o223233233332332323o........
+........o133113221322312332o........
+.......o11311131113113111311o.......
+.......o11111o11ooo111o11111o.......
+.......o11oooo1o...o11oooo11o.......
+........oo...o1o....o1o...oo........
+..............P......o..............
diff --git a/parts_pl_src/body/pl_ghostkoi_c.txt b/parts_pl_src/body/pl_ghostkoi_c.txt
new file mode 100644
index 0000000..27fe9a7
--- /dev/null
+++ b/parts_pl_src/body/pl_ghostkoi_c.txt
@@ -0,0 +1,51 @@
+# pl_ghostkoi_c: from pixellab_src/pl_ghostkoi_c/base.png (variant of pl_ghostkoi) (pixellab_library.py extract)
+# pivot at (45, 59)
+# aura at (32, 39)
+# head_top at (31, 15)
+# back at (31, 32)
+# tail at (40, 49)
+......................o^ooo.....................
+....................ooaaaaboo...................
+...................o2aaaaabc3o..................
+..................o221aaaab223o.................
+..................o2111aaa2222o.................
+.................oc11111222222co................
+................occ33112222233cco...............
+...............ooccooo22222ooo2coo..............
+...............oca3o1o22222o1o2cco..............
+............o2.o3233oo22222oo3323o.o............
+.............o2o32333223332233323o2o............
+.............oo232a22232o23222a232oo............
+............o23333332223a3222333332o............
+..............33322222222222222333o.............
+..............33333222222222223333o.............
+.............o233ca32222222223ac332o............
+............o1123caaa2222222aacc321o............
+............o1133ccaa22B2222abcc3311o...........
+............oo131occc3222223ccoo131oo...........
+............ooo11oo33333333333oo11ooo...........
+............o..1oo.occ33333ccco.o1.oo...........
+..............3o...occaaaabcco...o3.............
+...................o322aa3233o....3.............
+.............32.....o3222223o....32.............
+.............212....ocb2A2cco....31.............
+....................ocbbbbcco...................
+....................o322b22o....................
+....................o322222o....................
+...................o32322233o...................
+...................o323aab32o...................
+..................o3323222323o..................
+..................o3323222323o..................
+.................o332232323233o.................
+................o33223223232233o................
+...............o3332232232322333T...............
+..............o223222322322322322o..............
+............oo22322232233223223222o.............
+...........o22232222222333223223222oo...........
+........oo32232221231233o322321133222oo.........
+......oo112232111113123o.o3113111132222oo.......
+...ooo1111332111132113o...o11133111332111ooo....
+.oo111111311111133113o.....o1133111113331111ooo.
+o11113ooo111113oo11oo.......o113oo3111113311111o
+oooooo..ooooooo..oo..........ooo..ooo11111oooooo
+.....................................Pooooo.....
diff --git a/parts_pl_src/body/pl_ghostkoi_d.txt b/parts_pl_src/body/pl_ghostkoi_d.txt
new file mode 100644
index 0000000..dc8f07b
--- /dev/null
+++ b/parts_pl_src/body/pl_ghostkoi_d.txt
@@ -0,0 +1,57 @@
+# pl_ghostkoi_d: from pixellab_src/pl_ghostkoi_d/base.png (variant of pl_ghostkoi) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 32)
+# head_top at (31, 9)
+# back at (31, 32)
+# tail at (47, 49)
+....................oooo^ooooo....................
+.................ooocbbbbbbbccooo.................
+...............oocccbbbbbbbbbcccco................
+..............o32bbbbbbbbbbbbbbcc3oo..............
+.............o3322bbbbbbbbbbbbb32333o.............
+............o322222bbbbbbbbbbbb222233o............
+...........o32221122abbbbbbbb222222233o...........
+..........o3222111112aabbbbb22222222233o..........
+..........o2221111111222222222222222233oo.........
+.........ocb22111111122222222222222223cco.........
+........occb22221111122222222222222223ccco........
+.......oocbb2oooo111222222222222ooooo3bcco........
+.......occboo312oo2222222222222o3322oobccco.......
+.......occbo2wwooo2222222222222ooo32233bcco.......
+......occb322wwoooo22222222222owwoo3223bccco......
+......occb3113ooooo22222222222owwoo3113bccco......
+......occb3113ooowo22221122222ooooo3113bccco......
+oooo..o3333113ooooo22222222222ooooo31133ccco..oooo
+o223ooo32231133oooo22222222222oooo331132333ooo322o
+o22233o322321333oo2222222222223333331132233o33222o
+.o2123o32223113333223222222222233331132223333212o.
+..o223o3222233333223323333322222333332222333322o..
+..o233o332aaa22222233332222332222222aaa22333332o..
+..o2233332aaa22222223222BA2232222222aaa23333322o..
+.o2223333322222222222222222222222222222233333222o.
+.o2233333322222222222222222222222222222333333322o.
+.o2231133332222222222222222222222222222333321322o.
+..oo1123o33322222222222222222222222222233o3311oo..
+...o113o.o333222222222222222222222222333o.o311o...
+...o13o...o3333222222222222222222222333o...o31o...
+....oo.....o33332222222222222222223333o.....oo....
+............oo3333322222222223333333oo............
+..............oo333333333333333333oo..............
+................oo33333333333333oo....ooo.........
+.................oooooooooooooooo....o32o.........
+.................o3333cccccc3333o..oo323o.........
+.............3..o33333cccccc33333oo3322o..........
+............323.o23333bbbbbb33333o33322o..........
+............212o2233333bbbb3333322o3311o..........
+...............o12333333bb33333321o3311o..........
+...............o113223333333322321ooo312T.........
+...............o2332233222333222o1o..o32o.........
+...............ooo31233222223222ooo...oo..........
+................oo222322232232223o................
+...............o312123213322311213o...............
+...............o111133113311231111o...............
+..............o111123111oo111321111o..............
+...............oooooo11o..o11oooooo...............
+....................o13o...31o....................
+....................o1o....o1o....................
+....................oP......oo....................
diff --git a/parts_pl_src/body/pl_glider.txt b/parts_pl_src/body/pl_glider.txt
new file mode 100644
index 0000000..a2f55ec
--- /dev/null
+++ b/parts_pl_src/body/pl_glider.txt
@@ -0,0 +1,48 @@
+# pl_glider: from pixellab_src/pl_glider/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 39)
+# head_top at (22, 24) (from part/probe)
+# back at (39, 32) (from part/probe)
+# tail at (49, 48)
+....................ooooooooo.............
+..................oo111111111ooo..........
+..oo.............o1ooo1111111111oo........
+.o21oo..........o1o212o11111111111o.......
+o32222o........ooo12222o11111111112o......
+o3c3233oooo^oooo2122oc2o111111111111o.....
+o3bc33oo2211122o222ocb2o1111111111111o....
+o3bcoo222111222222ocbb2o22211111111111o...
+.occo3221211222222ocbb2o22222221111111o...
+.oooo2222122222222occoo2222222121111112o..
+..oo22222222222222ooooo3332222212121111o..
+..o3222222222222222ooo33oo3222221222111o..
+..o32222222222222222ooocbo33322222212212o.
+..oooo22222222ooo2222ocabo33B32222122222o.
+..oo31o222222o331o222oo2aaco333222222222o.
+..o1oo122222o1ooo1222oo322ao3333222222223o
+.oooooo222222ooo1o2223o3222acoooo22222223o
+oo3oooo222222ooo1o22233o2112aaaoo22222223o
+o221o1o2aab22o1oo12223o221112acoo22222223o
+o2221o2aaac322oo122223o2211112baao2222233o
+oo222231cc1132222222A3o3221112ccoo2222233o
+.oo222311111322222233o3o2221222ooo2232233o
+..ooo22233312222233oo33o2222222ooo22o2333o
+...oooooooo3333333oo333o3332222ooo2oo2333o
+...ooooooooooooooo33333co3oo2222oooo3333o.
+...o3oc1333333occ332233coo222222oooo3333o.
+...o33co1111133cb222233co2222222oooo3333o.
+..oo32bo111333oca222233o22222222oooo333o..
+..oo322bo11333oa222233co22222233cooooooo..
+.o22o22bco333oba222233o222222233coooooT...
+.o22o222bo333oba22233co222222233cooooo....
+.o22oo22ab333oa222233o3222222333coooo.....
+.o32ooo22bo3oba22233co322222233coooo......
+..oooco22ac3oaa22233co332222333cooo.......
+..ooooo22ac3oa22233co3333333333co.........
+...oooo222c3o22223ccoo33333333co..........
+....ooo322coo22233co3oo333333coo..........
+..oo2oo333coo3333co33ooooo33cooo..........
+..o2ooo233oo2233coooo2233333ooo...........
+...ooo1o1oo2122ooo.oo2o23oooo.............
+.....o3o3ooo2o3o....ooooooo...............
+......oooo.oooP...........................
diff --git a/parts_pl_src/body/pl_glider_b.txt b/parts_pl_src/body/pl_glider_b.txt
new file mode 100644
index 0000000..b58910d
--- /dev/null
+++ b/parts_pl_src/body/pl_glider_b.txt
@@ -0,0 +1,48 @@
+# pl_glider_b: from pixellab_src/pl_glider_b/base.png (variant of pl_glider) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (30, 39)
+# head_top at (22, 24)
+# back at (39, 32)
+# tail at (49, 48)
+......................ooooooooo.............
+....................oo111111111ooo..........
+....oo.............o1ooo1111111111oo........
+...o21oo..........o1o222o11111111111o.......
+..o32222o........ooo12222o11111111112o......
+..o3c3233oooo^oooo2222oc2o111111111111o.....
+..o3bc33oo2211122o222ocb2o1111111111111o....
+..o3bcoo222111222222ocbb2o22211111111111o...
+...occo3221211222222ocbb2o22222221111111o...
+...oooo2222122222222occoo2222222121111112o..
+....oo22222222222222ooooo3332222212121111o..
+....o3222222222222222ooo33oo3222221222111o..
+...oaaaaa222222aaaaaaccoocbo33322222212212o.
+...oaacooa2222aooocaaacocabo33B32222122222o.
+...oaco1ooaaaaa1oo1caacoo2aaco333222222222o.
+...oao1oooaaaaoooo1oaacoo322ao3333222222223o
+..o32o1oooaaaaoooo1o2233o3222acoooo22222223o
+.o313o1zzo2222ozoo1331113o2112aaaoo22222223o
+.o1111ozz3aac32zzz2311111321112acoo22222223o
+o111111231cc11122231111111o11112baao2222233o
+o11111133113111223111A1113o21112ccoo2222233o
+o311111133ooo1323111111133o221222ooo2232233o
+o3311113333333223311111133o222222ooo22o2333o
+.o31111333333333333111133o3332222ooo2oo2333o
+..o33333o3333333o3331333oco3oo2223oooo3333o.
+...oo33oc13333333o33333o3coo222223oo3o3333o.
+.....oo3co1111133coooo333co2222222oo3o3333o.
+....oo32bo111333oca222233o22222222oo3o333o..
+....oo322bo11333oa222233co22222233cooooooo..
+...o22o22bco333oba222233o222222233coooooT...
+...o22o222bo333oba22233co222222233co3ooo....
+...o22oo22ab333oa222233o3222222333co3oo.....
+...o32ooo22bo3oba22233co322222233coooo......
+....oooco22ac3oaa22233co332222333cooo.......
+....ooooo22ac3oa22233co3333333333co.........
+.....oooo222c3o22223ccoo33333333co..........
+......ooo322coo22233co3oo333333coo..........
+....oo2oo333coo3333co33ooooo33cooo..........
+....o3ooo233oo2233coooo2233333ooo...........
+.....ooo1o1oo2122ooo.oo2o23oooo.............
+.......o3o3ooo2o3o....ooooooo...............
+........oooo.oooP...........................
diff --git a/parts_pl_src/body/pl_glider_d.txt b/parts_pl_src/body/pl_glider_d.txt
new file mode 100644
index 0000000..5cc27a1
--- /dev/null
+++ b/parts_pl_src/body/pl_glider_d.txt
@@ -0,0 +1,57 @@
+# pl_glider_d: from pixellab_src/pl_glider_d/base.png (variant of pl_glider) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 34)
+# head_top at (22, 13)
+# back at (39, 32)
+# tail at (52, 48)
+......oooo.....................ooo..................
+......o22oo...................o222o.................
+.....o2222oo.................o2222o.................
+.....o2o222oo...............o222o32o................
+....o22bo222oo^ooooooooooo.o222obo2o................
+....o2abo22ooo111111111233o222obba23o...............
+....o2abboo221111111111222o222obba23o...............
+....o2aoo32221111111112222222oobba23o...............
+....o2o32222111111111222222223obba33o...............
+....oo32222221111111222222222223bb33o...............
+....o322222222111122222222222222b333o...............
+...o32222222221111222222222222222333o...............
+...o22222222221122222222222222222233o...............
+..o222222222222222222222222222222233o...............
+.o32222222222222222222222222222222233o..............
+.o32222222222222222222222222222222223o.ooooo........
+.o322211122222222222222111122222222233oo1111ooo.....
+o3222111112222222222221111112222222233o11111111o....
+o32211ooo1222222222221ooooo11222222233o111111111o...
+o3221ooooo12222222221ooooooo11222222333o111111111o..
+o321oowwooo222222222owwoooooo1222222333o1111111111o.
+o32ooowwooo222222222owwoooooo1222222333o1111211111o.
+o32o1oooooo22222222ooooooooo1o222222333o1112222221o.
+o22owoooooo22222222ooooooooowo2B2222333o12222333213o
+o22owocooco22222222ooooooocowo222222333o12223333323o
+o22owocooco22222222occooAccowo222223333o222333oo323o
+o221wwcbcco2aaaa222obbbooacww122222333o222233o33323o
+o2111wcbacoacaaca222cbbbbcww1111222333o22233oo3332o.
+o211111ccc11caac11111ccbb1111111123333o22233oo3333o.
+.o11111111111cc1111111111111111112333o222233oo333o..
+.o111111111111o1111111111111111112333o222233o.ooo...
+..o111111111ooaoo1111111111111113333o2222233o.......
+...o1111111111111111111111111113133o322222333o......
+....o11111111111111111111111113333o3322222333o......
+.....o31111111111111111111133333oo33322222333o......
+......oo3331111111111111333333oooo33322222333o......
+........ooo3333333333333333oooooo333222223333o......
+...........oooooooooooooooo333oo3333222223333o......
+...........o3333333333333333333o3332222233333o......
+...........o22333333332233333333o33222233333T.......
+...........o222o1111o22223333223o33333333333o.......
+..........oo222331132222333o22233o333333333o........
+.........o3o2223o11o22223o3222223o333333333o........
+.........o3o2223o31o22223o3222223o3333333oo.........
+.........o3o2223o31o2223oo3222233o33333oo...........
+..........ooo223o33o2223o3o322233oooooo.............
+..........ooo333o33o2233o3oooo33o...................
+.........o33o333ooooo33oooo22233o...................
+.........o3oo3223oo2233o..o1o13o....................
+..........ooo32o3o2o13o....oooo.....................
+.............oooo.oooP..............................
diff --git a/parts_pl_src/body/pl_golem.txt b/parts_pl_src/body/pl_golem.txt
new file mode 100644
index 0000000..a86d96e
--- /dev/null
+++ b/parts_pl_src/body/pl_golem.txt
@@ -0,0 +1,45 @@
+# pl_golem: from pixellab_src/pl_golem/base.png (pixellab_library.py extract)
+# pivot at (27, 59)
+# aura at (32, 41)
+# head_top at (32, 22) (from part/probe)
+# back at (31, 30) (from part/probe)
+# tail at (44, 49) (from part/probe)
+................ooooooooo...............
+...............o2222^2222o..............
+..............o1111222223o..............
+..............o2222222223o..............
+..............o2ooooooo23o..............
+..............o2ob111bbo3o..............
+..............o22oooooo33o..............
+............ooo2222223333ooooo..........
+...........o22o333333333oo3322o.........
+....ooooooo1111ooooBooooo31123oooooo....
+...o22222o11111111111122211133o22222o...
+..o112222o1112222222222233333o2112223o..
+..o223133o1122222222222223333o2111233o..
+..o222133o1222212222222222333o2222233o..
+..o222233o12221222b22bo222233o2223333o..
+..o222223o122222obo22obo22233o2233333o..
+..o322223o322222ob2222bo22233o3333333o..
+..oo33333o333222obo22obo2223oo333333oo..
+..oooooooo3222222oboobo222233ooooooooo..
+..o33333oo3222222oboobo2222333oo3333oo..
+..o33333oo3222222oo2Ao22332o33oo33333o..
+..o33333oo332222222222232oo333oo33333o..
+.oooooo3oo333322222222322o333ooo33ooooo.
+.o1111ooo.oo3333333333233333oo.oooo222o.
+o11112333o.oooooooooooooooooo.o33331223o
+o12222333o.ooo333333333333ooo.o33331223o
+o22322333o..o3333333333o3oooo.o33331233o
+o2322o333o.o3oo333333333ooo3o.o33332233o
+o22223oo3o.o22oo33333333oo33o.o3To32333o
+o2222o11oo.o222oo333333oo333o.oo21o3333o
+oo333o11o..o2223oooooooo3333o..o21oooooo
+.ooooo22o.ooooooo......ooooooo.o23ooooo.
+.o2o3oo3o.o122233o....o331122o.o3oo3o3o.
+..oo23oo..o222233o....o332222o..oo32oo..
+....oo.....oooo33o....o33oooo.....oo....
+..........o2222o3o....o3o2222o..........
+.........o1111233o....o3321222o.........
+.........o333333o......o333333o.........
+..........oooooP........oooooo..........
diff --git a/parts_pl_src/body/pl_golem_b.txt b/parts_pl_src/body/pl_golem_b.txt
new file mode 100644
index 0000000..b8f1136
--- /dev/null
+++ b/parts_pl_src/body/pl_golem_b.txt
@@ -0,0 +1,61 @@
+# pl_golem_b: from pixellab_src/pl_golem_b/base.png (variant of pl_golem) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 34)
+# head_top at (32, 5)
+# back at (31, 30)
+# tail at (41, 49)
+........oooo^oooo.......
+......oo111311222o......
+.....o111113222223o.....
+.....o112223222233o.....
+.....o122223223323o.....
+.....o122223222323o.....
+.....o122223222333o.....
+.....o1222232222233o....
+.....o1222232222233o....
+....o12222223222233o....
+....o12ooo2222ooo33o....
+....o1oaaco22oaaco3o....
+....o1oacco22oacco3o....
+....o1occbo22occbo3o....
+....o12ooo2222ooo33o....
+....o12222222222233o....
+....o12222222223233o....
+....o12222222233233o....
+....o12222222222233o....
+....o12222223322233o....
+....o122223o2222233o....
+....o122223222222o3oo...
+....o1222o3222222o33o...
+....o122o22222223233o...
+...o312o222222223233o...
+...o12o3222B22223233o...
+...o1133222222232233o...
+...o1223222222232233o...
+...o1223222222322233o...
+...o12232222A2322233o...
+...o2223222223222233o...
+...o22232222o3222233o...
+...o22332222o2222233o...
+...ooo122222o2222233o...
+...o3122222o22222233o...
+...o122222o22222223ooo..
+...o12222o22222222333o..
+...o12223322222222333o..
+...o12223222222223333o..
+...o12223222222332233o..
+..o122222322222322233o..
+..o12222232222o222233o..
+..o122222322223222233o..
+..o222222222223222233o..
+..o322222222233222233T..
+..o223222222333322233o..
+..o333222222322233323o..
+..o232322222322223323o..
+..o223322223222223323o..
+..o223332223222233223o..
+.o13223332232223332331o.
+o3113333322322332233133o
+o3331333333333322331133o
+o33333o3333333332333333o
+.ooooooooooPooooooooooo.
diff --git a/parts_pl_src/body/pl_golem_c.txt b/parts_pl_src/body/pl_golem_c.txt
new file mode 100644
index 0000000..6aa98a4
--- /dev/null
+++ b/parts_pl_src/body/pl_golem_c.txt
@@ -0,0 +1,52 @@
+# pl_golem_c: from pixellab_src/pl_golem_c/base.png (variant of pl_golem) (pixellab_library.py extract)
+# pivot at (27, 59)
+# aura at (31, 38)
+# head_top at (32, 14)
+# back at (31, 30)
+# tail at (55, 49)
+....................oooo^oooo...................
+...................o222222222o..................
+..................o1111222223o..................
+..................o2222222223o..................
+..................o2ooooooo23o..................
+..................o2ob111abo3o..................
+..................o22oooooo33o..................
+................ooo2222223333oooo...............
+...............o22o3333333333o33o...............
+..............o2222oooooooooo3322oo.............
+............oo223322223333333332233o............
+.....oooooooo2333322222222222222223oooooooo.....
+...oo222222o223332222222222222222233o322222o....
+..o1112222o22333223222222222222222233o321112o...
+..o222133o2223322322222222222223222333o222223o..
+..o222133o2233222222222222222222322233o222233o..
+..o222233o2222223222222B22222222232233o222233o..
+..o22222o222222222222222222222223222333o22333o..
+..o22222o222222222222222222222233222333o33333o..
+..o2222o22222222222222222222222322223333o3333o..
+..oo333o22222222222222222222222222223333o333oo..
+..oooooo22222222222222222222222222223333oooooo..
+..o3333o22223222222222222222222222223333o3333o..
+..o3333o22223222222222222222222222223333o3333o..
+..o3333o322223322222222A2222222223233333o3333o..
+..o1133o33222232222222222222222233233333o3333o..
+.oooooooo332223222222222222222222223333oooooooo.
+.oaaabcco333222222222222222222223233333ooobbcco.
+obab1bbcoo33222222222222222222223333333oab1abbco
+obab1cbcco3332222222222222222232333333oobb1c1bco
+obbb11bccoo33322322222222222232333333oocbb1bbbco
+obbb1abcoo.o333233222222222233333333o.ocbb1bbcco
+occcccccco.oo33333222222223333333333o.occcccccco
+ooooooooo...oo333333333333333333333o...ooooooooo
+o3222333oo...ooo33333333333333333oo...oo3333333o
+o22222222o....oo3333333333333333oo....o22222233T
+o22212o12o....o3oo333333333333oo3o....o12o12233o
+.o2o23o22o....o333ooo33333oooo333o....o23o32o3o.
+.o2o23oo3o...oooooooooooooooooooooo...o3oo32o3o.
+..oo23ooo....o2112233o....o3311222o....ooo32oo..
+....ooo......o2222233o....o3322222o......ooo....
+..............ooooo33o....o33ooooo..............
+.............o2222233o....o3322222o.............
+............o11112233o....o33321222o............
+............o3333333o......o3333333o............
+.............ooooooP........ooooooo.............
diff --git a/parts_pl_src/body/pl_golem_d.txt b/parts_pl_src/body/pl_golem_d.txt
new file mode 100644
index 0000000..fc7460f
--- /dev/null
+++ b/parts_pl_src/body/pl_golem_d.txt
@@ -0,0 +1,49 @@
+# pl_golem_d: from pixellab_src/pl_golem_d/base.png (variant of pl_golem) (pixellab_library.py extract)
+# pivot at (25, 58)
+# aura at (32, 38)
+# head_top at (32, 16)
+# back at (31, 30)
+# tail at (53, 49)
+...................ooo^oo...................
+.................oo122222oo.................
+................o1112222223o................
+...............o112222222233o...............
+...............o222222222223o...............
+...............o222222222223o...............
+...............o22ooooooo223o...............
+...............o22ob111bbo23o...............
+...............o222oooooo233o...............
+............oooo222222222333oooo............
+...........o222o32222222333oo333o...........
+..........o11122oooooooooooo33333o..........
+.........o111111111222233333323333o.........
+........o11112222222222222222223333o........
+.......o2111222222222B22222222223333o.......
+.......o2112221222222222222222222333o.......
+......o22122222222222222222222222333o.......
+......o2212222222222o22oo222222223333o......
+......o22122222222ooo22ooo22222222333o......
+.....oo22222222222obo22obo22222222333oo.....
+....o3122222222222ob2222bo222222223o323o....
+....o12o2222222222obo22obo222222223o322o....
+...o122o22222222222oboAbo2222222223oo222o...
+..o1223o22222222222oboobo22222222233o2322o..
+..o123o222222222222oo22o2222222222333o322o..
+..o223o322222222222222222222222223333o3322o.
+.o122oo332222222222222222222222223333oo322o.
+o1222o.o32222222222222222222222233333oo3223o
+o1223o.o3322222222222222222222233333o.o3222o
+o1223oo.o333222222222222222222333333o.o3222o
+o32332o.o33332222222222222222333333o.o33323o
+o32oo2o..o333332222222222223333333o..o3oo23o
+o33oooo...o3333333333333333333333o...oooo33o
+o33o.......ooo33333333333333333oo.......o33T
+.ooo.......o33ooo3333333333oooo3o.......ooo.
+...........o3333oooooooooooo3333o...........
+...........o2233o..........o3333o...........
+...........o223oo..........oo333o...........
+...........o223o............o333o...........
+...........o223o............o333o...........
+..........o1123o............o3322o..........
+..........o3333o............o3333o..........
+..........oooooP.............ooooo..........
diff --git a/parts_pl_src/body/pl_gourd.txt b/parts_pl_src/body/pl_gourd.txt
new file mode 100644
index 0000000..361d288
--- /dev/null
+++ b/parts_pl_src/body/pl_gourd.txt
@@ -0,0 +1,48 @@
+# pl_gourd: from pixellab_src/pl_gourd/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 43)
+# head_top at (32, 27) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (44, 48) (from part/probe)
+..............oooo........
+.............obbbco.......
+............obcoobco......
+...........obco.obco......
+...........obco..oo.......
+...........obco...........
+.........oob22boo.........
+........o22b22b33o........
+.......o22b22^2b33o.......
+......o221112222233o......
+.....o22211122222233o.....
+.....o22ooo2222ooo33o.....
+.....o2ob1b2222b1bo3o.....
+.....o2o1ca2222ac1o3o.....
+.....o22oao2222oao33o.....
+.....o3b2222222223c3o.....
+......oc322oaao233co......
+......ooc333oo333coo......
+.......oocc3333ccoo.......
+........oooooooooo........
+......ooo3c3333c3ooo......
+....oo22233333333333oo....
+...o22111222B2222b3333o...
+..o22111a122222222b3333o..
+.o22111111122A22222b3333o.
+.o22111a11122222222bb333o.
+o22211a1111222222222b3333o
+o22211a1111222222222bc333o
+o2222aa1122222b22222bc333o
+o2222bb2222222b222222c333T
+o2222bb2222222b222223c333o
+o2222bb2222222b222223c333o
+o2222bb2222222b222233c333o
+o3222bb2222222b222333c333o
+.o3323bb22222bb23333c333o.
+.o3333bb22222bb33333c333o.
+..o3333c33333c33333c333o..
+...oo33cc333333333cc33o...
+....ooo3cc33333333c3oo....
+......oooooooooooooo......
+.....obc3o......o3cbo.....
+......ooP........ooo......
diff --git a/parts_pl_src/body/pl_gourd_b.txt b/parts_pl_src/body/pl_gourd_b.txt
new file mode 100644
index 0000000..ac2f3fc
--- /dev/null
+++ b/parts_pl_src/body/pl_gourd_b.txt
@@ -0,0 +1,48 @@
+# pl_gourd_b: from pixellab_src/pl_gourd_b/base.png (variant of pl_gourd) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 44)
+# head_top at (32, 20)
+# back at (31, 41)
+# tail at (47, 48)
+..................oooo............
+.................^bbbco...........
+................obcoobco..........
+...............obco.obco..........
+...............obco..oo...........
+...............obco...............
+.............oob22boo.............
+............o22b22b33o............
+...........o22b2222b33o...........
+..........o221112222233o..........
+.........o22211122222233o.........
+.........o22ooo2222ooo33o.........
+.........o2ob1b2222b1bo3o.........
+.........o2o1ca2222ac1o3o.........
+.........o22oao2222oao33o.........
+.........o3b2222222223c3o.........
+..........oc322oaao233co..........
+.......oooooc333oo333cooooo.......
+......o2233oocc3333ccoo3333o......
+.....o2112333ooooooooo333333o.....
+....o211232132b222222bb233333o....
+...o211131111b222222223b223333o...
+..o221131111a122B222222b2223333o..
+..o221321111111222222222b223333o..
+..o22232111a1112222222222b2333oo..
+.oooooo2111a11122A22222223oooocco.
+.obaaaaooooooooooooooooooobbbbcco.
+.obbbbbaaaaaaaaaaabbbbbbbbbbbccco.
+.obbbbbbbbbbbbbbbbbbbbbbbbbbbccco.
+.ooooobbbbbbbbbbbbbbbbbbbbboooooT.
+o33333oooooooooooooooooooooc33333o
+o2222c3333c333333333c333333c33333o
+o2222c2222b222222222b222223c33333o
+o2222c2222b222222222b222233c33333o
+.o222c3222b222222222b222233c33333o
+.o3223c222bb2222222bb223333c3333o.
+..o333cc22bb2222222bb33333c33333o.
+..o333cc3333c333333c33333cc3333o..
+...oo333c333cc3333333333cc333oo...
+.....ooooooooo333333ooooooooo.....
+.........obc3oooooooo3cbo.........
+..........ooP........ooo..........
diff --git a/parts_pl_src/body/pl_gourd_c.txt b/parts_pl_src/body/pl_gourd_c.txt
new file mode 100644
index 0000000..2311a69
--- /dev/null
+++ b/parts_pl_src/body/pl_gourd_c.txt
@@ -0,0 +1,62 @@
+# pl_gourd_c: from pixellab_src/pl_gourd_c/base.png (variant of pl_gourd) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 39)
+# head_top at (32, 6)
+# back at (31, 41)
+# tail at (44, 48)
+...............ooo........
+.............^ob22o.......
+............ob12332oo.....
+............o223oo2oo.....
+............o23o..oo......
+...........o123o..........
+...........o12bo..........
+...........ob23o..........
+..........o1233o..........
+..........o1233o..........
+..........o222co..........
+...........o3233o.........
+...........o3123o.........
+...........o212bo.........
+...........o2123o.........
+..........ob1233o.........
+..........o22233o.........
+.........o11223co.........
+.........o1122233o........
+.........o2222b33o........
+.........o3b22b33o........
+........o222233333o.......
+.......o22b2222b33oo......
+......o221112222223o......
+.....o22211122222233o.....
+.....o22ooo2222ooo33o.....
+.....o2ob1b2222b1bo3o.....
+.....o2o1ca2222ac1o3o.....
+.....o22oao2222oao33o.....
+.....o3b2222222223c3o.....
+......oc322oaao233co......
+......ooc333oo333coo......
+.......oocc3333ccoo.......
+........oooooooooo........
+......ooo3c33A3c3ooo......
+....oo22233333333333oo....
+...o22111222B2222b3333o...
+..o22111a122222222b3333o..
+.o22111111122222222b3333o.
+.o22111a11122222222bb333o.
+o22211a1111222222222b3333o
+o22211a1111222222222bc333o
+o2222aa1122222b22222bc333o
+o2222bb2222222b222222c333T
+o2222bb2222222b222223c333o
+o2222bb2222222b222223c333o
+o2222bb2222222b222233c333o
+o3222bb2222222b222333c333o
+.o3323bb22222bb23333c333o.
+.o3333bb22222bb33333c333o.
+..o3333c33333c33333c333o..
+...oo33cc333333333cc33o...
+....ooo3cc33333333c3oo....
+......oooooooooooooo......
+.....obc3o......o3cbo.....
+......ooP........ooo......
diff --git a/parts_pl_src/body/pl_gourd_d.txt b/parts_pl_src/body/pl_gourd_d.txt
new file mode 100644
index 0000000..70cd872
--- /dev/null
+++ b/parts_pl_src/body/pl_gourd_d.txt
@@ -0,0 +1,59 @@
+# pl_gourd_d: from pixellab_src/pl_gourd_d/base.png (variant of pl_gourd) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 38)
+# head_top at (32, 9)
+# back at (31, 41)
+# tail at (44, 48)
+..............oooo........
+.............^bbbco.......
+............obcoobco......
+...........obco.obco......
+...........obco..oo.......
+...........obco...........
+.........oob22boo.........
+........o22b22b33o........
+.......o22b2222b33o.......
+......o221112222233o......
+.....o22211122222233o.....
+.....o22ooo2222ooo33o.....
+.....o2ob1b2222b1bo3o.....
+.....o2o1ca2222ac1o3o.....
+.....o22oao2222oao33o.....
+.....o3b2222222223c3o.....
+......oc322oabo233co......
+......ooc333oo333coo......
+.......oocc3333ccoo.......
+......obooooooooooco......
+......obaabbbbccccco......
+......ooobabbbbccooo......
+.....o211ooooooooo33o.....
+....o2211a1222222b333o....
+....o221a111222222c33o....
+....o222a122222222c33o....
+....o222b22222a222c33o....
+....o222b22222b222c33o....
+....o222b22222b223c33o....
+....o322b2222bb233c33o....
+.....o33cc222Ab333c3o.....
+.....oooocc33c333ccoo.....
+....obbbooooooooooocco....
+...o2obbaaabBbbbcccco3o...
+..o221oooobbbbbcoooo333o..
+.o22111122oooooo333b3333o.
+.o22111a11122222222bb333o.
+o22211a1111222222222b3333o
+o22211a1111222222222bc333o
+o2222aa1122222b22222bc333o
+o2222bb2222222b222222c333T
+o2222bb2222222b222223c333o
+o2222bb2222222b222223c333o
+o2222bb2222222b222233c333o
+o3222bb2222222b222333c333o
+.o3323bb22222bb23333c333o.
+.o3333bb22222bb33333c333o.
+..o3333c33333c33333c333o..
+...oo33cc333333333cc33o...
+....ooo3cc33333333c3oo....
+......oooooooooooooo......
+.....obc3o......o3cbo.....
+......ooP........ooo......
diff --git a/parts_pl_src/body/pl_grub.txt b/parts_pl_src/body/pl_grub.txt
index ff1e359..1a3605b 100644
--- a/parts_pl_src/body/pl_grub.txt
+++ b/parts_pl_src/body/pl_grub.txt
@@ -1,9 +1,9 @@
# pl_grub: from pixellab_src/pl_grub/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (31, 42)
-# head_top at (33, 23) (from part)
-# back at (32, 22) (from part)
-# tail at (49, 47) (from part)
+# head_top at (33, 23) (from part/probe)
+# back at (32, 22) (from part/probe)
+# tail at (49, 47) (from part/probe)
..................ooo...................
.................o212o..................
................o21113o.................
diff --git a/parts_pl_src/body/pl_grub_b.txt b/parts_pl_src/body/pl_grub_b.txt
new file mode 100644
index 0000000..e78ffa6
--- /dev/null
+++ b/parts_pl_src/body/pl_grub_b.txt
@@ -0,0 +1,64 @@
+# pl_grub_b: from pixellab_src/pl_grub_b/base.png (variant of pl_grub) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 34)
+# head_top at (33, 4)
+# back at (32, 22)
+# tail at (42, 47)
+..............oo..............
+.............o22^.............
+............o2112o............
+............o2222o............
+..........ooo3223ooo..........
+.........o22333c3322o.........
+........o222223322222o........
+.......o222o111111o222o.......
+......o321owo1111owo223o......
+......o321o3o1111o3o223o......
+......o3212o211112o2223o......
+......o32oo22111112oo23o......
+......o32oooooooooooo23o......
+.....o3332ocbbbbbbco233o......
+....o33o332owaaabwo23333o.....
+....o3323333oooooo333323o.....
+....ob3a23o33333333o32aao.....
+....o3aaa213oooooo3122abo.....
+....o3caa222111111222aa3o.....
+....o33ca332222B22233b3oo.....
+....ooo333333333333333o3o.....
+....o333ooo333333333oo23o.....
+....ob32222oooooooo2222co.....
+....ocaa22222222221222aco.....
+....o3cab222111112222ac3o.....
+....o33c333222222233ac33o.....
+.....ooo33333333333333oo......
+.....o33ooo33333333ooo3o......
+.....oc2222oooooooo3223o......
+.....ocaa212222222122a3o......
+.....o3caa2211111222aabo......
+.....o33ca3222A22233bcoo......
+....o33oo333333333333o3o......
+....o3322oo33333333oo223o.....
+....oc3a222ooooooo3222a3o.....
+....o3cb22122222221222abo.....
+....o33ba222111112222aaco.....
+....oo33b332222222333bc3o.....
+...o33o333333333333333oo3o....
+...o322ooo3333333333oo323o....
+...oc2a223ooooooooo32222ao....
+...ocaa2222222222221222abo....
+...o3caa22211111112222aaco....
+...o33cb3222222222222abc3o....
+..o3oo333332222222233333oT....
+..o33oo333333333333333oo23o...
+.o33322oo33333333333oo32233o..
+.ob3a2222ooooooooooo22222abo..
+.o3baa221122222222221122aa3o..
+.o33ca22222111111112222aac3o..
+..o33cb3322222222222223c333o..
+.o3o3333333222222233333333o2o.
+o233oo333333333333333333oo322o
+.oooo22oo32o33233o22oo31ooooo.
+...o32o.o22oo313oo22o.o22o....
+....oo..o2o..o1o..o2o..oo.....
+........ooo..o3o..oo..........
+..............P...............
diff --git a/parts_pl_src/body/pl_grub_c.txt b/parts_pl_src/body/pl_grub_c.txt
new file mode 100644
index 0000000..6988855
--- /dev/null
+++ b/parts_pl_src/body/pl_grub_c.txt
@@ -0,0 +1,51 @@
+# pl_grub_c: from pixellab_src/pl_grub_c/base.png (variant of pl_grub) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (33, 16)
+# back at (32, 22)
+# tail at (51, 47)
+....................o^o.................
+..................oo11o.................
+...............ooo2112oooo..............
+..............o21221122212o.............
+..............o2222122112o..............
+.............o32222222133oo.............
+.............o333222B3332oo.............
+.............ooo33233333oo..............
+...........oo113o333o33322oo............
+..........o211111ooo33111123o...........
+.........o3111oo1111111oo1123o..........
+.........o311owwo11111owwo2223o.........
+........o3211owco11111ocwo2223o.........
+........o32111oo3111113oo222233o........
+........o322oo33111111133oo2233o........
+.......o3322ooooooooooooooo2233oo.......
+......o33332ooocccccccccooo2233o3o......
+.....o3333332occbbbbbbbcco2233o233o.....
+.....ob3233332oowbaaabwoo2333o323bo.....
+.....obbb2333322ooooooo22333322bbbo.....
+.....o3bb2223333333333333333222bc3o.....
+....oo33b2222233333333333322222b33oo....
+...o33o33322212222222222221222333o33o...
+..o3323o333322221111111122223333o3233o..
+..ob3222oo3333333333333333333ooo2223bo..
+..o33bb222oo3333333A3333333oo3222bbb3o..
+..o33bb22222ooooooooooooooo222222bb33o..
+.o3o3bbb222211222222222221122222bbc3o3o.
+.o33o3b3322222211111111122222233b33o33o.
+o3323o3333332222222222222222333333o3233o
+o33222oo333333332222222333333333oo22233o
+ob322222oo3333333333333333333oo32222b3bT
+ob32b22222ooo33333333333333oo322222bb3bo
+o33bbb2222222oooooooooooooo2222222bbb33o
+.o3cbbb222211222222222222211122222bc33o.
+.o333bb22222221111111111222222222bb333o.
+..o33c3332222222222222222222223333b33o..
+.o2o33333333332222222222223333333333o2o.
+o223oooo33333333333333333333333oo3oo322o
+.oooooo12333o3333333333333o33321ooooooo3
+...cco223ooo312333313333312ooo321occc...
+....o23oocco223ooo313ooo322occoo32oc....
+.....oocccco23occco1occco32occccoo......
+...........ooo....o3o....ooo............
+...................P....................
diff --git a/parts_pl_src/body/pl_grub_d.txt b/parts_pl_src/body/pl_grub_d.txt
new file mode 100644
index 0000000..93ae762
--- /dev/null
+++ b/parts_pl_src/body/pl_grub_d.txt
@@ -0,0 +1,50 @@
+# pl_grub_d: from pixellab_src/pl_grub_d/base.png (variant of pl_grub) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (33, 18)
+# back at (32, 22)
+# tail at (52, 47)
+...................ooo....................
+..................o311^...................
+.................oo212ooo.................
+................o3o21221o.................
+...............oo3221222ooooo.............
+............ooo323222B2222111o............
+...........oo332222222222112ooo...........
+..........o11122222222222222111o..........
+.........ooo222oo2222222oo2222oo..........
+........o32222o11o22222o11o22222o.........
+........oo3222o1co22222oc1o222223o........
+.......o2222233oo3222223oo33222111o.......
+......o333223oo33222222233oo322233o.......
+......o332223ooooooooooooooo322223o.......
+......o332222ooocccccccccooo2222211o......
+......o1222222occbbbbbbbcco222221111o.....
+.....o222212222oo1baaab1oo2222221333o.....
+.....o33331122222ooooooo22222212b13oo.....
+.....oo33b1111222222222222221221b33o......
+....o3333b1311121222222212211233b332oo....
+...o3223333312231112221111211133332222o...
+...o2223333313331113121111331132332232o...
+..o333212332333311331132132333222322233o..
+..o33112222233233133313313223322222223o...
+...o3122211222223322A33333222112212323o...
+..o33322b1112222222233222222211221b3233o..
+..o33323b1112221221222222222231231b3333o..
+.o223333b1322211211221221222133122b33322o.
+o223223331322211311221231232133113b322333o
+o3322222333232333112212313331333333222233o
+oo32332223223332231221331333333332223223oT
+.o333322222233222332213333223323322b3323o.
+.o333222222222222232222232222222222b3333o.
+.o33b322b222222222222222222222222222b333o.
+.o33b332b232122222222222222322123222b33oo.
+..o33332b33122222222222223232212332333oo..
+.oo333333332233223222222232332213333333o..
+.obc3333333333333323232323333331333333bbo.
+.ooooooo23o333b333333333333333333333ooooo.
+....ccob33o333b3o333b333332333o33boo......
+.....ob3oocoo323ooo3b33oo332oocoo3bo......
+......oocccco33oc.ooboocco33occccooc......
+............ooo....obo....ooo.............
+....................P.....................
diff --git a/parts_pl_src/body/pl_gryphon.txt b/parts_pl_src/body/pl_gryphon.txt
new file mode 100644
index 0000000..346ff98
--- /dev/null
+++ b/parts_pl_src/body/pl_gryphon.txt
@@ -0,0 +1,48 @@
+# pl_gryphon: from pixellab_src/pl_gryphon/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (29, 40)
+# head_top at (25, 24) (from part/probe)
+# back at (38, 38) (from part/probe)
+# tail at (45, 46) (from part/probe)
+............ooo.......................
+..........oo23o.......................
+..ooo..ooo1113ooooo...................
+.o113oo3o1111o1111o..oooooo...........
+o3133o1331112111133oo111111o..........
+o313o1131111^111333111111111o.........
+o31o111111111111111112oo3321o.........
+o3o111111111111111113o333321o.........
+ooc111111111111c111oo3333321o.........
+ooc11111111111ca11oo3333332o..........
+ocac11111111baaac1o33333322o..........
+ocac1111111baabcc113o33222o...........
+oocac11111cabccc311111223o............
+.o3cc2111accccoooo3113ooo.............
+.oo323331a23ooo11o31111oo.............
+.ooo3ooo333oobo11o3111123o............
+.oowoyyzooooowcwwo3111333o............
+oooao11yzooaooawwo21133oo.............
+o2oo11yoyoooaaowo3111333o..ooo........
+o2o111yyyyoooooo31y13o33oBo113o.......
+.oo11yyyyyyo3321y11333oooo1133oo......
+.oo1yyyooozo321yA23333oo313o3o11o.....
+..oyyyozzzo3322a333oo3o311133211o.....
+...oyooooo3333333333oo311111333o...o..
+....ooooo333333333oo331111111333o.oo..
+.....o3o3333o33o33o33111111113oooo11o.
+.....oooo33oo3o3oo311111211113ooo1113o
+......o2oooooo33o2111112211113o3T1133o
+......o233323333o1113222311113o333333o
+......oo32222233o1113o23311113oo3333o.
+.......o3o22233o31113ooo311113oooooo..
+.......ooo33333o11113ooo3311133o......
+.......o2oo333oo111133ooo3333333o.....
+......o1233oooo1111133o.oo333333o.....
+.....o312233ooo11113oo....ooo333o.....
+....ozoooo33oo3111233oo..oozzoooo.....
+...oyzxzzzoooo3111333o..oxzxxzxyo.....
+...ozxzyxzzoozo33o33o...ozzyyzyyo.....
+....oyoyzzooxyxyzyzo.....ooooooo......
+.....ooooo.oyyxzyxyo..................
+...........ooyyoyyo...................
+.............ooooP....................
diff --git a/parts_pl_src/body/pl_gryphon_b.txt b/parts_pl_src/body/pl_gryphon_b.txt
new file mode 100644
index 0000000..527b286
--- /dev/null
+++ b/parts_pl_src/body/pl_gryphon_b.txt
@@ -0,0 +1,48 @@
+# pl_gryphon_b: from pixellab_src/pl_gryphon_b/base.png (variant of pl_gryphon) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (29, 40)
+# head_top at (25, 19)
+# back at (38, 38)
+# tail at (50, 46)
+..............o^oo.......................
+............oo113o.......................
+.....ooo..oo11223ooooo...................
+....o123oo3o1122o21222o.oooooo...........
+...o3133o1331222222223oo211122o..........
+...o323o12312222222233211222222o.........
+...o32o1221222222222o1222oo3322o.........
+...o3o212212222222222223o333322o.........
+...oob222122222222b222oo3333322o.........
+...oob22222222222ba22oo3333332o..........
+...obab22222222baaab2o33333322ooo........
+...obab2222222baabbb223o33223o313o.......
+...oobab22222babbbb322222223o3323o.......
+...oo3bb2222abbbboooo3223ooo33333o.......
+..o1oo323332a23ooo11o32223322112o........
+..ooooo3ooo333ooao11o322233322212o.......
+.o11oowoyyzooooowcwwo322322123322o.......
+.o22ooaoxxyzooaooawwo222322213333o.......
+.o122oo1xyoyoooaaowo32233222223oo........
+o1112o1xxyyyyoooooo32y222233B23oo........
+o2232o1xyyyyyyo2222y22211123323oo........
+ooo11oxyyyooozo2222A22322213333o3o.......
+.o2122oyyozzzo22222221232223ooo323o......
+.o22222oo3ooo332212221123323o33222o...o..
+.o23321222222223211322123333o322222o.oo..
+.o33o21212221223211332223ooo3322222oo12o.
+..ooo232132211233213o3333o3322222222o223o
+....o33233221123o323ooooo32223222222o233T
+.....o33o3321233oo33o333332223222222o333o
+......oooo331333oooo3333332233222222o33o.
+.......o3oo3333ooo3332223o3333222233ooo..
+.......o333o333o3o3322223o33o3222233o....
+.......oc333oooo2o3222233o33o332223co....
+........oaa33oo33o3222233ooooc3333cco....
+........o3aacccoooaaaa233o33ooccccc3o....
+.......ozo223ccoocaaaaccozzzzoo33333o....
+......oyzxooo3coo32223ccozzooxzxxzx3o....
+......ozxzyxz3oozoo2233oooooozzyyzyyo....
+.......oyoyyzooxyyyooz3o.....ooooooo.....
+........ooooo.oyyxzyxyo..................
+..............ooyyoyyo...................
+................ooooP....................
diff --git a/parts_pl_src/body/pl_gryphon_c.txt b/parts_pl_src/body/pl_gryphon_c.txt
new file mode 100644
index 0000000..f8b9d59
--- /dev/null
+++ b/parts_pl_src/body/pl_gryphon_c.txt
@@ -0,0 +1,57 @@
+# pl_gryphon_c: from pixellab_src/pl_gryphon_c/base.png (variant of pl_gryphon) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 36)
+# head_top at (25, 12)
+# back at (38, 38)
+# tail at (49, 46)
+..............ooo..............................
+.............o33o..............................
+......oo...oo223o^oo...........................
+.....o13oooo1223212o..ooooo....................
+....o313o13122222223oo21112o...................
+....o32o12222222223321122222o..................
+....o3o1221222222222223oo332o..................
+....oo2122222222222223o33332o..................
+....oc22212222222c22oo333332o..................
+....oc222222222caacoo333333o...................
+...ocac222222caaccc22333333o...................
+...ocac22222cacccc32223223o....................
+....ocac2222ccccooo322233o.....................
+....oo333322b3ooo1o32223o......................
+....oooooo333oobo1o322223o.....................
+....ooaoyyooooowbwo322233o.....................
+...ooo11yoyooaooawo32233oo.....................
+...o11yyyyyyooaaaw322233ooooooooo...ooo........
+..o11yyyyyzyyooooo2y23o3o33aa2233ooo113o.......
+.o1xyyyyoooyyo322y23333o32aaaa222331133o.......
+o1xxyoooyyyyo3322b33o33o22aaaa22222333o........
+oxyooyyooooo333333333oo2222bbb22caab232o.......
+oyooooo..o33333oooooo32222222222caaa2233o......
+ooo.......ooooo333333222222222222bba223oo......
+............o333333222222222aa222222222o3o..oo.
+............o3332222222222222a222222222333oo13o
+............o3222222222A2322222222222223322123o
+............o322222222222232222222222223o32233o
+............oo3222223222223322B232222223o3333o.
+............oo3322233322223o222332222223o3333o.
+............o3o332233322223o333o32222223ooooo..
+............o23o33333o22223o333oo3222223oo.....
+............o22oo3333o22223o333oo3222223o......
+............o223oooo3o22223o3oooo3222223o......
+............o223oo..oo22223oo33ooo211233o......
+............o223oo...o22223o333ooo321133o......
+...........o11233o...o21223o333oo.o222333T.....
+...........o11233o...o21223o3333o.o333333o.....
+...........o22233o...o11223o3333oo.o333223o....
+...........o22333o...o22233oo3333o..o33323o....
+...........o22333o...o22233oo3333o..o33223o....
+...........o22333o...o22233oo3333o...o2223o....
+...........o2233o....o22233o33333o...o2223o....
+..........o32233o....o22233oz333oo...o2223o....
+..........oo223oo....o2223oyzyzzo...o333o3o....
+.........oxzoo3o....o32223ozzzzzo..oxzxzzzo....
+........oxzxxzzo...ooo33o3oooooo...ozzxzxzo....
+........ozozzzoo..oxzxzzzzo........oozzozzo....
+.........ooooo....ozzxzxzzo.........oooooo.....
+..................oozzozzo.....................
+....................oooPo......................
diff --git a/parts_pl_src/body/pl_gryphon_d.txt b/parts_pl_src/body/pl_gryphon_d.txt
new file mode 100644
index 0000000..2eb3378
--- /dev/null
+++ b/parts_pl_src/body/pl_gryphon_d.txt
@@ -0,0 +1,48 @@
+# pl_gryphon_d: from pixellab_src/pl_gryphon_d/base.png (variant of pl_gryphon) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (29, 40)
+# head_top at (25, 19)
+# back at (38, 37)
+# tail at (50, 46)
+..............^oo.......................
+.......ooo..oo13o.......................
+......o113oo1113oooooo....ooo...........
+......o11oo1111333112o.ooo111o..........
+.....o31o1o1113333113oo1111111o.........
+.....o3o131133113333o211113311o.........
+.....oo133133113313o1111oo3311o.........
+.....o11311311233131113o333312o.........
+....o21o111311311c1113o3333312o.........
+....o11311311331ca111o3333212o..........
+...oac23131133baaac11o3333113o..........
+...oac2131133baabcc111133113o...........
+...ocac13133caaccc311112313o............
+....o3c3313cccccoooo11113ooo............
+....o33o333c33ooo11o21113333o...........
+....ooyyzo333oowowwo2111333oo...........
+...o111yyyoo3oooawwo21113ooo............
+..o11yyooyzzo3oaawo3121333oo............
+.o1yyyyyyyyyzo3ooo31y123333B..oo........
+o11yyyzoooooyo3111111133ooo..o11o.......
+o1yyzzoyyyyyyo3331313333o22oo213o.......
+oyyzoozzzzzzo33333A23ooo3332o333oo......
+oyyo..oooooo3333333oo33311322oo333o.....
+oyzo...o3333333333333322333332o33o...o..
+oyo....oc333333333aaa3113211oooo33o.oo..
+.oo....occ1133111bac2o311o22o11ooooo11o.
+.......ocac13311aac322o21ooo1112oo11113o
+.......oocao111aac33111oo2331112o311133T
+........o3ca11aac332113332311112o333333o
+.........o3caaac3322113o33311112o33333o.
+.........oo3cab33o11113o33o11113oooooo..
+.........ooo3c333o11113o33o311133o......
+.........o23o333oo111133ooo3313333o.....
+........o1233oooo2111133o.oo333333o.....
+.......o312233ooo111133o....ooo333o.....
+......ozoo2ooooo3111233o...oozzoooo.....
+.....oyzxzyyoooo2211333o..oxzxxzxyo.....
+.....oyxzyxzzooyoo3o33o...ozzyyzyyo.....
+......oyoyyzooxyyyzyzo.....ooooooo......
+.......ooooo.oyyxzyxyo..................
+.............ooyyoyyo...................
+...............ooooP....................
diff --git a/parts_pl_src/body/pl_guppy.txt b/parts_pl_src/body/pl_guppy.txt
index cebae0c..22614ae 100644
--- a/parts_pl_src/body/pl_guppy.txt
+++ b/parts_pl_src/body/pl_guppy.txt
@@ -1,9 +1,9 @@
# pl_guppy: from pixellab_src/pl_guppy/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (32, 46)
-# head_top at (33, 33) (from part)
-# back at (32, 33) (from part)
-# tail at (47, 47) (from part)
+# head_top at (33, 33) (from part/probe)
+# back at (32, 33) (from part/probe)
+# tail at (47, 47) (from part/probe)
.................ooooo...............
................o22333o.......11.....
.........11....o1233333o.....1111....
diff --git a/parts_pl_src/body/pl_guppy_b.txt b/parts_pl_src/body/pl_guppy_b.txt
new file mode 100644
index 0000000..cc56921
--- /dev/null
+++ b/parts_pl_src/body/pl_guppy_b.txt
@@ -0,0 +1,46 @@
+# pl_guppy_b: from pixellab_src/pl_guppy_b/base.png (variant of pl_guppy) (pixellab_library.py extract)
+# pivot at (41, 60)
+# aura at (32, 42)
+# head_top at (33, 24)
+# back at (32, 33)
+# tail at (49, 47)
+.........................o...........
+.......................oo1o..........
+.....................oo111o..........
+...................o^11111o..........
+.................oo1133111o..........
+................o111331131o..........
+.........11....o1123331131o...1111...
+........111...o123233333223o..1111...
+.............oo223333333233o...111...
+......1....oo222222bb33c333o.........
+..........o22222222bb22cc333o........
+...1.....o2211212222bb22bc33o....1...
+.1111...o2211122222Bbb22bcc33o.......
+..111..o221111222222bb22bbc33o.......
+...1..o2221112222222bb22bbb333o......
+......o2222222222222bbb22bbc33o......
+.....o32222222222222bbb22bbc33o...oo.
+..1..o322222222oo2222bb22bbb33o..o11o
+.....o12222222o11o222cb22bbb3c3oo131o
+....o1oo22222o1oo1o22cb22bbb3cco3311o
+....o11o22222o11o1o22cc22bbc3cc33331o
+....o1oo22222o1o31oA2cc22bbc3cc33311o
+..oo2o12222222o11o222co22bbc33oo3333o
+.o1o2a333332222oo222o11o2bbcc211o311o
+o13oaao2222332222aa31111obbc33311o31o
+o11o222oooo2222222233311obbc33111o31o
+.o3o22o11112222222232111obbc3331o331T
+.o1o22o33332222222233311obbc3311o311o
+..oo2212222222222222o31o2bbc33oo.o31o
+....o111222222111111ooo11bbc133o..oo.
+.....o11111111111111bb111bcc333o.....
+.....o11111111111111bb111bc333o......
+......o111111111111bbb111cc333o......
+.......oo1111111111cc1111c3331o......
+.........oo1111111ccc11cc33321o......
+...........oooooooooo333333311o......
+.............o333o...oo3113313o......
+..............o33o.....oo11113o......
+...............oo........ooo1o.......
+............................P........
diff --git a/parts_pl_src/body/pl_guppy_c.txt b/parts_pl_src/body/pl_guppy_c.txt
new file mode 100644
index 0000000..31e3906
--- /dev/null
+++ b/parts_pl_src/body/pl_guppy_c.txt
@@ -0,0 +1,46 @@
+# pl_guppy_c: from pixellab_src/pl_guppy_c/base.png (variant of pl_guppy) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 41)
+# head_top at (33, 20)
+# back at (32, 33)
+# tail at (53, 47)
+...................ooo^o...................
+..................o11333o.........11.......
+.........11......o1133333o.......1111......
+.........11......o11333333o......1111......
+.................o113333333o.....1111......
+..............oooo13ooooooo3o.....11.......
+......1.....oo2223333333333ooo.............
+...........o222222222222333333oo....1......
+..11......o2221112122222aa233333o..........
+.1111....o22111112222222222233c33o.........
+.1111...o2211111122222a2222223cc33o........
+..11...o22221111222222222222223333o........
+.......o222222222222222222222233333o.......
+......o22222222222222B22222222233333o..ooo.
+..1..o22oo2222222222222oo222222333c3o.o111o
+.....o2o11o22222222222o11o22222233c33o1111o
+.....oo1ooo2222222222o1oo1o2222233333o3322o
+....o2o11oo2222222222o11o1o22222c3333o3222o
+....o2o1ooo2222222222o1o31o22222cc33co332o.
+..ooo2o111o2oooooo2222o11o222222cc33co322o.
+.oooo22ooo2o111123o2222oo2222222333ooo333o.
+.o122aa2222o222223o22A222aaa222233o111o33o.
+o1222aa2222oooooooo222222aaa22233333331o3o.
+o12o2222222o222223o22222222222233321111o3o.
+o13o22222221o3333o112222222222333333321o33o
+.o1o222221111oooo111122222222333331332o333o
+..oo222111111111111111111222333cc3o111o333o
+....o11111111111111111111222333cc33ooo3333T
+....o111bb111111111111111111111cc1111oo33o.
+.....o11bb111111111111bb111111111111o.ooo..
+.....o1111111111111111bb111111111111o......
+......o111111bb11111111111111111111o.......
+......o111111bb111111111111cc11111o........
+.......o1111111111111111111cc11111o........
+........o111111111111111111111111o.........
+.........o111111111111c111111111o..........
+..........o11111111111c1111111oo...........
+...........oo1111111111111111o.............
+.............oo11111111111ooo..............
+...............ooooooPoooo.................
diff --git a/parts_pl_src/body/pl_guppy_d.txt b/parts_pl_src/body/pl_guppy_d.txt
new file mode 100644
index 0000000..bf6abf0
--- /dev/null
+++ b/parts_pl_src/body/pl_guppy_d.txt
@@ -0,0 +1,38 @@
+# pl_guppy_d: from pixellab_src/pl_guppy_d/base.png (variant of pl_guppy) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 46)
+# head_top at (33, 29)
+# back at (32, 33)
+# tail at (48, 47)
+.................ooo^o...............
+................o11333o..............
+...............o1133333o.............
+...........ooooo12333333ooo..........
+..........o13323333B3ooo333o.........
+........o31232122223o222o333o........
+.......o212321122223o12233333o.......
+......o212o211222223o122233333o......
+......o222o211222223o122233333o......
+......occooaa2222bbcoo1223co33o......
+.....o2oo2ooobbbbooo22obbboooo3o.....
+.....o2222o12oooo33o122oooo3333o.....
+....o1222o211222223o1222223o3333oooo.
+....o222ao321222233o1222223o3333o111o
+....ooaaooo322223oooo322233oo333o132o
+....o2ooo22oooooo3222o333oo33ooo3o22o
+...o22o2o212233332222oooooo233333o22o
+...o22o1o2111222222A2o2222o233333o3o.
+..oo22o1o211122222222o1222o2333ooo3T.
+.o1o22o3o211122222222o1222o233o111oo.
+o12ob3ooo321122222223o1222o23o33331o.
+o111ooo2o3321222223oooo223oooo11111oo
+.o33o3o22ooo212223oo222oooo3333333o3o
+..o1o2o123oooooooo3o122233o333o111o3o
+...oo2o123o22333323o122223o3333ooo3o.
+.....oo223o21222223o122223o333co33o..
+......oo3oo21222223o12222o1occo.oo...
+.......ooo1o222223ooo223o111oo.......
+........o111o2223o111ooo1111o........
+.........oo11oooo1111111111o.........
+...........oo11111111111ooo..........
+.............oooooPooooo.............
diff --git a/parts_pl_src/body/pl_hammerhead.txt b/parts_pl_src/body/pl_hammerhead.txt
new file mode 100644
index 0000000..4aa8a37
--- /dev/null
+++ b/parts_pl_src/body/pl_hammerhead.txt
@@ -0,0 +1,45 @@
+# pl_hammerhead: from pixellab_src/pl_hammerhead/base.png (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (32, 41)
+# head_top at (31, 24) (from part/probe)
+# back at (36, 43) (from part/probe)
+# tail at (43, 53) (from part/probe)
+............ooooooooooo.............
+........oooo32222222223oooo.........
+.....ooo322211111^111112223ooo......
+...oo3222111111111111111112223oo....
+..ooo2211111111111111111111122ooo...
+..o11o11111111111111111111111o212o..
+.o11o1o111111111111111111111o21o1o..
+.o21ooo111cc11111111111cc111oooo1oo.
+.o22oco11bcb11111111111bcb11oco22oo.
+o3o22cobbbbbbbbbbbbbbbbbbbbboc22o23o
+o23ooobbbbbbbbbbbbbbbbbbbbbbbooo332o
+oo333bbbbbbbcb1111111babbbbbbb2333oo
+.ooo3332bbbcb111111111bcbbb23333ooo.
+....ooo3333bbooooooooobb33333ooo....
+.......oo33bo21ooooo12ob33ooo.......
+.........o3bcooooooooocb3o..........
+.........o3baoocccccooab3o........oo
+.........o3b1o1caaaa1o1b3o.......o2o
+........o33a11ooooooo11a33o.....o23o
+.......o332ba11111A111ab233o....o23o
+.......o3222ba1111111ab2223o...o223o
+......occa222baaaaaaabB22acc...o233o
+......ocaaa221bbbbbbb122aaaco.o223o.
+......ocaaa2311111111132aaaco.o233o.
+......occ2223b1111111b3222cco.o233o.
+......o322223o111b111o322223ooo233o.
+......o322223oaabbbcco322223oo223o..
+......o322233ob11111bo332223o3233o..
+......o332222obb111bbo222233o3333o..
+......occaa222obbbbbo222aacco333o...
+......occc2222obbbbbo2222accobo3o...
+......o3322222obbbbbo2222233oT33o...
+......oo3222222obbbo2222223o.o33o...
+.......o33222a2obbbo2a22233o..o33o..
+.....oo3o322oa2ooooo2ao223o3oo.ooo..
+....o3222oooooo3o..ooooooo2222oo....
+....o1222233322oo..o32333222221o....
+....o2111112ooo.....ooo21111112o....
+.....ooooooo...........Pooooooo.....
diff --git a/parts_pl_src/body/pl_hammerhead_b.txt b/parts_pl_src/body/pl_hammerhead_b.txt
new file mode 100644
index 0000000..21f215c
--- /dev/null
+++ b/parts_pl_src/body/pl_hammerhead_b.txt
@@ -0,0 +1,53 @@
+# pl_hammerhead_b: from pixellab_src/pl_hammerhead_b/base.png (variant of pl_hammerhead) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (31, 37)
+# head_top at (31, 14)
+# back at (36, 43)
+# tail at (54, 53)
+......................ooooo^ooooo.......................
+..................oooo32222222223oooo...................
+...............ooo3222111111111112223ooo................
+.............oo3222111111111111111112223oo..............
+............ooo2211111111111111111111122ooo.............
+............o11o11111111111111111111111o212o............
+...........o11o1o111111111111111111111o21o1o............
+...........o21ooo111cc11111111111cc111oooo1oo...........
+...........o22oco11aca11111111111aca11oco22oo...........
+..........o3o22coaaaaaaaaaaaaaaaaaaaaaoc22o23o..........
+..........o23oooaaaaaaaaaaaaaaaaaaaaaaaooo332o..........
+..........oo333aaaaaaaca1111111abaaaaaaa2333oo..........
+...........ooo3332aaaca111111111acaaa23333ooo...........
+...........oooooo3333aaoooooooooaa33333ooooo............
+..........o322cc3oo33ao21ooooo12oa33ooo2222coo..........
+.........o322cc223333acoooooooooca333332222c23o.........
+........o322bb2223333aboocccccooba3333222c2c22o.........
+........oc2bb22222333a1o1cbbbb1o1a3332222cc2223o........
+........o3bb222222223b11ooooooo11b32322222b2223o........
+ooo....oo3b2222222222ab111111111ba32222222bb223oo....ooo
+o2o...o33322222222221aab1111111ba1112222222b23333o...o2o
+o2o..o32233322223211111abbbbbbb1111b1332222223223o..o22o
+o22o.o322233333331b11111aaaaaa11111b13333333332233o.o23o
+o223oo3323222333b1b1111111aA111111bb11b33222233233oo323o
+o2233c3233222233b11bbb1111a1111111bbb1bo322222333333323o
+o3223c2223222233ca11b11111a11111bbb11cbo32222233c233223o
+o3323c222332233o3cac111111bb11111b1cac3o33322322cb23233o
+o3322c22223333oo33ccaaaabbaabbaaaaacc33oo33333222c22333o
+oo332c2222333o.o333cccccaaaaaacccccc333oooo332222b2233o.
+.o33cb3222323o..o33333aa11a111aaB33333o..o323222cb2233o.
+.o33cb3222323o..oo3332a111a11111a22333o..oo22322cbc233o.
+..o33bb22233o....oo333a111a1111a2233oo....o323222b233o..
+..o33cb22222o.....o322aaaaaaaaaa2223o.....oo22222b233o..
+...o32b222222o...o3322a11111111a22233o....o222222c23o...
+...o32b222222o..oc2222aa111111aa2222bo....o222222b23o...
+...o322222333o.o32c223aaa1111aaa3222b3o..o233222b223o...
+...o3223223o3o.o32c2223baaaaaaa3222bb2o..o2oo222b223o...
+...o33232233oo.o32c222233aaaaa33222bb23o..oo32233233o...
+...oo333o33o...o322bb2233ooooo3322bb223o...o3333333o....
+.....oooooo....o332b22333o...o33222b223o....ooooooT.....
+...............o332b2333o.....o33222233o................
+................o3333333o.....o3333333o.................
+...............o322233333o....o33333223o................
+..............o3222223333o....o332222222o...............
+..............o1222223222o....o2222222221o..............
+..............o2111112ooo......oo21111112o..............
+...............ooooooo...........Pooooooo...............
diff --git a/parts_pl_src/body/pl_hammerhead_c.txt b/parts_pl_src/body/pl_hammerhead_c.txt
new file mode 100644
index 0000000..e052578
--- /dev/null
+++ b/parts_pl_src/body/pl_hammerhead_c.txt
@@ -0,0 +1,45 @@
+# pl_hammerhead_c: from pixellab_src/pl_hammerhead_c/base.png (variant of pl_hammerhead) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 41)
+# head_top at (31, 22)
+# back at (36, 43)
+# tail at (46, 53)
+...........ooooo^ooooo...........
+.......oooo32222222223oooo.......
+....ooo3222111111111112223ooo....
+..oo3222111111111111111112223oo..
+.ooo2211111111111111111111122ooo.
+.o11o11111111111111111111111o212o
+o11o1o111111111111111111111o21o1o
+o21ooo111cc11111111111cc111oooo1o
+o22oco11aca11111111111aca11oco22o
+.o22coaaaaaaaaaaaaaaaaaaaaaoc22o.
+..o3oaaaaaaaaaaaaaaaaaaaaaaa3o3o.
+...oo333333333111111333333333oo..
+.....oooo3321111111111333oooo....
+.......o3221oo111111oo1223o......
+.......o321o1o1111111oo123o......
+......o3221ooo111111ooo1223o.....
+......o32111oo111111oo11223o.....
+......o321aa11o111o111aa122o.....
+.....o3321aa111oooo111aa1223o....
+....o32222111111A111111122222o...
+...obb222221111111111aa22222bbo..
+...obb222222111111111B222222bbo..
+..obb232222111111111112222232bbo.
+..o222322211111111111111222322bo.
+..o2233221111111111111111222322o.
+.ob2232211111111111111111222322bo
+.ob2232211111111111111111122322bo
+.o222322111111111111111111223222o
+.o222322111111111111111111223222o
+.o222322111111111111111111223222o
+.o32332211111111111111111a223323o
+..ooo332a1111111111111111a233ooT.
+....o3cb2a111111a111111aa2cc3o...
+.....ocb33a1111111111aaa33cco....
+.....occc333aaaaaaaaaa333ccc.....
+......o33333333333333333333o.....
+.....o222223oooooooooo322222o....
+.....o131313o........o313131o....
+......oooooP..........oooooo.....
diff --git a/parts_pl_src/body/pl_handheld.txt b/parts_pl_src/body/pl_handheld.txt
new file mode 100644
index 0000000..178502e
--- /dev/null
+++ b/parts_pl_src/body/pl_handheld.txt
@@ -0,0 +1,44 @@
+# pl_handheld: from pixellab_src/pl_handheld/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 42)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 37) (from part/probe)
+# tail at (44, 50) (from part/probe)
+.......oooooooooooooooooo.......
+.....ooo1111111111111111ooo.....
+....o2122222222^22222222212o....
+....o2111111111111111111112o....
+....o21oooooooooooooooooo13o....
+....o21o222222223333333oo13o....
+....o21o211111122222223oo13o....
+....o21o211111222222223oo13o....
+....o21o2111122222222233o13o....
+....o21o2113322222233233o13o....
+....o31o2131332222313333o13o....
+....o31o323333222233333oo13o....
+....o31oo22332222223333oo13o....
+....o31oo22222222222233oo13o....
+....o31o3222223B3322333oo13o....
+....o31o322222222222333oo13o....
+....o313322222222233333oo13o....
+....o31o33333333oo3oooooo13o....
+....o321oo333333oooooooo123o....
+....o3211111111A11111111223o....
+...oo3222111111111111122223oo...
+...oc3222ooo1111211222oo223co...
+..oac322ooaoo22222222oabo23cao..
+.o23o32ooobooo2222oo2obco13o32o.
+.o2oo32oabobao212oabo3oo323oo2o.
+.oooo32occocco121obco233223oooo.
+oabco32ooobooo2123oo3222223occao
+obcco322oocoo22222332222a23oTcbo
+oocoo3222ooo222222222a2a2o3oocoo
+..ooo322222222222222a2o2o2oooo..
+....o33222222oo22ooo22o2o23o....
+....o3232223o222o222o22o233o....
+....o332323o223322332o23333o....
+....oo333333333333333o3333oo....
+.....o3333333333333333333oo.....
+......oooooooooooooooooooo......
+.......o33cooo....oooc33o.......
+.......oooooP......oooooo.......
diff --git a/parts_pl_src/body/pl_handheld_b.txt b/parts_pl_src/body/pl_handheld_b.txt
new file mode 100644
index 0000000..bcf32fa
--- /dev/null
+++ b/parts_pl_src/body/pl_handheld_b.txt
@@ -0,0 +1,56 @@
+# pl_handheld_b: from pixellab_src/pl_handheld_b/base.png (variant of pl_handheld) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 34)
+# head_top at (31, 10)
+# back at (31, 37)
+# tail at (47, 50)
+.........oooooooooo^oooooooooooo.........
+......oooo111111111111111111113ooo.......
+......oooo111111111111111111113ooo.......
+.....o2212222222222222222222222212oo.....
+.....o2211111111111111111111111112oo.....
+.....o221ooooooooooooooooooooooo13oo.....
+.....o221ooooooooooooooooooooooo13oo.....
+.....o221o2222222222333333333ooo13oo.....
+.....o221o2111111112222222223ooo13oo.....
+.....o221o2111111122222222223ooo13oo.....
+.....o221o21111122222222222233oo13oo.....
+.....o221o21111122222222222233oo13oo.....
+.....o221o21113332222222333233oo13oo.....
+.....o331o21131333222223133333oo13oo.....
+.....o331o3223333322222333333ooo13oo.....
+.....o331o3223333322222333333ooo13oo.....
+.....o331oo222333222222233333ooo13oo.....
+.....o331oo222222222222222233ooo13oo.....
+.....o331o3222222233333223333ooo13oo.....
+.....o331o3222222233333223333ooo13oo.....
+.....o331o3222222222222223333ooo13oo.....
+.....o33133222222222222333333ooo13oo.....
+.....o331o3333333333ooo3oooooooo13oo.....
+.....o331oo3o3333333oooooooooooo13oo.....
+.....o33213333333333Aoooooooooo123oo.....
+.....o3321111111111111111111112223oo.....
+....oo3322211111111111111111222223ooo....
+....ob33222oooo1111B22112222ooo223bco....
+....ob33222oooo1111122112222ooo223boo....
+..ooab3322oooaooo2222222222oaboo23bbao...
+.o223o332ooooboooo22222oo22obboo13oo32oo.
+.o22oo332oabbobaoo2122oaboo3ooo323ooo2oo.
+.o22oo332obbbobboo2222obboo3oo3323ooo2oo.
+.ooooo332obbbobboo1212obboo2333223oooooo.
+oabbbo332ooooboooo21223ooo32222223oobbaoo
+obccco3322ooobooo22222233222223a23ooccboo
+ooccoo33222oooo222222222222a2a22o3ooocooo
+ooccoo33222oooo222222222222a2a32o3ooocooo
+..oooo3322222222222222222aa2o2oo2ooooo...
+.....o3332222222ooo223ooo222o2oo23oo.....
+.....o332322223oo222oo222oo22oo233oT.....
+.....o332322223oo222oo222oo22oo233oo.....
+.....o33323223o222332223322o233333oo.....
+.....ooo3333333333333333333o33333ooo.....
+......oo333333333333333333333333oo.......
+......oo333333333333333333333333oo.......
+........ooooooooooooooooooooooooo........
+.........o333coooo.....oooob33oo.........
+.........oooooooo.......oooooooo.........
+.........oooooooP.......oooooooo.........
diff --git a/parts_pl_src/body/pl_handheld_c.txt b/parts_pl_src/body/pl_handheld_c.txt
new file mode 100644
index 0000000..46eb3b5
--- /dev/null
+++ b/parts_pl_src/body/pl_handheld_c.txt
@@ -0,0 +1,48 @@
+# pl_handheld_c: from pixellab_src/pl_handheld_c/base.png (variant of pl_handheld) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 39)
+# head_top at (31, 19)
+# back at (31, 37)
+# tail at (49, 50)
+.......ooooooooo^oooooooooooo......
+......o322aaa222222222aaa2223o.....
+.....o312aaa222222222aaa222222o....
+....o3112aaa222222222aaa2222223o...
+....o1122aao222222222caa2222233o...
+....o12ooooooooooooooooooo21333o...
+....o12o22222222233333333o22333o...
+....o12o21111112333333333o22333o...
+....o12o21111112333333333o22333o...
+....o12o21111122222222233o22333o...
+....o12o21112222222222233o2233co...
+....oaao31133222222233233o223cco...
+....oaao31313322222313333oaaccco...
+....oaao32333322222333333oaacc3o...
+....o22o33233222222233233oaac33o...
+....o22o33222222222222333o22333o...
+....o22o32222233333223333o22333o...
+....o22o33222222222233333o22333o...
+....o22o33322222B22333333o22333o...
+....o22o33333333333333333o22333o...
+....o22o333333333A3333333o22333o...
+....o221ooooooooooooooooo122333o...
+....o2221111112111111111122233oo...
+...oo222222221211112211221223oco...
+...oc2222oooo2122112222oo2223occo..
+..oac2222oaoo222122122oabo123obao..
+.o22o22ooobooo22222oo2obco223o322o.
+.o23o22oaacccbo222oaco3oo3223o322o.
+.o33o22occcccoo222obco2332223o333o.
+oacco223oocooo32223oo32222223obaaco
+obcco2223ocoo322223332222a223occcco
+oocoo2222oooo222333322a2a2223oocooT
+..ooo2222bco222222222a2o2o2233ooo..
+....o2222bao22oo22o2222o2o22333o...
+....o2222bao22222o22o22o22o2333o...
+....o2232bao2o2222222o22o2o233o....
+....oo322bao2222222222o2o22333o....
+.....o333cco3333333333o333333o.....
+......o333cc333333333333333oo......
+.......oooooooooooooooooooo........
+........o33oooo.....ooo333o........
+........oooooo......Poooooo........
diff --git a/parts_pl_src/body/pl_hare.txt b/parts_pl_src/body/pl_hare.txt
new file mode 100644
index 0000000..0ddce73
--- /dev/null
+++ b/parts_pl_src/body/pl_hare.txt
@@ -0,0 +1,53 @@
+# pl_hare: from pixellab_src/pl_hare/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (30, 24) (from part/probe)
+# back at (26, 36) (from part/probe)
+# tail at (44, 49) (from part/probe)
+.............oo............oo......
+............obbo.........oobbo.....
+...........obbbbo......ooabcbo.....
+...........oaabbo.....oaabo3bo.....
+..........obaabbo....oaao333bo.....
+..........oa2233o...o2ao3333o......
+..........o22233o..o223o333bo......
+..........o2223o..o222o333bo.......
+..........o2233o..o223o3333o.......
+..........o23oo..o222o3333o........
+..........ooo23o^o22o333oo.........
+..........o222222323o33o...........
+.........o222222222o33o............
+........o222222222233o.............
+.......o1122221112223o.............
+.......oo122211ooo2233o............
+.......o1o222o1o1o2233o............
+.......ooo222ooo1o22333o...........
+.......obo222oo23b211122o..........
+......o12bab22222211112oo..........
+......o112b23oo11111123o...........
+......o211ooo1o11111222o...........
+.......o222oBao222222ooo...........
+........o2222222222oo33o...........
+.........oooooo223333333o..........
+.........o222222212322233o.........
+.........oo211111A2o222333o........
+........o22oo111ooo22223o3o........
+........o2223o2o22222233o3o........
+........o2222ao22222223o333o.o.....
+........o332baob2222333o333oo1o....
+.........o3caoobc23333o3323o11o....
+..........obcooobboooo32222o111o...
+...........oo322oo23o2222223o21o...
+...........o3332222o22222233o22o...
+...........o233o222o22222233o2To...
+...........o3333oo3o22222333o2o....
+............o33333oo32223333oo.....
+.oooo........o33333oo333333o.......
+o1111o..ooooooooo3o..oo3333o.......
+o22211oo2332o1111o3ooo3333bbooooo..
+o33331133223o22211o332322333o2111o.
+o2222313333oo33331o323322333311122o
+.o2222213111o222221333333311123333o
+..o222222222o322223131111233333ooo.
+...ooooooooooo222222222233ooooo....
+..............oooPoooooooo.........
diff --git a/parts_pl_src/body/pl_hare_b.txt b/parts_pl_src/body/pl_hare_b.txt
new file mode 100644
index 0000000..e182547
--- /dev/null
+++ b/parts_pl_src/body/pl_hare_b.txt
@@ -0,0 +1,49 @@
+# pl_hare_b: from pixellab_src/pl_hare_b/base.png (variant of pl_hare) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (30, 19)
+# back at (26, 36)
+# tail at (48, 49)
+..........oo.........ooo...........
+........o222o.oo^oo.o222o..........
+.......o2222oo22222o22222o.........
+......o222oo22222222233222oo.......
+.....o222o32222222223oo32222o......
+....o222o32222222222223o32222o.....
+...o222oo22222222222223o32222o.....
+..o2223o2112222211122233o32222o....
+..o223oo3212222112o22223o332222o...
+.o2223oo2oo2222ooo1222233o322223o..
+.o2233oo2oo2222ooo1222233o332223o..
+.o3333oc21o2223ooo12222233o33223o..
+.o333obbb22ccc2222bbbb1123oo3333o..
+.o33oobbb111c11111bbbb1123ooo333o..
+..oooo111111oo11111bb11223o..ooo...
+.....o21111o22o1111111122oo........
+......o2111111111111122233o........
+.......o2211111111122223333o.......
+.......oo322B222222333333333o......
+......o332222222222233322333o......
+.....o22311222222222332222333o.....
+....o223111111111122o22222333o.....
+....o233111111111A1o2222223333o....
+...o22o111111111111o222223o333o....
+...o22o11111111111o2222223o3333o...
+...o23o11111111111o222223o33233oo..
+...ob3o11111111111ob22233o32233o1o.
+....oco11111111111obb233o322233o1o.
+....ooo211111111111occoo3222233o11o
+.....oo3111111111112oo222222333o21o
+.....o2o21111111112232222222333o22o
+.....o22o22111111222o2222222333o22T
+.....o223o2222222222o222222333o32o.
+......o333oo22222222o322223333ooo..
+.oooo..oo333ooooooooo33333333o.....
+o1111o.ooo333oooo....o333333o......
+o22211o22223o1111o..oo33333cooooo..
+o33331133223o22211o.32322233o2211o.
+o2222313333oo33331oo23222233322222o
+.o2222213111o222221333333322223333o
+..o222222222o322223131111233333ooo.
+...ooooooooooo222222222233ooooo....
+..............oooPoooooooo.........
diff --git a/parts_pl_src/body/pl_hare_c.txt b/parts_pl_src/body/pl_hare_c.txt
new file mode 100644
index 0000000..bec76c4
--- /dev/null
+++ b/parts_pl_src/body/pl_hare_c.txt
@@ -0,0 +1,61 @@
+# pl_hare_c: from pixellab_src/pl_hare_c/base.png (variant of pl_hare) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 35)
+# head_top at (30, 7)
+# back at (27, 36)
+# tail at (40, 49)
+..............oo...........oo.
+.............occ^........oocco
+............occcoo.....ooaccco
+............oabcoo....oaaco3co
+...........obabcoo...oaao333co
+...........ob233oo..o2ao3333o.
+...........o2223oo.o223o333co.
+...........o2223o.o222o333co..
+...........o2233o.o223o3333o..
+...........ooooooo223o3333o...
+...........ooo22oo23o333oo....
+..........o22222222oo33o......
+.........o22222222233o........
+........o112221112223o........
+........oo12221ooo2233o.......
+........o1o2221o1o2233o.......
+........ooo222oo1o22333o......
+........oco222o11c211122o.....
+.......o12baa2222211112oo.....
+.......o112c22o11111122o......
+.......o211oooo11111222o......
+........o222oao222222333o.....
+.........o222222222333223o....
+..........ooooo22233332222o...
+...........o33222211332222o...
+............o311111122o3223o..
+.............o111111123o3233o.
+.............o1111111233o223o.
+.............o11111112233o223o
+.............o111A1112233o223o
+.............B11111112223o223o
+............oo21111122223o223o
+...........o322211122222oaa23o
+..........o2222322223222ocaaco
+.........o222233333322223oacco
+........o2222333oooo22223oooo.
+........3222333oo..o22223ooo..
+.......o22333oo....o22223o....
+.......o2233o......o22223o....
+.......o3333o......o22223o....
+.......o33233o.....o32233o....
+........o2233o......o3333o....
+........o2233o......o33323o...
+........o22333o......o2223T...
+.........o223co......o2223co..
+.........oaab3o.......oaacco..
+.........o32233o.......oaa33o.
+.......3o3222333o......o2233o.
+..ooooo322222333o.....o222233o
+.o11231132223333o..ooooo22223o
+o111311223333333o.o1331133133o
+o113112222333333oo11311131113o
+o223222222222222o113111231123o
+.oooooooooooooooo223222232223o
+.................Pooooooooooo.
diff --git a/parts_pl_src/body/pl_hare_d.txt b/parts_pl_src/body/pl_hare_d.txt
new file mode 100644
index 0000000..dc53674
--- /dev/null
+++ b/parts_pl_src/body/pl_hare_d.txt
@@ -0,0 +1,53 @@
+# pl_hare_d: from pixellab_src/pl_hare_d/base.png (variant of pl_hare) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (30, 16)
+# back at (26, 36)
+# tail at (47, 49)
+.............oo............oo......
+............occo.........oocco.....
+...........occcc^......ooacbco.....
+...........oaacco.....oaaco3co.....
+..........ocaacco....oaao333co.....
+..........oa2233o...o2ao3333o......
+..........o22233o..o223o333co......
+..........o2223o..o222o333co.......
+..........o2233o..o223o3333o.......
+..........o23oo..o222o3333o........
+..........ooo33ooo22o333oo.........
+..........o222223323o33o...........
+.........o222222222o33o............
+........o222222222233o.............
+.......o1122221112223o.............
+.......oo122211ooo2233o............
+.......o1o222o1o1o2233o.oo.........
+.......ooo222ooo1o22333o22o........
+.......oco222oo23c211122o22o.......
+......o12cac2222221111233112o......
+.....oo112c23oo1111112331112o......
+....o1o211ooo1o1111122211122o......
+.....o13222oBao2233311111122o......
+....o21122222222311111112222o......
+....o2111112o33311111111222o.......
+....o221111223211111212222oo.......
+.....o221211221111222222oo3o.......
+......o22211321112A223333333o......
+......o332213211222333333323o......
+.......o3o2232122o333223o3223o.o...
+.......o22o23222o322223o33223oo1o..
+.......o223o322o3222233o32223o11o..
+.......o3223co3oc2223o3322223o112o.
+........o323co2occ33o322222333211o.
+.........oocbo22oooo3222222333221o.
+........o33oo322222o2222222333222T.
+........o2223o22222o222222233322o..
+........o33233o2222o3222233333oo...
+.oooo....o33333o322o332333333o.....
+o1111o..ooooooooooooo3333333o......
+o22211oo2332o1111o3ooo33333cooooo..
+o33331133223o22211o332323333o2111o.
+o2222313333oo33331o3232233o3322222o
+.o2222213111o222221333333311123333o
+..o222222222o322223131111233333ooo.
+...ooooooooooo222222222233ooooo....
+..............oooPoooooooo.........
diff --git a/parts_pl_src/body/pl_hatchetfish.txt b/parts_pl_src/body/pl_hatchetfish.txt
new file mode 100644
index 0000000..9000e83
--- /dev/null
+++ b/parts_pl_src/body/pl_hatchetfish.txt
@@ -0,0 +1,46 @@
+# pl_hatchetfish: from pixellab_src/pl_hatchetfish/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 33) (from part/probe)
+# tail at (44, 53) (from part/probe)
+....................oo....................
+...................o12o...................
+...................o11o...................
+...................o12o...................
+...................o22o...................
+...............oooooooooooo...............
+..........ooooo332222222233ooooo..........
+........oo2111232211^11122321112oo........
+.......o22111112322111122321111122o.......
+......o223ooo3122322222232213ooo322o......
+......o2ooooooo122222222221ooooooo2o......
+.....o2oooooo3o322322223223oooooooo2o.....
+.....ooboo11oooo2322B22232oo11ooooboo.....
+.....oo1oooooooo2322112232oooooooo1oo.....
+.....oo133oooo3o332oooo233o3oooo331oo.....
+.....oo113ooo13o32occcco33o33oo1311oo.....
+.....oo11233331o32oo22oo23o13333311oo.....
+....oo3o11111113222222222231111111o3oo....
+....o333ob111332223cccc322233111bo333o....
+.o1o333333333222cooooooooc222333332333o1o.
+o12o3332222222coobaaaaaabooc2222222333o21o
+o21o33322222ccoob333A3333boocc22222333o12o
+o22o3332222cooba3333333333abooc2222333o22o
+o2boc3322ccoob33333222233333boocc2233cob2o
+.ooooccccooca3333321111233333acooccccoooo.
+...ocoooocaa333332111111233333aacooooco...
+....oobaaa3333332111111112333333aaaboo....
+....ooo3333333332111111112333333333ooo....
+.....ooo33333332211111111223333333ooo.....
+.....oooo333332211111111a12233333oooo.....
+......oooo333122y111111z1a221333oooo......
+.......ooooba112aa111111aa21aaboooo.......
+........oobzy11222222222222y1zbboT........
+........oobb11zaa112222aaaa11zbboo........
+.........oobbbaa11a2222ay1abbbboo.........
+...........obbbz11zaaaaz11zbbbo...........
+............obbbzzzaaaazzzbbbo............
+.............oobbbbbbbbbbbboo.............
+...............ooobbbbbbooo...............
+..................ooPooo..................
diff --git a/parts_pl_src/body/pl_hatchetfish_b.txt b/parts_pl_src/body/pl_hatchetfish_b.txt
new file mode 100644
index 0000000..fca2d20
--- /dev/null
+++ b/parts_pl_src/body/pl_hatchetfish_b.txt
@@ -0,0 +1,56 @@
+# pl_hatchetfish_b: from pixellab_src/pl_hatchetfish_b/base.png (variant of pl_hatchetfish) (pixellab_library.py extract)
+# pivot at (24, 59)
+# aura at (32, 37)
+# head_top at (31, 10)
+# back at (31, 33)
+# tail at (48, 53)
+.........................^o.........................
+........................o22o........................
+........................o11o........................
+........................o12o........................
+........................o22o........................
+....................oooooooooooo....................
+...............ooooo332222222233ooooo...............
+.............oo2111232211111122321112oo.............
+............o32111122322111122322111123o............
+...........o323ooo3122322222232213ooo323o...........
+...........o2ooooooo123222222321ooooooo2o...........
+..........o3oooooo3o323322223323oooooooo3o..........
+.........ooo2oo11oooo3332222333oo11oooo2ooo.........
+.........ooo1oooooooo3332112333oooooooo1ooo.........
+........o3oo133oooo3o333oooo333o3oooo331oooo........
+........o3oo113ooo23o33ocbbco33o33oo2311oooo........
+.......o333o11233331o32oo22oo23o13333311ooooo.......
+......oo33ooo1233332o3222222223o2333331ooo333o......
+......o333o3o31111223323bbbb32332211113o3o333o......
+.....o3o33333o2111333boooooooob3331112o33333o3o.....
+.....o3o33333333333boobaaaaaaboob33333333333o3o.....
+....o33o333333333bboob33333333boobb3333333333o3o....
+...o22o333333333booba3333333333aboob333333333o32o...
+..o322oob33333booba333322B2223333aboob333333bo322o..
+..o223ooobbbbooob333322222222223333aooob3bbboco22o..
+.oc22oooooooocaa33332221111112223333aaoooooo3oo22co.
+.oba3ooo3obaaa33332221111111111222333baaaac33ooo2bo.
+ocba3ooo333333333322111111A111112233333333333oooabco
+ocbaoooo3333333332221111111111112223333333333ooo2bco
+o323oocb333333332221111111111111122233333333bcco323o
+o323occbb3333332222111111111111112222333333bbcco323o
+o333occbb3333322222111111111111112222333333bbcco333o
+.o33oocc333333222221111111111111122222333333ccoo33o.
+..ooooooo3333a222222111111111112222222a33333oooooo..
+....ooooc3333a222221111111111121122222a3333ooooo....
+.....oocbbb33a22222a111111111111a22222a333bbcooo....
+.....ooccbb33b22222aa121111112aaa22222a333bccoo.....
+.....ooccc333b221122222222222222221122a333bccoo.....
+......oooo333bby11y22222222222222y11yaa333oooo......
+......ooooob33bb11y22222222222222y11yb333ooooo......
+.......ooocbc3bbyy2a112222222211y2yybb33bcooo.......
+........oocccobbbbb111yaaaaaay111bbbbbocccoo........
+........ooocooobbbby11yaaaaaay11ybbbb3oocooo........
+.........ooooooobbbbyyyaaaaaayyybbbbooooooT.........
+..........ooooooobbbbbbbbbbbbbbbbbbooooooo..........
+...........ooooooobbbbbbbbbbbbbbbbooooooo...........
+............oo3333ooobbbbbbbbbbooo3333oo............
+............o333333o.oooooooooo.o333333o............
+............o3o3333o............o3333o3o............
+.............oooooP..............oooooo.............
diff --git a/parts_pl_src/body/pl_hatchetfish_c.txt b/parts_pl_src/body/pl_hatchetfish_c.txt
new file mode 100644
index 0000000..76873b3
--- /dev/null
+++ b/parts_pl_src/body/pl_hatchetfish_c.txt
@@ -0,0 +1,57 @@
+# pl_hatchetfish_c: from pixellab_src/pl_hatchetfish_c/base.png (variant of pl_hatchetfish) (pixellab_library.py extract)
+# pivot at (29, 54)
+# aura at (32, 27)
+# head_top at (31, 4)
+# back at (31, 33)
+# tail at (37, 53)
+...............^o...............
+..............ow1o..............
+..............o12o..............
+..............o22o..............
+........ooo3211111123ooo........
+......oo1112111111112111oo......
+.....o21111121111112111112o.....
+.....1ooooo1121111211ooooo2.....
+....oooooo33122112213ooooooo....
+....oboo1ooo23211232o11ooobo....
+....owoooooo333oo333oooooo1o....
+....ow13oo1o32occo33o3oo31wo....
+....oww2333o31o11o13o3333wwo....
+...oooob1132212ccb123311boooo...
+.oo333333322cooooooc223333333oo.
+owo33222222oobaaaaboo22222333owo
+o2o333223oooo333333ocoob22333o2o
+o2oc332ccob3333113333booc233co2o
+.ooocccooa333311113333aoocccooo.
+...oocbb3333311111133333bccoo...
+...oo333333311111111333333ooo...
+....oo33333211111111133333oo....
+...o3ooo33312a1111aa1333ooo3o...
+..oo3ooooaa1aa11A1aa1aacooo3oo..
+..o133oocy111111111111ycoo331o..
+..o13ooozzzaa1111111azbco3o31o..
+.o133o32oooy11111211yzoo33o331o.
+.o13oo3222ozyy1112yyzo2333oo31o.
+.o13oocc222boy1112yoo223ccoo31o.
+.o3o.o3c22223b1B11bo2223coo.o3o.
+..o...occb222cb11bo222bcco...o..
+......o33b222coyyo3223b33o......
+.......o3bb222obb3222bb3o.......
+.......o333b222cc22bb333o.......
+........o33bb222222bc33o........
+........o3333b2222b3333o........
+.........oc333b22b333co.........
+.........oc3333bb3333co.........
+..........occ33333bcco..........
+..........ooc3b333c3co..........
+...........o3bb33b3oo...........
+...........oo33bbc3oo...........
+............oo3cc3oo............
+............oo3333oo............
+............ooo33ooo............
+...........oooooooooo...........
+...........o33oooo33o...........
+..........o3233oo3333o..........
+..........o2o22oo2232o..........
+..........3o33oooo333T..........
+..........o.oP....oooo..........
diff --git a/parts_pl_src/body/pl_hatchetfish_d.txt b/parts_pl_src/body/pl_hatchetfish_d.txt
new file mode 100644
index 0000000..74d0b3f
--- /dev/null
+++ b/parts_pl_src/body/pl_hatchetfish_d.txt
@@ -0,0 +1,46 @@
+# pl_hatchetfish_d: from pixellab_src/pl_hatchetfish_d/base.png (variant of pl_hatchetfish) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (31, 21)
+# back at (31, 33)
+# tail at (44, 53)
+....................^o....................
+...................o22o...................
+...................o12o...................
+...................o12o...................
+...................o22o...................
+...............oooooooooooo...............
+..........ooooo222211112111ooooo..........
+........oo2111232221111221321112oo........
+.......o22111122322211122322111112o.......
+......o12ooo311223222212322112ooo22o......
+......o2ooooo3112232222232113ooooo3o......
+.....o3ooooooo32123222233223ooooooo3o.....
+.....oo2oo11oooo2232B223333oo1oooo2oo.....
+.....oo1oooooooo3332222333oooooooo1oo.....
+.....oo133oooo3ooo322223ooo3oooo331oo.....
+....o3o113ooo23o3332222333o33oo2311o2o....
+....o3o11233331o3222111233o13333311o1o....
+....o22o1111111o322111111231111111o211o...
+...o2213oo111oo322211111112oo111oo3211o...
+.o1o221o2oooo322222222222222ooooo33211o1o.
+o11o223o2211o32223oooooo222223o2212222o11o
+o11ooooo2222o223oocccAccoo2222o2222oooo11o
+o23o333o322o223occa1111acco322o322o122o32o
+o2co333oooo32ooca22322222bco222ooooo22oc2o
+.ooob33o31o32oc22233333322aco22o122o22ooo.
+...ob33o31o3222222322223322bo22o122o2ao...
+....oboo31o32222232111123222222o1232oo....
+....obbo33o33222321111112322222o2232ao....
+.....ob3ooo33333311111111233222ooo22o.....
+.....ob3o3o3331o211111111231222o2o2ao.....
+......obo33o332o22111111123112o22o3o......
+.......ob33ooooo22211111123oooo23ao.......
+........ob3o333o22222222223312o2aT........
+........ob3ob333o222222222o122o2ao........
+.........oobb333oo2222222o1222aoo.........
+...........obb333o322222o2222ao...........
+............obb33ooooooo3222ao............
+.............oob33o33332122oo.............
+...............oooob333aooo...............
+..................ooPooo..................
diff --git a/parts_pl_src/body/pl_hawk.txt b/parts_pl_src/body/pl_hawk.txt
index 2492497..4eaab28 100644
--- a/parts_pl_src/body/pl_hawk.txt
+++ b/parts_pl_src/body/pl_hawk.txt
@@ -1,9 +1,9 @@
# pl_hawk: from pixellab_src/pl_hawk/base.png (pixellab_library.py extract)
# pivot at (34, 60)
# aura at (31, 41)
-# head_top at (31, 20) (from part)
-# back at (30, 34) (from part)
-# tail at (47, 40) (from part)
+# head_top at (31, 20) (from part/probe)
+# back at (30, 34) (from part/probe)
+# tail at (47, 40) (from part/probe)
........................oo..............
..............oooooooooo33o.............
............oo33bb22222223o.............
diff --git a/parts_pl_src/body/pl_hawk_b.txt b/parts_pl_src/body/pl_hawk_b.txt
new file mode 100644
index 0000000..9decafd
--- /dev/null
+++ b/parts_pl_src/body/pl_hawk_b.txt
@@ -0,0 +1,50 @@
+# pl_hawk_b: from pixellab_src/pl_hawk_b/base.png (variant of pl_hawk) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 40)
+# head_top at (31, 18)
+# back at (30, 34)
+# tail at (48, 40)
+.....................oo..............
+...........ooooo^oooo33o.............
+.........oo33bb33333333o.............
+........o333aa33333333ooo............
+.......o3322a22333333333o............
+......oob222a333a333333oo............
+......o3a22a333aa33333oo.............
+......oo3a3a33a33oo3333o.............
+.......oo333333oo1o3333o.............
+.......owb333oocbwo3333o.............
+.......ooo1x3o1oawo3333o.............
+......obooxxxooooo3bb33o.............
+......o3o1xxzy333ab333o..............
+.......ooxyooo33333333o..............
+........oyo3333333333oo..............
+.......oooo333333333322oo............
+......o322222222222222333oo..........
+.....o221222222B21222o32233o.........
+....o2211112211111123o222233o........
+....o211111111111112o3222223o........
+...o2111111111111112o32222223o.......
+..o32111111111111112o3322a2233o......
+..o31111111111112111o3332223333o.....
+..o32111211111121A11o333333a333ooT...
+..o322112111112111123o33a333b33333oo.
+...o32112211122111122o333b333b33333co
+...o321112111111111222o333c3333c333bo
+...o3221121111121222233o333oo333ooooo
+....o3221221111222222333o333oo333oo..
+.....o3222222222222233333o333oo3333o.
+......o322222222233233333ooc33oo3333o
+.......o3322223223333333o33oooooooooo
+........ooo3333333o33333o333o........
+........o33oooooooo33333oo333o.......
+.........o333ooo333o333o33o333oo.....
+..........ozzo.o3b3bozzo333o3333o....
+...ooooooozyzo..occooyyoo3bboo3bco...
+..ozxyzzzyyyzoo..ooozyyzooooo.oooo...
+.ow2cxxycxxyzzzo..ozzzzyzzyxyo.......
+ow2o11yow1yyozzo.oyxxzyxxxyywwo......
+o1oo12yow2yooooo.oxw1zyy1woy1wo......
+.o..oooo1ooo.....oow2ooy2wooo1o......
+.......oo.........o1oo.oo1o..oo......
+...................P.....o...........
diff --git a/parts_pl_src/body/pl_hawk_c.txt b/parts_pl_src/body/pl_hawk_c.txt
new file mode 100644
index 0000000..3413981
--- /dev/null
+++ b/parts_pl_src/body/pl_hawk_c.txt
@@ -0,0 +1,59 @@
+# pl_hawk_c: from pixellab_src/pl_hawk_c/base.png (variant of pl_hawk) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 37)
+# head_top at (31, 10)
+# back at (30, 34)
+# tail at (43, 40)
+......................o.............
+.....................o3o............
+.............ooo^oooo23o............
+...........ooaa22222223o............
+..........oaa111112223o3o...........
+.........oaa111a11122223o...........
+........o3a111aa1112233o............
+........o3a1b222oo2223o.............
+........o332b3oo1o22233o............
+........o3333ocbwo22233o............
+.......ooxx33ooawo11233o............
+.....oo11xxy3oooo112233o............
+....o11xxxxxz222112233o.............
+...o1xxxxzzz2222223333o.............
+..oxxyzzzzy33333333333o.............
+.oxooooooooooo3333333o..............
+.oo..........o3333233o..............
+.............o3332233o..............
+.............o322233o...............
+.............o222233o...............
+............o311223o................
+............o111233o................
+...........o3111233o................
+...........o21112333o...............
+........ooo3111122333ooo............
+.......o2231111122232222o...........
+......o22311111B122211112o..........
+......o2311111111232111111o.........
+.....o12311111111332111111o.........
+.....o12311111111Ao21111112o........
+.....o133111111113o211111a2o........
+.....o233111111123o3111a1aa3o.......
+.....o23321111112233311a22bbT.......
+.....o23o2111111223o332ab23b3o......
+.....o33o31111112233o323b2332o......
+.....o33o33222222233o333333323o.....
+......o33o33222223333o333223223o....
+......oo3oo33333333333o333223223o...
+.......o2o3o33333333333oo32223222o..
+........oo33o33333332233oo3322332o..
+.........o333oo333332233o2oo32o323o.
+.........o3333oooo332233o222o33o33o.
+..........o333o...o33233oo222oooooo.
+..........ozzo.....o333o.o222222o...
+..........oyzo......ozzo.oob3b223o..
+...ooooooozxzo......oyyo...oco222co.
+..ozxyzzzyyyzoo....ozyyzooooo.oooooo
+.ow2cxxycxxyzzzo..ozzzzyzzxxo.......
+ow1ow1yow1yyozzo.ozxxzyxxxy1wo......
+o1oow2yow1yooooo.oxwwzyy1wo2wo......
+.o..oooo1ooo.....oow1ooy2woo1o......
+.......oo.........o1oo.oo1o.oo......
+...................P.....o..........
diff --git a/parts_pl_src/body/pl_hawk_d.txt b/parts_pl_src/body/pl_hawk_d.txt
new file mode 100644
index 0000000..c26b204
--- /dev/null
+++ b/parts_pl_src/body/pl_hawk_d.txt
@@ -0,0 +1,53 @@
+# pl_hawk_d: from pixellab_src/pl_hawk_d/base.png (variant of pl_hawk) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 40)
+# head_top at (31, 14)
+# back at (30, 34)
+# tail at (48, 40)
+..................o^....................
+.................oao.oo.................
+...........ooo..oaaoo1o.................
+...........o11ooaaco11o.oo..............
+...........o222oacco12oo33o.............
+............o22acc22222223o.............
+...........o322ac21112223ooo............
+..........o3211c11111223332o............
+.........oob111a111a212233ooo...........
+.........o3a11a111aa11223o21o...........
+.........oo2a1a11a11oo323322o...........
+..........oo333321oo1o3233oo............
+..........owb333oocbwo3233oo............
+.........ooooox3o1oawo2233o.............
+.........oboo1xy3oooo2bb33o.............
+.........o32o1xxy322ab333oooo...........
+..........o2oxyoo22222333o21o...........
+...........ooyoz32223333oo12ooo.........
+...........ooo3333333333oo1221o.........
+.........oo3333333333333223o22ooo.......
+........o333333333B33b321122oo21o.......
+.......o2233bb22222bb33111122o12o.......
+......o212322aa22aaa3331111112ooooo.....
+.....o21133222aaaa2223o21111113o21o.....
+.....o2123oo222aa22223o22111111322o.....
+....o2111111oooooooo33o3222111333oo.....
+..oo222211111111222oA33o322222a333ooT...
+.o3222a2222222a22222bo3oo32a222b32222oo.
+o3222a222aa222a22223oo33o333b333b22222co
+oc22c2223a222o22222bo3333o333c3333c222bo
+oooo2223o222o2222boo222223o333oo333ooooo
+..o2223oo223o222boo22222223o233oo322oo..
+.o3222oo222o322ooooooo233333oo22oo2223o.
+o2322oo222ooooo3333333ooooooooc22oo2232o
+oooooooooooo333333333333333o33oooooooooo
+...........o3333ooooo333333o33oo........
+...........o33333oo23o33333oo233o.......
+............o333ooo233o333o23o333oo.....
+.............ozzo.o3b3bozzo223o2222o....
+......ooooooozyzo..occooyyoo3bboo2bco...
+.....ozxyzzzyyyzoo..ooozyyzooooo.oooo...
+....ow2cxxycxxyzzzo..ozzzzyzzyxyo.......
+...ow2o11yow1yyozzo.oyxxzyxxxyywwo......
+...o1oo12yow2yooooo.oxw1zyy1woy1wo......
+....o..oooo1ooo.....oow2ooy2wooo1o......
+..........oo.........o1oo.oo1o..oo......
+......................P.....o...........
diff --git a/parts_pl_src/body/pl_hazmat.txt b/parts_pl_src/body/pl_hazmat.txt
new file mode 100644
index 0000000..73208b8
--- /dev/null
+++ b/parts_pl_src/body/pl_hazmat.txt
@@ -0,0 +1,50 @@
+# pl_hazmat: from pixellab_src/pl_hazmat/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 41)
+# head_top at (31, 21) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (52, 47) (from part/probe)
+.................oooooooo.................
+...............oo22222233oo...............
+..............o232222222233o..............
+.............o22322222222233o.............
+............o2222322^22232222o............
+...........o22222oooooooo32222o...........
+..........o3222oo11111222oo2223o..........
+..........o232o21oooooooo22o232o..........
+.........o223o2oo22222222oo2o322o.........
+.........o22o2o211111111222o2o22o.........
+........o33o2o21111111112222o2o33o........
+........o3o2o2113111111112322o2o3o........
+.......o22o2o211o31111113o132o2o22o.......
+.......o22o2o21owo111111owo12o2o22o.......
+.......o22o2o21ooo111111ooo12o2o22o.......
+.......o22o2o2w3o311B1113o3w2o2o22o.......
+.......o32o3o2aww11111112wwa2o3o23o.......
+......ooo32o3o22111333322222o3o22ooo......
+.....o33o32o33o2223oooo3222o33o23o33o.....
+....o2123o33o33o22o2112o22o33o33o3212o....
+...o221123o33o333o211122o333o33o321122o...
+...o3222223o33ooo31111123ooo33o3222223o...
+...oo322223oo333o22o22o22o333oo322223oo...
+..o2233223oo3oo3o2o2112o2o3oo3oo3223333o..
+.o21123333oo333oo331Ao133oo333oo33332112o.
+.o211223o3o32223o32o33o23o32333o3o322112o.
+.o2222223oo32222o32o33o23o23bc3oo3222222o.
+.o3332233oo332222oo3223oo223233oo3233333o.
+.ooooo333oo33322223oooo33222333oo333ooooo.
+obaabboo3o3333333233333333333333o3oobbaabo
+ocaabbbcoo3332333333333333332333oocbbbaacT
+occcbbccco3332222233333322222333occcbbccco
+.ocbccccoo3332222222322222222333ooccccbco.
+ocbbbbco.o3333222222322222223333o.occbbbco
+ocbbbaaco.oo333222223222222333oo.obaabbbco
+obbbbbabo.o3ooo332223222333ooo3o.ocabbbbbo
+obbbbocco.o3333oooo333ooooo33333.occobbbco
+occbbooo..o32233333oooo333332233..ooobbcco
+.occbco...ooooooooo....ooooooooo...ocbcco.
+.ococco...o333333o......o333333o...occoco.
+..oooo....o322o33o......o33o223o....oooo..
+.........o32223o3o......o3o32223o.........
+.........o2111333o......o3331111o.........
+.........ooooooooP......ooooooooo.........
diff --git a/parts_pl_src/body/pl_hazmat_b.txt b/parts_pl_src/body/pl_hazmat_b.txt
new file mode 100644
index 0000000..dc7b058
--- /dev/null
+++ b/parts_pl_src/body/pl_hazmat_b.txt
@@ -0,0 +1,56 @@
+# pl_hazmat_b: from pixellab_src/pl_hazmat_b/base.png (variant of pl_hazmat) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 38)
+# head_top at (31, 11)
+# back at (31, 32)
+# tail at (54, 47)
+....................ooo^oooo....................
+..................oo22222222oo..................
+.................o232112222232oo................
+................o223222222223233o...............
+...............o21232222222232222o..............
+..............o222232222222232222o..............
+.............o222ooooooooooooooo22o.............
+............o22oo111111112222222o22o............
+............o2o21oooooooooooooo22o23o...........
+...........o3o21o21111111111112o22o3o...........
+..........o33o1o2111111111111112o2o33o..........
+..........o22o1o1111111111111112o2o22o..........
+..........o22o1o1111111111111112o2o22o..........
+.........o222o1o1111111111111112o2o222o.........
+.........o222o2o1111111111111112o2o222o.........
+.........oc22o3o1111111111111112o2o222o.........
+.........oc22o3o2111112222211123o2o223o.........
+........oooc2o33o22233oooo33222o33o223oo........
+.......o33occ2o33ooooo2112ooooo33oo23o33oo......
+......o222o333oo3322o211122o22333o233o2222o.....
+.....o21122o3333o33o31111123o333o333o322112o....
+....o2212223oo333ooo22oB2o22oooo333oo3222222o...
+....o222223o3333333o2o2112o2o333ooo33o322222o...
+...oo32223o22222333o331oo133o333332223o22223oo..
+...o333233o21122223o32o33o23o322222222o322333o..
+..oaa2333o221122223o32o33o23o2222221122o333222o.
+..ocaa23oo2212222222oo3223oo22322221122o332222o.
+.o22aac3o3222222232222ooAo322232aa222223o3222aao
+.o211ccoo32222222322222222222222aaa22223o322aaco
+.o22223o332222a232222222222222232cac2223o32ccc2o
+.o32223o33222aab322222222222222322ccc223o3cc322o
+.o33233o3322bac23222222222222223222ccc23o3c3333o
+.ooooooo332bbc2232222222222222232222ccc3o3ooooo.
+obaabcoo33bbb222322222222222222322222cc3oobbaabo
+ocaabbbo33bc2222322222222222222232222233obbbaaco
+occcbbco33b22222322222222222222232222233ocbbccco
+.ocbccco33332222322222222222222232222333occcbcT.
+ocbbbccoo3333222322222222222222332222333occbbbco
+ocbbbaaco333332232222222222222233223333ocaabbbco
+obbbbbacoo3333333o222222222222233233333ocabbbbbo
+ocbbboccooo333333o32222222222233333333ooccobbbco
+occbbooo..oo3333333333333333333333333o..ooobbcco
+.occbco....ooo3333o3333333333333333oo....ocbcco.
+.occcco.....o33o33o33333333333333ooo.....occcco.
+..oooo......ooooooooo3333333ooooo33o......oooo..
+.............o333333oooooooo333333o.............
+.............o322o33o......o33o223o.............
+............o32223o3o......o3o32223o............
+............o2111333o......o3331111o............
+............ooooooooP......ooooooooo............
diff --git a/parts_pl_src/body/pl_hazmat_c.txt b/parts_pl_src/body/pl_hazmat_c.txt
new file mode 100644
index 0000000..5c31fa5
--- /dev/null
+++ b/parts_pl_src/body/pl_hazmat_c.txt
@@ -0,0 +1,61 @@
+# pl_hazmat_c: from pixellab_src/pl_hazmat_c/base.png (variant of pl_hazmat) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 34)
+# head_top at (31, 6)
+# back at (31, 32)
+# tail at (48, 47)
+.............oo^ooo..............
+...........oo2222233o............
+..........o2322222223o...........
+.........o223222222223o..........
+........o22223222223222o.........
+.......o22222ooooooo2222o........
+......o3222oo1111222oo223o.......
+......o232o22ooooooo2o232o.......
+.....o223o2o22222222o2o322o......
+.....o22o2o2111111122o2o22o......
+.....o2o2o211111111222o2o22o.....
+....o22o2o111111111222o2o22o.....
+....o22o2o1o11111111o1o2o22o.....
+....o22o2o1oo111111oo1o2o22o.....
+....o22o2o13o111111o31o2o22o.....
+....o32o2oa1111111111ao2o23o.....
+.....o22o32211122212223o223o.....
+.....o32o3o2222ooo222o3o23o......
+.....o333o3o22o112o2o33o33oo.....
+....o3oo33oooo21122oooo33o33o....
+...o1233o3ooo3111123oo33o3222o...
+..o21123o333o22o2o22o33oo22112o..
+..o21123ooo3o3o111o3o3o3o22112o..
+..o2222oo33oo331o233oo33o22222o..
+..obb23o3322o32o2o33o233o322bbo..
+..obbbco33222oo223oo22o3occbbbo..
+..o2bbco3222223B1o3223b3occbb2o..
+..o2223o3222222o2o222333occb22o..
+.oo2223o3322222oA2o22233o33222o..
+.o11233o33222223o1o22233o33222o..
+.o11233o33222223o23o2233o332212o.
+.o22233o332222233o23oo33oo32222o.
+.o33333o332222232o3122oo3o33333o.
+.oooo33o3322222322oo2221oo33oooo.
+obaabooo332222232222oooooooobaabo
+ocaabbco3332222322222333oocbbaaco
+occcbccooo3322232223333oooccbccco
+.ocbcco.o3oo333333333ooo.ooccbco.
+ocbbbbo.o333ooooooooo33o..obbbbco
+obbbcacoo22233o..o33323o.ocacbbbo
+obbboccoo22223o..o32223o.occobbbo
+occbooo.o22223o..o32223o..ooobccT
+.ocbco..o33323o..o32333o...obbco.
+.ococo..o31133o..o33113o...occoo.
+.oooo...o22233o..o33222o....ooo..
+.o3o...oo32233o..o33223o.........
+.o2o..o3o33323o..o33333o.........
+.o32oo33o32223o..o32223o.........
+..oo223oo32223o..o32223o.........
+....oo..ooooooo..ooooooo.........
+........o33333o..o33333o.........
+........o22o33o..o33o22o.........
+.......o2223o3o..o3o3222o........
+.......o111333o..o333111o........
+.......oooooooo..Pooooooo........
diff --git a/parts_pl_src/body/pl_hazmat_d.txt b/parts_pl_src/body/pl_hazmat_d.txt
new file mode 100644
index 0000000..8084b69
--- /dev/null
+++ b/parts_pl_src/body/pl_hazmat_d.txt
@@ -0,0 +1,57 @@
+# pl_hazmat_d: from pixellab_src/pl_hazmat_d/base.png (variant of pl_hazmat) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 37)
+# head_top at (31, 10)
+# back at (31, 32)
+# tail at (56, 47)
+.....................ooo^oooo.....................
+..................ooo22bbbb22ooo..................
+................oo22322babb22322o.................
+...............o2222322bbbb223222oo...............
+..............o22112232bbbb23221122o..............
+..............o21222232cccc33222222o..............
+.............o3222222oooooooo2222223o.............
+............o223222oo11111222oo222322o............
+............o22232o22oooooooo22o23222o............
+...........o22223o2oo22222222oo2o32222o...........
+...........o2222o2o211111111222o2o2222o...........
+...........o322o2o21111111112222o2o233o...........
+..........o222o2o2113111111112322o2o223o..........
+..........o222o2o211o31111113o132o2o222o..........
+..........o222o2o21owo111111owo12o2o222o..........
+..........o222o2o21ooo111111ooo12o2o222o..........
+..........o222o2o2w3o31111113o3w2o2o222o..........
+..........o322o3o2aww11111112wwa2o3o223o..........
+........ooo3322o3o22111333322222o3o2233oo.........
+.......o222o332o33o2223oooo3222o33o223o33oo.......
+......o2112o3333o33o22o2122o22o33o2333o3223o......
+.....o211223oo333o333o211222o333o333oo321122o.....
+....o2212223o3o333ooo321B2223ooo333ooo3222122o....
+....ob22222o333oo333o22o22o22o333oo333o32222bo....
+...obbb2223o22233oo3o2o2112o2oooo33222o3222bbbo...
+...obbbb23o22222333oo331oo233o333322222o33bbbco...
+..o33bbccoo221223222o32o33o23o222322222oobbbb33o..
+..o223ccco2222232212o32oA3o23o2223322222ocbb322oo.
+.oo21233co22222322122oo3223oo22222322222oc332122o.
+.oo21223o22222322122233oooo33222223222223o322222o.
+.oo22222oc222232212222333333222222232222co322223o.
+.oo32223ocb2223222222222332222222223222bco332223o.
+.oooooo3ocbbbbcb222222223222222222bcbbbbco33ooooo.
+oocaabboocbbbbcbbbbbbbbb32bbbbbbbbbcbbbbcooobbaaao
+oocaabbboccbbbcbbbbbbbbb32bbbbbbbbbcbbbbcocbbbaabo
+oocccbbco33bbbcbbbbbbbbb32bbbbbbbbbcbbb33occbbbcco
+.oocbccco33222333bbbbbbb32bbbbbb333322333occcccco.
+oocbbbbcoo332223222222223222222222322233ooobbbbbcT
+oobbbbaaco333223332222223322222223323333oocaabbbbo
+oobbbbcbcoo3332333222222aa2222223333333o.ocacbbbbo
+oobbbbocco.o333333222222cc222222333333o..occobbbbo
+ooccbbooo...o33333333333cc3333333333oo....ooobbcco
+.ooccbco.....ooooo333333cc333333ooooo......ocbcco.
+.oooocco......o333oo3333cc33333oo33o.......occoco.
+..ooooo.......o3333oooo3cc3oooo3333o........oooo..
+..............oooooooooooooooooooooo..............
+..............o333333o......o333333o..............
+..............o322o33o......o33o223o..............
+.............o32223o3o......o3o32223o.............
+.............o2111333o......o3332222o.............
+.............ooooooooP......ooooooooo.............
diff --git a/parts_pl_src/body/pl_heavybag.txt b/parts_pl_src/body/pl_heavybag.txt
new file mode 100644
index 0000000..19e743d
--- /dev/null
+++ b/parts_pl_src/body/pl_heavybag.txt
@@ -0,0 +1,46 @@
+# pl_heavybag: from pixellab_src/pl_heavybag/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 41)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (44, 52) (from part/probe)
+...........oooooooooooo...........
+........ooo222211111222ooo........
+.......o32222211^111122223o.......
+......oo333333333333333333oo......
+......oboobaaaaaaaaaaaaboobo......
+......occbcccbbaaaabccacbcco......
+......ocoo3o33ooooo3o3o3ooco......
+......oo33232222222o223233oo......
+......o3332oo22222222oo2333o......
+......oo3323222222222232333o......
+......o3332322222222223233oo......
+......oo332oo22222222oo233co......
+......o3332322222222223233oo......
+......oo3211122222222111233o......
+......o33o21112222221112o33o......
+......o3oooo2112222112oooo3o......
+......o333ooo21122112ooo333o......
+......o33o1ooo213312ooo1o33o......
+......o33o1o1oooBoooo1o1o33o......
+.....oo33o1ooo1o33o1ooo1o33oo.....
+....o2333o13331oA3o13331o3332o....
+...obao333o111o2222o111o333oabo...
+..obabco333oooooooooooo333ocbaco..
+..o3occo3332oo111111oo3333occo3o..
+.o3223oo332o3223333223o233ooo223o.
+.obaooo33322222222222222333oooabo.
+ocabcoo333232222222222323o3oocbaco
+ocaccooo332oo22222222oo23coooccbbo
+o333ooo33323222222222232333ooo333o
+o3222ooo332oo22222222oo2333oo3223o
+o32o3ooo332322222222223233ooo3o23o
+.oo3ooocoo3o322222222333oocooT3oo.
+..ooo.occbco3333333333obbcco.ooo..
+......ooccbaccaaaaabccbbccoo......
+......ooooobaabaaababbcooooo......
+.......oo3333ooooooooo333oo.......
+........oooo3333333333oooo........
+.......ooo33oooooooooo333oo.......
+......o3223oo........oo3223o......
+......oooooP..........oooooo......
diff --git a/parts_pl_src/body/pl_heavybag_b.txt b/parts_pl_src/body/pl_heavybag_b.txt
new file mode 100644
index 0000000..cddad9e
--- /dev/null
+++ b/parts_pl_src/body/pl_heavybag_b.txt
@@ -0,0 +1,54 @@
+# pl_heavybag_b: from pixellab_src/pl_heavybag_b/base.png (variant of pl_heavybag) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 37)
+# head_top at (31, 13)
+# back at (31, 39)
+# tail at (48, 52)
+....................ooooo^oooooo....................
+..............oooooo222221112233oooooo..............
+.............o333333333333333333333333o.............
+............o33222222322222222322223233o............
+...........o3322221123111111113312222333o...........
+..........o333222211311111111123112222333o..........
+.........o33322211113111111111133112222333o.........
+........occccaaaoc23222222222222322ooobccco.........
+........occcaaaaacacaaaaaaaaaaaacaacbbbcccco........
+........ooocccaaaaacbbaaaaaaacaaccobbbbccooo........
+.......o33333333333333oooooo3o3o2333333oooooo.......
+.......ooo322222223222222222o2222322222o2o2oo.......
+.......oo2o222222232222222222222232222232o2oo.......
+......oo222oo22222322222222222222322222322oooo......
+......ooo2222222223222222222222223222222o22ooo......
+.....ooo2222o2222311122222222221113222222oooo3o.....
+.....oo3322oo2222o3111222222221113o22222223333o.....
+.....oo3o2oo2222oooo211222222111oooo2222223333o.....
+.....ooo3o22222223ooo2112222112ooo322222222333o.....
+.....oo332222222233ooo21122112ooo3322222222333o.....
+.....o333222222223o1ooo313313ooo1o322222222333o.....
+.....o333222222223o1o1oooooooo1o1o322222222333o.....
+.....o333222222223o1ooo1o33o1ooo1o322222222333oo....
+....o3333222222223o13331o33o13331o32222222233333o...
+...oao3332222222232o111o22A2o111o23222222223333ao...
+..oaaco3322222222323oooooooooooo3232222222233ocaao..
+.o3occo33222222223233oo11B111oo33232222222233occo3o.
+.o32ooo3322222222322o2223333222o223222222223oooo23o.
+.o223o333223222223222222222222222232222222ooooo322o.
+ocaaoo33322o22222322222222222222223222222o22ooooaaco
+ocabco3332oao222232222222222222222322223o2o3ooocbaco
+ocacco3332oaa22223222222222222222232222o2323oooccaco
+o333oo333323aa322322222222222222223222o2o223oooo333o
+o3223oo33332ao22232222222222222222322222o23oooo3223o
+o32o3ooc333222222322222222222222223222222o3oooo3o23o
+.o33ooocc333333322322222222222222322222223oocooo33o.
+..ooo..occcbbc33333333333332222223333ccccocco..ooo..
+.......ooccbccccbbcacaaaaaaaacaaacbbccccccooo.......
+........oooocccccccbabaaaaaaaacaacbccccoo33o........
+.........o333ooooocccccaaaaaaaaaccooooo333T.........
+.........o33o32233332333333333333322222333o.........
+..........oooo322323223222222222322223333o..........
+...........ooooo332322222222222332233333o...........
+............oooo333333333333333o333333oo............
+..............ooooo33333333333333ooooo..............
+..............oo333oooooooooooooo333oo..............
+.............o32233o............o3322oo.............
+.............oooooP..............oooooo.............
diff --git a/parts_pl_src/body/pl_heavybag_c.txt b/parts_pl_src/body/pl_heavybag_c.txt
new file mode 100644
index 0000000..2249ae8
--- /dev/null
+++ b/parts_pl_src/body/pl_heavybag_c.txt
@@ -0,0 +1,55 @@
+# pl_heavybag_c: from pixellab_src/pl_heavybag_c/base.png (variant of pl_heavybag) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 37)
+# head_top at (31, 12)
+# back at (31, 39)
+# tail at (47, 52)
+...........ooooo^oooooo...........
+........ooo222211111222ooo........
+.......o322221111111122223o.......
+......oo333333333333333333oo......
+......oboobaaaaaaaaaaaaaoobo......
+......occbcccaaaaaaaaaacbcco......
+......ocoo3333ooooooooo3ooco......
+......oo3c2bb2222222223233oo......
+......o3b3b3222222222232333o......
+......o3b32c22222222o1323c3o......
+......o33c232222222o11o2333o......
+......o3332332222oo11o32333o......
+......o333222222o211o232333o......
+......o33322222o111o2222333o......
+......o3331112o11o222111333o......
+......o33o3111o1o2221113o33o......
+......o3oooo311o222112oooo3o......
+......o333ooo31122113ooo333o......
+......o33o1ooo313313ooo1o33o......
+......o33o1o1oooooooo1o1o3co......
+......o33o1ooo1o33o1ooo1o33o......
+......o33o13331o33o13331o33o......
+......o333o111o2222o111o333o......
+......o3333oooooooooooo3333o......
+......o33333oo111111oo33333o......
+......o3332o3223A33223o2333o......
+......o3cc222222222222223b3o......
+......o3cc222222B222122a3b3o......
+.....oo33322222222222222c33oo.....
+....o333c32222212222222233333o....
+...obao33322222122222222333oabo...
+..obaac33322231322222222333caaco..
+..o3occ33322231222222222333cco3o..
+.o322ooo3322213222222222333oo223o.
+.obaooooo322223222222222333oooabo.
+ocabcooob322223222222222333oocbaco
+occccooo3322222222222222ba3ooccaao
+o333ooo33322222222222222ba3ooo333o
+o3223oo33322a2222222322a333oo3223o
+o32o3ooo33oa22222221122233ooo3o23o
+.oo3ooocoo33322222111133oocooo3oT.
+..ooo.occbco3333333333obbcco.ooo..
+......ooccbaccaaaaaaabbbccoo......
+......oooooaaaaaaaaabbcooooo......
+.......oo3333ooooooooo333oo.......
+........oooo3333333333oooo........
+.......oo333oooooooooo333oo.......
+......o3223oo........oo3223o......
+......oooooP..........oooooo......
diff --git a/parts_pl_src/body/pl_heavybag_d.txt b/parts_pl_src/body/pl_heavybag_d.txt
new file mode 100644
index 0000000..599be3c
--- /dev/null
+++ b/parts_pl_src/body/pl_heavybag_d.txt
@@ -0,0 +1,50 @@
+# pl_heavybag_d: from pixellab_src/pl_heavybag_d/base.png (variant of pl_heavybag) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 40)
+# head_top at (31, 17)
+# back at (31, 39)
+# tail at (45, 52)
+...............o^ooo..............
+..............o22a22o.............
+.............o222a222o............
+............o2222aa222o...........
+...........o22222a22222o..........
+..........o22223aa222222o.........
+.........o2222222a2222222o........
+........o22222222aa222212o........
+.......o321122222a22222112o.......
+.......o21122222cc222222122o......
+......o2111222222c222222112o......
+.....o22112222222aa222222112o.....
+.....o2112222222bb22222222122o....
+....o221222222222b22222222122o....
+....o221222222222bb22222222122o...
+...o2222222222222b222222222122o...
+...o221222222222bb2222222222222o..
+..o22122222222222b2222222222212o..
+.o222122221122222aa2222112222222o.
+.o222222o31112222a22211123222222o.
+.o2222222oo311122a22112oooo22222o.
+o32222222oooo113222213ooo22222223o
+o3222222o11ooo33B223ooo11o2222223o
+o3222222o11o1ooo3Aooooo11o2222223o
+o3222222o113oo133331oo311o2222223o
+o32222223o1111o32221o111o32222223o
+o332222223oooo2222222ooo322222223o
+o3322222222222oooooo2222222222233o
+o33222222222oo111111oo22222222233o
+o3332222222o2222222222o2222222333o
+.o333222222222222b22222222222233o.
+.o33322222222222bbb2222222222333o.
+.o333322222222222c22222222222333o.
+..o33332222222222c2222222222333o..
+...o3333322222222b2222222223333o..
+...o333333222222bbb22222233333T...
+....o333333222222c22222333333o....
+.....o33333333333c3333333333o.....
+......oo33333333ccc33333333o......
+........oo3333333c3333333oo.......
+........oooo33333c3333oooo........
+.......ooo33oooooooooo333oo.......
+......o3223oo........oo3223o......
+......oooooP..........oooooo......
diff --git a/parts_pl_src/body/pl_hermit.txt b/parts_pl_src/body/pl_hermit.txt
new file mode 100644
index 0000000..3f21f55
--- /dev/null
+++ b/parts_pl_src/body/pl_hermit.txt
@@ -0,0 +1,39 @@
+# pl_hermit: from pixellab_src/pl_hermit/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 45)
+# head_top at (33, 32) (from part/probe)
+# back at (32, 38)
+# tail at (45, 50) (from part/probe)
+.................o.................
+.................boooooo...........
+............o.ooozzzacccoooo.......
+............cobzzaabccbbbbbco......
+...........oaazzbac^bbbbbbbbco.....
+..........obzzccbccaaabbbbbbcco....
+.........obzzzzzccbaabbbbbbcbcco...
+........oayzzzbccaaabbcabbcbbcco...
+........ayzzzbbcaaabbbaabccbbccco..
+.......ozyzzzabcaabbbbbbbccbbccco..
+......ozzccccccaaaBbbbbbbcbbbccco..
+......occccoooocccbbbbbbcbbbccccco.
+.....occcoo3333oooccbbbcbbbbccbcco.
+.....occo11o33o11ooocbcbbbbccaccco.
+.....occo111oo1111o3occbbbccbccccoo
+......oco1o1oo1oo1o33occbcaccccccco
+......oco1o1oo1oo1o333occbcccccccco
+.......oo11o1o1o11A3333occccccccco.
+.......o13o111o11o322333occcccccco.
+.......o1213321oo32222233occccccco.
+...oooooa12222211112222333occcccco.
+..oaaabo22111111aa12222233occccco..
+.oaaaaao322112oooo121112333occcTo..
+oaaaaaaao312ooaaaboo22o3333occco...
+oaaaacaaco3oaaaaaaaco21o3333oco....
+oaaaaocacooaaaaaaaabco1o3333ooo....
+obaacocacocaacoaaaaacooo3oo3oco....
+obaacoobcoccoocaaaaacooo3ocoocbo...
+ocaacoobcooo.ocaaaabcoocoocaoobo...
+.ooccoooo...ocaaaaaccoobo.oao.oo...
+...ooo.....ocaaaaccco.obo..oo......
+...........occccccoo...............
+............oooooP.................
diff --git a/parts_pl_src/body/pl_hermit_b.txt b/parts_pl_src/body/pl_hermit_b.txt
new file mode 100644
index 0000000..50d37ff
--- /dev/null
+++ b/parts_pl_src/body/pl_hermit_b.txt
@@ -0,0 +1,64 @@
+# pl_hermit_b: from pixellab_src/pl_hermit_b/base.png (variant of pl_hermit) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (33, 39)
+# head_top at (33, 3)
+# back at (32, 38)
+# tail at (46, 50)
+...................o^o................
+...................oco................
+...................oco................
+..................ozco................
+..................ozaco...............
+..................oyaco...............
+..................oyaco...............
+..................occco...............
+.................oyaacco..............
+.................ozzacco..............
+.................oyzacco..............
+.................o33accco.............
+.................occcacco.............
+................ozyzaacco.............
+................oyzaaacco.............
+................oyyaaacoo.............
+................occcccccco............
+...............oyzaaaaacco............
+...............oyzzzaaacco............
+...............oyzzzaaaccco...........
+..............ocyzzzaacccco...........
+..............obcbccccccccco..........
+..............obzzzzaaaaacco..........
+.............oyyyzaaaaaaacco..........
+.............oyyyzaaaaaaaccco.........
+.............obyyaaaaaaccccco.........
+.............obccccccccccccco.........
+............oyzzzzzaaaaaacccco........
+...........oyyzzzzaaaaaaaaccco........
+...........oyzzzzzaaaaaaaaccco........
+...........oyyyzzaaaaaaaaabccco.......
+..........occczzzaaaaaaaaccccco.......
+.........oyyyzccccccccccccccbcco......
+.........oy3zyyzzaaaabbbbbcbbbbco.....
+........oyyzyyyyzaaaabbbbbcbbbbco.....
+.......oyzccccccaaaBabbbbbcbbbbco.....
+.......occccoooocccbAbbbbcbbbbccco....
+......occcoo3333oooccbbbcbbbbbcacco...
+......occo11o33o11ooocbcbbbbbcaccco...
+......occo111oo1111o3occbbbbcbcccco...
+.......oco1o1oo1oo1o33occbcbbcccccco..
+.......oco1o1oo1oo1o333oocbcccccccco..
+....ooo.oo11o1o1o11o33333occccccbbco..
+...oaaaoo13o111o11o3113333occccccco...
+..oaaaabo1112211oooooo11333occcccco...
+.oaaaaaaoa1111111oaaaaoo1333occccco...
+oaaaaaaabo111111oaaaaaabo333occcco....
+oaaabbaabo11111oaaaaaaaabo333occoT....
+oaaabbbabo3111oaabbaaaaabo333oooobo...
+oaabbooaboo333oaaobaaaaabo333obbobbo..
+oaabooobbobo33oboobaaaabboo3obbbbobbo.
+.oabo.oooobooooo3obaaaabbob3oboobbobbo
+.oabo...oboo..ooobaaaabbobbooaaoobbobo
+..ooo..obooo...obaaabbboobao.oao.obobo
+.......oaooo...obbbbboo..oao.oao.obobo
+.......oao......ooooo....oao.oao.oooo.
+........oo...............oao.ooo......
+.........................Poo..........
diff --git a/parts_pl_src/body/pl_hermit_c.txt b/parts_pl_src/body/pl_hermit_c.txt
new file mode 100644
index 0000000..5874861
--- /dev/null
+++ b/parts_pl_src/body/pl_hermit_c.txt
@@ -0,0 +1,40 @@
+# pl_hermit_c: from pixellab_src/pl_hermit_c/base.png (variant of pl_hermit) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 43)
+# head_top at (33, 27)
+# back at (32, 38)
+# tail at (48, 50)
+.................ooooo^ooooo................
+..............ooozzbcaaaaabbooo.............
+............ooazzbbczzzaaaabbbco............
+...........obyzzzcazzzzaaaaabbbboo..........
+..........oayzzybczyzzzzaaaaboabbco.........
+.........oazzzzbczzzzzzzaaacoocbbbco........
+........oazzzzbbyzzzzzzaaaaoobbcabbco.......
+.......oazzzzabazzzzzzaaaaaaaobbbbbbo.......
+...ooooazzzzzbzzzzzzaacaaaaaaaobbbbbco......
+.oozzzzzaaaaazzzzzzzaacaaaaaaaocbbbbccooo...
+ozzzzzaaaaaaazzzzaaaaaacaaaaaaaobbbbcccccoo.
+occzzzzzaaazzzzaaaaaaBaacaaaaaaaobbbbbccccco
+.oooooccccczzzzzzzzzzzzzaaaaaaaaobbbbbbcccoo
+......ooooocccccccccccccccccccccoccccccoooo.
+...........oooooooooooooooooooooooooooo.....
+...........o111oo1111o33333333333oo.........
+...........o1o1oo1oo1A333333333333o.........
+...........o1o1oo1oo1o1111113333333o........
+..........oo11o1o1o11o1111111333333o........
+........o.o13o111o11o31111111333333o........
+........ooo1112211oo311111111333333o........
+......oooboa11111111111111111333333o........
+.....ocaaao11111111111oo11111333333o........
+....ocacaao31111111ooocoo111333333oooT......
+...oaaccaaao311111obyaaaao1333333ooao.......
+...obbaabacco311ooabyoaaaaoo3333obcao.......
+...ocaaacaccco33oaaycaaacaco333obbaaaoo.....
+..oabcaccccocoooocaaaaabbco333obbaacco......
+..obcccacco.o..ooaaaaaabcco33obbcaaacco.....
+..obooaccco....ooccaacaccoooo.occcccccco....
+..oo.oacoo....ooacccaccoco....oocccoocco....
+......oo......oaccoacccoo......occo..ooo....
+..............oaoooacoo.........oo..........
+..............oo...ooP......................
diff --git a/parts_pl_src/body/pl_hermit_d.txt b/parts_pl_src/body/pl_hermit_d.txt
new file mode 100644
index 0000000..78ce761
--- /dev/null
+++ b/parts_pl_src/body/pl_hermit_d.txt
@@ -0,0 +1,43 @@
+# pl_hermit_d: from pixellab_src/pl_hermit_d/base.png (variant of pl_hermit) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 43)
+# head_top at (33, 25)
+# back at (32, 38)
+# tail at (48, 50)
+.................o...................
+.................bo^oooo.............
+..............ooo2222bccooo..........
+............oobzzaaacccbbbboo........
+...........obyzzzaaccbbbbbbcco.......
+..........obzzzzyccbaabbbbbbcoo......
+.........obzzzzbyccaabbbbbbbcco......
+........obzzzaabccaabbcbbbbcbcco.....
+.......obzzzzzabcaabbbbbbbcbbbcco....
+.......obzzzzzabcaabbbbbbbcbbbcco....
+......obzcccccccaaabbbbbbcbbbbcco....
+......occcccoooocccbbbbbbbbbbcccco...
+......occooo333ooocbbbbcbbbbbcbcco...
+......oco111o3o111oocbbcbbbbbcccco...
+......oco1o1o3o1o1B3ocbcbbbbccccco...
+.......o31o1o1o1o1o33oocbbbcbcccco...
+.....oo1131o11111o31133ocbccccccco...
+....o1111231111oo3111133occcccccco...
+...o1111a113331111111133occcccccco...
+...o331111111111111A11133occcccco3o..
+..o13311111111111111111133ooccco33oo.
+...o311111111111111111113333ooo33333o
+...o1111111111111111133311133333333oo
+...o1121211111111113333331111333333o.
+..oo3321211111211131111133131331333o.
+.oabo31111311122131111113o13133133oo.
+ocaao31313311322occcc1113o33333333T..
+occco3133131133caacccc133o33333333o..
+occcco13313133cccaaaccc33o33333333o..
+oaaccoo333333caacaaaaccc3o33333o3o...
+occcooo33333occcocaaaacco333o33oo....
+.occooo.o333occoocccaaaco33ocoocoo...
+.oaaoo..oco33333occccaao33oocoocao...
+..oabo..occooooocaacccboocooobo.ao...
+...ooo..oaco...oaaabccooocao.bo......
+..............occccboo...............
+..............ooooPo.................
diff --git a/parts_pl_src/body/pl_hoard.txt b/parts_pl_src/body/pl_hoard.txt
new file mode 100644
index 0000000..5328618
--- /dev/null
+++ b/parts_pl_src/body/pl_hoard.txt
@@ -0,0 +1,42 @@
+# pl_hoard: from pixellab_src/pl_hoard/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 43)
+# head_top at (32, 25)
+# back at (32, 42) (from part/probe)
+# tail at (44, 51)
+.......oo.....o^....oo........
+......oaxo...o33o..oaxo.......
+......ox1o...o22o..ox1o.......
+......ox1xo.o3222o.ox1xo......
+......ox11o.o3222o.ox1xo......
+......oax1xoo33223oaxxxo......
+ooooo..oaxxo333323ooaxo..ooooo
+o3311oooca3222332322ooooo1123o
+.oc32113o3221113331112o32123o.
+.oabc2122211111133111123223co.
+..oabc3221111111111111133cbo..
+..oaabc33111111111111112cbao..
+...oaacc2111111111111112aao...
+....oo3221ooo1111111oo123oo...
+..ooo33221ooo1111111oo223ooo..
+..33222221331111111131222223..
+..o3322211222111111122112233..
+...o33332aa1113B11311aa2333o..
+....oo333322111A1111222333o...
+.....oooo3113oooooo3223ooo....
+.....o33211113oyyo211123o.....
+....o333211123yxxy321123o.....
+....322o3333oo111xoo333o......
+...o3223oooobbccccbboooooo....
+...o3212occabyyyyyybbco33ao...
+...o32112obaaczzoooooo3223ao..
+...o331112ocaaco33111o32223T..
+...o3331112ooo3311111o3323o...
+....o3332111232221313o333o....
+....ooo33321111111323o33oo....
+.oooyyboo33333333333ooobxxooo.
+oxyyczyyboooooooooooczzyzczyxo
+ozyzcy11xycccyyyyycccyy1xczyzo
+.oooozzyzcyyyczyyczyxczyzoooo.
+.....ooooozzyyccczxyzoooo.....
+..........ooooPoooooo.........
diff --git a/parts_pl_src/body/pl_hoard_b.txt b/parts_pl_src/body/pl_hoard_b.txt
new file mode 100644
index 0000000..a2098c9
--- /dev/null
+++ b/parts_pl_src/body/pl_hoard_b.txt
@@ -0,0 +1,50 @@
+# pl_hoard_b: from pixellab_src/pl_hoard_b/base.png (variant of pl_hoard) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (32, 17)
+# back at (32, 42)
+# tail at (49, 51)
+........oo.....o^.....oo..........
+........oyo....o3o...oyo..........
+.......o11o...o32o...o11o.........
+.......o11o..o3123o..o11o.........
+.......o11o..o3223oo.o11o.........
+.......oy1yo.o1223oaoy1yo.........
+oooo...oy1yooo122333oy1yo...oooo..
+o322oo..oyy3231233112yyo..oo223o..
+o33311ooo22113323111122ooo11133o..
+.ob33123o11111332111111o32113co...
+.oaac3232111112311111112323cbco...
+..oabc33211111111111111233cbao....
+..oaabo222221111111122222ccaao....
+...oaac22oo2211111122oo22baao.....
+....oo32owwo22111122owwo23oo......
+....o322owooo21111oooowo223o......
+..o332221w2oo111111oo2w122233o....
+..o32221112221111112221112223o....
+...o3221aa1111311o1111aa1223o.....
+....o3311113111111131111133o......
+.....o33111111333333111133o.......
+......oo3211331111111123oo........
+........o333111111113333aoo.......
+.......o32223333A33322233bao......
+......oo221222yyyy222122bobo......
+......o322112yyyByy2112212obo.....
+.....oo2311131yyyy1311131123oo....
+....o32231113111111311132223bao...
+...o211231112y111113111321113ao...
+...o111231111oyyyyo11113211131oo..
+...o111231111o1111o111132111311oo.
+...o3322231111o111o1112o211131a1o.
+..o33232231111oyyo21111o222311113o
+.oa322233o1313occo23131o3223211a3o
+.o322223oooooozyyyzooooco33221113T
+..o3222ooyzzzzcyyyyyyccco32111123o
+.ooo223occyyyyccoo333333111111223o
+oyyoo2oyyzccccco322111111111a233o.
+ozycczccyyyyyyco322222111223223o..
+.oyyzczyccccccyyoo3333333333ooo...
+.ozyzcyyyyycccyyyyooooooooooyzo...
+..oooozzyzcyzzczyzczyyczyzoooo....
+......ooooozzyyccczyyzoooo........
+...........oooooPooooo............
diff --git a/parts_pl_src/body/pl_hoard_c.txt b/parts_pl_src/body/pl_hoard_c.txt
new file mode 100644
index 0000000..848cfda
--- /dev/null
+++ b/parts_pl_src/body/pl_hoard_c.txt
@@ -0,0 +1,50 @@
+# pl_hoard_c: from pixellab_src/pl_hoard_c/base.png (variant of pl_hoard) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 43)
+# head_top at (32, 18)
+# back at (32, 42)
+# tail at (51, 51)
+.................o.....o....oo..................
+................oxo...o3^..oaxo.................
+................oxxo.o322o.ox1xo................
+................ox1o.o322o.ox1xo................
+................oa1xoo3323oaxxxo................
+..........ooooo..oxxo3o333ooaxo..oooo...........
+..........o3311oooao22233322ooooo123o...........
+...........oc3212oo22111331112o3223o............
+...........oaac222211111331111232oco............
+............oaac32111111111111133co.............
+............ooaac311111111111112aao.............
+.............oooo21ooo111111oo12oo..............
+............ooo3321ooo111111oo22ooo.............
+............o3222213311111113122223.............
+............oo32221222111111221123o.............
+.............oo333aa111311311aa23oo.............
+..............ooo33221111111222ooo..............
+...............ooo2112oooo31113oo...............
+..............o33311123yxx321123o...............
+..............o2oo333ooxxxoo333o................
+.............o323ooooaacccaaooooo...............
+.............o322occaayyyyyaaco33o..............
+.............o3212oaaaczoooooo323co.............
+.............o33112ocaao33111o3223o.............
+............cco33111ooo321111o333o..............
+...........cyyo333111232B1313o33oob.............
+...........cxxyoo332111A11323o33cyzooo..........
+.........oozxzaczo333oooo333ooooccxxxxo.........
+........oyycccxzzzooyxxxxzczzcyxxczxyzo.........
+.......cxxxxzcccyxycyyxxzcccccyxyyccccoo........
+.......czxycczxxcxyycccccyxxxycccccczyxxo.......
+......cccccccxxxxcccccxxccyxxycyxxyczyzzzo......
+.....byxxcacxxxzzcyyyaxxxxccccyyxyycccccxxo.....
+....bxxzbxxczxyzccxyybxxxycyxyyxyzcxyyyczxxo....
+....bzzcyyyxcccczzzxyzcccczyyycccccyxxyxczzT....
+....occyyyyxzcyxxzcxxxzcczyyzycxyyycaxxxcccco...
+...oyyccccxzcyxxyxccccccczxxcccyxxxxczzccyxxyo..
+..bccccxxyzzcxxxxzczzcxxycccxxcczzxyccccccyxzc..
+.oyxxcyyxycyzcxxzcyxcxyyyxcyxxyzccccyyycxxczyyo.
+oxxzccyxxyccccyzcczccxyyyxcczxxzcccyyxxczxxczxxo
+oyyzcxxxzczzxxcccxxyczxxxzcxczxcxxxczzxxczxxczyo
+ooooozxzcoxxxyxcxyyycozxccyxxccxxxxxozzxxczzoooo
+.....ooooozzxzaoczzcooooozyycoozzxyzoozycoooo...
+..........ooooo.oooo.....Pooo..ooooo..ooo.......
diff --git a/parts_pl_src/body/pl_hoard_d.txt b/parts_pl_src/body/pl_hoard_d.txt
new file mode 100644
index 0000000..93e9c99
--- /dev/null
+++ b/parts_pl_src/body/pl_hoard_d.txt
@@ -0,0 +1,54 @@
+# pl_hoard_d: from pixellab_src/pl_hoard_d/base.png (variant of pl_hoard) (pixellab_library.py extract)
+# pivot at (24, 58)
+# aura at (31, 36)
+# head_top at (32, 11)
+# back at (32, 42)
+# tail at (45, 51)
+............oo.....o^....oo.............
+...........obzo...o33o..obzo............
+...........oz1o...o22o..oz1o............
+...........oz1zo.o3222o.oz1zo...........
+...........oz11o.o3222o.oz1zo...........
+...........obz1zoo33223obzzzo...........
+.....ooooo..obzzo3o3323oobzo..ooooo.....
+.....o3311ooocbo222332322ooooo1123o.....
+......oc32113oo221113331112o32123o......
+......oac32122211111233111123223co......
+......oaac322211111113311111323coo......
+.......oabc3221111111111111133cao.......
+.......oaaac33111111111111112ccao.......
+........oaacc2111111111111112aao........
+.........oo3221ooo1111111oo12ooo........
+.......ooo33221ooo1111111oo223ooo.......
+.......33222221331111111131222223.......
+.......oo32221122211111112211223o.......
+.......ooo3332aa1113111311aa233oo.......
+......o32ooo33111111111111133ooo3o......
+.....o3222ooo3311113333111333oo222o.....
+....o22122223332221111111233322211oo....
+...o21111112223332222222333322111112o...
+..o3111111111223333333333333211111112o..
+..o1111211111111333333333331111111112o..
+.o11111311111111113A333311111111221112o.
+.o111231111111111111111111111111131111o.
+o1111o3111311111111111111111131113o111o.
+o1112o1111333333333333333333331111o1111o
+o111o211111133111111111111113331112o111o
+o111o211111111111111111111111111112o111o
+o113o211111111111111B11111111113112o311o
+o113o211111111111111111111111113112o311o
+o13oo211111111111111111111111111112o331o
+o33oo211111111111111111111111111112oo33o
+.oo.o221111111111111111111111111112o.oo.
+....o221311111111111111111111113122o....
+....o331231111111111111111111112232o....
+.....o3323311111111111111111133233o.....
+.....o3333331111111111111111332333o.....
+......o33323333111111111113332333T......
+......o33333333333333333333333333o......
+......oo33333oo3333333333oo33333oo......
+.......o333333oooooooooooo333333o.......
+........o3333o............o3333o........
+........o2223o............o3222o........
+........ao233o............o332oa........
+........ooooP..............ooooo........
diff --git a/parts_pl_src/body/pl_hoatzin.txt b/parts_pl_src/body/pl_hoatzin.txt
new file mode 100644
index 0000000..4987f37
--- /dev/null
+++ b/parts_pl_src/body/pl_hoatzin.txt
@@ -0,0 +1,48 @@
+# pl_hoatzin: from pixellab_src/pl_hoatzin/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 40)
+# head_top at (30, 25) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (40, 49) (from part/probe)
+.............ooo...............
+........oo.oo22o...............
+........o2oo113o...............
+....oo.o12o1123oooo............
+....o1o11211223223o............
+....o1311111221233oooo.........
+...o3121111111^222233o.........
+...o3222122211111133o..........
+....o322222333312333oo.........
+...ob332333bbcc3312233oo.......
+..obab333baaaaac3133333o.......
+..o2aabbaaaaao2ac32333o........
+..oobaaaaab2oaocb3112oo........
+..owobbbbboobwaob312333o.......
+..obo11xboboawwbc31233o........
+..oo11x22caaawbbb2113o.........
+..o1xxo3232wwaaab13333o........
+..oxxx2xxx222aaB2123ooo........
+..o2xxxx2222ocb21233o..........
+...o3ooooooocb31333oo..........
+....oo3333ccc2233ooo...........
+......ooo22233Ao333ooooo.......
+......oo333333333111123o.......
+....oo3322222233311122ooo......
+..oo333322222223o21111233o.....
+.o12c3o211111oco221a1133oo.....
+o13cc3o31112o1x2o3212223o...ooo
+o3co2co23122o2c22o3223323ooo22o
+oc2o2co2232o2c11cco323oooo2o22o
+.o22ooo3222oxocccoooo3o2o22223o
+..oo..o33322ooo3o3233oo2T1233o.
+......oo3332223oo212233322333o.
+......o2o333233o21122o333333o..
+......o22o33333oc12c2o3333oo...
+.......o333o333o3b223o33oo.....
+........o33cooooo3333ooo.......
+......oooccco...oo33co.........
+....oo3c333coo...occco.........
+...o12co2c333o.ooc333co........
+...oooox2coooo12c2c3cxo........
+.......ooo...ooooxcoo1o........
+.................Po..o.........
diff --git a/parts_pl_src/body/pl_hoatzin_b.txt b/parts_pl_src/body/pl_hoatzin_b.txt
new file mode 100644
index 0000000..cc1f048
--- /dev/null
+++ b/parts_pl_src/body/pl_hoatzin_b.txt
@@ -0,0 +1,50 @@
+# pl_hoatzin_b: from pixellab_src/pl_hoatzin_b/base.png (variant of pl_hoatzin) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 39)
+# head_top at (30, 17)
+# back at (31, 36)
+# tail at (45, 49)
+................^oo.................
+...............o22o.................
+............ooo222o.oo..............
+..........oo2o2223oo23o.............
+.........oo22322232223oo............
+........o322222222223333ooo.........
+.......o211122222222223333o.........
+......o2222222222222222233o.........
+.....o221222222222222222333o........
+....o32122222222222222223333o.......
+....o22222222222222222222333o.......
+....o22222222222222222222333o.......
+...o2222222222222222222222333o......
+...o22oo222222oo2222222222333o......
+...o22oo233222oo2222222222333o......
+...o22ooy1x222oo2222222222333o......
+..o2222o1xx2222222222222233333o.....
+..o222oxxyccc22222222222233333o.....
+..o322ooc22233222222222233333oo.....
+...o2222333332222B222223333333o.....
+...o322223332222222223333333333o....
+..o33332222222223223333333333333oooo
+..o32232222222233A22222222233333333o
+.o332222222222222222222222223333333o
+o23222211222222222222222222223o333oo
+o232a2222222222222222322222223o3333o
+o332a2222222222222a22332223223oo333o
+o3322aa22222222a2a2223332223322o33o.
+.o3222aa222a2aaaa2222233232223oo3o..
+..o3222aa22aa22222222233o33333o33o..
+..o32222a2a22222222222333oo333o3o...
+...o32222a22222222222223333ooo33o...
+...o332222222222222223233333333T....
+....o33222322222222233333333333.....
+.....o3323222323333333333333333.....
+......o333333333333333333333ooo.....
+.......oo33333333333333333oo........
+.........ooooo3333o33c33oo..........
+........ooocccoooo.oo3co............
+......oo3c333co....oo3co............
+.....ox2oo2c33co.ooc333co...........
+.....ooooy2cooooc2cox3c2o...........
+.........ooo...ooooycooxo...........
+...................Po..o............
diff --git a/parts_pl_src/body/pl_hoatzin_c.txt b/parts_pl_src/body/pl_hoatzin_c.txt
new file mode 100644
index 0000000..c46f863
--- /dev/null
+++ b/parts_pl_src/body/pl_hoatzin_c.txt
@@ -0,0 +1,50 @@
+# pl_hoatzin_c: from pixellab_src/pl_hoatzin_c/base.png (variant of pl_hoatzin) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 39)
+# head_top at (30, 17)
+# back at (31, 36)
+# tail at (45, 49)
+..............^oo..............
+.............o211o.............
+........oo..o3113o.............
+........o3oo31133ooooooo.......
+.......o13o31133331aaaacoo.....
+......o21331123111111aaaao.....
+......o11311122111133bbcoo.....
+...ooo3111111111113333oo.......
+...o31211111111112111111oo.....
+...o31212112211111111111aao....
+..o3322121133331111111111aao...
+..o3b321233baac3111111111aaao..
+...3ab333baaaaac313333333bbabo.
+..o3aaaabaaaao2ab3311133333bbo.
+..oobaaaaab2oaocb311111133oooo.
+..o1obbbbboob1aob33311111bco...
+..obo11xboboa11bc333333311co...
+..oo11xx2caaa1bbb31113333ccco..
+.o11xxo2x22ccaaab311111333cco..
+o11xxxxxxxxx3caBb333211a3ooco..
+o1xxx3cccccxxbbb31123311bo.....
+o1x2oo2222223bc31111133cbo.....
+ox3o333occccc3A11321acooco.....
+ooo31333333311311331aco.oo.....
+.ob132132113112313ooccoo.......
+.oab311311131123a3oooo2o.......
+.ocoo1131113213obbo21112o......
+.ooooab311a33a3obo211112o......
+...ooao3aa3ooao3ooo212a2o...ooo
+...o3oooabo3oo2233oo3222o.oo22o
+...o33o2oo22332223ox2233oo2o22o
+...oc3o2332222222ox2222co22223o
+...o3co3222222223o2o322c21223T.
+...oc2oo3222222332ooxo2o22333o.
+....ooo2o333233o211oooo33333o..
+......o22o33333o21123o3333oo...
+.......o33oo333o3b223o33oo.....
+........o33cooooo3333ooo.......
+......oooccco...oo33co.........
+....oo3c333coo...occco.........
+...ox2co2c333o.ooc333co........
+...ooooy2coooo12c2c3cxo........
+.......ooo...ooooxcooxo........
+.................Po..o.........
diff --git a/parts_pl_src/body/pl_hoatzin_d.txt b/parts_pl_src/body/pl_hoatzin_d.txt
new file mode 100644
index 0000000..135a1b0
--- /dev/null
+++ b/parts_pl_src/body/pl_hoatzin_d.txt
@@ -0,0 +1,49 @@
+# pl_hoatzin_d: from pixellab_src/pl_hoatzin_d/base.png (variant of pl_hoatzin) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 40)
+# head_top at (30, 18)
+# back at (31, 36)
+# tail at (46, 49)
+............oo^o...............
+..........oo113o...............
+.....ooo.o31113oooo............
+.....o1ooo111332233o...........
+.....o1331111311133o...........
+.....o131111311113o3oo.........
+....o31311113111331113o........
+...o313111131133111113o........
+...o313111131131111133o........
+...o3331111333311113333o.......
+...ob3311133bcc311311133o......
+..obab3333bbaaac33111133o......
+..o2aabbaaaaao2ac3111133o......
+..oobaaaaab2oaocb3113333o......
+..owobbbbboobwaob333113o.......
+..oboxxxboboawwbb311113oo......
+..oo11x22caaawbbb3333333o......
+..o1xxo3232wwaaab311133o.......
+..oxxx2xxx222aaB3133333o.......
+..o2xxxxxx22ocb2123333oo.......
+...o3ooooooocb311o31111oo......
+...ooo3333ccc313311111a1o......
+...o12ooo33333A3o11113333o.....
+..o331o133333313o31331113o.....
+..o13331111111133o3311111o.....
+..oo3o3111111133ooo333333o.....
+.ox2co3311113oco11113113oo...oo
+ox3cco113333oxxxo1111333o...o1o
+o3co2o111111o2c22o3113b3o.oo11o
+oc2o2oo2111o2cxxcco1333ooo3112o
+.o22oo33312oxocccoo13oo1131112o
+..oooo311333ooo3o3o3o331113233T
+...o11331111133oo333333312323o.
+...o113o31133333111133o33333o..
+...o133oo33333o3111113o333oo...
+...o113o3oo333o3311a33o3oo.....
+...oo13o333ooooo333323oo.......
+....oooo3ccco..o31113o.........
+....oo3c333coo..oooooo.........
+...ox2co2c333o.ooc333co........
+...oooox2coooox2c2c3cxo........
+.......ooo...ooooxcooxo........
+.................Po..o.........
diff --git a/parts_pl_src/body/pl_hoopoe.txt b/parts_pl_src/body/pl_hoopoe.txt
new file mode 100644
index 0000000..d5a9f2b
--- /dev/null
+++ b/parts_pl_src/body/pl_hoopoe.txt
@@ -0,0 +1,48 @@
+# pl_hoopoe: from pixellab_src/pl_hoopoe/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 19)
+# back at (34, 42) (from part/probe)
+# tail at (46, 52) (from part/probe)
+................ooo^....................
+..............ooybaoooooo...............
+.............obybyaboaaao...............
+.............oybyaaboaaboo..............
+............oaayaaaboaaobbooo...........
+..........oooabaaaaboacobaaao...........
+..........oao232222o22obaaabo...........
+..........oao212223o2332aabobo..........
+.........oaao212223o3o222oobbbo.........
+.........oa2o22223o3o322o3bbbbo.........
+.........o22o2222o3o33o3333bbo..........
+..........o2o3223o3o3o3333ooobo.........
+..........o3oo33oooooo3ooo33bbo.........
+...........ooo33o3333oo33333bbo.........
+...........o22o32222223ooooooo..........
+..........o2112222222223o33bbo..........
+.........o321112233322223oobbo..........
+.........oo321223ooo32223ooooo..........
+........oowo2223oo11oo223o..............
+........oooo322oowowo32223o.............
+........ooxxx333ooow322223o.............
+......ooxxxx33o3oowo222233o.............
+....ooxxxx3333zo2333A22333o.............
+..ooxxxx33ooooo2222aaaB3333o............
+.oxx33oooo33333222222233ooooo...........
+ozoooo....o333333322333oaaaabo..........
+.........obobbbbbb3333oayyaaaco.........
+.........obobbbbbb333oayyyaaccbo........
+........oab3caabcb322oayyaacccaco.......
+........oao23cab3c222oaaaacccaaco.......
+........oco223a322222obaaccaaaccbo......
+........oao222c2222222occcaaaccbbco.....
+........obo22222222222occcaaccbbcco.....
+.........oco22222222222obaocbabcccT.....
+..........oo222222222323obbocccccco.....
+...........oo222222232333oobcocccoo.....
+.............o3322333333333oooooooooo...
+..............oo33333o3333ooobbbcobbboo.
+.............ooooooooooooo...oobbboobbbo
+............oxox3z3oz3z33zo....oooooooo.
+............ooooooooxox3ooo.............
+...................Poooo................
diff --git a/parts_pl_src/body/pl_hoopoe_b.txt b/parts_pl_src/body/pl_hoopoe_b.txt
new file mode 100644
index 0000000..07c0df6
--- /dev/null
+++ b/parts_pl_src/body/pl_hoopoe_b.txt
@@ -0,0 +1,50 @@
+# pl_hoopoe_b: from pixellab_src/pl_hoopoe_b/base.png (variant of pl_hoopoe) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 41)
+# head_top at (31, 17)
+# back at (34, 42)
+# tail at (47, 52)
+...........ooo^....................
+.........ooybaoooooo...............
+........obybyaboaaao...............
+........oybyaaboaaboo..............
+.......oaayaaaboabobbooo...........
+.....oooabaaaaboabobaaao...........
+.....oao222222o22obaaabo...........
+.....oao212222o2332aabobo..........
+....oaao212223o3o222oobbbo.........
+....oa2o22223o3o322o3bbbbo.........
+....o22o2222o3o33o3333bbo..........
+.....o2o3223o3o3o3333ooobo.........
+.....o3oo33oooooo3ooo33bbo.........
+......ooo33o22222oo3333bbo.........
+......o22o322222223oooooo..........
+.....o21111222222223o3cco..........
+....o3221122333222223obbo..........
+....oo322223ooo322223oooo..........
+....owo2223oo11oo22233o............
+....ooo322oowowo322223o............
+...o2xxx333ooow3222223o............
+..oxxxx33o3oooo2222223oo...........
+.oxx333333o2222aa222333oo..........
+.ooooooooo222222222333333o.........
+...o22333322222A22333ooo33o........
+..oo3333333222223B3ooaaao33o.......
+.oao33333333333333oaaaaaao33o......
+.oao2223333332222oaayyaaaco3oo.....
+oao22b22222222222oayyyaaccao3o.....
+oao22bb2222bb2222oayyaacccac3o.....
+oo2222b2222bb2222oaaaacccaacco.....
+oo22b222222222222obaaccaaaccbo.....
+oo222222b2222b2222occcaaaccbbco....
+oo2222222222222222occcaaccbbcco....
+.o3222222b222222222obaocbbbccco....
+.oo32222222222222222obbccbccccT....
+..o332222222222222333oobcocccoo....
+..oo3332222222333333333ooooooooo...
+....oo33333333333333333occcbbboo...
+......oo3333333o33333ooobbbccbbboo.
+.......ooooooooooooooo..oobbboobbbo
+.......oxox3z3oz3z33zo....oooooooo.
+.......ooooooooxox3ooo.............
+..............oooPo................
diff --git a/parts_pl_src/body/pl_hoopoe_c.txt b/parts_pl_src/body/pl_hoopoe_c.txt
new file mode 100644
index 0000000..b259326
--- /dev/null
+++ b/parts_pl_src/body/pl_hoopoe_c.txt
@@ -0,0 +1,48 @@
+# pl_hoopoe_c: from pixellab_src/pl_hoopoe_c/base.png (variant of pl_hoopoe) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 19)
+# back at (34, 42)
+# tail at (47, 52)
+................ooo^....................
+...............obybo.oooo...............
+..............obybbooobbo...............
+.............obybbboobbbo...............
+............obyybbbobbboooooo...........
+..........ooobybbbacbbboobbbo...........
+.........obbobybbbcbbbccbyyao...........
+.........obbobybbbcbbbcbyyaooo..........
+.........obbcbybbccbbcbbyaaaaao.........
+.........obbcbbbbcbbccbbaaaaaao.........
+.........obbcbbbccbccbbaaaaaoo..........
+..........obacbbccbcbbaaabbbbo..........
+..........ocacbbcccccaaabbbbbbo.........
+...........oocbbc3333ooaaaaaaao.........
+...........o11c33111113oaaaooo..........
+..........o1111111111113oaaaao..........
+.........o311111133311113oaoao..........
+.........oo311113ooo31111oaooo..........
+........oowo1113oo11oo111oaao...........
+........oooo311oowowo31113oao...........
+........ooxxx333ooow311113oo............
+......ooxxxx33o3oowo111133o.............
+....ooxxxx3333zo1333A11333oo............
+..ooxxxx33ooooo1111bbbB333aaoo..........
+.oxx33ooooo33331111111333aaaao..........
+ozoooo....oo33333311333aabbbbboo........
+.........obaaaaaaaaaabaabbbbbbbco.......
+........oobbbbaabbbbbbbbbbbbcbbbo.......
+........oobbbbbbbbbbbobbbbbcccbbco......
+.........occbbbbbcbbbobbbbcccbbcbo......
+.........oobbcbbbbcbbobbbccbbbbcaao.....
+..........obccbbcbccc3obbcbbbcbbcao.....
+..........oacobccbccc1ocbbcbcacbaoo.....
+...........o31ocoao3211obbcbbbcccccT....
+...........o313c3a311313obccccbaaooo....
+............o333331131333obcccaaaao.....
+.............o331133333333ooaaooaaooo...
+..............ooo3333o3333oooaaaooaaaoo.
+.............ooooooooooooo...ooaaaaaaaao
+............oxox3z3oz3z33zo....oooooooo.
+............ooooooooxox3ooo.............
+...................Poooo................
diff --git a/parts_pl_src/body/pl_hoopoe_d.txt b/parts_pl_src/body/pl_hoopoe_d.txt
new file mode 100644
index 0000000..cc310e8
--- /dev/null
+++ b/parts_pl_src/body/pl_hoopoe_d.txt
@@ -0,0 +1,63 @@
+# pl_hoopoe_d: from pixellab_src/pl_hoopoe_d/base.png (variant of pl_hoopoe) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 33)
+# head_top at (31, 4)
+# back at (34, 42)
+# tail at (44, 52)
+................oo^oo................
+...............ocxbbco...............
+...............obxbbcooooo...........
+..............obxbbbcoccbco..........
+..............obbbbbcocxbco..........
+.............obbbbbbcobbbcoo.........
+.............obbbbbc3obbcocco........
+.............o212222o322ccbbco.......
+.............o212223o3223cbcco.......
+.............o212223o32332coo........
+.............o222223o33333occo.......
+..............o2223o33o3333cbco......
+..............o2233oooo33333bco......
+............ooo3333oooooo333ooo......
+..........oo112o33o333333ooooo.......
+........oo122222oo3222222333o........
+.......o2222222233222222222333o......
+......o221122222222222222222333o.....
+.....o22111222222222222222222333o....
+....o2211112222222222222222222333o...
+...o222111222222222222222222222333o..
+...o222222222222222222222222222333o..
+..o22122222222222222222222222222333o.
+..o22222222222222222222222222222333o.
+.o222333322222222222222333322222233o.
+.o223oooo3222222222222oooooo22222333o
+.o23o2oooo32222222223ooooo3oo2222233o
+o2oooowwooo222222222oowwooooooo22233o
+o22o1owwooo222222222oowwoooo1o222233o
+o22o1oooooo22222222Aoooooooo1o222233o
+o22owoooooo222222222oooooooowo222233o
+o22owoooooo22zzz2222oooooo2owo222233o
+o22ow22oo2o2zx1x2222o3oooo2w13222233o
+o222ow2oo2ozx1xxxz22o32oo22w32222233o
+o2222o22232zxxxxxxz22o3222wo22222333o
+o3aaabooo22zzzzzzyz222ooooobaa222333o
+.oaaaa222222zyyyz322222222aaaa22333o.
+.o32222222223zzz3222222222222223333o.
+..o332222222233322222B222222223333o..
+...o33222222222222222222222223333o...
+....o332222222222222222222233333o....
+.....o3333222222222222223333333o.....
+......oo333333333333333333333oo......
+........oo333333333333333ooooo.......
+..........ooooooooooooooo33o3........
+..........o3o333333333333333o3oo.....
+.........o33o3333333333332223o23o....
+.........o23o2222222222333222o3oo....
+.........o23o222222222223o2223oT.....
+.........o23o3222222222223o333o......
+.........ooooo322222222223ooooo......
+.............o3o3333332233o333o......
+..............o3oooooo333oooooo......
+............ooo22o...oo22o...........
+...........oxzzx2o....o22oo..........
+...........ozx22oo....oxz2xo.........
+............oooP......ooooo..........
diff --git a/parts_pl_src/body/pl_hourglass.txt b/parts_pl_src/body/pl_hourglass.txt
new file mode 100644
index 0000000..37732fa
--- /dev/null
+++ b/parts_pl_src/body/pl_hourglass.txt
@@ -0,0 +1,49 @@
+# pl_hourglass: from pixellab_src/pl_hourglass/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 39)
+# head_top at (31, 20) (from part/probe)
+# back at (28, 37) (from part/probe)
+# tail at (44, 50)
+........oooooooooooooo........
+....oooobbbaaaaaabbbbboooo....
+..oobaabaaabaa^aaaaaabbbbboo..
+.oabbbaabaaaaaaaaaabbbbbbbbao.
+.occaaaaabbaaaaabbbbbbbaaacco.
+.occccbayyyyyyyyyyayaabccccco.
+..occcccbbybbbbbbbbcacccccco..
+..ocoocccbbcbbbbbbbbcbccooco..
+..ozc.oooooooooooooooooo.czo..
+..ozc.o1232222222222b21o.czo..
+..ozco12awww22222222bb21oczo..
+..ozco12aww3c1111cc1bb21oczo..
+..oyco12113wo1113wo11221oczo..
+..oyco11112oc1112oc11121oczo..
+..oyco12111c31111c311121oczo..
+..oyco1211a113oo111a1121oczo..
+..oyc.o1311111111111131o.czo..
+..oyc.o1322111111122231o.czo..
+..oyc..o13222222221231o..cyo..
+..oyc...o13B211112231o...cyo..
+..oyc....o1332122331o....cyo..
+..oyc.oo2o1333A23331o2oo.cyo..
+..oyco13o111132222221o31ocyo..
+..oyc13o11111111112221o31cyo..
+.o3yc3o111ww11111112221o3cyoo.
+o13ycoo11www11221111221oocyo1o
+o23yco111ww1112211112221ocyo2o
+o33yco111121111211111221ocyo3o
+.ooyco113212221311111221ocyoo.
+..ozco132111122322221221oczo..
+..ozco132111111211122331oczo..
+..ozc.o3322111111122331o.czo..
+..ozcoo1332221111223331ooczT..
+..ozcbbo13322222223331obbczo..
+.obccaabo133333333331obbbccbo.
+.oabbaaabbbbbbbbbbbbcbbbbbbao.
+.occaaabbaaaaaaaaaabbbaaaacco.
+.occcccbyyayyyyyyyayaacccccco.
+..oocccccbbbbbbbbbcaabccccoo..
+....ooocccbcbbbbbbbcbccooo....
+.......oooooooooooooooo.......
+.......o223o......o322o.......
+........ooP........ooo........
diff --git a/parts_pl_src/body/pl_hourglass_b.txt b/parts_pl_src/body/pl_hourglass_b.txt
new file mode 100644
index 0000000..5e7f903
--- /dev/null
+++ b/parts_pl_src/body/pl_hourglass_b.txt
@@ -0,0 +1,49 @@
+# pl_hourglass_b: from pixellab_src/pl_hourglass_b/base.png (variant of pl_hourglass) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 39)
+# head_top at (31, 18)
+# back at (28, 37)
+# tail at (44, 50)
+........oooooo^ooooooo........
+....oooobbbaaaaaabbbbboooo....
+..oobaabaaabaaaaaaaaabbbbboo..
+.oabbbaabaaaaaaaaaabbbbbbbbao.
+.occaaabbbbaaaaabbbbbbbaaacco.
+.occccbbyyyyyyyyyybyaabccccco.
+..occcccbbybbbbbbbbcacccccco..
+..ocoocccbbcbbbbbbbbcbccooco..
+..obc.oooooooooooooooooo.cbo..
+..ozc.o1333333333333331o.czo..
+..ozco111ww1111111113331oczo..
+..ozco111ww3c1111cc11331oczo..
+..oyco11113wo2222wo31331oczo..
+..oyco11aabocaaaaoca2331oczo..
+..oyco1aaaac3aaaac3aaaa1oczo..
+..oyco1caazaa3ooaaazaac1oczo..
+..oyco1ccaaaaaaaaaaaacc1oczo..
+..oyc.o1ccaaaaaaaaaccc1o.czo..
+..oyc..o1ccaaaaaacacc1o..cyo..
+..oyc..oo3cBcccccccc1oo..cyo..
+..oyc.oo2ooooooooooo2o3o.cyo..
+..oyc.oo2o2232Ao222o2o3o.cyo..
+..oycooooo23222o22ooooo3ocyo..
+..oyco222oooooooooo2o2o3ocyo..
+.o3ycoo2232222o233o2o2ooocyoo.
+o13ycoooooo322o23oo2ooooocyo1o
+o33yco322oooooooooooo233ocyo3o
+o33ycoo22322o3223o22o23oocyo3o
+.ooycoooooooooooooooooo1ocyoo.
+..ozco1111acccccccccc331oczo..
+..ozco1caaaacaaaaaacccc1oczo..
+..ozco11caaaaaaaaaaaacc1oczo..
+..ozcoo1cccaaaaaaacccc1ooczT..
+..ozcbbo11cccccccccc11obbczo..
+.obccaaboo11111111111obbbccbo.
+.oabbaaabbooooooooooobbbbbbao.
+.occaaabbaaaaaaaaaabbbaaaacco.
+.occcccbyybyyyyyyyayaacccccco.
+..oocccccbbbbbbbbbcaabccccoo..
+....ooocccbcbbbbbbbcbccooo....
+.......oooooooooooooooo.......
+.......o333o......o333o.......
+........ooP........ooo........
diff --git a/parts_pl_src/body/pl_hourglass_c.txt b/parts_pl_src/body/pl_hourglass_c.txt
new file mode 100644
index 0000000..1cee388
--- /dev/null
+++ b/parts_pl_src/body/pl_hourglass_c.txt
@@ -0,0 +1,62 @@
+# pl_hourglass_c: from pixellab_src/pl_hourglass_c/base.png (variant of pl_hourglass) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 32)
+# head_top at (31, 5)
+# back at (28, 37)
+# tail at (45, 50)
+........oooooo^ooooooo........
+....oooobbbaaaaaabbbbboooo....
+..oobaabaaabaaaaaaaaabbbbboo..
+.oabbbaabaaaaaaaaaabbbbbbbbao.
+.occaaababbaaaaabbbbbbbaaacco.
+.occccbbzzzyyyyyyyayaabccccco.
+..occcccbbzbbbbbbbbcacccccco..
+...ooocccbbcbbbbbbbbcbccooo...
+...occoooooooooooooooooocbo...
+...ozcoo1333333333333aooczo...
+...ozcoo11ww33333333331oczo...
+...oyco11www11111111331oczo...
+...oyco11www11111111131oczo...
+...oyco11ww111111111131oczo...
+...oyco11ww111111111131oczo...
+...oyco1111111111111131oczo...
+...oyco11w1111111111131ocyo...
+...oyco1111111111333331ocyo...
+...oyco1111111113222331ocyo...
+...oycoo111322232222331ocyo...
+...oycoo13322111122333oocyo...
+...oyc.o13322222223331oocyo...
+.ooyyo..o133322333331o..oyyoo.
+oyyyco...o1333233331o...ocyyyo
+oycyco....o13333333o....ocycyo
+oyycyco....o1333331o...ocyoyyo
+.occcyo....o133331o....oyccco.
+.oycyyo.....o13A31o....oyycyco
+oyccoo......o133ao......ooccyo
+oyco........o1331o........ocyo
+oyyco.......o1231o.......ocbyo
+.oyyco......11233o......oczyo.
+..oyyo.....B112331......oyzo..
+...oyco....1112331o....ocyo...
+...oycooo.o11123131o.ooocyo...
+...oyco13o1111231131o31ocyo...
+...o3yo3o11ww12311331o3oc3o...
+..o23yoo111ww123111331ooz32o..
+.o22oyoo11ww1123111133oozo22o.
+.o23oyoo11ww112311113aooyo32o.
+..oooyo111w111231111331oyooo..
+....oyo1111111331111131oyo....
+....oyo1111113223111131oyo....
+....oyo1111332123311131ozo....
+..ooozo1133222223333331ozooo..
+.oyyozo1321222333332331ozoyyT.
+.oybzzoo33332222222331oozzbyo.
+.ozyzooo13333333333331ooozyyo.
+..oooobbo133333333331obboooo..
+...oacaaabbbbbbbbbbbbbbbbao...
+...ocaaabbaaaaaaaabbbaaacco...
+...oocccccbbbbbbbcaabcccooo...
+.....ooocccbbbbbbbcbccooo.....
+........oooooooooooooo........
+........o333o....o333o........
+.........ooP......ooo.........
diff --git a/parts_pl_src/body/pl_housefly.txt b/parts_pl_src/body/pl_housefly.txt
new file mode 100644
index 0000000..9554b97
--- /dev/null
+++ b/parts_pl_src/body/pl_housefly.txt
@@ -0,0 +1,39 @@
+# pl_housefly: from pixellab_src/pl_housefly/base.png (pixellab_library.py extract)
+# pivot at (24, 59)
+# aura at (32, 44)
+# head_top at (31, 33) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (42, 48) (from part/probe)
+........oo..........oo........
+..........o.......oo..........
+..........o3...o.o3o..........
+...........o3.o1.3o...........
+.........oo3oo2ooo3oo.........
+.......ccaaoo2112ooaaoo.......
+......ca1aaao2^12oa11aao......
+.....c111aaao1111oa111aao.....
+....ca11aaaab311obaa11aabo....
+....caaaaaaab311obaaaaaaao....
+...oaaaaoooab322obaoooaaabo...
+...obaao1ooob322obo1oooabbo...
+...obbaooooob3B2obooooobbbo...
+...obbbooo1ob322obooo1obbbo...
+...ocbbb33obo2222ob33obbbco...
+....ocbbbbbco2112ocbbbbbco....
+....3occccoo211112oocccco3....
+....o3ooooo21ooAo12ooooo3o....
+.....o33322o1oaao1o22333o.....
+....o1o3o322oo1aoo22333o1o....
+...o133o3o3333ab3333o3o331o...
+..o113o32oooooooooooo23o3T1o..
+..o13o22o3o3o3333o3o3o22o31o..
+.o131o32o2o3o3333o3o2o23o231o.
+.o31o22oo1oo3o11o3oo1oo22o13o.
+..o33223o222oaaoao222o32233o..
+...oo2o3ooooooo2oooooo2o2oo...
+.....oo2o2o32233223o2o3oo.....
+......o3o2o.oo33oo.o2o3o......
+.oo3oo23o3o........o3o32oo3oo.
+oa3oo3oo23o........o32oo3oo3ao
+.oo..o33oo..........oo33o..oo.
+....oaoP..............ooao....
diff --git a/parts_pl_src/body/pl_housefly_b.txt b/parts_pl_src/body/pl_housefly_b.txt
new file mode 100644
index 0000000..2e295f6
--- /dev/null
+++ b/parts_pl_src/body/pl_housefly_b.txt
@@ -0,0 +1,53 @@
+# pl_housefly_b: from pixellab_src/pl_housefly_b/base.png (variant of pl_housefly) (pixellab_library.py extract)
+# pivot at (39, 59)
+# aura at (31, 36)
+# head_top at (31, 14)
+# back at (31, 39)
+# tail at (52, 48)
+........................oo......................
+.................oo.oo.^32o.oooo................
+................o23o33oo12oo3223o...............
+..............ooo21o31331233123oo...............
+...........3oo3332123113113112333ooo............
+..........o3211122111111111122112233o...........
+........ooo33321112111111111111222233ooo........
+......oo31111222112211111111122222232223o.......
+......o332221112ooo3111111113ooo322223333o......
+.......oo32222oaaaaao111111obaaabo22222oo.......
+......o311122oaa1aaaao1111oba11aaao222333o......
+.....o333222oa111aaaab2111oaa111aaao222233oo....
+....o331112oba11aaaaab3113baaa11aaaao22113o3o...
+...o3311122oaaaaaaaaab3113baaaaaaaaao222222o....
+...o212222obaaaaoooaab3223baaoooaaaabo222223o...
+..o3332222obaaaowoooab3223bbowoooaaabo2222333o..
+.o3o322112obbbaooooobb3223bboooooabbbo22222o3o..
+..oo321122obbbbooo2obb3223bbooo2obbbco222223o...
+..o32112223obbbb33obbo2222ocb33obbbco32232223o..
+.o3212222223obbbbbbco321123ocbbbbbbo3222233333o.
+.o32332211223occccco32111123occccco32222233333o.
+o3333321222223ooooo322oooo123ooooo32222322333o3o
+o3o3331222122222222o12oaao11o2222222222222133o3o
+.o333122311222222222o2oAaooo222222222112322333o.
+.o3331232122112222222ooaab33222222222211332333o.
+.oc33123223112112222222ab22222222123222223333co.
+.obb3133233122112212222B22222221221222332333cbo.
+.ocbb33323223212111222222221222123132233233bbco.
+.oobbb332323312311222212222112221333233333bbbo..
+..ocbbb3332331233121221222121233123323333cbbbo..
+..o3cbbbb333322232312121221222332233333ccbbbco..
+..o3cbbabbb333223231223132133233323333bbabcc3o..
+...o3cbbaaac333233332332322333333333babbbbc3oo..
+...o33ccbbaaab33333323333233333333baaabbbc33o...
+...o3o33cccaaaaaaaa333333333333aabbabbbcc333o...
+...o3o3333cbbbaaaaaaaaaaaaaaaaaaabbbbbb333o3T...
+....o.33333cccbbbaaaaaaaaaaaaaaaabcb333333oo....
+......o33o3333cccbbbbbbbbbbbbbbccc33333o3o......
+......o33o3333333cccccccccccccc33333333o3o......
+.......o3o33333333333333333333333333333o3.......
+.......oo.o333333333333333333333333333ooo.......
+..........oo333333333333333333333333oo..........
+............oooo3333333333333333oooo............
+.........ooooo33ooooo33oo3333ooo333oooo.........
+........oa3oo3o33o.oooo..oooo.o33ooo33ao........
+.........ooo.o33oo............oo33o.ooo.........
+............oaoo...............Pooao............
diff --git a/parts_pl_src/body/pl_housefly_c.txt b/parts_pl_src/body/pl_housefly_c.txt
new file mode 100644
index 0000000..eac5f4f
--- /dev/null
+++ b/parts_pl_src/body/pl_housefly_c.txt
@@ -0,0 +1,54 @@
+# pl_housefly_c: from pixellab_src/pl_housefly_c/base.png (variant of pl_housefly) (pixellab_library.py extract)
+# pivot at (26, 59)
+# aura at (32, 34)
+# head_top at (31, 15)
+# back at (31, 39)
+# tail at (46, 48)
+...............oo.......oo...............
+................3......o3................
+.................o3.o.3o.................
+................o3o^ooo3o................
+..............ccaoo111ooaoo..............
+.............ca1aao111oa1aao.............
+............ca1aaab21oba11abo............
+............caaaaab21obaaaaao............
+...........oaaaooab22obaooaabo...........
+...........obboooob22oboooobbo...........
+...........obboooob22oboo1obbo...........
+...........ocbb2obo222ob3obbco...........
+............ocbbbco111ocbbbco............
+............ooooo21ooo13ooooo............
+.............o332o1oao1o233o.............
+.......o......2332ooaoo2332o....ooo......
+......o31oo...o2o332b333o2o...oo11o......
+......o3o21oo..o33333333oo..oo1133o......
+......o3..o31oooo3222233oooo213o..o......
+......o3...o323o2o21222o2o333o....o......
+......o3.....o3o2o31113o2o3o......o......
+......o3ooooooo2oo32223o33ooooooo2o......
+......o3o222333o33o3A3o3oo22222212o......
+......o323oooooo333oooo33oooooo312o......
+......o32o.....o2333333o3o.....o22o......
+......o32o....o2oo32223oo2o....o22o......
+......o32o...o1o.o21112o.o2o...o22o......
+......o22o..o1o..o1B112o..o1o..o22o......
+......o2o..o1o...o22222o...o1o.o22o......
+......o2o..o2....o21113o....2o..o2o......
+......o2o..o3....o3223o.....3o..o2o......
+......o2o..o3.....o333o.....3o..o2o......
+......o2o...o......ooo......o...o2o......
+......o2o...o3.............3o...o2o......
+......oo....o3.............3o...o2o......
+......oo....o3.............3....o3o......
+.....o2o.....o.............o....o3T......
+.....o2o.....o.............o.....o2o.....
+.....o3o.....o3...........3o.....o2o.....
+.....o3o.....o3...........o......o2o.....
+.....o3o......o3.........3o......o2o.....
+.....oo.......o3.........3o.......oo.....
+....o3o........3o.......o3........o3o....
+..oo3o.........3o.......o3.........o3oo..
+.o33o..........oo.......oo..........o33o.
+oaoo..........o3o.......o3o..........ooao
+.............o3o.........o3o.............
+............oaP...........oao............
diff --git a/parts_pl_src/body/pl_housefly_d.txt b/parts_pl_src/body/pl_housefly_d.txt
new file mode 100644
index 0000000..96aca13
--- /dev/null
+++ b/parts_pl_src/body/pl_housefly_d.txt
@@ -0,0 +1,56 @@
+# pl_housefly_d: from pixellab_src/pl_housefly_d/base.png (variant of pl_housefly) (pixellab_library.py extract)
+# pivot at (29, 58)
+# aura at (32, 32)
+# head_top at (31, 9)
+# back at (31, 39)
+# tail at (47, 48)
+................oooo^oooooo...............
+.............ooo22222222223oo.............
+...........oo2222222222222333oo...........
+.........oo22221222222222222233oo.........
+........o222111122222222222223333o........
+.......o22211112222222222222222333o.......
+......o2221111122222222222222222333o......
+.....o222111112222222222222222222333o.....
+....o22222222222222222222222222223333o....
+...o2222222222222222222222222222233333o...
+...o2222ooooo22222222222222222ooooo333o...
+..o22ooobbbbboo2222222222222oobbbbboo33o..
+..o2obbbbbbbbbbo22222222222obbaaabbbco3o..
+.o2obbaaabbbbbbbo222222222obaaaaabbbbco3o.
+.oobbaaaabbbbbbbbo2222222obbaaaaabbbbbcoo.
+.oobbaaaabbbbbbbbo2222222obbbaaabbbbbbbco.
+.obbbbaabbbbbbbbbbo22222obbbbbbbbbbbbbbcoo
+oobbbbbbboooooobbbo22222obbboooooobbbbbbco
+oobbbbbboooooooobbc32223obboooooooobbbbbco
+ocbbbbboowwoooooobc32223cboooooowwoobbbbco
+ocbbbbboowwoooooocc32223cboooooowwoobbbbco
+ocbbbbboooooooooocc32223cboooooooooobbbbco
+ocbbbbboooooooooocc32223cboooooooooobbbbco
+oocbbbbo33ooooo3occ22A23cbooooooo33obbbcco
+oocbbbbb333ooo33oco22222obo33oooo33bbbbcco
+ooocbbbbb3333333bc322222obb3333333bbbbccoo
+.ooccbbbbb3333bbbo2222222obbb3333bbbbccooo
+.o3occbbbbbbbbbbo22222222ocbbbbbbbbbcccoo.
+.o33occcbbbbbbbo3222222222ocbbbbbbcccco3o.
+..o33ooccccccco322222222222oocccccccoo3o..
+...o333ooooooo3222o2B22o22223ooooooo333o..
+...o333333333222222oooo222222233333333o...
+.....o3333222222222222222222222233333o....
+......o33333222222222222222222333333o.....
+.......oo3333332222222222223333333oo......
+........ooo333333333333333333333ooo.......
+........o23oooo33333333333333ooo21o.......
+.......o11333ooooooooooooooooo33211o......
+.......o1123o3333333333333333o33211o......
+......o1233o323333333333333331o32111T.....
+......o1333o22o3332222223333o13o3221o.....
+......o333o223o3323333333233o32o3221o.....
+.......o33o233o3331111111333oo3o333o......
+........ooo23o.o33311111233o.o3oooo.......
+...........oo..o33333333333o..oo..........
+...............o23333333322o..............
+...............o223ooooo322o..............
+...............ooo3o...o33oo..............
+...............o333o...o331o..............
+...............oooP.....oooo..............
diff --git a/parts_pl_src/body/pl_hummer.txt b/parts_pl_src/body/pl_hummer.txt
new file mode 100644
index 0000000..7951564
--- /dev/null
+++ b/parts_pl_src/body/pl_hummer.txt
@@ -0,0 +1,34 @@
+# pl_hummer: from pixellab_src/pl_hummer/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (34, 46)
+# head_top at (32, 36) (from part/probe)
+# back at (40, 45) (from part/probe)
+# tail at (43, 52) (from part/probe)
+................................o.....
+.......................o.......ooo....
+...............ooooo..ooo.....oooo....
+.............oo2222^ooooo.....oo3o....
+............o111112223o3o....o3o3o....
+...........o11111112233oo....oo3o.....
+..........o211111112233oo...o3ooo.....
+..........o211111oooo33oo..ooo3oooooo.
+.........o322112o3oa2o3ooo.oooo331333o
+.........ow22222owooaocooo.oo11113bb3o
+.oooooooooooo222ooo2wocoooo112333333o.
+o111111122223o22o31wwocooo123o33113o..
+.oooooooooooo3333ooooccoo12Boooooooo..
+.........oobcc3333cccAco12oooo3223b3o.
+..........ocbaccaabacco33oooo333333o..
+...........ocbbcbabbao3oooooooooooo...
+...........obababbaco233oooo3223b3o...
+............obacabo22222oooo3333oo....
+............o2ooo21122223oooooooo.....
+............o2111111222333ooooT.......
+............o2111112223333oooo........
+............o222222222233ooooo........
+.............o2222222223ooooo.........
+..............o22222233ooooo..........
+...............oo33333ooooo...........
+................oooooo33oo............
+................o33o.o23o.............
+.................oPo..o3o.............
diff --git a/parts_pl_src/body/pl_hummer_b.txt b/parts_pl_src/body/pl_hummer_b.txt
new file mode 100644
index 0000000..249a1fa
--- /dev/null
+++ b/parts_pl_src/body/pl_hummer_b.txt
@@ -0,0 +1,37 @@
+# pl_hummer_b: from pixellab_src/pl_hummer_b/base.png (variant of pl_hummer) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 45)
+# head_top at (32, 30)
+# back at (40, 45)
+# tail at (47, 52)
+.............oo^oo...............
+...........oo11112ooo............
+........ooo1111111223o......oo...
+.......o11111111111223o....o11o..
+......o1111111111111223o..o111o..
+.....o111111111111112223o.o111o..
+....o21111111111111222233o3112o..
+....o21111111111211222223o3222oo.
+....oo2111111oooo112222233o32331o
+....o3o21111o3oa2o1222223oo33311o
+...o3wo22222owooao2222223oo33311o
+...owoo22222ooo3wo22222233oo3313o
+...ow3o33322o31wwo22222233oo3323o
+....oo1223o22oooocc222233333o3oo.
+...oo1123o3222bbbacc222112o3ooo2o
+..oo123oo3322aabAbc2222B111oooo2o
+..o123obcccaaabbac3222111111333o.
+.oo13ocbccbbabbccc22221111111o3o.
+o1o3o22cacbbccacc22222o1111111o..
+o1oo3o22cccccc22122222o2112111o..
+oo223o2212222211112222oo212211o..
+oo223o2b11111111b11222oo332232o..
+.oo23o311b111b111112223oo33332T..
+.o323o32111111b1111222oooo3333o..
+..o33o33111b111111222ooooooooo...
+...oo.o3211111111222ooooooo......
+.......o22221112222ooooooo.......
+........oo222222222o33ooo........
+.........oooo22223ooooo..........
+............ooooooooo............
+.............o3P..o3o............
diff --git a/parts_pl_src/body/pl_hummer_c.txt b/parts_pl_src/body/pl_hummer_c.txt
new file mode 100644
index 0000000..bf4b595
--- /dev/null
+++ b/parts_pl_src/body/pl_hummer_c.txt
@@ -0,0 +1,40 @@
+# pl_hummer_c: from pixellab_src/pl_hummer_c/base.png (variant of pl_hummer) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 43)
+# head_top at (32, 27)
+# back at (40, 45)
+# tail at (43, 52)
+..............ooooo^o.................
+............oo2222223oo...............
+...........o22111122233oo.............
+..........o11111111222233o............
+.........o1111111111222233o...........
+........o1111111111112222ooo..........
+........o11111111111122223oo....o.....
+.......o211111111111122223oooo.ooo....
+.......o21111111111112222ooooaoooo....
+.......o22111111111122222oooocco3o....
+.......o22211111111222222oooocaaoo....
+.......oo222222222oooo222ooooaaao.....
+......oo3o2222222o3oa2o22oooocaaao....
+.....oaowo2222222owooao22ooooccccoooo.
+....oaaooo2222222ooo2wo22ooocaaaco333o
+....oaaao22222222o31wwo2oooocaaacobb3o
+.oooooooooooo22222oAoo3ooooccccaco33o.
+o222222222223322222333oooooaaacco23o..
+.oooooooooooo33333333oooooaBaaacoooo..
+....oaaacoo33333333oooooccaaaabo33b3o.
+....oaaacabooooooooooobaacccabo3333o..
+....oaccaaaboooooooobaaaaabcbbooooo...
+.....ocaaaaccaaacbaabcaaaabooo23b3o...
+......obaaccaaaacaaabcbaabooo333oo....
+.......obbcaaaabcaaabcccco3oooooo.....
+........ooobbbbccbbboooooo3oooT.......
+...........ooooooooo2233oooooo........
+............o222222222233ooooo........
+.............o2222222223ooooo.........
+..............o22222233ooooo..........
+...............oo33333ooooo...........
+................oooooo33oo............
+................o33o.o23o.............
+.................oPo..o3o.............
diff --git a/parts_pl_src/body/pl_hummer_d.txt b/parts_pl_src/body/pl_hummer_d.txt
new file mode 100644
index 0000000..b471155
--- /dev/null
+++ b/parts_pl_src/body/pl_hummer_d.txt
@@ -0,0 +1,50 @@
+# pl_hummer_d: from pixellab_src/pl_hummer_d/base.png (variant of pl_hummer) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (33, 37)
+# head_top at (32, 16)
+# back at (40, 45)
+# tail at (43, 52)
+.....................ooo^ooo....................
+..................ooo3333333ooo.................
+................oo1111111113333oo...............
+..............oo11111111111113333oo.............
+.............o311111111111111133333o............
+............o31111111111111111133333o...........
+...........o3111111111111111111333333o..........
+..........o331111111111111111113333333o.........
+..........o331111111111111111113333333oo........
+.........o3331111111111111111113333333oo........
+.........o33311111111111111111133333333oo.......
+........o233331111111111111111333333333oo.......
+........o2oo331111111111111113333333333ooo......
+.......ooooooo31111111111111ooooo333333ooo......
+.......ooo2ooo331111111111oooooooo33333ooo......
+.......oo2owwoo33111111111o2wooo2oo3333ooo......
+.......oo2owwoo3333111111oowwooo22o3333ooo......
+.......oo1ooooo3333333333oowwooo11ob333ooo......
+.......oo1ooooo3333333333ooooooo11ob33oooo.ooo..
+.......oowooooo3333333333ooooooowwob33oooooooo..
+.......oow22o2o3333333333ooooooowwob33oooooo2o..
+.......ooww222o3333333333A22oo22wwob3oooooo22o..
+.oooooooooooooooooo333333o22222wwobbooooooooo...
+oowwww2222222222222o333333owwwwwooboooooooooo...
+.oooooooooooooooooo33333333oooooobboooooooooooo.
+........obb3333333333333333333bbbboooooooo22223o
+.........oco3abbbbbb3333333333bbbooooooo33111b3o
+..........ocabbabaaabaaa33333oooooooooo3o2222boo
+..........occcaabaaabbbaaaabbcccooooooo222112oo.
+...........ooccabbaaaabbbaaccccoBooooo222222oo..
+.............oocacccaaaccccooooooooooo2212b2o...
+..............ooooccccccoooooooooooooooo222oo...
+............ooooo2oooooo222ooo312ooo11booooo....
+...........oo33oo22222222113333112oo22222oo.....
+..........o3333oo3111111111333o331ooooooo.......
+..........o333ooo3111111111133oo333oooo.........
+..........o33ooooo11111111113ooo333T............
+..........oo3ooooo21111111123oooo33o............
+...........oooo..ooo22222222ooooooo.............
+..................ooo222222oooooo...............
+...................ooooooooooooo................
+...................oooo...o333o.................
+..................o31oo....o13o.................
+..................oooP.....ooo..................
diff --git a/parts_pl_src/body/pl_hyena.txt b/parts_pl_src/body/pl_hyena.txt
new file mode 100644
index 0000000..d0ef485
--- /dev/null
+++ b/parts_pl_src/body/pl_hyena.txt
@@ -0,0 +1,48 @@
+# pl_hyena: from pixellab_src/pl_hyena/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 39)
+# head_top at (27, 23) (from part/probe)
+# back at (40, 31) (from part/probe)
+# tail at (48, 39) (from part/probe)
+..............o3..oo......................
+..........o..obo.oao..o...................
+..oooo....o.oaaooaaoocoooo................
+.o1113o..oaocaacaaacao1111o...............
+.o1311o.3oaacaab^abbo111111o..............
+.11oo13ocoaababbacbco11oo2133.............
+o133o213caaabcbbcbco11oo3311ooo...........
+o133oo22cabcbcbcccco13oo33313co...........
+o233coo2ccbcccccc3o11oooc3311oooo.........
+o233coo23cccccc322211oooc3331oaabo........
+o233cc3323ccc32111111occc3331obbo.........
+o233cc322233211111113oocc3331obcoo........
+o223332111111111111223oc33311Bccaabo......
+.o22311111111111111122o333211ocbbco.......
+..o2311111111111111122233211occccco3......
+...ooo111111111oo2112221111occcccbbao.....
+...oowo2ccc212ow1o31122oooo333occccc......
+...ooowocccc3owowo311133o3333333occco.....
+...oowoocbbccowoo1311133o333c22233occoo...
+...o3oocbcbcc3owwo211122o333bb2a223ooo....
+...o2occccccc3333211A122o322bb2aa223oT....
+...oocaaabcccc2222o11aa2o3a22222a2aa3o....
+...oooccccocccc2ooo21b2o33aa2222222a3o....
+...ooooooooccccoco322233322222b2232233o...
+....oooooooccoocco3233o3222b32b2322223o...
+....ooooooooowbbc3333o33aa2b322332aa23co..
+......woobbbbbcbo333o332aa22o33332aa23co..
+......oowcaabwco33oo333b2223o33o322a33cco.
+......o2oooooo223oo333322a23o33o322233cbo.
+.......o2222223oo3333o322bb3o33o32bb3occbo
+........ooooooooo3333o332c33oooo32c33occco
+.............ooooo3333o322233ooo33333oocco
+.............oooooooooo333c3oo.o33333o.oco
+.............oo3o3o...o33c33oo..o3333o.ooo
+..............o333o...o3333ooo...ooooo..o.
+..............o33oo...oc333ooo...ooooo....
+..............ooooo...occcoooo...ooooo....
+.............occooo...occcooo...occcoo....
+...........oobccooo..occccoo...obobco.....
+...........obobcoo..obobcco....ooooo......
+...........oooooo..obcobcoo...............
+....................Poooo.................
diff --git a/parts_pl_src/body/pl_hyena_b.txt b/parts_pl_src/body/pl_hyena_b.txt
new file mode 100644
index 0000000..34105ab
--- /dev/null
+++ b/parts_pl_src/body/pl_hyena_b.txt
@@ -0,0 +1,51 @@
+# pl_hyena_b: from pixellab_src/pl_hyena_b/base.png (variant of pl_hyena) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 39)
+# head_top at (27, 18)
+# back at (40, 31)
+# tail at (54, 39)
+...............oo..oo........................
+...........o..obo.oao..o.....................
+...oooo....o.oaao^aaoocoooo..................
+..o2113o..oaocaacaaacbo111o..................
+..o2321o..oaacaabaabbo12211o.................
+..22oo23oooaababbaabo11oo31oo................
+.o23oo32ocaaabcbbcco222ooo21ooo..............
+.o23ooo33caacbcbccco23oooo321o...............
+.o333coo3ccccccccco223ooc3322oo..............
+.o333coo33cccccc32322oooc3332oao.............
+.o333ccoo22ccc3322222occc3332oco.............
+.o333cco3222332222223oocc3332ocaoo...........
+.o3333o322222222222223oco3322occco...........
+..o33o2122222221112222oo33322occo............
+..oo3o2112222211122222223322occaco...........
+...oooo212222112oo322222222occBbco...........
+...ocowo2ccc322ow2o32222oooccbbccooo.........
+..oacoowocccc3owowo322233occcaaaoc22o........
+.occcowoocbbccowoo1322233ocbaaaaco212o.......
+.ooao3oocbcbccoowwo311233ocbaaccco2111o......
+.oaao3occccccco3332112223ocbaaacco22211o.....
+.oaaoocaaabcccc3333o22223occcaaco322221oo....
+oaaaoooccccocccc3ooo32233oaaccaco3222221oooo.
+oaccooooooooccccoco3A333ocaaaccco32222213oaaT
+occacoooooooccoocco333ooccaaacoco32222222oco.
+.oaaccoooooooowbbc333oocbcccacoo322222222oco.
+.oaaaccwoobbbbbbb333ooccbabcbco33222222223cco
+.oaccacoowbaabwbo33oocccbabccco32223322223oco
+.oaccaco3oooooo333occbaabccoco332223222223oco
+.ooocacbo333333oooccaccaaoooco322232222223oo.
+...occcaaoooooooccabaaccbo33o3322232222223o..
+...ococaacccccccccabbacobo3333333322222223o..
+...oooccbcaacccaccacobcoo33323o33o2222222oo..
+....o.occcaaacaaccbcocc3332223o33o3222222oo..
+......ococccaaaocccoooo3332223o33o3222223oo..
+.......ooocccccocoooo333222223o33oo332233o...
+........ooooccccooo3o33222222o333ooo33333o...
+........oo33ocoo3o33oo3222223o33ooooooo33o...
+.........o33oooooooooo3222223oooo..oooo33o...
+..........o33ooooo33oo322223ooo....o33333o...
+..........o333oooooooo322233ooo...occcc3o....
+.........occcc3oo....o33223ooo....obobcoo....
+........obcobcooo...occccc3o......oooooo.....
+........oooooooo....obocbooo.................
+....................ooPoooo..................
diff --git a/parts_pl_src/body/pl_hyena_c.txt b/parts_pl_src/body/pl_hyena_c.txt
new file mode 100644
index 0000000..ec0f9bf
--- /dev/null
+++ b/parts_pl_src/body/pl_hyena_c.txt
@@ -0,0 +1,62 @@
+# pl_hyena_c: from pixellab_src/pl_hyena_c/base.png (variant of pl_hyena) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (34, 33)
+# head_top at (27, 11)
+# back at (40, 31)
+# tail at (52, 39)
+............................o................
+.......o...................ooo...............
+......ooo.................o1oo...............
+......o1o.................o1oo...............
+.....o22o................o13oo...............
+.....o231o...............o132o...............
+.....o232o......o^..oo..o1132o...............
+.....o2331o...ooaoooao.o11oc2o...............
+.....o2331o..oaoacoabooo13oc2o...............
+.....o233o2o.oacacaabbo13occ2o...............
+.....o233o12ooacababbo11oocc2o...............
+.....o233oo1ocaabbbco11oooc22o...............
+.....o23ooo13cabbccco11oooc22o...............
+.....o22ooo13cbbcc3331oococ22o...............
+......o23ooo13ccc31111ooc322oaao.............
+.......o2ooo113311111123322obbo..............
+........o3o111111111111322occboooo...........
+.........o11111111111113oocccbabo............
+.........oo11111ooo11113333ccbcco............
+.........oyo111ocyo11111333cccccaabo.........
+.........ooccc1ooyo111113333cccbbbo..........
+.......ooccbccc11111111131123ccccco..........
+....ooocaaccccc1111oo113311223ccccboo........
+.ooocaacccccccc111o1113331111223cccbco.......
+ooaccccccccooooooo11133311aa111223ccco.......
+oooooccccooooo331113333111aa111a113coo.......
+.oooooooo....ooo333oo311113311Ba1a123o.......
+..ooo.........oooooo3311121131111a1112o......
+.................o333111A11113111a11aa1o.....
+.................o33311311aa131111111a1o.....
+................oo33331o11aa1o311111111oo....
+................oo33333o11111o322311111oco...
+................o3oo333o11112o333311111oco...
+................o33oo33o31112o333o11aa1occo..
+................o333oo33o111ao3ooo11aa1occT..
+................o233o.ooo11a2ooooo11111occco.
+................o233o...o1122ooooo31113occbo.
+................o233o...o1122oooooo11bboccbbo
+................o232o...o112ooooo.o22b2ooccbo
+................o233o...o112ooooo.o2b22o.occo
+................o233o...o112ooooo.o2222o..ooo
+................o23o....o122ooooo..o222o....o
+................o23o....o122oooooo..o223o....
+................o23o....o122o.oooo..o333o....
+................o23o....o122o.oooo...o33o....
+................o33o....o122o.oooo...o33o....
+................o33o....o122o.oooo...o33o....
+................o33o....o122o.oooo...o33o....
+................o33o....o222o.oooo...o33o....
+................oooo....occ2o.oooo...oooo....
+................oooo....occooooooo...oooo....
+...............ooooo....occooocooo..ooooo....
+..............oooooo...occcooooo...obocoo....
+.............oboboo...obobcoo......ooooo.....
+.............oooooo..obobooo.................
+.....................oPoooo..................
diff --git a/parts_pl_src/body/pl_hyena_d.txt b/parts_pl_src/body/pl_hyena_d.txt
new file mode 100644
index 0000000..61c0042
--- /dev/null
+++ b/parts_pl_src/body/pl_hyena_d.txt
@@ -0,0 +1,61 @@
+# pl_hyena_d: from pixellab_src/pl_hyena_d/base.png (variant of pl_hyena) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 34)
+# head_top at (27, 7)
+# back at (40, 31)
+# tail at (54, 39)
+.................oo.........................
+................^ao....oooo.................
+...............oaao..ooaaaao................
+.........oo..ooaaao.oaaaacco................
+.........oc..baaacooaaaacco.................
+........oaaooaaaaccaaaacccoooooo............
+........oaaocaaaacaaaaccccaaaaaaoo..........
+.......oaaaccaaacaaacccccaaaaaaaaao.........
+.....o.oaaacaaaaabacccaacaaaaacccco.........
+.....booaaacaccaabccaaaacaaaacccoo..........
+....oacoaaaccacaaccaaaacaaaacccco...........
+....oaacaacaaacaccaaaaccaaaaaaaaaao.........
+...ooaaacacaaaccaaaacccccaaaaaaaaaao........
+..oabcaaacaaaaccaaacccaaaaaccccccccao.......
+..ocacaaacaaaacaaaccaaaaaaccccccccccco......
+..oooocaacaaaccaaccaaaoooocccaaaaccooo......
+.o1113caccaaacaaccaaao1111occaaaaaaao.......
+.o1311ccacaaacaacbaao111111occccaaaaao......
+.11oo13cacaaacaccbcco11oo313cccccccaaao.....
+o133o21ccccaacccccco11oo3311occaaacccaao....
+o133oo22cccaccccccco13oo33313cccaaaaccco....
+o333coo3cccbccccc3o11oooc3311occccaaaco.....
+o233coo33cccccc332211oooc3331occcccccaco....
+o233cc3323ccc32111111occc3331occaaccccco....
+o233cc322233211111113oocc3331occaaacooo.....
+o223332111111111111223oc33311Bccccaao33o....
+.o22311111111111111122o333211occcccao333o...
+..o3311111111111111122233311occacccbo321o...
+...ooo111111111oo2112A31111occaaacooo3211o..
+...oowo2ccc212ow1o31122ooooccccaaao3332211o.
+...ooowocccc3owowo311133occcaaccaao32aa222o.
+...oowoocbbccowoo1311133occccaaccao32aa222o.
+...o3oocbcbccoowwo311132ocaaccaccao32222222o
+...o2occccccco3332111122ocaaacbaoo332222222T
+...oocaaabcccc2223o11aa3occcacbao3322222222o
+..ooooccccocccc2ooo21b3occccaocc3322222aa22o
+..oooooooooccccoco32223ccaccboco3322322aa22o
+..ocoooooooccoocco3233occaaccooo33o33222a23o
+...ocoooooooowbbc3333obaccaoco333o322222223o
+...occwoobbbbbcbo333obbaccaoo332o3222222223o
+...oacoowcaabwco33oocbbaooco3333o32222a2233o
+...occo3oooooo333occcbbaooo3333o322222a2233o
+...ococo3333333ooccaccbao333333o322222a2333o
+....ooacoooooooccccacoco3333o3oo322aa22333o.
+......cocbccccccaccaoooo3223o3oo332aa23333o.
+......o.oaccbcccaocco3332223oooo332223333o..
+........occobbcccocoo3222233oooo33333333o...
+.........oco3obco3o3o3222233ooooo333333oo...
+..........oooocco333o332223ooooooo3333oo....
+...........oooooooooo332233ooooooocccco.....
+..........ooooooooooooc3c3oo....occccoo.....
+.........oooccooo...occccooo...obobcoo......
+.........obobcoo....obobcoo....oooooo.......
+.........oooooo....obcobcoo.................
+....................oPooo...................
diff --git a/parts_pl_src/body/pl_ibis.txt b/parts_pl_src/body/pl_ibis.txt
new file mode 100644
index 0000000..fd4b5e8
--- /dev/null
+++ b/parts_pl_src/body/pl_ibis.txt
@@ -0,0 +1,45 @@
+# pl_ibis: from pixellab_src/pl_ibis/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 41)
+# head_top at (31, 25) (from part/probe)
+# back at (38, 33) (from part/probe)
+# tail at (42, 43) (from part/probe)
+.............ooooo.................
+...........oo11111oo...............
+..........o111111112o..............
+.........o1111111^122oo............
+........o1111111111222oo...........
+.......o11111111111abbbo...........
+.......o111111111ab2222o...........
+......oaa11111aaaa222223o..........
+......ooaa111aabbb222223o..........
+......o1oa11abo11b222233o..........
+.......1ob31a1oo1b222233o..........
+.......oozzbbooo1b222333B..........
+.......ozzzaboo1bb22233o...........
+......ozzzzab1bbb222333o...........
+.....oz1zzzco222222333oo...........
+....oz1zzzbab2222233ooaoo..........
+...oz1zzzbaab33333ooaoo33oo........
+...b1zzzbaaoooooooaoo111113o.......
+..oz1zzbabo33333aoo111111112o......
+..b1zzcaboaoooaoA111111111122o.....
+.oz1zbaoo1oaboo111211111111223o....
+.bzzbao.o11oo111112111111123T3o....
+.bzbao..o1111111113111111122o33o...
+oazbo...o11111111132111113222o33o..
+oacbo...o2111111112o212322o22o33o..
+oabo....o22111111222o333o22ooo333o.
+obbo....o322222222223o333oo333o33o.
+obo......o322222222333oo333o33o333o
+obo.......o3232322333333oooooooo33o
+.o.........o33333333333333o.....ooo
+...........o3oo3333333333o.........
+............o33ooooo3333o..........
+.............ooo....oooo...........
+..............co.....oco...........
+..............co.....oco...........
+........oooooobo....ooboo..........
+.......ozbcycccccoooobbboo.........
+.......ooooooooooooybbabyo.........
+..................Pooooooo.........
diff --git a/parts_pl_src/body/pl_ibis_b.txt b/parts_pl_src/body/pl_ibis_b.txt
new file mode 100644
index 0000000..749cf7b
--- /dev/null
+++ b/parts_pl_src/body/pl_ibis_b.txt
@@ -0,0 +1,49 @@
+# pl_ibis_b: from pixellab_src/pl_ibis_b/base.png (variant of pl_ibis) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 40)
+# head_top at (31, 18)
+# back at (38, 33)
+# tail at (48, 43)
+...............ooo^oo...................
+.............oo111111oo.................
+...........oo1111111111o................
+..........o1111111111112o...............
+.........o111111111111123o..............
+.........111111111111aabbo..............
+........o1111111111aa11133o.............
+.......oaa111111aaaa111113o.............
+.......ooaa1111aabb11111123o............
+.......owoa111abow1b1111123o............
+.......owob311awoo1b11111233o...........
+......oooozzz1boco1b11111333o...........
+....ooz11zzzzbboc1bb11111333o...........
+...oz1zzzzzzzab1bbb11111333o............
+..oz1zzzzzzzzab111111113333o............
+.oz1zzzabbbbbbo1111112333Bo3o...........
+.o1zzabbaaaaaab1111123333cc33o..........
+ozzzbcaabbbbbb322233333cc33333o.........
+ozzboooooo33333333333cc33333333o........
+ozboo..occb3333333bbbc3311111133o.......
+ozo...o3cabbbbbbbbaac31111111133o.......
+.o...o33caaaaaaaaacc1121111111122o......
+.....o31caaaaaaaacA11121111111122o......
+....o3311caaaaacac1112211111111122o.....
+....o31111caaaacc11112311111111322o.....
+....o31111ccacc3111112321111111232oT....
+....o211111cac1111111223111113223o2o....
+....o2111111c111111111233113223o322o....
+....o2211111111111111122o33322333223o...
+....o32111111111111111222o333322ooooo...
+....o322211111111111122222oo33222o333oo.
+....o33222111111111122222233ooooo33333oo
+.....o33222222222222222222333333333o333o
+.....o33322222222222222223333333oo33oooo
+......o333322322232322233333333oo.o33o..
+.......oo333332223333333333333o....ooo..
+........oo333333333333333333oo..........
+.........oo3333333333333333o............
+...........oooooooooooooooo.............
+.........ooooocco......oco..............
+........ozbbycccco..ooobboo.............
+........oooooooooo.oybbybyo.............
+...................Pooooooo.............
diff --git a/parts_pl_src/body/pl_ibis_c.txt b/parts_pl_src/body/pl_ibis_c.txt
new file mode 100644
index 0000000..070c30a
--- /dev/null
+++ b/parts_pl_src/body/pl_ibis_c.txt
@@ -0,0 +1,61 @@
+# pl_ibis_c: from pixellab_src/pl_ibis_c/base.png (variant of pl_ibis) (pixellab_library.py extract)
+# pivot at (31, 61)
+# aura at (31, 30)
+# head_top at (31, 7)
+# back at (38, 33)
+# tail at (46, 34)
+.............ooo^.................
+...........oo1111oo...............
+..........o11111112o..............
+.........o1111111122oo............
+........o111111111223oo...........
+.......o1111111111accco...........
+.......o11111111ac2223o...........
+......oaa11111aaa222233o..........
+......ooaa111accc222233o..........
+......o1oa11abo1c222233o..........
+.......aoc31aao2b222233o..........
+.......oozzccoo2b222333o..........
+......ozzzzacoobc22333o...........
+.....oz1zzzac2cc222333o...........
+....oz1zzzcao22222333oo...........
+...oz1zzzcaac323333ooaoo..........
+...c1zzzcaaac3333ooaoo33oo........
+..oz1zzcaaaooooooaoo111113o.......
+..c1zzbacooooooooo111111112o......
+.oz1zcaooooooooo111111111122o.....
+.czzcao.o1ooooo11211111111223o....
+.czcao..o11oo1111311111112333o....
+oazco...o111111113111111133o33o...
+oabco...o1111111A33111113333o33o..
+oaco....oaa111111ao312333o33o33o..
+occo....o2aaaaaaa22o333o33ooo333o.
+oco.....o32222222223o33Boo333o33o.
+oco......o32222222333oo333o33o3T3o
+.o........o323333333333oooooooo33o
+...........o3333333333333o.....ooo
+.............oo333333333o.........
+..............ooooo3333o..........
+..............o33o.o333o..........
+..............o33o..o33o..........
+..............o13o..o3o...........
+..............o13o..o3o...........
+...............oao..oco...........
+...............oao..oco...........
+...............oco..ozo...........
+...............oao..ozo...........
+...............oabo.ozzo..........
+...............oabo.ozzo..........
+...............obb..ozyo..........
+...............oao..oyyo..........
+...............oao..oco...........
+...............oao..ozo...........
+...............bo...ozo...........
+..............obo...oyo...........
+..............obo...oyo...........
+..............obo...ozo...........
+..............obo...ozo...........
+...........ooooco..ozzo...........
+..........occaccoooacao...........
+..........oooooooczczoo...........
+................Poooo.............
diff --git a/parts_pl_src/body/pl_ibis_d.txt b/parts_pl_src/body/pl_ibis_d.txt
new file mode 100644
index 0000000..06853fd
--- /dev/null
+++ b/parts_pl_src/body/pl_ibis_d.txt
@@ -0,0 +1,49 @@
+# pl_ibis_d: from pixellab_src/pl_ibis_d/base.png (variant of pl_ibis) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 39)
+# head_top at (31, 18)
+# back at (38, 33)
+# tail at (45, 43)
+............oo^...................
+.......oo.oo22o...................
+......o2oo3223ooooo...............
+......o2oo222322223o..............
+......o23222222233oo..............
+.....o32222a22222223o.............
+....o222222a222aa2222o............
+...o2a222222222aa22222o...........
+...o2b222222222222223ooo..........
+..o2222222222oo222223o............
+..ooo2222222ooc2222222o...........
+..occo2232ooccc2222aa22o..........
+..oc1oo33ooob1c222222333o.........
+..oc1oo33coob1c2222323o3o.........
+.o2cabczz3ca1cc2222333ooo.........
+o222cczzzz2ccc2222223B3o..........
+o23222zzzzz22222223a333o..........
+oo322zcccczz2222223a33oo..........
+.oa23czzzzcz2222a23333o...........
+..o222222zzc2222a333333o..........
+..o232222222223233o33333o.........
+..o33222222232A333o2223aao........
+...oo2322223323o33322222aao.......
+..o23o322233o23o23222aa2333o......
+.o3232o3233oo23223222aa2233o......
+.oa2322o33o32oo2232222222233T.....
+.oa33222oo22222223222223a33a3o....
+..o33222222222222332aa23aa3aao....
+..o332a22222a22223333a333a333o....
+...o33a22222a22333333333333333o...
+....o33322222223333o33aa333aa33oo.
+.....o333333333a3333oo3333c33333oo
+......o33aa3333a333333oo333333ooo.
+......oo3a3333333333333ooooooo....
+.......oo3333333333a33oo..........
+.........o333oooo3a33o............
+..........o3oo...o33o.............
+..........oco.....oco.............
+..........oco.....oco.............
+.....oooooocoo...oocoo............
+....ozccycccccoooocccoo...........
+....ooooooooooooyccacyo...........
+...............oPoooooo...........
diff --git a/parts_pl_src/body/pl_icebat.txt b/parts_pl_src/body/pl_icebat.txt
new file mode 100644
index 0000000..34ca3cf
--- /dev/null
+++ b/parts_pl_src/body/pl_icebat.txt
@@ -0,0 +1,47 @@
+# pl_icebat: from pixellab_src/pl_icebat/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 42)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 33)
+# tail at (41, 54) (from part/probe)
+.......ooo........ooo.......
+......o21o........o12o......
+.....o321o........o123o.....
+....o3b21o........o12b3o....
+....obb11o........o11bbo....
+...obb211o........o112bbo...
+...oab211o..o.....o112bao...
+...oaa211o.o2ooo..o112aao...
+..oaaa3112oo1^22oo2113aaao..
+..oaab3111321212231113baao..
+..oaab3111121112211113baao..
+..oabb3211112112111123bbao..
+..oabc2111111221111112bbao..
+..oab31111111B111111123bao..
+...ob3111a11111111a1113bo...
+....o33oo1111111111oo33o....
+....o3o11o11111111o11o3o....
+....o3o131o122221o131o3o....
+....o2o1c3221aaa223c1o2o....
+...oo1211c2bbaabb2c1121oo...
+..oco312222boaaob222213oco..
+..oaco22113bbaabb31122ocao..
+...o1oo331233Ac332133oo1o...
+...o113oo1322222231oo311o...
+..ooo112o1oo33333o1o212ooo..
+..o3oo3331o222222o1333oo3o..
+.o3333oooooooooooooooo3333o.
+.o11oo2111111o11111112oo11o.
+o21oo211111111o11111112oo12o
+o31oo22111113o321111122oo13o
+o33co222222222322222222oc33o
+o3ocooo22222oooo222223ooco3o
+o3occooooooo3333ooooooocco3o
+o3occco322b333333b223occco3o
+.ooocco33223333332232ocTooo.
+.oooooo32332222223322oooooo.
+..oo...o223oooooo322o...oo..
+...o..oo3333o..o3333oo..o...
+.....o21213o....o31212o.....
+....o1a2123o....o321211o....
+....o1oo1oP......oo1oo1o....
diff --git a/parts_pl_src/body/pl_icebat_b.txt b/parts_pl_src/body/pl_icebat_b.txt
new file mode 100644
index 0000000..70a7f41
--- /dev/null
+++ b/parts_pl_src/body/pl_icebat_b.txt
@@ -0,0 +1,50 @@
+# pl_icebat_b: from pixellab_src/pl_icebat_b/base.png (variant of pl_icebat) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 41)
+# head_top at (31, 18)
+# back at (31, 33)
+# tail at (51, 54)
+........ooo........o...........ooo........
+........o22oo.....o3^........oo22o........
+........o3222o....o23oo.....o2223o........
+........o33222o..oo2333oo..o22233o........
+........o3b3222oo33232333oo2223b3o........
+.........obb322322322232223223bao.........
+.........oaac3322232223222223caao.........
+..........oa332222232232222233ao..........
+..........oc3222222233222222233o..........
+..........o33222222222222222233o..........
+..........o32222a22222222a22223o..........
+..........o322oo2222222222oo223o..........
+.........o332o11o22222222o11o233o.........
+........oo332o131o222222o131o233oo........
+......oo1o322o1b3323333233b1o223o1oo......
+......o11o32aa11b331aaa33b11aa23o11o......
+......111o32aaa223aaBaaa322aaa23o111o.....
+.....o111132aa2223aoaaoa3222aa231111o.....
+.....o111113222223bbaabb322222231111o.....
+.....o11111332222233bb33222223311111o.....
+......o1111113332222332222233111111o......
+......o1111111133322222233331111111o......
+......o3311111112133333312111111113o......
+.....o333333111111113331111111111333o.....
+....o3332222311111111A111111133222233o....
+....o33222oooooo1111111111oooooo33233o....
+....o322oo332222oooo11oooo222223oo3233o...
+...o322oo33222222222oo22222222233oo223o...
+...o32ooo332222222222o32222222233ooo22o...
+..o322o33o33222222222o32222222233o3o22o...
+..o32oo333o3333333333o3333333333o33oo23o..
+..o32oo3333o3333333oooo3333333oo333oo23o..
+.o322oo33331ooooooo1111ooooooo13333oo22o..
+.o32oco3322111111111111111111112233ooo23o.
+.o32occo322311111111111111111132233oco23o.
+.o32occo33222111111111111111132233occo23o.
+.o32occoo3322111111111111111132333occo23o.
+.o32ocbco333231111111111111112333occco23T.
+.o32ocbcco3333311111111111133333occbco23o.
+o332ocbccbo33333311111111133333occcbco233o
+o332ocbccbboooooooo111111ooooooocccbco233o
+o332ooooooo23223o..ooooooo322323oooooo223o
+.oooo....o131333o........o3221311o...ooooo
+.........ooooooP..........oooooooo........
diff --git a/parts_pl_src/body/pl_icebat_c.txt b/parts_pl_src/body/pl_icebat_c.txt
new file mode 100644
index 0000000..32b6dce
--- /dev/null
+++ b/parts_pl_src/body/pl_icebat_c.txt
@@ -0,0 +1,64 @@
+# pl_icebat_c: from pixellab_src/pl_icebat_c/base.png (variant of pl_icebat) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 36)
+# head_top at (31, 18)
+# back at (31, 33)
+# tail at (44, 54)
+........oo..........oo........
+.......o3o..........o3o.......
+......o33o..........o33o......
+......o33o..........o33o......
+......o33o..........o33o......
+.....oc32o..........o23co.....
+.....oc32o..........o23co.....
+.....oc32o..........o23co.....
+.....oc32o..........o23co.....
+....occ32o..........o23cco....
+....oac32o..........o23cao....
+....oac32o..........o23cao....
+....oac322o........o223cao....
+....oacc32o........o23ccao....
+....oacc32o........o23ccao....
+....oaa3322ooo^oooo223caao....
+.....oacc323332223323ccao.....
+.....oaac322222222223caao.....
+......oac322222222223cao......
+......oo33222222222233oo......
+.......o32222222222223o.......
+.......o32222222222223o.......
+.......o3oo2a2222a2oo3o.......
+.......o3o1o222222o1o3o.......
+.......o3o1o322223o1o3o.......
+.......o223b322a23b322o.......
+.......o3bb22b3a322bb3o.......
+........o33b22ba22233o........
+.........o332cbbb233o.........
+..........o3a2222a3o..........
+..........o33aBaa33o..........
+..........o33333333o..........
+.......oooo33bbbb33oooo.......
+......o223333abAa333322oo.....
+.....o2222233a22a33222222o....
+....o22bb2222322332222bb22o...
+...o22bb222222222222222bb2o...
+..o32bc23222222222222322c23o..
+..o3bc2232222222222223223c3o..
+.o3bb22332222222222223322cc3o.
+.o3b2223333223333222333222c3o.
+o2bc2223o3333a2223333o32223b2o
+o2b2233oo333222222333oo3222b2o
+occ2233co332222222a33oco222c2o
+o2c223oco332222222a33oco3222bo
+o2c223oco332222222a33oco322bbo
+o22223oco332222222a33oco32b22o
+oo2223o3o332222222a22o3o32222o
+.o2222oo33232222223223oo2222o.
+.o2233oo32223bbbb22222oo3222o.
+.o323ooo32222333332222ooo223o.
+..o33o.o32223oooo32222o.o23T..
+...ooo.o32233o..o33223o.ooo...
+........o3333o..o3333o........
+.......oo333o....o333oo.......
+......o32323o....o32323o......
+.....o1a3123o....o331311o.....
+.....o1oo1oP......oo1oo1o.....
diff --git a/parts_pl_src/body/pl_icebat_d.txt b/parts_pl_src/body/pl_icebat_d.txt
new file mode 100644
index 0000000..846db3a
--- /dev/null
+++ b/parts_pl_src/body/pl_icebat_d.txt
@@ -0,0 +1,50 @@
+# pl_icebat_d: from pixellab_src/pl_icebat_d/base.png (variant of pl_icebat) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 40)
+# head_top at (31, 24)
+# back at (31, 33)
+# tail at (47, 54)
+oooo........................oooo
+oo22oo....................oo223o
+ooo322o..................o22233o
+oocc332o................o22occco
+oobcc322oo............oo22occbbo
+oobbcc3222o..........o3223ccbbbo
+oobbbcc3222o........o31233cbbbbo
+oobbbbc3322o..o^oo..o1223cbbbbbo
+.obbbbcc3222oo2333oo32233cbbbbbo
+.obbbbcc32223323133322233cbbbbo.
+.obbbb33322223222332222333cbbbo.
+..obbcc332211232232222233ccbbbo.
+..obbbc332111223322222223ccbbo..
+...obbc321111122222222223cbbo...
+....occ3222b22222222b2223cco....
+.....oo33oo2222222222oo33oo.....
+......o3o11o222B2222o11o33o.....
+.....o33o131o233332o131o33o.....
+.....o32o1c3331aaa333c1o22o.....
+...o3o32211c3ccbbcc3c11222o3o...
+..o31o3222333cobboc3332222o11o..
+.o111o3222223ccbbcc3222223o111o.
+.o1111o33222233cc33222223o1111o.
+.o11111oo3333322A223333oo111113.
+.31111111o333333333333o11111113.
+.o3111111111oo33333o1111111113o.
+..oo1111111111111111111111111o..
+..oooo11111111111111111111ooooo.
+.o3o3ooooo11111111111111oo32o3o.
+.o3o22222oo1111111111oo32222o3o.
+o33o2222222oo111111132222222o33o
+o33o33222222oo11113o22222223o33o
+o333o3322222oc311oco2222233o333o
+o3o33o333222oab33cco222333o3333o
+oo3333o3331ocaabbaabo2333o33333o
+o322233oooocaaaaaaaaboooo332223o
+o3222233cccaaaaaaaaaaacc3322223o
+o3222223caaaaaaaaaaaaaac3222223T
+.o222233ccaaaaaaaaaaaacc332222o.
+.o3333333ccccaaaaaacccc3333333o.
+..o3333333cccccccccccc3333333o..
+..o333333ooocccccccccoo333333o..
+.o1a31333o..ooooooooo.o33313a1o.
+.o1oo1ooP..............ooo1oo1o.
diff --git a/parts_pl_src/body/pl_icefish.txt b/parts_pl_src/body/pl_icefish.txt
new file mode 100644
index 0000000..42905e6
--- /dev/null
+++ b/parts_pl_src/body/pl_icefish.txt
@@ -0,0 +1,42 @@
+# pl_icefish: from pixellab_src/pl_icefish/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (33, 43)
+# head_top at (32, 34) (from part/probe)
+# back at (38, 40) (from part/probe)
+# tail at (48, 43) (from part/probe)
+....................oooooo..............
+..................oo211c31oo............
+.................o1c3212321co...........
+................o12a221a2212oo..........
+................o1a321a3221c31o.........
+...............o12a32ac321ac21o.........
+...............o12c32c322ac322co........
+...............o13c33c323c3333oo........
+.............oo333333333c333a32o...oo...
+...........oo1122222^2333o3c332o..o11o..
+..........o111111222122233o333co.o1221o.
+.........o111111122221222333o3ooo12222o.
+.......oo11111122222221232333ooow32233o.
+......o12211112211113221332332o33333a21o
+......oo32111221ooo223213332333333ca221o
+.....oa1o222222ob11o232213B233233332322o
+.....o1oo22223o11o11o3221233233ooo3332oo
+.....o1oo22223o11ob1o32221333ooaa1occ21o
+.....ooo321123ooooa1oA322133ooa1111oT33o
+.....o1o211113ocoa11o322213occ22221o332o
+....ooo1111o123o111o332222323333332o332o
+.oooo11111111123ooo332322233occaa2ooc31o
+o222222222222222333322223233o332211o32o.
+.ooooooooooooo2222113o222333co33221o32o.
+..o33o1oo1oo1bbooo222o2323o33caa332o3co.
+..o222222222222222ooo333333o333222oooo..
+...ooooooooooooooo3333323323o33221o.....
+.......oo33333333333332332333o321oo.....
+........oo13333333333233323ooooooo......
+.........oo123333333233323oc333.........
+...........oo112223222233o33cc2o........
+............ooo112222333o3c322ao........
+............oa3oooooooo3c33a31o.........
+.............oa23coo..oa3c221oo.........
+..............oooo.....oa2a1ao..........
+........................Poooo...........
diff --git a/parts_pl_src/body/pl_icefish_b.txt b/parts_pl_src/body/pl_icefish_b.txt
new file mode 100644
index 0000000..1d0b7c3
--- /dev/null
+++ b/parts_pl_src/body/pl_icefish_b.txt
@@ -0,0 +1,44 @@
+# pl_icefish_b: from pixellab_src/pl_icefish_b/base.png (variant of pl_icefish) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (34, 42)
+# head_top at (32, 23)
+# back at (38, 40)
+# tail at (52, 43)
+................^ooooo...............
+..............oo1w1b3woo.............
+.............owb3211321bo............
+............ow1a221a2211oo...........
+............o1a321a3221b3wo..........
+...........ow2a32ab321a321o..........
+...........ow3b32b332ab322bo.........
+...........ow3b33b333a33333o.........
+.........oo333333333bo33b33o.........
+.......oowww22222ab233oo333o....oo...
+......oww1111111222b2333oobo...owwo..
+.....ow1111111111222a2233coo..ow22wo.
+....ow111111111111222a233c3o.o12222o.
+...o11111111222211122a2233c3o132233o.
+..o1211111121111311222b233c33o333a1wo
+..oo22111121ooo2131122b2233c333aa221o
+.oa1o221122oc11o332122b2233c33o32223o
+.owoo22222owwo11o32222Bb233c3333333oo
+.owoo22222owwocwo322222b233c333obb11o
+.oooo22222ooooawo3A2222b2333o33o3333o
+.o1o211122ocoawwo322222333223o3o3333T
+.oo11111223owwwo2222222332111boo3333o
+o11222222222ooo221222233321aa1oobb31o
+o22ooooo222222211112223332a111oo333o.
+o2o21112o222211111122233322111bo333o.
+o2233332222222111122223co321aa1o33bo.
+o2223333322222222222233co33b112oooo..
+.o322333333222222222333c3o33222o.....
+.o32223333222222222333c33o3333o......
+..o3322222222222223333c333oooo.......
+...o332222222223333322223333o........
+....o3333333333333322222233o.........
+.....ooo3333333333322222233o.........
+.......oooo3333333o22222223o.........
+.......o133oooooooo21222223o.........
+.......o113333o....o1122233o.........
+........oooooo.....o112233o..........
+....................Pooooo...........
diff --git a/parts_pl_src/body/pl_icefish_c.txt b/parts_pl_src/body/pl_icefish_c.txt
new file mode 100644
index 0000000..8c0133e
--- /dev/null
+++ b/parts_pl_src/body/pl_icefish_c.txt
@@ -0,0 +1,45 @@
+# pl_icefish_c: from pixellab_src/pl_icefish_c/base.png (variant of pl_icefish) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (35, 43)
+# head_top at (32, 24)
+# back at (38, 40)
+# tail at (57, 43)
+......................oo.........................
+.....................ow1o........................
+....................^w12o........................
+..................o.ow22o.oo.....................
+.................owo12222owwo....................
+................ow1322222212o....................
+................ow2322232122o.o..................
+...............ow12322a322222owo.................
+...............ow2232cc322c3211o.................
+...............ow2c32c322ac3222o.................
+...............ow3c33c323c32222oo................
+.............oo333333o333332b32w1o...........ooo.
+...........ooww2222112333o3333222o..........oowo.
+..........oww1111222122233o332232o.........ow11o.
+.........ow11111122221222333o3c321o.......ow112o.
+.......oow1111122222221222333o3322o.......w2a12o.
+......o12211112211113221221332o3321o.....o22a1o..
+......oo32111221ooo22321333133o3322oo...o1b221o..
+.....ob1o222222oc11o232213B1331o3c321o.oo2b223o..
+.....owoo22222owwo11o3221233233ooo332oo1o332b3o..
+.....owoo22222owwocwo32221333oobb1o3c3b22o332o...
+.....ooo321122ooooawo32A2133oob111wo333331232T...
+.....o1o211112ocoawwo322213occ22221o2211113222o..
+....ooo1111o123owwwo322221323333332o2ab2a2322bo..
+.ooooww111111123ooo332322133occaa1oo233333oc221o.
+o222222222222222333322223133o322211o22233oo3bb2o.
+.ooooooooooooo2222113o221333co32221o333oo..o3321o
+..oo2owoowoowccooo222o2313o33cab332o33o.....ooooo
+..o222222222222222ooo233333o333112oooo...........
+...ooooooooooooooo3333313313o33221o..............
+......ooo3333333333333133133oo321o...............
+......o3oo13333333222133313oooooo................
+.......oooo113333222133313oc333..................
+...........oo112222222233o33cc2o.................
+............ooo112222333o3c322bo.................
+............ob3oooooooo3c33b3wo..................
+.............oa23coo..ob3c221oo..................
+..............oooo.....oa2b1bo...................
+........................Poooo....................
diff --git a/parts_pl_src/body/pl_icefish_d.txt b/parts_pl_src/body/pl_icefish_d.txt
new file mode 100644
index 0000000..dafa8ce
--- /dev/null
+++ b/parts_pl_src/body/pl_icefish_d.txt
@@ -0,0 +1,45 @@
+# pl_icefish_d: from pixellab_src/pl_icefish_d/base.png (variant of pl_icefish) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (33, 41)
+# head_top at (32, 21)
+# back at (38, 40)
+# tail at (52, 43)
+....................^ooooo...............
+..................ooww1b3woo.............
+.................owb2211321bo............
+................ow2a221a2211oo...........
+................o1b321a3221b3wo..........
+...............ow2a32bb321ab21o..........
+...............ow2b32b332ab322bo.........
+...............ow3b33b333b33333o.........
+.............oo33333333333o3a32o.........
+...........ooww21111112333ooo32o....oo...
+..........oww1111111121133333obo...owwo..
+.........ow1111111111122133333o...ow22wo.
+........ow111111111111222133323o.o12222o.
+.......ow11111111111122221333233o132233o.
+......o12211111233332222221333233o333a1wo
+......o32221112211113222222133323o3bb221o
+.....ooo32222221ooo223222221133233o33322o
+.....ob1o222232oc11o33222222133323o33333o
+.....owoo22223owwo11o33222221333233o3311o
+...ooowoo22223owwocwo33222B22133333obb11o
+..owboooo22223ooooawoA3222223oooo33o2233o
+.o123o1o321113ocoawwo322223ooaa21o3o3333o
+.o1233o31111123owwwo332223obb2222woob333T
+..oaaoow111o1123ooo332222333332221oobb31o
+.ooooww111111113333332222333aaaa13oo333o.
+o112222222222222212oo2222333332221oo332o.
+.oooooooooooooooo222o222233bb33321ooo3bo.
+..o222222222222222oo222223o33aaa33oo.oo..
+...ooooooooooooooo322222233o33221o3o.....
+....o33333333333333222222233o321o3o......
+.....o22233333333222222222333ooo33o......
+.....o322222222222222222233233333o.......
+.....o332222222222222222233233333o.......
+......o3322222222222222333233333o........
+.......o33222222222222233233333o.........
+........o333332222222333233333o..........
+.........oo33333333333333333oo...........
+...........ooo3333333333oooo.............
+..............ooooooPooo.................
diff --git a/parts_pl_src/body/pl_icicle.txt b/parts_pl_src/body/pl_icicle.txt
new file mode 100644
index 0000000..658dd3c
--- /dev/null
+++ b/parts_pl_src/body/pl_icicle.txt
@@ -0,0 +1,49 @@
+# pl_icicle: from pixellab_src/pl_icicle/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (30, 41)
+# head_top at (25, 22) (from part/probe)
+# back at (37, 28) (from part/probe)
+# tail at (52, 48) (from part/probe)
+.........oooo...............................
+.......oo2111o.ooooooo......................
+......o2111111o2211112oo....................
+......o1111111oc22111111oo..................
+......o1112111o^2221111112o.................
+......ooooo212cc22221111112o................
+......o2co1oocabbc2231121111o...............
+.....o2cco12caa1112222121111o...............
+.....o2caccaccc111222o222111o...............
+....o221ccccb11112222o2221111o..............
+....o211bb11113333222o22222B1o..............
+...o2c11b11113baco222o2322221o..............
+...o2c1111113caac2222oo3222221o.............
+...o2b1111113ca1c2222o33222221o.............
+...o221111123aa12222oo33322211o.............
+...o221111122222222ooo33333221o.............
+...oo2a22222222222oo3333322211o.............
+....oo222c22222oooooo333322211o.............
+.....oo2222oooocoo.oo33333111o..............
+..oo..oooooc1ccoo..o333333112o..............
+..oo..oobbbc1coo...o22222222o...............
+..o2o.ooabbo1oo....o33222222o...............
+.o22o.ooa2ao1oo...o222222122o...............
+.o22o.o.a1aooo....o2A222212o................
+.o22o...212ooo...o222222222o...oooooo.......
+o2222o..o1o.oo...o222222222oooo222212oo.....
+o2222o..o2o.oo...o21112211oo2232221222oo....
+o22223o.o2o.o...o222212211o2223222221112o...
+oo3322ooooo.o.32o222222221o33232223221112o..
+.o33223oooo.o222o222222222o33333332221112o..
+.oo2223223322222o3333333212o333oo322211122T.
+..ooo23333322322o33333322111oo33oo32121122o.
+..oooo3333333233oo32222222112oooo2211112222o
+....o33333333233oo3322232222112111211112322o
+.....ooo33333233o33322333222111111121122322o
+.......ooooo3333o33o3333322211221112222233o.
+...........oooooooooooo2232222222222322223o.
+.................oooo33333332222222232222o..
+.................ooo33333oo22222222232222o..
+...................ooo33oo32223322223222o...
+.....................oo3332222332223322o....
+.......................ooo2223332233ooo.....
+.........................Poooooooooo........
diff --git a/parts_pl_src/body/pl_icicle_b.txt b/parts_pl_src/body/pl_icicle_b.txt
new file mode 100644
index 0000000..0246c93
--- /dev/null
+++ b/parts_pl_src/body/pl_icicle_b.txt
@@ -0,0 +1,49 @@
+# pl_icicle_b: from pixellab_src/pl_icicle_b/base.png (variant of pl_icicle) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (30, 41)
+# head_top at (25, 19)
+# back at (37, 28)
+# tail at (52, 48)
+.........oooo...............................
+.......oo3111o.^oooooo......................
+......o2ww1bw1o2211111oo....................
+......ow111w11oc33111111oo..................
+......ow113w11oc22311111c1o.................
+......ooooo213cc2223111c111o................
+......o3co1oocabbc22311c1111o...............
+.....o3cco13caa11122331c1111o...............
+.....o3caccaccc111232o222111o...............
+....o221ccccb11112232o32211c1o..............
+....o211bb12113333232o3222cB1o..............
+...o3c11b1c113baco233o3222c111o.............
+...o3c1111c13caac3322o32cc1111o.............
+...o1b111c113cawc2222oco221111o.............
+...o2111c1123aaw3c22oo3332221co.............
+...o22111112222222coo3333222c1o.............
+...oo2a2c222222222ooo333cccc22o.............
+....oo222c22222oooo.occo311c22o.............
+.....oo22c2oooocoo..o33331222o..............
+..oo..oooooc1ccoo..o333c11222o..............
+..oo...obbbc1coo...o3331c222o...............
+..o1o..oabbo1oo....o22211c22o...............
+.o21o..oa2ao1oo...o3221222cco...............
+.o21o...a2aooo....o3A112222o................
+.o21o...313.oo...o2c1112222o...oooooo.......
+o22cco..o1o.oo...o21cc22222oooo221111oo.....
+occ12o..o1o.oo...o21112cc2o33c32111cc11o....
+o2222co.o1o.....o21111222co3c23221c11111o...
+oo22c22oooo.ooooo211112232o33c322c21111cco..
+.o2c3222ooooo223o221113332o33c33322211c11o..
+.occ32222c2c2223o3333333222o3cc33322cc1112T.
+..oc3332c222c223o33331122c22ooc3oo33222212o.
+..oo333cc222c223o3333312c2222oooo3322112133o
+....o33c3333c333o333331c11222c1c222c1111333o
+.....ooc33333c33o33333c111122c11c111c111333o
+.......ooo333c33o333cc3311112c111b111c1333o.
+..........oooooooocc33333111b1111b1111c333o.
+.................oo333333311c1111c11133c3o..
+.................ooo3333333c33333c33333c3o..
+...................oo333333c33333c33333co...
+.....................oo333c333333c33333o....
+.......................ooc3333333c33ooo.....
+.........................Poooooooooo........
diff --git a/parts_pl_src/body/pl_icicle_c.txt b/parts_pl_src/body/pl_icicle_c.txt
new file mode 100644
index 0000000..c7aed47
--- /dev/null
+++ b/parts_pl_src/body/pl_icicle_c.txt
@@ -0,0 +1,52 @@
+# pl_icicle_c: from pixellab_src/pl_icicle_c/base.png (variant of pl_icicle) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 39)
+# head_top at (25, 16)
+# back at (37, 28)
+# tail at (52, 48)
+.................ooooo......................
+..............o^o2ww11oooo..................
+............oowwww11111111o.................
+...........o1ww11111ww11wwwo................
+..........owww111www12111111o...............
+.........o2w1w11w22212222ww11o..............
+........o1ww111233333333221ww1o.............
+........o11w1123223222233311w11o............
+.......o321123cc2223222223221111o...........
+......o3c3123cabbc22322b223221211o..........
+.....o3ccc33caa22222332b222321wooo..........
+.....o3caccaccc112232o22b223211o............
+....o222ccccb11112232o32b222321wo...........
+....o221bb12113333232o3222bB331wo...........
+...o3c21b11113baco233o3222bb33211o..........
+...o3c2111113caac3333o3322bb23211o..........
+...o2b2222223cawc3323o2322bb2331oo..........
+...o322222223aaw3223oo2332222331o...........
+...o322222222222223oo33332222321o...........
+...oo2a22222222233ooo222322b2311o...........
+....oo322c22222oooo.o322322b231o............
+.....oo3333oooocoo..o222322b231o............
+..oo..oooooc1ccoo...o2223222331o............
+..oo...obbbc1coo....o222322232o.............
+..o2o..oabbo1oo....o2A132222o2o.............
+.o22o..oa2ao1oo...oo22222223oo..............
+.o22o...a2aooo....o31132222o.o..............
+.o22o...323ooo...oo111322b3o...oooooo.......
+o3223o..o2o.oo...o2111322b3oooo322222oo.....
+o3223o..o2o.oo...o11132222oo33332221122o....
+o32233o.o2o.o...o311222222o3333332222222o...
+oo3223ooooo.o333o1113222b2o33333332222122o..
+.o33223oooooo333o1113222b2o33333333222122o..
+.o33323333333333o222322222oo33333333222223T.
+..o3332233333333o2113222223oo333oo32222223o.
+..oo333333333333o211232222222oooo3222122233o
+....o33333333333o22223222222112222211122333o
+.....ooo33333333o31113322222211121122222333o
+.......ooo333333o3111333222222222222222333o.
+...........ooooooo222233322222222222223333o.
+.................oo2222333222222232223333o..
+..................oo222333332222332333333o..
+...................oo2223333333333333333o...
+.....................oo2223333333333333o....
+.......................oo22333333333ooo.....
+.........................Poooooooooo........
diff --git a/parts_pl_src/body/pl_icicle_d.txt b/parts_pl_src/body/pl_icicle_d.txt
new file mode 100644
index 0000000..c72c98c
--- /dev/null
+++ b/parts_pl_src/body/pl_icicle_d.txt
@@ -0,0 +1,54 @@
+# pl_icicle_d: from pixellab_src/pl_icicle_d/base.png (variant of pl_icicle) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 39)
+# head_top at (25, 15)
+# back at (37, 28)
+# tail at (54, 48)
+......................o......................
+....................o11o.....................
+..............o^...o211o.....................
+.............o1o..oo111o.....................
+.............o12ooo11133o....................
+.........ooooo123o113333o...ooo..............
+.......oo3111o3231113333o.oo211o.............
+......o3111111o221133333oo21111o.............
+......o1112111oc33132211122211oo.............
+......o1213122oc33322211122233o..............
+......ooooo323cc33332222122333o..............
+......o3co2oocabbc333222133333o..............
+.....o3cco23caa22233332213333o...............
+.....o3caccaccc222333o2222211o...............
+....o332ccccb22223333o32222111o..............
+....o322bb22223333333o33322B11ooooo..........
+...o3c22b22223baco333o333222231111o..........
+...o3c2222223caac3333oo33322311111o..........
+...o3b2222223ca1c3333o333333311331o..........
+...o332222233aa13333o333333333333o...........
+...o332222233333333o3333233233333o...........
+...oo3a33333333333oo333323322333o............
+....oo333c33333oooooo33333311333o............
+.....oo3333oooocoo.oo33333311211o............
+......oooooc1ccoo..o22223331122o.............
+..ooo.oobbbc1coo...o3221333111oo...o.........
+..o1o.ooabbo1oo...o33A33333111o...o1o........
+..11o.ooa3ao1oo...o31113322331o..o13o..oo....
+.o11o.o2a2aoo....o1221132223oo.oo313o.o11o...
+.o11o...323oo....31221132222ooo11313oo111o...
+o2112o..o2oo....o3311133222o3221133113113o...
+o2113o..o3o.....o3333331122o2233122113133o...
+o33111o.o3o....o11111321123o3333332111333o...
+o332112oooo..ooo1111132211o33333333212222ooo.
+.o331112ooooo11o1121132211o33333333232221111o
+.o3331121112212o11211322333o3333333321121122T
+..o332311211333o333333333333o3333o332233122o.
+..oo33311221333o3333333333213oooo3211133122o.
+...oo33333333333312221332211132231111133323o.
+.....o3333333333o12222332211122221131233333o.
+......oooo333333o11222333222222221133311333o.
+..........oooooooo333331333332222113311133o..
+.................o311112333113333333321223o..
+..................o1111233111233111132222o...
+...................oo12332112232211232223o...
+....................ooo3122222322122322oo....
+.......................oo22222322222ooo......
+.........................Pooooooooooo........
diff --git a/parts_pl_src/body/pl_igloo.txt b/parts_pl_src/body/pl_igloo.txt
new file mode 100644
index 0000000..186ef51
--- /dev/null
+++ b/parts_pl_src/body/pl_igloo.txt
@@ -0,0 +1,36 @@
+# pl_igloo: from pixellab_src/pl_igloo/base.png (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 46)
+# head_top at (31, 34) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (46, 50) (from part/probe)
+.............oooooo.............
+..........ooo223333ooo..........
+........oo222211122333oo........
+......oo3211211^11131223oo......
+.....o22332121111113113332o.....
+....o2211222222333333333232o....
+...o321121111111111111111232o...
+..o332131111111B1111111111322o..
+..o213231oooo111111oooo113333o..
+.o213133oawwao3333oawwao333332o.
+.o213111oaw2ao1111oaw2ao111132o.
+.o223111oaooao1111oaooao111132o.
+o2223111ow21wo1111ow21wo1113322o
+o2322211owwwwo1111owwwwo1133322o
+o22322223oooo311113oooo33333322o
+o3223333cc223oooAo3322cc3333322o
+o2111111bb3323occc2222bb2222232o
+o2111111111111cbbc1111112222232o
+oco111111111oooooooo111122223oco
+obbcoooooooo11111112ooooooooccTo
+obbbcbbbbo311333333112cbbbbcbcco
+ocbbcbbbo3133ooooo32112cbbbcbcco
+oocbcbbbo133ooooooo3211obbbcccoo
+o2ooccbco13ooooooooo311occccoo2o
+o222ooo313ooooooooooo332oooo222o
+.o22222312o.........o312233322o.
+..oo222312o.........o3122332oo..
+....ooooooo.........oooooooo....
+....o23o3o...........o2o22o.....
+.....oooo.............Pooo......
diff --git a/parts_pl_src/body/pl_igloo_b.txt b/parts_pl_src/body/pl_igloo_b.txt
new file mode 100644
index 0000000..36ac93e
--- /dev/null
+++ b/parts_pl_src/body/pl_igloo_b.txt
@@ -0,0 +1,62 @@
+# pl_igloo_b: from pixellab_src/pl_igloo_b/base.png (variant of pl_igloo) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 35)
+# head_top at (31, 5)
+# back at (31, 38)
+# tail at (46, 50)
+...........ooooo^oooooo...........
+.........oo111111111111oo.........
+........o1111111111111111o........
+.......o111111111111111111o.......
+.......o111111111111111111o.......
+.......o111113311113111311o.......
+.......o113113311133111331o.......
+.......o113113231133311331o.......
+.......o133113231132311331o.......
+.......o1o31132311323113o1o.......
+.......o1o31322313323133o1o.......
+........oo21311313223133oo........
+.........o23311313223333o.........
+.........o22222233222333o.........
+........o2213222322222333o........
+........o2213111112222333o........
+........o2223111112231333o........
+........o2222111112231333o........
+........o2222111112333333o........
+........o3222222232333333o........
+.......o322223332223333333o.......
+.......o321123111222223233o.......
+.......o321123111222223233o.......
+.......o321132111222222233o.......
+.......o221131111222222333o.......
+.......o221331111112222333o.......
+.......o322231111112222333o.......
+......o3333331111112233333o.......
+......o32233333333333333233o......
+......o32211222222223322233o......
+......o311112111A1122222233o......
+.....o3211122111111222222333o.....
+.....o3211122111112222222233o.....
+.....o3211122111B12222222233o.....
+.....o3322oooo222222oooo2233o.....
+....o3333obbbbo3333obbbbo333o.....
+....o3111obacbo1222obacbo2333o....
+....o3111obccbo1222obccbo2233o....
+....o3111oaccao1122oaccao2233o....
+....o3322oaaaao2222oaaaao2233o....
+....o33333oooo322222oooo33333o....
+...o33333bb223ooooo3322bb3333o....
+...o32222aa2223occc2222aa23333o...
+...o32222222222caac22222223333o...
+..o3222333222222222222222233333o..
+..o3222333222331113332223233333T..
+..o3222332223111111113223333333o..
+..o3222322231133333111323333333o..
+..o332232231133....3113333333311o.
+.o113223223112......311333333111o.
+.o11333332313.......311333333111o.
+o111133333333.......311333333111o.
+o111113333313.......3113333111111o
+o111111133313........113311111111o
+o111111111313........113111111111o
+.oooooooooooP........oooooooooooo.
diff --git a/parts_pl_src/body/pl_igloo_c.txt b/parts_pl_src/body/pl_igloo_c.txt
new file mode 100644
index 0000000..addbed7
--- /dev/null
+++ b/parts_pl_src/body/pl_igloo_c.txt
@@ -0,0 +1,51 @@
+# pl_igloo_c: from pixellab_src/pl_igloo_c/base.png (variant of pl_igloo) (pixellab_library.py extract)
+# pivot at (40, 59)
+# aura at (32, 37)
+# head_top at (31, 15)
+# back at (31, 38)
+# tail at (52, 50)
+.................ooo^ooo..................
+...............oowwwwwwwoooo..............
+.............oowwwwwwwwwwww1oo............
+...........oowwwwwwwwwwwwwwww1ooo.........
+.........oowwwwwwwwwwwwwwwwwww11o.........
+.......oowwwwwwwwwwwwwwwwwwwwww11o........
+......owwwwwwwwwwwwwwwwwwwwwwwwww1oo......
+.....oowwwwwwwwwwwwwwwwwwwwww1wwwww1o.....
+....owwwwwwwwwwwwwwwwwwwwwwww1wwwww11o....
+...oowwwwwwwwwwwwwwwwwwwwwwwwwwwwww111o...
+..owwwwww1wwwwwwwwwwwwwwwwwwwwwwwwww11oo..
+..owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww1111o.
+.owwwwwwwwwwwwww11wwwwwwwwww11wwwwww1111o.
+.owwwwwwwwwww1111111w1111111311wwwwww111o.
+owwwwwwwww1111113333111113333311ww1ww1111o
+owwwwwwww11333333111333333333331111111111o
+o1www1111113ooooo11112222ooooo33311111111o
+.o111111333oawwwaoo33333oawwwaoo33331111o.
+.o111133311oaww3aoo22222oaww3aoo22233111o.
+.oo33332111oaww3aoo22222oaww3aoo22223333o.
+.oo33331111oaoooaoo11222oaoooaoo22222333o.
+o3333332111ow332woo11222ow332woo222233333o
+o3333333222owwwwwoo22A22owwwwwoo223333333o
+o3333333333owwwwwoo2B222owwwwwoo333333333o
+o33333333333ooooo33222223ooooo33333333333o
+o3333333333cc3333ooooooo33333ccc333333333o
+o3322222222bb333333occcc33333bbb333333333o
+o322222222233322223occcc22222333333333333o
+o332222222222222223cbbcc22222222333333333o
+occo222222222222oooooooooo222222333333ooco
+obbbcooooooooooo2222222223ooooooooooocccco
+obbbbccbbbbbo3322333333332223cbbbbbbcbccco
+obbbbccbbbbbo3322333333332223cbbbbbbcbccco
+occbbccbbbbo32233ooooooo332223ccbbbbcbccco
+ooocbccbbbbo2333ooooooooo33322oobbbbccccoo
+ooooocccbcco233ooooooooooo3322oocccccooooT
+o33oocccbcco233ooooooooooo3322oocccccooo3o
+o3333oooo3323ooooooooooooooo3333ooooo3333o
+.oo3333333323oo...........oo323333333333o.
+.oo3333333323oo...........oo323333333333o.
+...oo33333323oo...........oo323333333ooo..
+.....oooooooooo...........ooooooooooo.....
+.....oo33oo3o...............o3oo33oo......
+.....oo33oo3o...............o3oo33oo......
+.......ooooo.................Poooo........
diff --git a/parts_pl_src/body/pl_igloo_d.txt b/parts_pl_src/body/pl_igloo_d.txt
new file mode 100644
index 0000000..fd1709a
--- /dev/null
+++ b/parts_pl_src/body/pl_igloo_d.txt
@@ -0,0 +1,64 @@
+# pl_igloo_d: from pixellab_src/pl_igloo_d/base.png (variant of pl_igloo) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 36)
+# head_top at (31, 3)
+# back at (31, 38)
+# tail at (48, 50)
+.................o^oo.................
+..............ooowwwwooo..............
+.............o1wwwwwwww1o.............
+............o1wwwwwwwwww1o............
+...........o21wwwwwwwwwww1o...........
+...........o11wwww1wwwwww1o...........
+..........o21111ww1wwww2212o..........
+..........o2231331113311322o..........
+..........o3333333333333333o..........
+..........o3333333333333333o..........
+..........o33ooo333333ooo33o..........
+.........o33oawwo3333owwao33o.........
+.........o33oa3oo2223o3oao33o.........
+.........o33ow33o3333o33wo33o.........
+.........o33owwwo3333owwwo33o.........
+.........o333ooo33333oooo333o.........
+.........o33bb333oooo333bb33o.........
+.........o3333333occo3333333o.........
+.........o3333333cbb33333333o.........
+........owwwww2221www1111www1o........
+........o111www3ww11ww3ww1ww1o........
+........o11221131111113111111o........
+........o31111132111113111111o........
+........o33111133111113111123o........
+........o33311133311113111113o........
+.......oww33333333333333333331o.......
+......owwwwww31wwwwww33ww13www1o......
+......o1111ww31w1111www11131111o......
+......o1111w131111111w111131111o......
+......o111111311111111111331113o......
+......o311111312111111111331133o......
+......o331111311111111111331333o......
+.....ow333333333333333333333333wo.....
+....o1wwwwwwwwwwwwA13333wwwwwwww1o....
+....o1wwww2wwwwwwwww3wwwwww31w1w1o....
+....o111122221111wBw3ww11113111w1o....
+....o111111131111ww13111111311111o....
+....o3111111311111113111111311113o....
+....o3311111311111113111111311313o....
+....o3333111311111113111113311333o....
+....o3333333311111113111133333333o....
+...owww3333333333333333333333333wwo...
+..o1wwwwww3wwwwww33wwwww3wwwwwwwww1o..
+..o111www13www11ww3wwwwwww1111ww1w1o..
+..o111w11131w111113ww11111131111111o..
+..o11111113111111131111112131111111o..
+..o11111133111111133331111131111111o..
+..o311111331111ooooooo3111131111113T..
+..o33111333111o3333333oo11131111133o..
+..o3333333333o3333333333o3333333333o..
+.oww33333333o3333oooo3333o33333333wwo.
+o11www31wwwwo333oooooo333owwwww31www1o
+o1111131www3333oooooooo3333111331w111o
+o11121311113333oooooooo33331111311111o
+o31111311113333oooooooo33333111311113o
+o33311311133333oooooooo33333111311333o
+o33333333333333oooooooo33333333333333o
+.oooooooooooooP........oooooooooooooo.
diff --git a/parts_pl_src/body/pl_imp.txt b/parts_pl_src/body/pl_imp.txt
index e425aae..bfac48c 100644
--- a/parts_pl_src/body/pl_imp.txt
+++ b/parts_pl_src/body/pl_imp.txt
@@ -1,9 +1,9 @@
# pl_imp: from pixellab_src/pl_imp/base.png (pixellab_library.py extract)
# pivot at (34, 60)
# aura at (31, 42)
-# head_top at (32, 26) (from part)
-# back at (30, 32) (from part)
-# tail at (42, 49) (from part)
+# head_top at (32, 26) (from part/probe)
+# back at (30, 32) (from part/probe)
+# tail at (42, 49) (from part/probe)
........oooo..........
......o211112o........
....o2111111122o......
diff --git a/parts_pl_src/body/pl_imp_b.txt b/parts_pl_src/body/pl_imp_b.txt
new file mode 100644
index 0000000..921db14
--- /dev/null
+++ b/parts_pl_src/body/pl_imp_b.txt
@@ -0,0 +1,48 @@
+# pl_imp_b: from pixellab_src/pl_imp_b/base.png (variant of pl_imp) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 39)
+# head_top at (32, 21)
+# back at (30, 32)
+# tail at (47, 49)
+oo...........................oooo
+o3o........................oo223o
+o32oo........ooo^o.......oo22333o
+o3o22o.....o3222223o...oo122333o.
+.o3o213o.o32111122223oo1222333o..
+.o33o213o221111112223321233333o..
+.o333o223221111122223222333333o..
+..o33oo33222111222222223o3332o...
+..o333o3222222222222222o33332o...
+...o333o21122222211132333332o....
+...o333o33112222113333333332o....
+....o33o3co232232oo33333332o.....
+.....ooo3c1o3223oc1333333oo......
+......oo2c1c31B33c12223ooo.......
+......o2aa222222222aa233o........
+......o2aa222222222aa233o........
+.......o2222oooo2222233oo........
+......oo332o2222o2233333oo.......
+.....o22333333333333333223o......
+....ob2322333333333333222bco.....
+...ob23222222222A22233322baco....
+..o32o32111111222222233322bc3o...
+..o2o221111111222222223o32223o...
+.o22o2211111112222222233o22223o..
+.obo22211111122222222223o22223o..
+.obo222211112222222222233o22baco.
+ob2o222222222222222222233o22baco.
+o22o222222222222222222233o22baco.
+o22o322222222222222222333o222b3o.
+o22o3322222o222222222233o222223o.
+o323o3322222222222222333o2o2223T.
+.o33oo333222222222233333ooo2323o.
+..ooooo3333333333333222c3oo233o..
+......oooo333333333322bb3ooooo...
+......ob33oooooooo3222cb3o.......
+.......oc3333o...o332223o........
+.......o33333o....o33333o........
+......o2223333o...o322233o.......
+.....o2o233333o...o221223o.......
+.....o3o33oooo...o2o22o23o.......
+........oo.......o3o33o3.........
+....................Po...........
diff --git a/parts_pl_src/body/pl_imp_c.txt b/parts_pl_src/body/pl_imp_c.txt
new file mode 100644
index 0000000..3c6f245
--- /dev/null
+++ b/parts_pl_src/body/pl_imp_c.txt
@@ -0,0 +1,44 @@
+# pl_imp_c: from pixellab_src/pl_imp_c/base.png (variant of pl_imp) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 40)
+# head_top at (32, 23)
+# back at (30, 32)
+# tail at (43, 49)
+..........ooo^............
+.o......o322223o........o.
+o3o...o3211122233o.....o2o
+o32o.o221111122233o..oo23o
+o3a2o22111111222233.o22a2o
+o3a2o22111112222233o22aa2o
+o33322222222222233322333a.
+.oa32222222222223322333ao.
+.o3322222222212232223333o.
+.o333311222B13333223333ao.
+..o33bo332213obb3333333o..
+..o3ob1oo3ooc1ob33333bao..
+...oo31322231132233223o...
+....o233212233oo3333oo....
+.....o2o2222oob23ooo......
+......o322221233oo........
+.......o333333oo33o.......
+........oooooA33333o......
+.......o333333333332o.....
+......o23o2222223oo22o....
+.....oaaoo322c223o.oaao...
+....o22o..o2aab22o..o22o..
+....o2o...ocaaac2o..o32o..
+...o22o...o2oao23o...o22o.
+...oao....o32c233o...ocao.
+..oaco....o333333o...ocao.
+..o22o...o233ooo33...o22T.
+.o2222o..o23o..o32o.o2222o
+.o22o2o..o2o....o2o.o2o22o
+.o32ooo..o3o....o3o.ooo23o
+..o2o....o3o....o3o...o23o
+...oo..oo33o....o3o...o3o.
+.....oo22233o...o3o.......
+....o2323233o..o222o......
+...o3o223oooocco2123o.....
+..oooooooccccco2o22o2oc...
+.....ccccccccco3o22ooc....
+...............Pcooc......
diff --git a/parts_pl_src/body/pl_imp_d.txt b/parts_pl_src/body/pl_imp_d.txt
new file mode 100644
index 0000000..4e93d96
--- /dev/null
+++ b/parts_pl_src/body/pl_imp_d.txt
@@ -0,0 +1,48 @@
+# pl_imp_d: from pixellab_src/pl_imp_d/base.png (variant of pl_imp) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 41)
+# head_top at (32, 19)
+# back at (30, 32)
+# tail at (52, 49)
+................oooo^o...................
+...............o2222223o.................
+.............o32111222233o...............
+............o2211111222233o..............
+...........o221111112222233o.............
+...........o221111112222233o.............
+..........o22221112222223333.............
+........ooo22222222222223333..o..........
+........o3o22222222222223333o33..........
+........o333331122211333333oc3o..........
+........o333co3322233occ33oc33o..........
+........o333c1oo333oo1oc333333...........
+.........o3321o22223113223333oo..........
+.........oo3oo2211B223oo2333o33o.........
+......ooo22o3co222223oc23ooo3333oo.......
+......o22223o312222212333oo333322co......
+.....oaa22223o333333333oo3333322aaco.....
+....o2a2222223ooooooooo333333222aac3o....
+...o22222222223333333333333332222a223o...
+...o222233222222333333322223322222223o...
+..o32223322222222222222222223322222233o..
+..o22223322222222222222222223333222233o..
+.o22223o222222222222A222222233o33222223o.
+.o22223o2222222222222222222233o33222223o.
+oaa2233o22222222222222222222233o33222abco
+oac2233o222222222222222222222333o3222bb3o
+ob2223oo322222222222222222222333o32222b3o
+o222223o322222222222222222223333o3222223o
+o222323o33a222222222222222a33333o2222223o
+o222333oo3322222222222222abc333o22322223o
+o3323oooo3332222222222222cc3333o33o22223T
+.o323oooo333332222222223333ooo3oooo2323o.
+.oo333o.o3oo33333333333333o333oo.oo2333o.
+..oooo..o333o333333333333332223o.o333oo..
+........o2223o33333333333322aa2o..ooo....
+........o2a2333ooooooooo3322cc3o.........
+.........o333333o......o33333c3o.........
+........oo333333o.......o333333o.........
+.......o22222333o.......o3222222o........
+......o22o233333o.......o322o22o3o.......
+.......ooooooooo........oo222o233o.......
+..........................Pooooo.........
diff --git a/parts_pl_src/body/pl_inchworm.txt b/parts_pl_src/body/pl_inchworm.txt
new file mode 100644
index 0000000..07ae2c4
--- /dev/null
+++ b/parts_pl_src/body/pl_inchworm.txt
@@ -0,0 +1,48 @@
+# pl_inchworm: from pixellab_src/pl_inchworm/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (30, 42)
+# head_top at (31, 22) (from part/probe)
+# back at (35, 27) (from part/probe)
+# tail at (46, 45) (from part/probe)
+....................oooo....................
+...............ooooo3333ooo.................
+.............oo33222211113oo................
+............o33111111^11112ooo..............
+...........o32111111112111123oo.............
+..........oo233111111113111211o.............
+.........oo32111331111121112213o............
+........oo2111111131111231223113o...........
+........o2111111112322223B223111o...........
+.......o321111111113222a3333o211o...........
+.......o32111111111233aa333ao221o...........
+......oo3333211111133333333o3323oo..........
+.....oo3311123211133333b33o33a33oo..........
+.....o2111111132233a33oooo33aa332o..........
+.....o211111111333a33ococoa333312o..........
+....o32111111112o333ooaoo33332112o..........
+....o32111111112333coooo3o3322222o..........
+....o321221111123occcoo333322ca22o..........
+...oo3321123112333oocoo33332aa22oo..........
+...o311111123233aaoooo333332aa22o...........
+...o21111111233333oo.o333332223o3o..........
+..oo2111111122o33cco.oo3333333323o..........
+..oo21111111223o3ccooo3oooo331123o..........
+..oo311111122233ooooAo33333221123o..........
+...o3333312222333oo.oo3333222aa2oo..........
+..oo311112332333co..oo333322aa2oooo.oooo....
+..o321111112o333cco.oo333322a2o33oooTooooo..
+..o3211111123o33cco..oo33322233123o311113oo.
+..o32111111233ooooo..oo3333332111232311113o.
+.oo221111112333ooo...oooooo3211111311311123o
+.oo3111133223333o....oo33332211111311211123o
+.oo1311312o33333oo...oo333322211a1311231223o
+oo1w2111112o333cco...oo33332222aa33222322a3o
+oo1oo11wo11o333cco...oo3333322aa33322332aa3o
+o11oo11ooo13333ooo....oo333333a33333a333a3oo
+o21a111aaw13333oo.....ooo3333333333a3o333oo.
+oo2222221233333oo.....oooo333333o333o33oocoo
+.oo3ooo3o33333oo......ooccooccooccoocoococco
+.oo1aoa1a333cooo......oocoooacoocaooccocoooo
+..ocooo1oooocco........ooo.ocoooocooooooooo.
+.oooooooooooaco............oooo.ooo.oo......
+..ooooooo..oooP.............................
diff --git a/parts_pl_src/body/pl_inchworm_b.txt b/parts_pl_src/body/pl_inchworm_b.txt
new file mode 100644
index 0000000..b196ebd
--- /dev/null
+++ b/parts_pl_src/body/pl_inchworm_b.txt
@@ -0,0 +1,48 @@
+# pl_inchworm_b: from pixellab_src/pl_inchworm_b/base.png (variant of pl_inchworm) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (30, 42)
+# head_top at (31, 19)
+# back at (35, 27)
+# tail at (51, 45)
+....................o^oo....................
+................oooo2222ooo.................
+..............oo2111311112oo................
+............oob111111211112ooo..............
+............ocbaaa111131111311o.............
+..........oo222aaaa11113111221o.............
+.........o31111111aa11131112312o............
+........o3111111113ac1123222311o............
+........o21111111113c2223B223212o...........
+.......o321111111112c22233333312o...........
+.......ocbaaa1111122cc22333a3332o...........
+......oocbaaaaa122223c33333a333c2o..........
+.....oo1111111cc22233c3333co333c2o..........
+.....o211111111cc3333c33co3333c22o..........
+.....o11111111133c333cbobo33cc212o..........
+....o311111111123c333obooccc22112o..........
+....o3111111112233c3boboooo222222o..........
+....ocbaaaa1122233bbbooo332222a22o..........
+....ocbaaaaa122233oobo333322aa22oo..........
+...o1111111acc3333oooo333322aaaco...........
+...o111111111cc33bbo.occcaaaaaao2o..........
+..o311111111123c3bbo.oooooooooo22o..........
+..o3111111111233cbbooo33333221122o..........
+..o31111111122333oooAo33333221122o..........
+..ocbaaaaa1222333oo.oo3333222a22ooo.oooo....
+..ocbaaaaabb22333o..oo333322aa22o2oo2111o...
+..o311111accc333bbo.oo333322a233113131111T..
+.o3111111111cc33bbo..o33332223311131331111o.
+.o311111111123c3boo..oo3333332111131131111o.
+.o3111111112233aoo...oo33333211111311131113o
+.o33111133223333o....oo33332211111311132123o
+.oo1311312o33333oo...oo333322211113112o3223o
+oo1w2111112o3333bo...oo33333222222322233333o
+o31oo11wo11o3333bo....o33333322223322333333o
+o11oo11ooo133333oo....oo333333333333333333o.
+o21a111aaw13333oo......oo333333333333o333oo.
+oo2222221233333oo......ooo333333o333o33ooboo
+.oo3ooo2o33333o........obboobboobbooboobobbo
+..o1aoa1a333bbo........obo.oaboobaoobboboooo
+..oyooo1333obbo........ooo.ooo..obo.ooooo...
+...oooooooooabo.................ooo.........
+...........oooP.............................
diff --git a/parts_pl_src/body/pl_inchworm_c.txt b/parts_pl_src/body/pl_inchworm_c.txt
new file mode 100644
index 0000000..a9398b1
--- /dev/null
+++ b/parts_pl_src/body/pl_inchworm_c.txt
@@ -0,0 +1,52 @@
+# pl_inchworm_c: from pixellab_src/pl_inchworm_c/base.png (variant of pl_inchworm) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 40)
+# head_top at (31, 15)
+# back at (35, 27)
+# tail at (53, 45)
+.................oo...^o.....o.................
+................o1o..o1o...ooo.................
+..........ooo...o1o..o1o..oo1o.................
+..........o11o..o1o.o31o..o1o..................
+...........o12o.o22oo313oo11o...oo.............
+...........o21ooo22oo333o313o.oo1o.............
+.......o....o11oo233331111333oo1o..............
+.......2o...o3133211112111133312o..............
+.......o1o..o3211111111211113333o..ooo.........
+.......o11o.o333111111113111211o.oo11o.........
+........o13o321113311111211121133312o..........
+........o11331111113111123122311312o...........
+........o33311111112322223B22311313o...........
+...oo....322111111113222bo333o1113o............
+...o1oo.o32111111111233bbo33bo2213o...o........
+....o13oo3333211111133333o33o33213o.ooo........
+.....o113311123211133333co3o33b333oo21o........
+.....o33311111132233b33oooo33bb313312o.........
+.....o3311111111333b33ococo333331333o..........
+.oo...32111111112o333ooboo333321133o...........
+.o1ooo32111111112333coooo3333222223ooooo.......
+..o311321221111123occcoo333322bb223111oo.......
+...o333321133112333ooco333332bb223333o.........
+....o311111123233bboooo333332bb22333o..........
+oo..o31111111233333oo.o333332222323oooo........
+o31oo3111111122333cco.Ao33333333233112o........
+.oo1131111111222o3ccoooooooo33212333oo.........
+...oo311111122223oooooo333332211233o...ooo.....
+....o3333311222233oo.oo3333222bb223oooo31oo....
+...o3311113332333co..oo333322bb233311333113o...
+...o3211111123333cco.oo333322b22333112112111T..
+...o3211111122o33cco..oo333322231123321111111o.
+...o32111111223o3ooo..oo333333321113111111311o.
+..oo221111112233ooo...oo3333321111131131112213o
+..o32111112222333o....oo3333221111131131112223o
+..ooo1111ooo22333o....oo333322211b131133122333o
+..oabo11cabco333cco...oo33332222bb33223322b33o.
+.obaco11baobo333cco...oo3333322bb33322332bb3oo.
+.obooo11boobo333ooo....oo333333b33333b333b3oo..
+.oobb211bbbo3333oo......oo3333333333b3o333oo...
+.o3222222oo33333oo.......oo333333o333o33ooco...
+..oo22222333333oo.......occooccooccoocoococco..
+..oo1bcb1b333cooo.......ocooobcoocboocbocooco..
+...o13331oooocco........ooo.oco.oocooocooo.oo..
+...oooooooooobco............ooo..ooo.oo........
+............oooP...............................
diff --git a/parts_pl_src/body/pl_inchworm_d.txt b/parts_pl_src/body/pl_inchworm_d.txt
new file mode 100644
index 0000000..583fca6
--- /dev/null
+++ b/parts_pl_src/body/pl_inchworm_d.txt
@@ -0,0 +1,56 @@
+# pl_inchworm_d: from pixellab_src/pl_inchworm_d/base.png (variant of pl_inchworm) (pixellab_library.py extract)
+# pivot at (34, 59)
+# aura at (31, 34)
+# head_top at (31, 10)
+# back at (35, 27)
+# tail at (50, 45)
+................ooooo^oo...................
+............oooo33333333ooo................
+..........oo333322222222333o...............
+.........o333222222222222223oo.............
+........o322222222222222222233o............
+.......o32112222222222222222223o...........
+......o3221122222222222222222223o..........
+.....o321122222222222222222222223o.........
+....o32211222222222222222222222233o........
+....o22212222222222222222222222223o........
+...o3222222222222222222222222222233o.......
+...o2222222222222222222222222222223o.......
+..o322222222222222222222222222222233o......
+..o222222222222222222222222222222233o......
+.oo223322222222222222333222222222223o......
+.oo23ww3222222222222owww3222222222233o.....
+.ooowwoo22222222222ooooww322222222233o.....
+.oo1woowo222222222owwooowB22222222233o.....
+.oowooowo222222222owwoooww32222222233o.....
+.oowooooo222222222ooooooww32222222233o.....
+.oowooooo222222222ooooobww32222222333o.....
+.oowboooo222222222ooooobww32222222333o.....
+.oowbbobo222222222obbobbw32222222233oo.....
+o323wbbb22222222222cbbbww22222222333oo.....
+o3aa33332222222222223A33aaa222222333o......
+o3aaaa22222222222222222aaaaa22223333o......
+o3aaaa22222222222222222aaaaa22233333.......
+.oaaa2222o222222o222222aaaaa2233333o.......
+.oo2222222oooooo222222222222233333o........
+..o322222222222222222222222233333o.........
+...o332222222222222222222333333ooo.........
+....oo33322222222222233333333ooo...........
+.....ooo3333333333333333ooooooo............
+........oooo3333333oooooo33333ooooooooo....
+..........oo333333333333333o33oo222o222o...
+..........oo2222222233333333o33o32113212T..
+..........oo222222222333o322o332321132122o.
+.........o3oo22222222333o3222332321123122o.
+.........o33o322222233333o222o323211232223o
+.........o33o333333333333o222o323222232223o
+........o333o322222222333o222o3232222o2233o
+........o333oo322222222333o22o3o33333o333oo
+........oo3oooo322222223333oo33o33333o33oo.
+.........ooo.ooo32222333333333oo3333oo3ooo.
+.............o33oo333333222333occoccooocco.
+.............o333oo333332222ooobboccboocco.
+..............o333oooooo2222ooobcoobboooo..
+..............o333o....oo222o.ooo.oooo.....
+..............oooo......o223o..............
+........................Pooo...............
diff --git a/parts_pl_src/body/pl_jadecoil.txt b/parts_pl_src/body/pl_jadecoil.txt
new file mode 100644
index 0000000..c682a7c
--- /dev/null
+++ b/parts_pl_src/body/pl_jadecoil.txt
@@ -0,0 +1,43 @@
+# pl_jadecoil: from pixellab_src/pl_jadecoil/base.png (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 43)
+# head_top at (31, 25) (from part/probe)
+# back at (35, 39) (from part/probe)
+# tail at (49, 51)
+.........ooo....oooo....ooo.........
+........o333o.oo3333oo.o333o........
+........o313oo233^2332oo313o........
+........o333332211112233333o........
+.......o23333321311312333332o.......
+.......o22321112222121112322o.......
+.......o2o3331112222111333o2o.......
+.......o2o3oo3212222113oo3o2o.......
+........o33oao32322323oao33o........
+........o32oaoo322223ooao23o........
+........o3323ao333333oa3233o........
+........o3a12223222232221a3o........
+.........oc11221111112211co.........
+..........o21313111131312o..........
+........oooo213211112312oooo........
+......o333oooo23333332oooo333o......
+.....o33333ocooooooooBoco33333o.....
+....o333133oco3333333ooooo31333oooo.
+....o33132oocco322223ocboo33133333..
+...o33333133oabo1111obao32133333o...
+...o321111223oaaooAoaao322111223o...
+...o2331211123oaboocbo3211121332o...
+...o23321133122ooaaoo22133112332o...
+.oo3o33213113123cbab32132131233o3oo.
+.o33o32313313123oooo32132231322o33o.
+.o333oo332331223obbo322123233oo333o.
+o33333oo3322333obaabo3332233oo33333o
+o3311333oo3333obaaabo33333oo3331233o
+o323312333oooocabaaboooooo333113323T
+o323131332333oacaabco33332221131323o
+.o23321311122oobabobo2213111311332o.
+.o322231333132ocboco21131333132223o.
+..o333313131132oooo32131131313333o..
+...oo33223323232223331331332233oo...
+....ooo3322332233133222332233ooo....
+.......oooo33332333333333oooo.......
+...........ooooooPooooooo...........
diff --git a/parts_pl_src/body/pl_jadecoil_b.txt b/parts_pl_src/body/pl_jadecoil_b.txt
new file mode 100644
index 0000000..cf254c7
--- /dev/null
+++ b/parts_pl_src/body/pl_jadecoil_b.txt
@@ -0,0 +1,51 @@
+# pl_jadecoil_b: from pixellab_src/pl_jadecoil_b/base.png (variant of pl_jadecoil) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 41)
+# head_top at (31, 16)
+# back at (35, 39)
+# tail at (54, 51)
+....................oo^ooo....................
+..................oo322222oo..................
+.................o3311111122o.................
+................o331211111123o................
+...............o33222222222233o...............
+...............o33222222222223o...............
+...............o3oo222222222o3o...............
+..............o33oow2222223oo33o..............
+..............o32ooo322222ooo23o..............
+............ooo32ooo322223ooo23ooo............
+..........oo33o3222222222222223o33oo..........
+.........o3ob33o32222322322223o33b33o.........
+........o322bc3oo332222222223o33bb223o........
+.......o322b233ooo3333333333oooob31b23o.......
+.......obb2bb33ocooooooooooooooo331b2bo.......
+......o3bb21233oco333333333oocoo33b12b3o......
+......o3b22122oobco22222222ooaoo33212b3o......
+......o3322b122ooaco111111oooooo322b223o......
+......o3322bb222ooaco2222ocaooo322b12b3o......
+......o33bbbo11222oaaooooaaoo32211b22b3o......
+......oo3bbb2211122occoocco3221122cbbb3o......
+.....ooo3b3222233122ooaaoo221222222oc33oo.....
+....o333o333323223123cbac3213312122233o33o....
+...o3c333o33323323123oooo3B2322222333o3333o...
+..o33cc33oo3332233223occo32233222333o333333o..
+..o3ccb2333oo3332233ocaAco332332333o333bo32o..
+..o3oc2b22333ooo3333ocaaco3333333oo333y33b3o..
+..o3cc2b212222oooooocaaacoooooooo332b2bbobbo..
+..o3c33322bbb222223oacacco2222222b21b223bb3o..
+..ooc3cbbbbbb12bb22occaoco1122211bbbb233333o..
+..oooocbb23222b22b22occco222bbb22222233cc3oo..
+..oooocc33cc3bbb2c222ooo2222b2bbb23bb3b33o3o..
+.oo33ooooccc3b22cc2222222222bobcbb3bbc33o33oo.
+ooo333oo33333b33cc3333333333bbb3bb333o3o3333o.
+o3cb2233oooo3333333333333333333333ooooo33bc33o
+o3cb2bb2332ooooooooooooooooooooooo333311bbc33T
+oo3333bb1122222222222222222222222222bb22b3cc3o
+oooccbb222bbb11bb22222222222bbb1111bbb22333coo
+.oooc333bbb22222bbb211112bb2b222bb233cccc33oo.
+..oocc3bb3322222b222222222bbb33bb3333c3cooo33o
+...oo33bb33cbbbbb33bbbbb2223333bbbbooooo32cb3o
+....oooo333cc33333bb3333333333ooooo2222b2223bo
+.......oooooo33333cc33333ooooo3b222b2b333bb3o.
+............ooooooooooooooooo3333333333ooooo..
+.............................Poooooooooo......
diff --git a/parts_pl_src/body/pl_jadecoil_c.txt b/parts_pl_src/body/pl_jadecoil_c.txt
new file mode 100644
index 0000000..eaa944a
--- /dev/null
+++ b/parts_pl_src/body/pl_jadecoil_c.txt
@@ -0,0 +1,58 @@
+# pl_jadecoil_c: from pixellab_src/pl_jadecoil_c/base.png (variant of pl_jadecoil) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 36)
+# head_top at (31, 8)
+# back at (35, 39)
+# tail at (48, 51)
+........ooo...oo^oo...ooo..........
+.......o223ooo22222ooo312o.........
+.......o323oo2311111oo333o.........
+.......o33322113111122333o.........
+........o32111113111111331o........
+........o331111131111113o1o........
+........o3oo211121111oo3o1o........
+.......o33oao3211312oao33o.........
+.......o32oaoo322233oao23o.........
+.......o3313bo322223o3133o.........
+.......o3a1111311122111a3o.........
+........oc1121111111111co..........
+.........oo121311113111o...........
+..........ooo1122221ooo3oo.........
+.........ooooo33333ooo3323o........
+.......oo3333o333333o333122o.......
+.....oo3333b3o311113o3331223o......
+....oo3cc23c3o331113oo221122o......
+....obaacc3coo312223o1111232o......
+...o3ba111oooo311oobb1111223o......
+...ocb2111111oooo21baa11223o.......
+...occ311111322211111aa1123oo......
+....oc313113111111111aa233o33o.....
+....oc333111311111111ac23o33oco....
+....oo333233121111112ccooo33bbbo...
+...o33oo3333222222223cooo331aabo...
+...o3333ooo333333ooooooooo1112bo...
+..o322o33oooooooo222o3oo2211122o...
+..o321o13oooo3322Aoooobba111322o...
+..o2o21122bbcooooo1111baa111323o...
+..o322111aaa11111131111aaa1123o....
+..o323111aa111112111B11aaa1333oo...
+...o3221ba21111311111122cb33oo33o..
+....o323ca2113311311113ccc3ooo333o.
+....oo33cc3223111311333ccoooo3222o.
+...o33ooocc33322o33333oooooo331123o
+...o33333oooo33o33oooo33oobbb11322o
+...o3321333ccooooo333ooo22bbaa1322o
+...oo211222bbb22222o3111111aaa1132o
+...oo23311aaa111111131111111aab23o.
+..o3o33322aaa111111113111111aab23o.
+.o333o3332ca2222111111331112ccc3o..
+o32bcco333cc3222231111313323ccoo3o.
+o3bac33ooo3cc33331222332333ooo333T.
+o3ca113133ooooo333222ooooooc33333o.
+o3c2113111ccc22oooooo2222ccbb1133o.
+o3c233111aaa21111113311111baa2333o.
+.oc332311aa1111111311111111ac233o..
+..o332333cb3331113331111122cc33o...
+...ooo333cc3332233131122223ccoo....
+......oooccc33332223222333ooo......
+.........ooooooooPoooooooo.........
diff --git a/parts_pl_src/body/pl_jadecoil_d.txt b/parts_pl_src/body/pl_jadecoil_d.txt
new file mode 100644
index 0000000..5f06991
--- /dev/null
+++ b/parts_pl_src/body/pl_jadecoil_d.txt
@@ -0,0 +1,53 @@
+# pl_jadecoil_d: from pixellab_src/pl_jadecoil_d/base.png (variant of pl_jadecoil) (pixellab_library.py extract)
+# pivot at (32, 56)
+# aura at (32, 31)
+# head_top at (31, 10)
+# back at (35, 39)
+# tail at (46, 51)
+....ooooo........ooo^oooo.......oooooo....
+....ooooo........oooooooo.......oooooo....
+..oo33333oo..oooo33333333oooo.oo333333oo..
+..oo33333oo..oooo33333333oooo.oo333333oo..
+..oo33113oooo223333222233332oooo331133oo..
+..oo33113oooo223333222233332oooo331133oo..
+..oo3333333332222111111112223333333333oo..
+..oo3333333332222111111112223333333333oo..
+oo22333333333221133111133112333333333322oo
+oo22333333333221133111133112333333333322oo
+oo22223221111112222222211221111122332222oo
+oo22223221111112222222211221111122332222oo
+oo22oo333331111112222222211111333333oo22oo
+oo22oo333331111112222222211111333333oo22oo
+oo22oo3oooo3322112222222211133oooo33oo22oo
+oo22oo3oooo3322112222222211133oooo33oo22oo
+..oo333ooaaoo332233222233223ooaaoo3333oo..
+..oo333ooaaoo332233222233223ooaaoo3333oo..
+..oo332ooaaoooo332222222233oooaaoo2233oo..
+..oo332ooaaoooo332222222233oooaaoo2233oo..
+..oo333ooaaoooo333333333333oooaaoo3333oo..
+..oo3332233bbcc333333A33333ccc33223333oo..
+..oo33a1133bbcc332222222233ccc3311aa33oo..
+..oo33a112222223322222222332222211aa33oo..
+....ooc111122221111111111112221111ccoo....
+....ooc111122221111111111112221111ccoo....
+......o221133113311111111331331122oo......
+......o221133113311111111331331122oo......
+.......oo33113322111111112233122oo........
+.........331133221111111B2233122..........
+...........oo223333333333332oooo..........
+...........o3oooooooooooooooo3oo....ooo...
+..........o333occoooooooocco33oo...o33o...
+..........o3333occ33333occo3333o..o323o...
+.........o333333oabooooabo32333o..o222o...
+........o33232222oaaaaaao2223323oo2212o...
+........o222322222obbbbo22223323oo2213o...
+........o2233222233oooo3222233333o1123o...
+........o33o321223oocco322213o333o213o....
+.......o333o321223ocaao322213o3333o33o....
+.......o333o322213oaabo321123o3333o3o.....
+.......o333o332122obabo221133o3333oT......
+.......o3333o322223oao222223o33333o.......
+.......o3223o331111oco221113o3223o........
+........o223o212212ooo212212o3223o........
+.........oooo232232ooo232232ooooo.........
+.............ooooooo.Poooooo..............
diff --git a/parts_pl_src/body/pl_jelly.txt b/parts_pl_src/body/pl_jelly.txt
new file mode 100644
index 0000000..1f70c43
--- /dev/null
+++ b/parts_pl_src/body/pl_jelly.txt
@@ -0,0 +1,45 @@
+# pl_jelly: from pixellab_src/pl_jelly/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 40)
+# head_top at (31, 26) (from part/probe)
+# back at (31, 33) (from part/probe)
+# tail at (47, 51)
+................oooooooooo................
+..............oo2222222222oo..............
+............oo21111111111122oo............
+...........o221111111111111122o...........
+..........o211111111^1111111123o..........
+.........o2111111111111111111123o.........
+........o211111111111111111111223o........
+.......o22111111111111111111111223o.......
+.......o22111111111111111111111223o.......
+......o322211ooo1111111111ooo112233o......
+......o32222occoo11111111occoo22233o......
+.....o33222ocwcooo11B111ocwcooo22333o.....
+.....o33222owcccco211112owcccco23333o.....
+.....o33332occcaco211222occcaco23333o.....
+.....o32233occa1co222222occa1co33223o.....
+.....o3223bboccco22o22o22occcobb3223o.....
+.....o32b33bbooo222oooo222ooobb33b23o.....
+....occcbbb33333332222223333333bbbccco....
+..oocbcc2bb322233222A2222332223bb2ccbcoo..
+.oaaaacccbbb22233bb2222bbb322bbbbccbbaaao.
+ocaaaaacccbbbbc3cacbbbbcbc3cbbbccccbaaaaco
+oboaaabooaaaccooaaabcccbaaoobbaaaoobaaaobo
+obbobboaaaaacooaaaaaccbaaaaoobaaaaaobbobbo
+.oooaobooaaabobooaaabbaaaoobobaaaooboaooo.
+...oobboooabbobo3oaabbaao3obobbaooobboo...
+....oooo.ooabbao33oaaaao33oabbaoo.oooo....
+..........ooaaoo333oaao333ooaaoo..........
+.....oo..o3ooooo333oooo333ooooo3o..oo.....
+.....o3oo3o333o323bo..ob323o333o3oo3o.....
+.....o3333o3bo22233o..o33222ob3o3333T.....
+......o33oo3oo12a3o....o3a21oo3oo33o......
+.......ooo23oo22ao......oa21oo32ooo.......
+......o3bb33o.o223o....o322o.o33bb3o......
+......o3333o...o23o....o32o...o3333o......
+.......oooo....o23o....o32o....oooo.......
+.............ooo23o....o32ooo.............
+............o2aa23o....o32aa2o............
+............o3223o......o3223o............
+.............oooP........oooo.............
diff --git a/parts_pl_src/body/pl_jelly_b.txt b/parts_pl_src/body/pl_jelly_b.txt
new file mode 100644
index 0000000..6a1f53f
--- /dev/null
+++ b/parts_pl_src/body/pl_jelly_b.txt
@@ -0,0 +1,57 @@
+# pl_jelly_b: from pixellab_src/pl_jelly_b/base.png (variant of pl_jelly) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 34)
+# head_top at (31, 10)
+# back at (31, 33)
+# tail at (52, 51)
+...................oooo^ooooooo..................
+...............oooo222222222222ooo...............
+............ooo2221111111111111222oo.............
+...........o222111111111111111111222oo...........
+..........o221111111111111111111112222oo.........
+........oo221111111111111111111111112222o........
+.......o211111111111111111111111111111222o.......
+......o21111111111111111111111111111112233o......
+.....o3211111111111111111111111111111112233o.....
+....o322111111111111111111111111111111112333o....
+...o32221111111111111111111111111111111122333o...
+..o3321111111111111111111111111111111111123333o..
+..o3221111111111111111111111111111111111333333o..
+.o322212111111111111111111112311111111113333333o.
+.o322223111113111111111111112331111111133333333o.
+o33232233112232223332222222233333333333333333333o
+o3333333333333333333333333333oo33333333333333333o
+o333333ooooooooooooooooooooooooooooooooooo333333o
+o333ooooooooo33333333333333333333333ooooooooo333o
+.o3ooo33oooo3333333333333333333333333ooooo333o3o.
+..ooo33333o33331ooo1111111111ooo113333o3333333o..
+...ooooo33o3332occoo11111111occoo12233o3333ooo...
+........ooo322ocwcooo111111ocwcooo2222ooooo......
+.........o3322owcccco21B111owcccco22223o.........
+.........o3332occcaco211A22occcaco22223o.........
+.........o3112occaaco111111occaaco22113o.........
+....oooooo311bboccco22o11o22occcobb2113oooo......
+..ooccccco3322bbooo222oooo222ooobb22223occcooo...
+.oaaaaaccc33222222222222222222222222233ccbbbbao..
+.oaaabcccc33332222221111111112222223333cccbbbao..
+.oobcacbbbbbc33333333333333333333333cbbbbaccboo..
+..occaaaaabbcbbbbccccc33333333cccbbccbbaaabcco...
+..oocoaaacooaaabcccaabbcccbaaocccbbboocaaaabco...
+...obooabcaaaaabccaaaaaccbbaaaoocbaaaaocbaobbo...
+...ooooaccooaaabcbooaaabbaaaoobobbaaooboaoooo....
+......oaaaoooaabcboobaabbaaooobobbaooobbao.......
+......ooooo3ooabbbo3oaaaaao32obbbaoo3ooooo.......
+.....oo322233ooaabo22oaaaoo22ooaaoo333332oo......
+....o2222233o3ooooo223oooo322oooo33o3332222o.....
+...o21233ooo32333oo223o..o322oo33323oo332213o....
+...o112oo.o32223oo222bo..ob2112o32223oooo311o....
+...o123o..o2223oo2113o....o2211oo3222o..o322T....
+....o22o..o123o.o12b3......3b21ooo321o..o32o.....
+.oooo32o..o21o..o22bo......ob21o..o21o..o32o.oo..
+.o3oo33o...o12o..o222o....o222o..o22o...o33oo3o..
+.o3333o....o33o...o22o....o22o...o22o....o3333o..
+..oooo...ooo33o...o12o....o22o...o33ooo...oooo...
+........o2b333o.ooo22o....o22ooo.o333b3o.........
+........o3333o.o2bb23o....o32bb2o.o3333o.........
+.........oooo..o3223o......o3223o..oooo..........
+................oooo........Pooo.................
diff --git a/parts_pl_src/body/pl_jelly_c.txt b/parts_pl_src/body/pl_jelly_c.txt
new file mode 100644
index 0000000..34edc8d
--- /dev/null
+++ b/parts_pl_src/body/pl_jelly_c.txt
@@ -0,0 +1,64 @@
+# pl_jelly_c: from pixellab_src/pl_jelly_c/base.png (variant of pl_jelly) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 33)
+# head_top at (31, 3)
+# back at (31, 32)
+# tail at (47, 51)
+..............o^oo..............
+.............o3223o.............
+............o211123o............
+...........o21111133o...........
+..........o2111111233o..........
+.........o211111111333o.........
+.........o111111111133o.........
+........o21111111111333o........
+........o11111111111333o........
+.......o2111111111111333o.......
+.......o2111111111111333o.......
+......o321111111111113333o......
+......o321111111111113333o......
+......o322111111111113333o......
+.....occc22111111111333ccco.....
+....ocaaacccccccccccccbbbcco....
+....oaaaaaaaaaaaaaaaaabbbbbo....
+....obbaaaaaaaaaaaaaaaabbbbo....
+.....ocbbbbbbbbbbbbbbbbbbco.....
+.....o33ccccccccccccccccc3o.....
+.....o22222223333333333333o.....
+....o3211111112222222223333o....
+....o3211111111111122223333o....
+....o3211111111111111223333o....
+....o3211111111111111223333o....
+....o3211111111111111223333o....
+....o3211111111111111223333o....
+....o3211111111111111223333o....
+....o321ooo1111111111ooo333o....
+....o32occoo111B1111occoo33o....
+....o3oc1cooo11A111oc1cooo3o....
+....o2o1cccco111111o1cccco3o....
+....o2occcaco111111occcaco3o....
+....o2occa1co111111occa1co3o....
+....o22occco11o11o11occco33o....
+....o22booo111oooo112ooob33o....
+....o322111111111111122333bo....
+....o332222211111112222b3bbo....
+...occc322222222222222bbbbcco...
+..ocaaccc3332222222bbbbccccbbo..
+.obaaaaaaccccccccccccccccbbbbbo.
+.obaaaaaaaaaaaaaaaaaaaaabbbbbbo.
+.obbbaaaaaaaaaaaaaaaaaaabbbbbbo.
+..oobbbbbbaaaaaaaaaaaaabbbbboo..
+....ooobbbbbbbbbbbbbbbbbbooo....
+.....oooooooooooooooooooo3o.....
+oo..o3o33oo333o..o333oo33o3o..oo
+o3oo3o333o323bo..ob323o333o3oo3o
+o3333o3bo32233o..o33223ob3o3333T
+.o33oo3oo12a3o....o3a21oo3oo33o.
+..ooo23oo22ao......oa21oo32ooo..
+.o3bb33o.o223o....o322o.o33bb3o.
+.o3333o...o23o....o32o...o3333o.
+..oooo....o23o....o32o....oooo..
+........ooo23o....o32ooo........
+.......o2aa23o....o32aa2o.......
+.......o3333o......o3333o.......
+........oooP........oooo........
diff --git a/parts_pl_src/body/pl_jelly_d.txt b/parts_pl_src/body/pl_jelly_d.txt
new file mode 100644
index 0000000..94f8d7b
--- /dev/null
+++ b/parts_pl_src/body/pl_jelly_d.txt
@@ -0,0 +1,63 @@
+# pl_jelly_d: from pixellab_src/pl_jelly_d/base.png (variant of pl_jelly) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 34)
+# head_top at (31, 4)
+# back at (31, 33)
+# tail at (47, 51)
+..................oo^oooo.................
+................oo2222222o................
+...............o2111111112o...............
+..............o211111111122o..............
+..............o211111111122o..............
+.............o22111111111223o.............
+............oo22111111111233co............
+............obaoooooooooooaabo............
+............oobaaaaaaaaaaaaboo............
+............o3oooccccccccooo3o............
+............o2211222222222222o............
+............o22211111112222223o...........
+...........oo32111111111222333bo..........
+...........obbooooooooooooobbbbo..........
+...........obbaaaaaaaaaaaaabbbbo..........
+...........oobbbbbbbbbbbabbbbooo..........
+...........o33ooooooooooooooo33o..........
+...........o3221122222222222223o..........
+...........o3221111111112222223o..........
+..........oo3211111111111222222oo.........
+.........oo33211111111111222222obo........
+.........obboo111111111112222ooabo........
+.........obbaaoooooooooooooooaaabo........
+.........oobbbaaaaaaaaaaaaaaaabboo........
+.........o3oobbbbbbbbbbbbbabboooo.........
+.........o222oooooooooooooooo322o.........
+........o222111222222222222233323o........
+.......o22211ooo1111111112ooo3333o........
+.......o2221occoo11111111occoo3333o.......
+......oo221ocwcooo11B111ocwcooo333o.......
+.....ooo221owcccco211A12owcccco3333o......
+.....obbo22occcaco211222occcaco32oobo.....
+.....obaaoooocaaco111111occaacoooaabo.....
+.....oocbaaaaoooooooooooooooooaaabbbo.....
+.....o3obbbbaaaaaaaaaaaaaaaaaaabbbooo.....
+....oc3333obbbbbbbbbbbbbbbaacccooo33co....
+..oocbcc1bb333cccccccccccccc333bb2ccbcoo..
+.oaaaacccbbb22233333333333322bbbbccbbaaao.
+ocaaaaacccbbbbc3cacbbbbcbc3cbbbccccbaaaaco
+oboaaabooaaaccooaaabcccbaaoobbaaaoobaaaobo
+obbobboaaaaacooaaaaaccbaaaaoobaaaaaobbobbo
+.oooaobooaaabobooaaabbaaaoobobaaaooboaooo.
+...oobboooabbobo3oaabbaao3obobbaooobboo...
+....oooo.ooabbao33oaaaao33oabbaoo.oooo....
+..........ooaaoo223oaao322ooaaoo..........
+.....oo..o3ooooo223oooo322ooooo3o..oo.....
+.....o3oo3o333o322bo..ob223o333o3oo3o.....
+.....o3333o3bo21223o..o32212ob3o3333T.....
+......o33oo3oo12a3o....o3a21oo3oo33o......
+.......ooo23oo22ao......oa21oo32ooo.......
+......o3bb33o.o222o....o222o.o33bb3o......
+......o3333o...o22o....o21o...o3333o......
+.......oooo....o12o....o22o....oooo.......
+.............ooo22o....o22ooo.............
+............o2aa23o....o32aa2o............
+............o3223o......o3223o............
+.............oooP........oooo.............
diff --git a/parts_pl_src/body/pl_jerboa.txt b/parts_pl_src/body/pl_jerboa.txt
new file mode 100644
index 0000000..35633e3
--- /dev/null
+++ b/parts_pl_src/body/pl_jerboa.txt
@@ -0,0 +1,46 @@
+# pl_jerboa: from pixellab_src/pl_jerboa/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 39)
+# head_top at (31, 26) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (37, 50) (from part/probe)
+...oooooo............ooooo...
+..o333212o..........o21333o..
+.o3ccco212o........o113ccc3o.
+o3ccccco212o......o12occccc3o
+o3ccbbcco22o.....o32occbbcc3o
+o3ccbbbcco23oo^o.o33ccbbbcc3o
+o3bbbbbbco33o222oo3ocbbbbbb3o
+o3baabbccooo21222oooccbbaab3o
+.o3aaabcco3o1112233occbaaa3o.
+.o3aaabco32o21222233ocbaaa3o.
+..o3aabco322o2223222ocaaa3o..
+...o3333o3222o232222o3333o...
+....oooo33oo22o22oo23oooo....
+.......o3o1o22222o1o3o.......
+......o33o11o222o11o33o......
+......o32owoo222oowo23o......
+......o3aaoo2aaa2ooaa3o......
+......o33222aoaoa22233o......
+.......o3332aaAaa2333o.......
+........oo333obo333oo........
+.........oooooBooooo.........
+........o33o33333o33o........
+.......o22oo23333oo22o.......
+......obo22o31133o32obo......
+.......ob2o3o333o3o2bo.......
+........oo332ooo233oo...o....
+........o3o3222223o3o..oo....
+........o3o3322233o2o..oo....
+.........o3o33333o2oo.o3o....
+..........o3ooooo32oTo33o....
+..........o23o..o33o333o.....
+..........o23o..o33oooo......
+...........o3o..o3o..........
+...........o3o..o3o..........
+...........o33oo33o..........
+.....oooooo333oo333oooooo....
+...oo12c222233oo332222c21oo..
+..oo22c22233oo..oo33222c22oo.
+..o23o2233oo......oo3322o33o.
+...ooooooP..........ooooooo..
diff --git a/parts_pl_src/body/pl_jerboa_b.txt b/parts_pl_src/body/pl_jerboa_b.txt
new file mode 100644
index 0000000..9da3fa2
--- /dev/null
+++ b/parts_pl_src/body/pl_jerboa_b.txt
@@ -0,0 +1,47 @@
+# pl_jerboa_b: from pixellab_src/pl_jerboa_b/base.png (variant of pl_jerboa) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 40)
+# head_top at (31, 25)
+# back at (31, 41)
+# tail at (47, 50)
+....oooooo............ooooo.....
+...o333212o..........o21333o....
+..o3ccco212o........o113ccc3o...
+.o3ccccco212o......o12occccc3o..
+.o3ccbbcco22o.....o32occbbcc3o..
+.o3ccbbbcco23oo^o.o33ccbbbcc3o..
+.o3bbbbbbco33o222oo3ocbbbbbb3o..
+.o3baabbccooo212223ooccbbaab3o..
+..o3aaabcco3o1112233occbaaa3o...
+..o3aaabco32o21222223ocbaaa3o...
+...o3aabco222o2223222ocbaa3o....
+....o3333o2oo2o232oo2o3333o.....
+.....oooo3o1o22322o1o3oooo......
+.......o33o11o222o11o23o........
+.......o32o1oo222oo1o223o.......
+.......o3aaoo2aaa2ooaa23o.......
+.......o32222aoaoa222223o.......
+......oo33222aaoaa222233oo......
+.....oc3o33222obo222333o3co.....
+....o22c3o333222222333o3c32o....
+...oc32323ooo33A333ooo3332aco...
+..o22ao322333ooBooo332223oc22o..
+.oc223o222223333333322222o322co.
+.o2a2o22212222223332222222o2b2o.
+oc22o3222122222222222222223o22bo
+o2a3o3221222222222222222223o3a2o
+o22o332122222222222222222233o22o
+o22o332122222222222222222233o22o
+o22o332222222222222222222233o22o
+o23o332222222222222222222233o32o
+o33o333222222222222222222333o33T
+.ooo333322222222222222223333ooo.
+..ooo3333222222222222223333o....
+..o32o33333222222222233333o.....
+...o33o333333333333333333o......
+....oooo3333333333333333o.......
+........ooooooooooooooooo.......
+........o333o.......o333o.......
+......oo2233o.......o3221o......
+.....o222333o.......o33222o.....
+......oooooP.........ooooo......
diff --git a/parts_pl_src/body/pl_jerboa_c.txt b/parts_pl_src/body/pl_jerboa_c.txt
new file mode 100644
index 0000000..08dbe5b
--- /dev/null
+++ b/parts_pl_src/body/pl_jerboa_c.txt
@@ -0,0 +1,58 @@
+# pl_jerboa_c: from pixellab_src/pl_jerboa_c/base.png (variant of pl_jerboa) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 36)
+# head_top at (31, 25)
+# back at (31, 41)
+# tail at (41, 50)
+o...........................o
+oo.........................oo
+o3o.......................o3o
+o33o.....................o23o
+o333o....................o23o
+.o33o...................o223o
+.o3c1o.................o11c3o
+.o3c12o................o11co.
+.o3c31o...............o11oco.
+..occ11o.............o111cco.
+..ocbo11o............o11occo.
+..ocbco11o..........o11obbco.
+..ocbbo11o.........o111obao..
+..ocabbo11o........o11obbao..
+...oaabo313o......o313cbaao..
+...o3abbo13o......o31obaa3o..
+....oaabo33o.o^oo.o33obaao...
+....o3abc33oo2222o33ocbao....
+.....o3bco3321111133occ3o....
+......o3co3211111113oc3o.....
+.......o33311111111333o......
+........o311111111112o.......
+.......o32111111111123o......
+.......o3oo11111111oo3o......
+.......o3o1o311113o1o3o......
+.......o3o1oo1111oo1o2o......
+......o11owoo2112ocwo11o.....
+......oa11oc321A23oo11bo.....
+......o11b1132112311ab1o.....
+......obb1133211231113bo.....
+.......o3333o2112o333bo......
+........ooooo2113ooooo.......
+..........o33oB1o33o.........
+.........o333o11o333o........
+........o23o1o33o3o33o.......
+........o23o11oo31o31o.......
+.......o12o3113311o31o.......
+.......o13o21111113311o......
+......o113o31111113311o.o....
+......o113o33111133311ooo....
+......o13333333333o111o3o....
+......o33oo23oooo3o2o3o3T....
+.......oo.o23o..o32ooo3o.....
+..........o23o..o22oooo......
+..........o22o..o2o..........
+...........o2o..o2o..........
+...........o33oo32o..........
+.....oooooo333oo333oooooo....
+...oo12c111133oo331111c21oo..
+..oo12c11133oo..oo33111c21oo.
+..o23o1133oo......oo3322o32o.
+...ooooooP..........ooooooo..
diff --git a/parts_pl_src/body/pl_jerboa_d.txt b/parts_pl_src/body/pl_jerboa_d.txt
new file mode 100644
index 0000000..0c8f97f
--- /dev/null
+++ b/parts_pl_src/body/pl_jerboa_d.txt
@@ -0,0 +1,55 @@
+# pl_jerboa_d: from pixellab_src/pl_jerboa_d/base.png (variant of pl_jerboa) (pixellab_library.py extract)
+# pivot at (30, 59)
+# aura at (31, 31)
+# head_top at (31, 18)
+# back at (31, 41)
+# tail at (41, 50)
+....ooooooooo...................oooooooo....
+...o333332111o.................o21133333o...
+...o333332111o.................o11133333o...
+.oo3ccccco2212oo.............o21113ccccc3oo.
+o33cccccccoo1122o...........o212ooccccccc33o
+o33ccccccccco111o..........o322oocccccccc33o
+o33ccccccccco111o..........o322oocccccccc33o
+o33cccbbbbccco223oooo^oooooo22occcbbbbccc33o
+o33cccbbbbccco333o11111111oo33occcbbbbccc33o
+o33cbbbbbbbcco333o11111111oo33occbbbbbbbc33o
+o33caaabbbcccooooo111111113oooocccbbbaaac33o
+o33caaabbbccco333o111111113333occcbbbaaac33o
+.oo3aaaaabccco322o111111111113occcbbaaaa3oo.
+.oo3aaaaabco33311o21111111111333ocbbaaaa3oo.
+.oo3aaaaabco321111oo111111111223ocbbaaaa3oo.
+...o33aaabco321111oo111111111223ocbbaa33o...
+....oo33333o32111111o11111111223o33333oo....
+....oo33333o32111111o11111111223o33333oo....
+......ooooo332oooo111o1111oooo233ooooo......
+..........o33o1ooo11111111ooo1o33o..........
+..........o33o1wooo11A111owoo1o33o..........
+.........o333o1oooo111111oooo1o333o.........
+.........o322owoooo111111oooowo113o.........
+.........o322owcoao111111ocobwo113o.........
+.........o3aaaocaa11aaaa11aaboaaa3o.........
+.........o33331111aaoaaoaa11113333o.........
+.........o33211111aaoaabaa11111233o.........
+..........o3331111aoaaaaoa1111233o..........
+..........o3333111aaooooaa1111333o..........
+...........oo333333311111333333oo...........
+.............ooo33333B333333ooo.............
+................oooooooooooo................
+................o3o33333333oo...............
+...............o33o333333333o...............
+..............o22o32222222o33o..............
+.............o123o21111112o333o.............
+.............o12o3211111123o31o.............
+............o113o3211111123o311o............
+............o113o3211111123o311o............
+.......oo...o33ooo33111113ooo32T............
+.......oo....oooo233322233oo.oo.............
+.......o3oo..oo3o23o3333331o................
+........o31oo333o223oooo311o................
+........oo3323oooo23o..o31oo................
+..........ooooo.oo33o..o33oo................
+................o333o..o333o................
+...............o1113o..o3111o...............
+..............o23113o..o32132o..............
+..............ooooooP..ooooooo..............
diff --git a/parts_pl_src/body/pl_kasa.txt b/parts_pl_src/body/pl_kasa.txt
new file mode 100644
index 0000000..9c9a2a8
--- /dev/null
+++ b/parts_pl_src/body/pl_kasa.txt
@@ -0,0 +1,47 @@
+# pl_kasa: from pixellab_src/pl_kasa/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 31) (from part/probe)
+# tail at (46, 48) (from part/probe)
+....................ooo...................
+...................oaabo..................
+...................oaabo..................
+...................obbbo..................
+.................oocbbccoo................
+...............oobcccccccboo..............
+.............ooaccaccacabcb2oo............
+...........oo1a3cac22a22ac2cb2oo..........
+.........oo1ac3ca1yy^ayy1ac23b22o.........
+........o21b22ca1yyyyayyy1bc22c22o........
+.......o21b11aa1yyyyyayyyy1bc22c22o.......
+......o21b111b2yyyooBoooyyy1c222c22o......
+.....o21a111acyyyo111111oyyybc222c22o.....
+....o21a111abyyyo1111ww11oyyybc222c22o....
+....o2a1112b1yyo11wooow11yoyy1c2222c2o....
+...o2a1111bcyyyo11oooooo1yoyyybc2222c2o...
+...o2c1112cyyyyo11ooooooyyoyyy1c2222c2o...
+..o2c2111bcyyyyo11o3oo3oyyoyyyybc2222c2o..
+.o2c22y12b2ybyy1o1yo22oyyo1yyby1c22223c2o.
+ooc32222bcyybbyy1oyyyyyyo11ybby1cc22233coo
+obc32222b2oyyyyyy1oooAoo11yyyy1o1c22233cbo
+.o33223bbyooooyyyy1111111yyyoooo1cc22333o.
+..o3323b2yyoooooyyyyyayyyyoooooo11c2333o..
+...o33cc2yyoooowoooooooooo2woooyy1cc33o...
+....oocc2yyyooooooooooooooooooyy11ccoo....
+.....ooo2yyyyooooooccbbcccoooyy111ooo.....
+.....o1yoo2yyyyooocbbaabcbcoyy11ooy1o.....
+.....o12yyo12yyy11ooocbabcbc111o1121o.....
+......o2yy11o22yyyyyy2cbabbbc3o1yy2To.....
+......oo2222ooooo111111cbabaoo1yy22o......
+........oooo.....ooooooocaaab.o222o.......
+...................o33o.cbaabc.ooo........
+...................o11o.ocaabo............
+...................oy1o..cbbbo............
+...................oy1o...ccc.............
+................ooooy1o...................
+...............ozzzyo1oooooo..............
+..............ooooocyooyyzzo..............
+..............ocoooocozzzzzo..............
+..............oyyyyzzzccooo...............
+...............oooooPo....................
diff --git a/parts_pl_src/body/pl_kasa_b.txt b/parts_pl_src/body/pl_kasa_b.txt
new file mode 100644
index 0000000..34c13a7
--- /dev/null
+++ b/parts_pl_src/body/pl_kasa_b.txt
@@ -0,0 +1,52 @@
+# pl_kasa_b: from pixellab_src/pl_kasa_b/base.png (variant of pl_kasa) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 37)
+# head_top at (31, 15)
+# back at (31, 31)
+# tail at (47, 48)
+.....................^oo....................
+....................oaaco...................
+....................oaaco...................
+..................ooobbcooo.................
+...............ooo22ccccc33ooo..............
+............oobbyyycc222cc3cccoo............
+...........obabb11ac2yyy2cc2ccc3oo..........
+..........o2bbb11bcyyyyyyacc111333o.........
+........oo2y1111bcyyyyyyyy2c111113coo.......
+.......o22y1111aayyyybbbyyy2c11111ccco......
+......o2yy11111cyyyybabbbyyycc1111ccco......
+......obb11111bcyyyybbbbbyyyycc1111ccco.....
+.....oaaab1111cyyyyybbbbbyyyy2c11111333o....
+.....oaabb111acyyyyyybbbyyyyyycc1111133o....
+....oaabbb111cyyyyyyyyyyyyyyyy2c111bbb33o...
+...o2ybbb111b2yyyyyyyyyyyyyyyyyc11babbc3o...
+...o2y111111cyooyyyyyByyyyyyyoocc1bbbbb33o..
+..o1y111111a2yooooyyyyyyyyyoooo2c1bbbbb33o..
+..o1y111111cyyyoooooy2y2yoooooyyc11bbb1333o.
+.o111111111cyyo11yooooyoooo1yoyy2c11111133o.
+.o1bbb1111b2yyo111ooyoyo1oo1yoyyyc11111133o.
+.obabbb111cyyyo11111yoyo1111yoyyyc111111ccco
+.obbbbb111cyyyyoyyyyoyAyoyyyo2yyyc11111bbcco
+o1bbbbb113cyyaayoooo2yyy2ooo2yaayc31111bccco
+o11bbb111bcyyaayyyyyyyyyyyyyyyaay2c1111cccco
+o33111113c2yyyyyyyyy2ooo2yyyyyyyy2c11113ccco
+o33333313c2yyyyyyyyooooooooyyyyyy2c11133333o
+o33333333c2yyyyyyyooyyyyyyooyyyyy2c33333333o
+o3coooo33c2yyyyyoo2yy222yyyooyyyy2c33ooooo3o
+oco..o2ooc2yyyyyoyyyyyyyyyyyoyyy22cco22o..oo
+oo....o2oc22yyyyyyyyyyyyyyyyyyy222co222o...o
+......o22o222yyyyyyyyyyyyyyyyy2222o222o.....
+......o222o222yyyyyyyyyyyyyyy2222o2yy2o.....
+.......o222oo2222yyyyyyyyy222223o2yyyT......
+.......o2y22ooo22222222222222oooo2yy2o......
+........oyy2o..oooooooooooooo...o222o.......
+........oyyy2o......o33o.........ooo........
+........oyy22o......o22o....................
+........o2y2o.......oy2o....................
+.........ooo........oy2o....................
+.................ooooy2o....................
+................ozzzyo2oooooo...............
+...............ooooocyooyyzzo...............
+...............ocoooocozzzzzo...............
+...............oyyyyzzzccooo................
+................oooooPo.....................
diff --git a/parts_pl_src/body/pl_kasa_c.txt b/parts_pl_src/body/pl_kasa_c.txt
new file mode 100644
index 0000000..5cfdb1e
--- /dev/null
+++ b/parts_pl_src/body/pl_kasa_c.txt
@@ -0,0 +1,47 @@
+# pl_kasa_c: from pixellab_src/pl_kasa_c/base.png (variant of pl_kasa) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (31, 20)
+# back at (31, 31)
+# tail at (47, 48)
+....................^oo...................
+...................oaaao..................
+...................oaaao..................
+...................oaabo..................
+.................oocaabcoo................
+...............oo33c3b3b33oo..............
+.............oo113b3ya33b333oo............
+...........ooyyy1a33yayy1b3333oo..........
+.........ooyyyy1a3yyyayyaab3o333o.........
+........o3yooy1a21yyyayyyaac33331o........
+.......o3yyooyb111yyyayyyaaab33yooo.......
+......oooyy11ayyyyooBoooyycac23yoooo......
+.....o1oooy1a3yyyo111111oyya3c3yooooo.....
+....oyooooy1ayyyo1111ww11oyyyb33oooo3o....
+....oyooooyayyyo11wooow11yoyy1b31ooo1o....
+...o1yoooyb3yyyo11oooooo1yoyyy3b3y3y33o...
+...o11y3y3byyyyo11ooooooyyoyyy1b33y3333o..
+..o3c1111b3yyyyo11o2oo3oyyoyycyac333333o..
+.o33ccy12byyccy1oyyo33oyyo1yccy1c333cc33o.
+o23cccc1bbyyccyy1oyyyyyyo11yccy1cc33cc332o
+o23cc333b3oyyycyy1oooAoo11ycyy1o1b3333322o
+o223333b2yooooycyy111c111yoyoooo1c33332o2o
+o2o2233b3yyoooooyyyyyayyyyoooooo11b332oo2o
+o2oo223c3yyoooowoooooooooo2woooy11c32oo.o.
+.o..oo3c33yyooooooooooooooooooycc1bco...o.
+.....ooo3babyoooooobbbabbcoooyyaooooo.....
+.....o1yooob2yyooobaaaaabacoycaaooy1o.....
+.....o13cyoccyy311ooocaabcac11coyc31o.....
+......o3ycyoo33oyyyyy3caaccac2o1cy3oT.....
+......oo3333ooooo111111caaccoo1yy33o......
+........oooo...o.ooooooobaacc.o333o.......
+...............o...o22o.caaaco.ooo........
+...................oy1o..baaao............
+...................oc1o..caaa.............
+...................oyco...ccc.............
+................ooooy1o...................
+...............ozzzyo1oooooo..............
+..............ooooocyooyycco..............
+..............ocoooocozzzzzo..............
+..............oyyyyzzzccooo...............
+...............oooooPo....................
diff --git a/parts_pl_src/body/pl_kasa_d.txt b/parts_pl_src/body/pl_kasa_d.txt
new file mode 100644
index 0000000..2ce872a
--- /dev/null
+++ b/parts_pl_src/body/pl_kasa_d.txt
@@ -0,0 +1,57 @@
+# pl_kasa_d: from pixellab_src/pl_kasa_d/base.png (variant of pl_kasa) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 34)
+# head_top at (31, 10)
+# back at (31, 31)
+# tail at (47, 48)
+...........................^oo..........................
+..........................oaabo.........................
+..........................oaabo.........................
+..........................obbbo.........................
+........................oocbbbcoo.......................
+......................oocccccccccoo.....................
+...................oooaccaccaccbcccoo...................
+.................ooyab3cac22a22bc3cc2ooo................
+..............oooyycc3ca2yyyayy1bb22c222o...............
+............oo21yac22ca2yyyyayyy1bc223c22ooo............
+...........o22yaa223aa1yyyyyayyyy1bb222cc222o...........
+..........o2yya1111aa2yyyyyyayyyyy1bb2222c222o..........
+.........o2yya1111ab2yyyyyyyayyyyyy1bc2222c222o.........
+.......oo2yya11111bbyyyyooooooooyyyy1c22222cc22oo.......
+......o22yya1111aacyyyyo11111111oyyyybbb2222cc222o......
+......o2yaa11111acyyyyo11111www11oyyy1bc22222c222o......
+.....o2yya11111ab2yyyo111woooow11yoyyy1c222222cc22o.....
+....o22ya111112bbyyyyo11oooooooo1yoyyyybb2222223c22o....
+....o2yb111111bc2yyyyo11oooooooo1yoyyyy1bc222222c22o....
+...o22ac111112bcyyyyyo11ooooooooyyoyyyyybc2222223c22o...
+...o2ac211111bcyyyyyyo11o33oooooyyoyyyyy1bc222222c22o...
+..o2bc221y123bcyyaayyyoyyooB2ooyyo1yyaayy1c2222223cc2o..
+.o32c22222233c2yyaaayy1oyyyyyyyyo11yaaayyybc2222233c22o.
+oo3c32222223bcyyyyaayyy1oyyyyyyo11yyyaayyybc22222333ccoo
+occc32222223b2yyyyyyyyyy1oooAoo11yyyyyyyyy1cc2222333ccco
+occc322222bbbyyyyyyyyyyyy111b111yyyyyyyyyyyccc2223333cco
+.o33332223bb2yyyyoyyyyyyyyyyayyyyyyyyyyoyyy1cc23333333o.
+..oo333223cc1yyy1oooyyyyyyyyayyyyyyyyoooyyy1ccc333333oo.
+....o3333bcc1yy11ooooooyyyyyayyyyyoooooo1yy1ccc33333o...
+.....oo33bcc11111ooo11ooooooooooooo11ooo1111ccc333oo....
+.......oooooo1oooooowwo11o11o11o11ow1ooo1131ccoooo......
+.............oo1yyooooowwowwowwow1oooooyy13ooo..........
+..............o1yyyooooooowwowwooooooooyy1o.............
+..............ooyyyo11ooooooooooooo11oyy1ooo............
+.............oyo1yyyo1owwowwowwow1o1oyy11oyo............
+............oyyoo2yyyobwwowwowwow1boyy11oyyyo...........
+............oyyyyo11yyooobbbbbacccac111o11yyo...........
+.............o2yy1o2yyyyyooooobabbac13o1yy2oo...........
+.............oo2222oo11yyyyyyycbababoo1yyy2T............
+...............oooo..ooo1111111caaaa..o222o.............
+........................ooooooocbaaac..ooo..............
+..........................o33o.ocaabo...................
+..........................o11o..cbbbo...................
+..........................oy1o...ccc....................
+..........................oy1o..........................
+.......................ooooy1o..........................
+......................ozzzyo1oooooo.....................
+.....................ooooocyooyyzzo.....................
+.....................ocoooocozzzzzo.....................
+.....................oyyyyzzzccooo......................
+......................oooooPo...........................
diff --git a/parts_pl_src/body/pl_kindle.txt b/parts_pl_src/body/pl_kindle.txt
new file mode 100644
index 0000000..7de0684
--- /dev/null
+++ b/parts_pl_src/body/pl_kindle.txt
@@ -0,0 +1,39 @@
+# pl_kindle: from pixellab_src/pl_kindle/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 45)
+# head_top at (27, 36) (from part/probe)
+# back at (39, 35) (from part/probe)
+# tail at (51, 39) (from part/probe)
+............................ooo...........
+...........................oo22o..........
+...........................o22oo..........
+..........................o22ooooo..oo....
+............o...........ooo22oo222o212o...
+...........o2o......oooo2222222122112oo...
+...........o22o...oooc22o21111111112oo....
+...........o22oooo2222babo11B1111222oo....
+.........ooo2222^bo21112b311o221212222o...
+.......oo2222o311121111111211ooo2222222o..
+.oooo.o22232332o11111oo1111122oco22222ooo.
+o2112o2321111132o111obbo121222caco2222o2To
+.oooo231112221132o111baco1222oaaaco222ooo.
+...oo2212111121132o211oco22222cabo222ooo..
+...o2312112121211o32211oo222222cco2ooooo..
+...o222oo2111312132o2222o2222ooooooooooo..
+..o222o11o31o3o2122ooo2222o2oooooooooooo..
+..o222owow1o1wwo21322A2oooooooooooooooo...
+..o222oo3w1owowo2122oooooooooooooooocco...
+..o2222ooo1oo3wo2112oooooocooooooooooco...
+...o23131111ooo12112oooooccooooooooooooo..
+...o2311oo111ooo213oooooocoooooooooooo....
+...o221211ooo31311o2oooooooooooooooo3oo...
+....o23112111121132ooooooooooooooooo33o...
+.....o23112222112o3oooo22ooo....ooo3o3oo..
+....ooo231111112o2oooo3112o......o33o3oo..
+....oooo2232223o2ooooo2112o......oo33ooo..
+....o2oooo2o222oooooo2111oo.....ooo33oooo.
+...oo22ooooooooo....o22223o......ooooo....
+..ooo322ooo.........o2112oo...............
+....ooooo..........o21122oo...............
+..................ooo12o22o...............
+....................Pooooo................
diff --git a/parts_pl_src/body/pl_kindle_b.txt b/parts_pl_src/body/pl_kindle_b.txt
new file mode 100644
index 0000000..01e61b3
--- /dev/null
+++ b/parts_pl_src/body/pl_kindle_b.txt
@@ -0,0 +1,49 @@
+# pl_kindle_b: from pixellab_src/pl_kindle_b/base.png (variant of pl_kindle) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (32, 39)
+# head_top at (27, 18)
+# back at (39, 35)
+# tail at (47, 39)
+.............oooo^oooooooooooooo..............
+.........oooo1111111111111111111oooo..........
+.......oo111111333333333333333111111oo........
+......o1111113322222222222222233111111o.......
+......o1111332222233333333222223311111o.......
+......oo3111133322222222222223311111ooo.......
+......oo3ooo1111333333333333o1111233ooo.......
+......oo3oo322333333oo223333oo223233ooo.......
+......oo3oo322o22222oo222222oo223233ooo.......
+......oo33o322o22222oo222322oo223233ooo.......
+......oo33o322o22222oo222322oo223o33oo........
+......ob33o322o2o222o2222322o2222c33oo........
+......obc3o33222o22222222o22o2222co3oo........
+......oac3333222333222222o222222ocbboo........
+......ob33333111111223222o22222ocaaooo........
+......o333311112222111322o22o22obabooo........
+......o333112211112231132222o22ooboooo........
+......o333121111112113113222oB22ocoooo........
+.....o33313ooo2113ooo3211322o2222ooooo........
+.....o3311o2wwo22o2wwo211222o2222o3ooo........
+.....o3311ooowo22ooowo2111322222223ooo........
+.....o3312oo2oo11o2owoA211322222223ooT........
+.....o33112ooo1111ooo21211322222223oooo.......
+.....o332111111111111112113222o222ocooo.......
+......o33111311111111112113222o222ocooo.......
+......o331111oooooo1112112o222o22oobobo.......
+......o3331121111113112113o222oo2obaboo.......
+......o33o312112221112113o2222oo22oaooo.......
+......oo2oo3111111111113o222c2oo22obooo.......
+......oo2ooo33311111333o2222c2oo22ooooo.......
+......oo2oo3ooo33333ooo2222baboo22oooooo......
+.....oo33oo3122ooooo2222211baboo32oooooo......
+.....o333oo2122222o22222211oaooo322oooooo.....
+....o3333oo21o222oo22oo22111b3oo322oooooo.....
+...oo133ooo21o22ooo22ooo2111c3oo3223ooo33o....
+..oo233ooo31oo22ooo22ooo211133oo3331ooo333o...
+.o3333oooo313322ooo22ooo231133ooo3313ooo33oo..
+o33oooooo113332oooooooooo31133oooo331ooooo33o.
+oooooooo11333oooooooooooo33113ooooo331oooooooo
+......o122o3oooooooooooooo2213oooooo331o...oo.
+.....o322oooooo.......ooooo221o...ooo333o.....
+....o3333oo..............ooo222o.....oooo.....
+....ooooo..................Poooo..............
diff --git a/parts_pl_src/body/pl_kindle_c.txt b/parts_pl_src/body/pl_kindle_c.txt
new file mode 100644
index 0000000..6467d67
--- /dev/null
+++ b/parts_pl_src/body/pl_kindle_c.txt
@@ -0,0 +1,39 @@
+# pl_kindle_c: from pixellab_src/pl_kindle_c/base.png (variant of pl_kindle) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 45)
+# head_top at (27, 35)
+# back at (39, 35)
+# tail at (52, 39)
+............................ooo...........
+...........................oo22o..........
+...........................o22oo..........
+..........................o22ooooo..oo....
+............o...........ooo22ooo22o312o...
+...........o2o.......ooobo22occbo1112oo...
+...........o22o...ooo2oobbao1ocabo11oo....
+...........o22oo^occao11obacB1obabo1oo....
+.........ooo222222ocaabo1oaao11obao222o...
+.......oo2222o31111obaao11oabo11oaao222o..
+.oooo.o22232332o1111obabo1obbo11obao22ooo.
+o2112o2321111132o1111obabo1obbo12caco2o22T
+.oooo231112221132o111ooabo22obo22obco2ooo.
+...oo2212111111132o211obbco2obco2obcoooo..
+...o2311112121111o3221ocbbo2obco2occoooo..
+...o221222211221132o222obbo2obboooccoooo..
+..o2221211111112122ooo2obbo3obcoooccoooo..
+..o222111111111111322A2ocbooobcoooccooo...
+..o222oooo11ooooo122ooooccoooccooocoooo...
+..o222owow11owwwo112ooooccoooccooccoooo...
+...o22aoo1111ooo1112ooooccooccoooccooo....
+...o23aa111111aa1132oooocoooccoocooooo....
+...o221111oo111112o2oooooooocooooooo3oo...
+....o2311obbo111132ooooooooooooooooo33o...
+.....o23111111112o2oooo22ooo....ooooo3oo..
+....ooo231111122o2oooo3112o......oooo3oo..
+....oooo2232223ooooooo2112o......oo33ooo..
+....o2oooo3o222oooooo2111oo.....ooo33oooo.
+...oo22ooooooooo....o22223o......ooooo....
+..ooo322ooo.........o2112oo...............
+....ooooo..........o21122oo...............
+..................ooo12o22o...............
+....................Pooooo................
diff --git a/parts_pl_src/body/pl_kingfisher.txt b/parts_pl_src/body/pl_kingfisher.txt
new file mode 100644
index 0000000..beb865b
--- /dev/null
+++ b/parts_pl_src/body/pl_kingfisher.txt
@@ -0,0 +1,43 @@
+# pl_kingfisher: from pixellab_src/pl_kingfisher/base.png (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (35, 42)
+# head_top at (37, 27) (from part/probe)
+# back at (37, 42) (from part/probe)
+# tail at (48, 54) (from part/probe)
+.....................ooooo............
+..................ooo22222ooo.........
+................oo22222222223o........
+..............oo22221222^22222oo......
+.............o211111212222222223o.....
+.............o2211222222222222223o....
+............o21222122222222222233o....
+...........o2222222222222222222333o...
+...........o2222222222222122223333o...
+..........o322222222222223333333a33o..
+..........oo32222221233333333333333o..
+..........ooo32222233ooooo333333333o..
+..........o1o3333333ooo11o333333333o..
+..........owo3oo3333owo3wo222223333o..
+..........ooocbbco33ooo1woaaaa111a3o..
+..........ooabbbcao23oo1oaaa111111o...
+.........oaabbbbbbb22aaaaaa1111111o...
+.......ooabbbbbbbbboo11111111111aoo...
+.....ooaabbbbbbcoocc11A1B1111121ao....
+....oaabbbbbcoooccca111111111123o.....
+...oabbbbcoooccccc111111112333ooo.....
+..oabbboooccccooo111111133333333o.....
+.oaboooccccoooooaaaaa13333222233oo....
+ocooccccooo..o3111111133322222233o....
+oooooooo....o32111111123o222222223o...
+............o31111111112o222222212o...
+............o31111111111o22222123bco..
+............oo11111111112o21222123bo..
+.............o21111111112o32123ab33o..
+.............o311111111112o32a333b3o..
+..............o211111111111oo3b333bT..
+...............o2211111111113ooooooo..
+................oo33111111122223ooo3o.
+................oobbooooo2222ooo33322o
+...............ocaoao...ooboo...ooooo.
+................oooo...ocaobo.........
+........................Pooo..........
diff --git a/parts_pl_src/body/pl_kingfisher_b.txt b/parts_pl_src/body/pl_kingfisher_b.txt
new file mode 100644
index 0000000..22d225a
--- /dev/null
+++ b/parts_pl_src/body/pl_kingfisher_b.txt
@@ -0,0 +1,43 @@
+# pl_kingfisher_b: from pixellab_src/pl_kingfisher_b/base.png (variant of pl_kingfisher) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (35, 42)
+# head_top at (37, 24)
+# back at (37, 42)
+# tail at (48, 54)
+......................ooo^o.............
+...................ooo22222ooo..........
+.................oo22222222223o.........
+...............oo22221222222222oo.......
+..............o211111212222222223o......
+..............o2211222222222222223o.....
+.............o21222122222222222233o.....
+............o2222222222222222222333o....
+............o2222222222222122223333o....
+...........o322222222222223333333b33o...
+...........oo32222221233333333333333o...
+...........ooo32222233ooooo333333333o...
+...........o1o3333333ooo11o333333333o...
+...........owo3ooo333owo3wo222222333o...
+..........oooooacco33ooo2wobbb122333o...
+......ooooaaaaacccao23oo1obbb1122333o...
+...oooaaaaaccccccccco1111bbb11122333o...
+..oaaaccccccccccoooco111111111223333o...
+.oaccooooooooooooccoo11A1B1111333333o...
+ooooocccccccccccooob11111112233333233o..
+ooooooooooooooooaaa111112333333333333o..
+...........oo3aaaaaaaa1333332222233333o.
+...........o3311111111111112222222o333o.
+..........o331111111111111322222222o333o
+..........o3211b111111b111o22222222o333o
+..........o32b11111b111111o222212223o33o
+..........o321111111b11111o22222123bo33o
+..........o331111b111111111o2122ac33o3o.
+...........o31b111111111111o32a333b3o3o.
+...........o33111111b1111111oo3b333coo..
+............o33a1111111a11111oooooooT...
+.............o33a111111111111122333o....
+..............ooo3311122222233333oo.....
+................oooooooooo3333ooo.......
+................ocbcco...oooco..........
+.................oooo...ocbbbo..........
+.........................Pooo...........
diff --git a/parts_pl_src/body/pl_kingfisher_c.txt b/parts_pl_src/body/pl_kingfisher_c.txt
new file mode 100644
index 0000000..554c888
--- /dev/null
+++ b/parts_pl_src/body/pl_kingfisher_c.txt
@@ -0,0 +1,62 @@
+# pl_kingfisher_c: from pixellab_src/pl_kingfisher_c/base.png (variant of pl_kingfisher) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (34, 32)
+# head_top at (37, 5)
+# back at (37, 42)
+# tail at (48, 54)
+..................o.....o^oo...........
+.................o2o..oo223o...........
+................o12o.o2123o..ooo.......
+................o223o21223ooo223oo.....
+...............o2223o12223o122333o.....
+..............o3222322222222233oo......
+..............o222222222222233ooooo....
+..............o22222222222222222223o...
+.............o3222221222222222223333o..
+.............o2111112122222222223oooo..
+............o222112222222222222233o....
+...........o32122212222222222223333o...
+...........o222222222222212222333333o..
+..........o32222222222222233333333o3o..
+..........oo32222221233333333333333oo..
+..........ooo32222233ooooo3333333333...
+..........o1o3333333ooo11o3333333333o..
+..........owo3oo3333owo3wo33333333o3o..
+..........ooocbbco33ooo2woaaa113333oo..
+..........ooabbbcao23oo1oaaa1111333o...
+.........oaabbbbbbb22aaaaaa11111133o...
+.......ooabbbbbbbbboo11111111111133o...
+.....ooaabbbbbbcoocc111111111111333o...
+....oaabbbbbcoooccca111111111111333o...
+...oabbbbcoooccccca11111111111133oo....
+..oabbcoooccccooo1111111111112333oo....
+.oaboooccccoooo1111111111111333o3o.....
+ocooccccooo....o111111A33333333oo......
+oooooooo.......o31111113333333oo.......
+...............o11111112211133o........
+...............o11111111111133o........
+..............o111111111111133o........
+..............o111111111111133o........
+.............o11111111111111133o.......
+.............o11111111111111333o.......
+............o111111111111132222o.......
+............o1111111111113222223o......
+...........o3111111111111B2222223o.....
+...........o311111111111132222222o.....
+...........o3111111111111322222223o....
+..........o23111111111111322222222o....
+..........o2o1111111111112o22222213o...
+..........o1o1111111111111o2222122bo...
+..........o3obbb1111111bbco3122212bco..
+..........o3obbbbbbbbbbbbcco2123ab33o..
+...........o3obbbbbbbbbbccco32b33333o..
+...........o3obbbbbbbbbbcccco33333b3o..
+............oo111111111111122oo3333co..
+.............oo1111111111111222oooooo..
+..............oo21111111111112222233T..
+................o21111111111111222333o.
+.................oo3311111111333o33333o
+.................ooccooooo2223oo.ooo33o
+................ocaoao...oocoo......oo.
+.................oooo...ocaobo.........
+.........................Pooo..........
diff --git a/parts_pl_src/body/pl_kingfisher_d.txt b/parts_pl_src/body/pl_kingfisher_d.txt
new file mode 100644
index 0000000..e78bfbe
--- /dev/null
+++ b/parts_pl_src/body/pl_kingfisher_d.txt
@@ -0,0 +1,49 @@
+# pl_kingfisher_d: from pixellab_src/pl_kingfisher_d/base.png (variant of pl_kingfisher) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (35, 39)
+# head_top at (37, 18)
+# back at (37, 42)
+# tail at (50, 54)
+....................oooo^oo...............
+..............oo..oo2222222o..............
+.............o223o2122222233oooo..........
+...........oo222321122a223332222ooo.......
+..........oo2223212222a233112222222o......
+.........oo222232122222321122222223o......
+........o221a223112222221112222aa23oo.....
+........o221a2221aa2222211aa22222232oo....
+........o22112221a22222111a22222332222o...
+........o22212221a222221122223322222223o..
+......o22322123222222221222233111123323o..
+......o2a3222132222222222222211122b3333o..
+......o2a23222322222322222221222bb33333o..
+.....o322223323322223233322222233332333o..
+.....o3322333323222233322332222222222233o.
+....o22333322233333332222233321111222233o.
+....o2222322222333332222222332222aa22aa3o.
+....o2a223222232222222222222332222222233o.
+....o2a233oooo32222232222222332222223333o.
+....o33233111oooo222oooooo2233233333b333o.
+.....o3233awocbbco22o1111oaa33322333333o..
+.....o3333ooabbbcao222Awwaaa33222223333o..
+......o33oaabbbbbbbo2222aaa23332222aa33o..
+......oooabbbbbbbbcoo2222222333322233333o.
+.....ooaabbbbbbcoocco222B223333333333b33o.
+....oaabbbbbcoooccco1222233333333322333aao
+...oabbbbcooocccco111133333333333a2223333o
+..oabbcoooccccooo1111133333222233322a233o.
+.oaboooccccooo3333333333332222223332b233o.
+ocooccccooo3333333333322332222122o323333o.
+oooooooob3333332222332223321221aa2o3333o..
+......o33o333222222222323321222222o333bo..
+.....o333o332aa2221222a23o22a223223o333o..
+.....o333o332a222211222333o32222323o33o...
+.....ob333o332222311222233o332223b3o33o...
+.....o333bo33322232222a2333o33a22bbo3o....
+......o333oo333a333333ab3333o3aa233ooT....
+.......oooo.o3333333333b33333ooa223oo.....
+.............ooo333o33333333333ooooooo....
+................ooooo33o33333ooo3oo33o....
+...............ocaoaooo.ooooo...ooooo.....
+................oooo...ocaobo.............
+........................Pooo..............
diff --git a/parts_pl_src/body/pl_kite.txt b/parts_pl_src/body/pl_kite.txt
new file mode 100644
index 0000000..7434927
--- /dev/null
+++ b/parts_pl_src/body/pl_kite.txt
@@ -0,0 +1,48 @@
+# pl_kite: from pixellab_src/pl_kite/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (30, 40)
+# head_top at (30, 21) (from part/probe)
+# back at (29, 35) (from part/probe)
+# tail at (40, 47) (from part/probe)
+..............oooo...............
+............oo2312oo.............
+..........oo211^1112oo...........
+.........o211113111122oo.........
+.......oo21111a311111122oo.......
+.....oo211ooo11311ooo1a12oo......
+...oo3211o1wwo131oww1o11122oo....
+..o333222owwco333owcwo3333333o...
+..ooo2211o1cbo131ocb1o22223ooo...
+..ozoo2221ooo11311ooo22223oozo...
+..oooooo22aa1113111aa223ooooooo..
+.ooao..oo2221113111222ooo..ocboo.
+ocaco....oo2221311223oooo..ocabco
+.ocoo.....oo2223222oo33oco..occo.
+.ooo.......ooo2323oo323ooo...oo..
+.............oo3ooo2222ooo.......
+..............B2ooo1112oaco......
+..............o2ooo1112ooco......
+..............o1oo2222ocooo......
+............oo1oo21113oboo.......
+......ooooooo1oo11111ooaco.......
+....oo211111333A1112ooooco.......
+...o21121111111112ooaaooo........
+..o1111123oooooooocooao..........
+.o211112oocbobbocbcooooo.........
+.o11112ooobaooaooco22222o........
+o32111ocaobbocboooo222222o.......
+o22223oocooooooo2233222212o......
+o2212oooooo...oo22ooo3212To......
+o2222obaoo...oo23oo.oo3111o......
+o2222occo....o323o..oco212o......
+o32222oooo..oo23oo..oao222o......
+o33223oocao.oo23o...ooo323oo.....
+oo33333ocoo.o23oo....oo32oco.....
+.o333333oooo223o....oao33oaao....
+.oo33332222232oo....oo33ocooo....
+..oo222222223oo....oo33ooco......
+...ooo32223ooo....oo33ocooo......
+....ooooooooo....oo3ooooo........
+....oacooocao...oooooooo.........
+....ocoo.ocbo....ooo.............
+.....oo...oP.....................
diff --git a/parts_pl_src/body/pl_kite_b.txt b/parts_pl_src/body/pl_kite_b.txt
new file mode 100644
index 0000000..e742a6d
--- /dev/null
+++ b/parts_pl_src/body/pl_kite_b.txt
@@ -0,0 +1,50 @@
+# pl_kite_b: from pixellab_src/pl_kite_b/base.png (variant of pl_kite) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (30, 39)
+# head_top at (30, 17)
+# back at (29, 35)
+# tail at (41, 47)
+...............^oo...............
+.............oobbbo..............
+............obb33cboo............
+..........oobc23113bbo...........
+.........obb31131112bboo.........
+.......oobc2111311112cbbo........
+......obbc2111a31111113cboo......
+.....obb31ooo11311ooo1a13bbo.....
+....obb11o1wwo131oww1o1113bbo....
+..oobc222owwco233owcwo33333bbo...
+..oobc311o1cbo131ocb1o2222bboo...
+..ozobb321ooo11311ooo2222bbozo...
+..ooooobc2aa1113111aa223bbooooo..
+.ooao..obc321113111222bbbo.ocboo.
+ocaco...obbc221311223bboo..ocabco
+.ocoo....oobc223222bbooa2o..occo.
+.ooo.......obb3323bbo22c2o...oo..
+............oobccboo222222o......
+..............Bbboo22212c2o......
+...............oo.o2111caco......
+.................o21111caco......
+................o2111122c3o......
+......oooooooooA11111cc22o.......
+....oo11111111111111cacc2o.......
+...o11aa111111111c11cac2o........
+..o1a11a11111111cac11cc3o........
+.o1caa1122bb2bb2cac222oo.........
+.o11aa1222ab2bb22c22oooo.........
+o221112222c22c333ooo2222o........
+o2c2122bc2ooooooo22222aa1o.......
+ocac222b2o.....o3ca222aab1T......
+o2c12222o.....o22cc222aab1o......
+o2222222o....o32222oo311111o.....
+o32c22222o...o2c22o..o31c11o.....
+o3cac222c3ooo2ca2o....ocac2o.....
+o32c22222333222c3o...o3cac2o.....
+.o2222c222222c22o....o32c2oao....
+.oo22cac22c22c23o...o33223ooo....
+..oo2ccc2cac22oo...o3cc33oo......
+...oo3c222c23oo...o33cc33oo......
+....ooooooooo....o333333o........
+....oacooocao...o333oooo.........
+....ocoo.ocbo....ooo.............
+.....oo...oP.....................
diff --git a/parts_pl_src/body/pl_kite_c.txt b/parts_pl_src/body/pl_kite_c.txt
new file mode 100644
index 0000000..8ab84a0
--- /dev/null
+++ b/parts_pl_src/body/pl_kite_c.txt
@@ -0,0 +1,48 @@
+# pl_kite_c: from pixellab_src/pl_kite_c/base.png (variant of pl_kite) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (30, 40)
+# head_top at (30, 19)
+# back at (29, 35)
+# tail at (41, 47)
+..............o^oo...............
+............oo2312oo.............
+..........oo21131112oo...........
+.........o211113111122oo.........
+.......oo21111a311111122oo.......
+.....oo211ooo11311ooo1a12oo......
+...oo3211o1wwo131oww1o11122oo....
+..o333222owwco333owcwo3333333o...
+..ooo3211o1cbo131ocb1o22223ooo...
+..ozoo2221ooo11311ooo22223oozo...
+..oooooo22aa1113111aa223ooooooo..
+.ooao..oo2221113111222oooo.ocboo.
+ocaco....oo2221311223oo2ccoocabco
+.ocoo.....oo3223222oo33122o.occo.
+.ooo.......ooo2323oo323222o..oo..
+.............oo3ooo222333aco.....
+..............B2o.o22232122o.....
+..............o2o.o32131122o.....
+.........ooooo11oo2233311aco.....
+......ooo1221o1o1122131122co.....
+....oo21111211o31113113322o......
+...o21221112111A11131133b2o......
+..o211121111311122222212co.......
+.o1131113111311121111c22oo.......
+.o11311133ca3aa22ca22c2oo........
+.o33311222ca2oa22ca22ooo.........
+o111333222cc3ca33cooo232o........
+o111313cc2oooooooo3223311o.......
+o3113122co.....o3322231113T......
+o331333aoo....o223323311311o.....
+o133223ao.....o2223oobb2111o.....
+o22211222o...o3222o..o22113o.....
+o2221222ccooo2332o...obb331o.....
+o322123312b331133o...o22121o.....
+.o32232112b23322o....ob2122ao....
+.oo2232222b12323o...o22333ooo....
+..oo222222c223oo...obb222co......
+...oo32223c23oo...o223222oo......
+....oooooooooo...ob22332o........
+....oacooocao...o333oooo.........
+....ocoo.ocbo....ooo.............
+.....oo...oP.....................
diff --git a/parts_pl_src/body/pl_kite_d.txt b/parts_pl_src/body/pl_kite_d.txt
new file mode 100644
index 0000000..d58d808
--- /dev/null
+++ b/parts_pl_src/body/pl_kite_d.txt
@@ -0,0 +1,48 @@
+# pl_kite_d: from pixellab_src/pl_kite_d/base.png (variant of pl_kite) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (30, 40)
+# head_top at (30, 19)
+# back at (29, 35)
+# tail at (41, 47)
+..............o^oo...............
+............oo2112oo.............
+..........oo21111112oo...........
+.........o211111111122oo.........
+.......oo211111111111121o........
+.....oo211111111111111122oo......
+...oo3211111131111311111123oo....
+..o33331113333111133331123333o...
+..ooo3331133331111333311333ooo...
+..ozoo3331aa11111111aa1233oozo...
+..oco.oo22aa11133111aa233ooobbo..
+.ocao..oo22111311311122oo..ocbco.
+ocaco....oo2111111113oo3o..ocabco
+.ocoo.....oo31111113oc33o...occo.
+..oo........o321113o33332o...oo..
+.............oo223oo33b22o.......
+..............Booo.o22b22o.......
+...................obbbbbo.......
+..................o22bb22o.......
+.................o211bb22o.......
+......ooooooooooo211ab2b2o.......
+....oo22b11b11cA11bbb222o........
+...o2111b11b11ca11bc222o.........
+..o211aabbbbb1ca112c22o..........
+.o2baa111c22c22c322coooo.........
+.o21aa112c2ooooooooo3322o........
+o21ac1c22oo....o3333ccc22o.......
+o21a111oo.....o322bb22cb1o.......
+o22c112o......o22b33211b11T......
+occcc2o......o32b3oo2111a1o......
+o2c222o......o22bo..o211a12o.....
+o2cc22o.....o22b3o..o221bb2o.....
+o22c222o....o22bo....o22cc2o.....
+o32cc222oooo32b3o....o22c22o.....
+.o23c222c2222bbo....o222c22o.....
+.o32cc22c222bb3o....o22b22o......
+..o333ccc2bb33o....o222c22o......
+...oo333c333oo....o322c22o.......
+....ooooooooo....o322c22o........
+....oacooocao...o333c3oo.........
+....ocoo.ocbo...oooooo...........
+.....oo...oP.....................
diff --git a/parts_pl_src/body/pl_kiwi.txt b/parts_pl_src/body/pl_kiwi.txt
new file mode 100644
index 0000000..84ff6ba
--- /dev/null
+++ b/parts_pl_src/body/pl_kiwi.txt
@@ -0,0 +1,46 @@
+# pl_kiwi: from pixellab_src/pl_kiwi/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (30, 41) (from part/probe)
+................3.o...................
+..............o32o2o1o.3o.............
+...........o2o22212122o223.o..........
+.........2o1o1221211212221o1o.........
+........oo22221121^2112112222o2.......
+.......o1222221111111211211221o.......
+......3222121111111111111121222o......
+.....o222211211131o13111121222223.....
+....32221221111o1o1o1o11211222222o....
+...32222212211o3111213o111221122223...
+...o22222212o31121112113o221222222o...
+..o22211223o2221211211222o3222222223..
+..32222222o222111212111222o222222223..
+.o1222222o22221211B11212222122212222o.
+..o222223222221111111112222o2222223o..
+.32232222o22222211111222222232222233o.
+..o32222o222aa222121222aa22o2222233o..
+.o3332222o2cccb2222222bccc22o2222333o.
+oao33222232c1wo2222222ow1c232222333oao
+.o333322322cwoo22bab22oowc23o2233333o.
+oao33222233c1wa2bTaAb2aw1c3o3222333oao
+.o333333233acccbaazaacccca3323333333o.
+.33o33332o33cbaabz1zbaabc33323333333..
+.3oa333332o33cccaz1zaccc33o2333333a3o.
+..o333333323333caz1zac333333333333oo..
+...oo3333333o333cayac333o3333333333o..
+...o333333333o33cayac33o33333333333o..
+...o33333333333ocazaco333333333333o...
+....oa3333333333caaac33333333333ao....
+....3o3333333333caaac33333333333o3....
+......o3o3333333cbabc33333333o3o......
+.......oo3oa33333cac333333ao3ooo......
+........ooo3o3o33cac333o3o3ooo........
+.........ooooooo3cac3oooooooo.........
+..........obccooocacooooccbo..........
+......oooocbabco.cac..ocbabcoooo......
+.....oaabcbaaaco.cac..ocaaabcbaao.....
+....oacccaabcaao.cac..oaacbaacccao....
+....ooooaccocabo.cbc..obacoccaoooo....
+.......ocoo.oco...P....oco.ooco.......
diff --git a/parts_pl_src/body/pl_kiwi_b.txt b/parts_pl_src/body/pl_kiwi_b.txt
new file mode 100644
index 0000000..808f6a8
--- /dev/null
+++ b/parts_pl_src/body/pl_kiwi_b.txt
@@ -0,0 +1,63 @@
+# pl_kiwi_b: from pixellab_src/pl_kiwi_b/base.png (variant of pl_kiwi) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 31)
+# head_top at (31, 4)
+# back at (31, 34)
+# tail at (43, 41)
+..............oo^oooo.............
+............oo1111112o............
+...........o2211111112o...........
+..........o211211111122o..........
+.........o22111111112122o.........
+.........o2b111c111111b2o.........
+........o221111c111111122o........
+........o2211111111111122o........
+.......o2221b11111111b1222o.......
+.......o221111111b11111112o.......
+.......o221111111111111212o.......
+.......o22b1111oooo11111b2o.......
+......o222111oo1111oo111222o......
+......o12111o21211111o11222o......
+.....o22111o2211112122o11122o.....
+.....o2111o221211121122o1112o.....
+....o2211o22212111121222o1122o....
+...o2211o3222111111112223o1222o...
+...o2222o3222211111222223o1122o...
+..ocb222o32bb22121222bb22o222bco..
+..33222233cccc222222cccc23322223o.
+.o33222333c1wo322223ow1c23o22223o.
+.o322b2333cwoo333333oowc23321b23o.
+.o322b22o3c1wa3cabc3aw1c3o3212223o
+o3322222o3bccccaaaaccccb3o3222223o
+o3322322o33cbaaaxyaaabc33o222b233o
+o33323222o33ccca1yaccc33o3222b233o
+o3b3222223o333ca1Abc333o3222222b3o
+o3b222b2223oo33cayc33oo3222b222b3o
+o333322222233oocaycoo33222222b333o
+o3333322b222333cBac333222b2233333o
+.o333b322222222cbac222222222b333o.
+.o333b33222b222cbac222b22233b333o.
+..o3333332222222ca2222222333333o..
+..o3333b33332223ca22223333b3333o..
+...o33333333b233cb332b33333333o...
+....o3333333b333cc333b3333333o....
+.....ob333333333333333333333T.....
+......o333333333333333333b3o......
+.......oo33b3333333333333oo.......
+........o3333o333333o3333o........
+.........occo.oooooo.occo.........
+.........obco........ocbo.........
+.........obbo........obbo.........
+.........obbo........obbo.........
+.........obbo........obbo.........
+.........oabo........obao.........
+.........oaco........obao.........
+.........oaco........ocao.........
+.........oaco........ocao.........
+........obaco........ocaco........
+........obaao........obbbo........
+.....oobbbaaco......ocbbbbboo.....
+....oaaccyacbao....oabcaaccbao....
+...oacooaacoocao..oacoocbaoocao...
+...ooo.oaco..ooo..ooo..ocao.ooo...
+.......ooP..............ooo.......
diff --git a/parts_pl_src/body/pl_kiwi_c.txt b/parts_pl_src/body/pl_kiwi_c.txt
new file mode 100644
index 0000000..dc486e6
--- /dev/null
+++ b/parts_pl_src/body/pl_kiwi_c.txt
@@ -0,0 +1,59 @@
+# pl_kiwi_c: from pixellab_src/pl_kiwi_c/base.png (variant of pl_kiwi) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 37)
+# head_top at (31, 10)
+# back at (31, 34)
+# tail at (53, 41)
+..........................ooo.................
+........................ocbbo.................
+......................^caaco..................
+.................oo..ocaaco...................
+................oao..oaaao.....co.............
+................cao.oaaaao....cbo.............
+...............caboocaaabo.cccaao.............
+...............cabbobaabbccaaaaco.............
+..............ocaabbaaabccaabbco..............
+..............obaabbaabbacaabcoooo............
+..............obaaabaabbaaabbbbccco...........
+...........oooobbaabaabaaabbbaaaaabo..........
+.........oooaccbbaaaaaaabbbbaabbcccoo.........
+........o22oaaabbbaaaabbbbaaabcc2222oo........
+......ooo222cbaaabbaaabbccaabb22222222oo......
+......o222222ccaabbbaabbcaacabc22222222o......
+......o3222112ccaabbbabcbaccccc221112222o.....
+.....o2222221111cccbbbacaccc222211122222oo....
+...oo2222111211113cccbbccc2231111112112222o...
+...o2222221111113222ccbc222223111111222222o...
+..33322111111113222122b3221122311111112223o...
+..o2222222111132212112212111122311112222222o..
+..o3222111111232211111211111122311111122222o..
+.o223222221113222111111111111222311122222222o.
+o22222221111132222111111111222323111112222222o
+o22222222111332222221111122222222311112222222o
+.o32222222113222bb2221B1222bb222231112222322o.
+oo2232222211322cccb2222222bccc22231111222222o.
+o22322232221322c1wo2222222ow1c223311122233333o
+o33222222221322cwoo22baA22oowc223212222233333o
+.o2332222222233c1wa2baaab2aw1c22322222222333o.
+o22322222222233bccccaayaaccccb223222223222333o
+o333222222222333cbaaby1ybaabc3332222222332333o
+.o333222322222333cccay1yaccc3333222222223333T.
+.o33322222222233333cay1yac333332222222222333o.
+.o3b3322232222233333cayacc33332222223223333bo.
+.o3b3323322222223333cayac3333222222223223333o.
+..o33323223222222233cayac332222222232332333o..
+..o33333233222222222caaac222222222232333333o..
+..o3o333233222322222cbabc22222223323333333o...
+...oo3333333323222222cacc22222322323333333o...
+.....3333333333232222cbc22222232233333333o....
+.....o33b3333332323222cc223232332333333oo.....
+.....o33o3333333323322222332333333333o3o......
+......ooo3333333333323232333333333333oo.......
+........o3o3333333333333333333333333o.........
+.........ooo33o33333333333333333oo3o..........
+...........oooo3333o33333333o33o..o...........
+..........oooobooooo33oo33oooooboooo..........
+.........oabbcbbbbo.oo..oo.obbbbcbbao.........
+........oacccaaccaao......oaaccaacccao........
+........ooooaccocabo......obacoccaoooo........
+...........ocoo.ocP........oco.ooco...........
diff --git a/parts_pl_src/body/pl_kiwi_d.txt b/parts_pl_src/body/pl_kiwi_d.txt
new file mode 100644
index 0000000..e6dbf27
--- /dev/null
+++ b/parts_pl_src/body/pl_kiwi_d.txt
@@ -0,0 +1,48 @@
+# pl_kiwi_d: from pixellab_src/pl_kiwi_d/base.png (variant of pl_kiwi) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (31, 19)
+# back at (31, 34)
+# tail at (50, 41)
+..................o^o..................
+.................obbboo................
+.............oooob2222boooo............
+...........obb33o222222o33bbo..........
+.........obb2222o221222o2222boo........
+........ob222211o211112o222222bo.......
+......ooo2222111o211112o1112222oo......
+.....ob3o3222111o211112o1111223obo.....
+....ob322o222111o211112o111222o32bo....
+....ob222o322111o221112o212223o222bo...
+...ob32212o22112o221112o21222o21222o...
+...o3221113o2222o221112o2222o311223o...
+..ooo322111o3222o221122o2223o11123ooo..
+.ob22o322122o333o221122o333oo1113oo2bo.
+.ob222o222223oooo222222ooooo2233o3122o.
+.o33213oo223o333o22B223o333oo2oo11122bo
+ob3321111ooo33211o3223o11233oo3211122bo
+ob33222213o3222213oooo122223o322112223o
+ob33222222o32aa2223oo122aa23o33222233bo
+.o33333222o3cccb2222222bccc3o33333ooo3o
+.oooooooooo3c1wo3222223ow1c3ooooooo333c
+ob33333322o3cwoo33bAb33oowc33o13333333c
+ob33333332o3c1wa3baaab3aw1c3oo33333333T
+ob33333333o3acccbaazaacccca3oo33333333c
+.o3333333oo33cbaabz1zbaabc33ooo333333bo
+.ob3333ooo2o33cccaz1zaccc33o33ooooo33bo
+..oooo33333oo333caz1zac333oo333333oooo.
+..ob333333o22o333cayac333o32o3333333bo.
+...ob3333o3222ooocayac33o3222oo33333b..
+...ob33oo33332oo2cazaco3o33333oo333bo..
+....oboo33333ooo2caaac33oo33333oo3bo...
+.....oob33333oo33caaac333o333333ooo....
+......ob33333oo33cbabc3333o33333bo.....
+.......ob333ooo333cac33333o3333bo......
+........obbbooo333cac33333oobbbo.......
+.........oooooo333cac3333booooo........
+...........obcoobbcacbbbboobo..........
+.......oooocbabcoocacoooobabcoooo......
+......oaabcbaaaco.cac..ocaaabcbaao.....
+.....oacccaabcaao.cac..oaacbaacccao....
+.....ooooaccocabo.cbc..obacoccaoooo....
+........ocoo.oco...P....oco.ooco.......
diff --git a/parts_pl_src/body/pl_knifefish.txt b/parts_pl_src/body/pl_knifefish.txt
new file mode 100644
index 0000000..d0cf366
--- /dev/null
+++ b/parts_pl_src/body/pl_knifefish.txt
@@ -0,0 +1,48 @@
+# pl_knifefish: from pixellab_src/pl_knifefish/base.png (pixellab_library.py extract)
+# pivot at (14, 60)
+# aura at (31, 42)
+# head_top at (38, 28) (from part/probe)
+# back at (33, 36) (from part/probe)
+# tail at (44, 53)
+......................................ooo.
+.....................................o212o
+....................................oa122o
+...................................ob122oo
+............................oo.....o3aa3oo
+..........................oo3oo...oc3cbco.
+.........................oo13oo..o3b3ooco.
+........................o133ooooo33obooo..
+......................oo2333oooo333occo...
+.....................oo2233^ooo3333ooo....
+....................oo12233ooo333oooo.....
+...................o32322oooo3333ooo......
+..................oo3232oooo3333ooo.......
+..................o122ooooo3333oooo.......
+.................o1322oooo3333ooooooo.....
+................oo232oooo3333ooooooooo....
+................o123ooooo333oooooooo3o....
+.....oooo......o132oooBo333oooooo3333o....
+....o2112o.....o13ooooo3333ooooooo31oo....
+...o11111o....o13ooooo3333oooooooo33o.....
+..o2111111o...o1ooooo2233oooooo333oo......
+.o11111212o..o13oooo2223ooooooo31oo.......
+.o11112223o.oo1ooooo2222ooooo333oo........
+.o11122o33oo323oooo2A22ooooooooo..........
+.o11123oooo232oooo2222ooooooo.............
+..o122oo3222ooooo22222oooo................
+..o22oo32222ooo3a2222ooooo................
+...o3o321212222233a33oooo.................
+....oo1122222222aa33ooooo.................
+...oo1o22222222223b3oooo..................
+...o1oo22211222233ooooooooooo.............
+...ooo3222223oo3333oooooo3222oo...........
+...ooo22222oo1o3333oooo33211112o..........
+...o1o2222o1oo1o33oooooo22211111o.........
+..ooo22223oooo1ooooooo23321111111T........
+.oo23o2223ooo21oooooo332222111111o........
+.o1123oo322221ooooooo322211111111o........
+o11112233oooooccoo.oo22111111112o.........
+o11111122oooooooo...oo211111112o..........
+o11112oooooooo........oo11112oo...........
+o112oo..................ooooo.............
+.ooP......................................
diff --git a/parts_pl_src/body/pl_knifefish_b.txt b/parts_pl_src/body/pl_knifefish_b.txt
new file mode 100644
index 0000000..c06b20f
--- /dev/null
+++ b/parts_pl_src/body/pl_knifefish_b.txt
@@ -0,0 +1,53 @@
+# pl_knifefish_b: from pixellab_src/pl_knifefish_b/base.png (variant of pl_knifefish) (pixellab_library.py extract)
+# pivot at (14, 60)
+# aura at (34, 38)
+# head_top at (38, 14)
+# back at (33, 36)
+# tail at (44, 53)
+...........................^oooo................
+........................ooo31111oo..............
+......................oo11o22112oo..............
+.....................o1113o2211oo3o.............
+....................oo112oo2111o332o............
+...................o1o122o3211o33311o...........
+.................oo11o222o3313o332113o..........
+.................oo11o22bo331o333111oo..........
+................o3o11o33bo33oo33111o33o.........
+...............o13o1co33o333o33311o3331o........
+...............o13o1co33o333o332ao333213o.......
+..............oo13o31o33o33o3331oo333113o.......
+..............oo23o33o3oo33o3322o333111o3o......
+..............oo3co33o3oo33o332o33311oo33oo.....
+.............o1o3coo3o3oo3oo333o3322oo3331o.....
+.............o1oo3oooo3oo3oo33o333bbo333113o....
+.............o1oooooooooo3o33oo333oc3331133o....
+.............o3oooooooooooo33o333oo33311ooooo...
+.............ooooo33ooooooo3oo33oo33331oo331o...
+............oo333333333oooooo33oo33333oo33113o..
+...........o322222233a333oooo3oo3333ooo332133o..
+..........o321112222333333ooooo3333aoo333333ooo.
+.....ooooo32111122222aB333ooooo33ooo333333oo111o
+....o311oo22111222222aa3333ooooooo3333aooo31111o
+...o1111o32211222222233A333ooooooo333ooo3311133o
+..o3111oo322222222223333a33ooooooooooo33333b333o
+.o11111oo332222222233333333ooooooooo333oooo333o.
+.o11113oo33322222333333333cooooooo3333oob3333o..
+.o1113ooo333322333333333333oooooooooooo333ooo...
+.o1113oooooo33333333333333oooooooooooooooo......
+..o123oooooooo33333333333ooooooooooo............
+..o33oo333333ooo333333333oooooo.................
+...ooo3a1313333oo333333ooooooo..................
+....oo1133333333oo333ooooooooo..................
+...oo1o2333333333oooooooooooo...................
+...owoo3331133333oooooooooooo...................
+...ooo3333333oo33oooooooo3333oo.................
+...ooo33333oo1o33oooooo33311113o................
+...o1o3333owoo1o3ooooooo32211111o...............
+..ooo33333oooo1ooooooo33331111111T..............
+.oo33o3333ooo31oooooo333222111111o..............
+.o1123oo333331ooooooo333211111111o..............
+o1w11333oooooooooo.oo33111111113o...............
+oww111133oooooooo...oo311111113o................
+ow1113oooooooo........oo11113oo.................
+o113oo..................ooooo...................
+.ooP............................................
diff --git a/parts_pl_src/body/pl_knifefish_c.txt b/parts_pl_src/body/pl_knifefish_c.txt
new file mode 100644
index 0000000..3e0685b
--- /dev/null
+++ b/parts_pl_src/body/pl_knifefish_c.txt
@@ -0,0 +1,64 @@
+# pl_knifefish_c: from pixellab_src/pl_knifefish_c/base.png (variant of pl_knifefish) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (33, 40)
+# head_top at (38, 24)
+# back at (33, 36)
+# tail at (44, 53)
+....................................................o....
+....................................................oo...
+....................................................ooo..
+....................................................ooo..
+....................................................ooo..
+....................................................ooo..
+....................................................ooooo
+....................................................ooooo
+...................................................o2o3o.
+...................................................o2o3o.
+..................................................o2ooo..
+..................................................o2ooo..
+..................................................o2oo...
+.................................................o2ooo...
+................................................ooooo....
+................................................o2aoo....
+...............................................obaao.....
+.............................................oo22ooo.....
+............................................o2222oo......
+...........................................o1122ooo......
+..........................................ocaa2ooo.......
+..........................................o3caooo........
+..................................^oo....oc3ccco.........
+................................oo13oo..o3b3occo.........
+...............................o1323oo.o33cbooo..........
+.............................oo2132ooooa33occo...........
+............................oo2233oooo3aacooo............
+...........................oo1223oooo33a3ooo.............
+..........................o22322oooo333booo..............
+.........................oo22o2oooo33accoo...............
+.........................o122ooooo333boooo...............
+........................o1322oooo333ocoooooo.............
+.......................oo232oooo3aaaacooooooo............
+.......................o12oooooo3a3oooooooo3o............
+............oooo......o132oooBo33aoooooo3333o............
+...........o2112o.....o13ooooo333aooooooo31oo............
+..........o11111o....o13ooooo2aabbooooooo33o.............
+.........o2111111o...o1ooooo22a2oooooo333oo..............
+........o11111212o..o13oooo22Aaoooooooo1oo...............
+........o11112223o.oo1ooooo222booooo333oo................
+........o11122o33oo323oooo2222coooooooo..................
+........o11123oooo332oooo2aabocooooo.....................
+.........o122oo3222ooooo22a2cccoo........................
+.........o22oo32222ooo3a22aooccoo........................
+..........ooo321212222222aboooco.........................
+...........oo1122222222aa2cooooo.........................
+..........oo1o22222222223ccoooo..........................
+..........o1oo22211222223ooooooooooo.....................
+..........ooo3222223oo3333oooooo3222oo...................
+.........o11322222oo1o3333oooo33211112o..................
+.......oo12222222o1oo1o33oooooo22211111o.................
+.....oo112222223ooooo1ooooooo33321111111T................
+....o1122222ooo3oooo21oooooo332222111111o................
+..oo1222oooooooooooo1ooooooo322211111111o................
+.o1122ooooooo.oooooooccoo.oo22111111112o.................
+o1122oooo........ooooooo...oo211111112o..................
+ooooo........................oo11112oo...................
+...............................Poooo.....................
diff --git a/parts_pl_src/body/pl_knifefish_d.txt b/parts_pl_src/body/pl_knifefish_d.txt
new file mode 100644
index 0000000..e4cfb9e
--- /dev/null
+++ b/parts_pl_src/body/pl_knifefish_d.txt
@@ -0,0 +1,60 @@
+# pl_knifefish_d: from pixellab_src/pl_knifefish_d/base.png (variant of pl_knifefish) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 35)
+# head_top at (38, 11)
+# back at (33, 36)
+# tail at (42, 53)
+.......................................ooo....
+......................................o212o...
+.....................................oa122o...
+....................................obw22oo...
+.............................oo.....ooaa3oo...
+...........................^o3oo...ocobbcoo...
+..........................oo13oo..o3booccoo...
+.........................o133ooo.o33cbooo22o..
+.......................oo2333oooo333ocooo222o.
+......................oo2233oooo3333obb333321o
+.....................oo1223oooo3333ooooo33222o
+....................o32322oooo3333oooo..ooooo.
+...................oo3232oooo3333oooo.........
+..................o3222ooooo3333oooo..........
+..................o1222oooo3333ooooooo........
+.................o1o22oooo3333ooooooooo.......
+................o12o2ooooo3333ooooooooo.......
+.....oooo......o122oooooo333ooooooooooo.......
+....o2112o....o1222ooooo3333oooooo333oo.......
+...o11111o....o12oooooo3333oooooooo31o........
+..o2111111o...o1oooooo3333ooooooooo33o........
+.o11111212o..o13oooo33333ooooooo3333o.........
+.o11112223o.oo1ooooo33333oooooooo1oo..........
+.o11122o33oo323oooo33333oooooo333o............
+.o11123oooo332oooo3333ooooooooooo.............
+..o1233o3222ooooo3333aaooooooooobo............
+..o22oo32222ooo3a33333boooooooooboo...........
+...ooo321212222233a33oooooooaaboooo...........
+....oo1122222222aa33ooooooooaabooooo..........
+...oo1o22222222223b3oAoooooooooooobo..........
+..oowoo22211222233coooBooooooooooobo..........
+..oooo322222ooo3333ooooooo3223ooooo3o.........
+.o2ooo22222oo1o333oooooo3321111oooooo.........
+o22o1o2222owoo1o3oooooooo22211112oooo.........
+o232o22222oooo1oooooooo33321111111ooo.........
+o2oooo2222ooo21oooooooo32222111111ooo.........
+oo2111oo222221oooooooo332211111111ooo.........
+o1111113oo22oobcoo33oo32111111112o33o.........
+o11111112oo11oooo333ooo211111112o333o.........
+o11111111oo111111333ooooo11112ooo333o.........
+o1111111112211111113oo33oooooooo333o..........
+o111111111111111111113333ooooo33333o..........
+o111111111111111111111ooo333333ab33o..........
+.o111111111111111111112oo3bb33abb3o...........
+.o111111111111111111112ooobb33bbb3o...........
+..o1111111111111111ab122oo333333oo............
+...o11111111111111aa22222o333333o.............
+...o22211111111111122222ooo3333T..............
+....o2222111111112222223ooo333o...............
+.....oo222222222222222oooo333o................
+.......o2222222222222bboooooo.................
+........o2222222222obbcooo....................
+.........oooo22222ooooo.......................
+............ooooooP...........................
diff --git a/parts_pl_src/body/pl_koala.txt b/parts_pl_src/body/pl_koala.txt
new file mode 100644
index 0000000..9ba80f5
--- /dev/null
+++ b/parts_pl_src/body/pl_koala.txt
@@ -0,0 +1,48 @@
+# pl_koala: from pixellab_src/pl_koala/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (32, 24) (from part/probe)
+# back at (31, 42) (from part/probe)
+# tail at (49, 54) (from part/probe)
+......o3333....................3333o......
+....33311223.3..............3.31111333....
+...31111112323..............322111111123..
+.32111112122233............o2221111111113.
+.32212222222233..o3222233o.o2222222221232.
+..3222333222233321111^112233322223332223..
+.32233bbb322332211111111122233223bbb33223.
+.2233bbbbb3o322111111111112222o3bbbbb3322.
+32223babbbo32211111111111112222obbbab32223
+32223aaabb3222211111111111222223bbaaa32223
+32323aaaao3222221111111112222222oaaaa32323
+.2323aaao322222221111111222222222oaaa3232.
+..323aaao222222222222222222222222oaaa323..
+..322333o222222222222222222222222o333233..
+..33333.32222233222222222233222223o33333..
+...3333.32222222222222222222222223o3333...
+....333.32222222222222222222222223o333....
+........32222ooo2222222223ooo22223o.......
+........3222o1ooo22cccc22o1ooo2223o.......
+........3322oocoo22caco22oocoo2233........
+........3322ooaco2oaaAco2ocaco2233........
+.........32aaa2222occcco2222aaa23.........
+.......3.33aa22221occcco12222aa33.3.......
+.......33o33322221ooBcoo12223333o33.......
+......3333o33333211oooo11333333o3333......
+......22223oo3333311cc1133333oo32222......
+.....322113333o333311113333o333311223.....
+.....322111333333333oo3333333o3111223.....
+.....33211122o11133333333113o21111233.....
+.....o32222222o111111111111o22222223o.....
+......33222223o111111111111o32222233......
+......o333333o31111111111113o333333.......
+....31oo33ooo3111111111111113ooo333313....
+....213212o3331111111111111133332123123...
+...23bccc223311111111111111113322cccb32...
+...3coooo223331111111111111133322oooocT...
+...3o33332233331111111111113333223333o3...
+....33cc32233333111111111133333223cc33....
+....occco333333333111111333333333occco....
+....o3ooo333333333333333333333333ooo3o....
+......3333o....o3333333333o....33333......
+..................33P333.........33.......
diff --git a/parts_pl_src/body/pl_koala_b.txt b/parts_pl_src/body/pl_koala_b.txt
new file mode 100644
index 0000000..7e53b93
--- /dev/null
+++ b/parts_pl_src/body/pl_koala_b.txt
@@ -0,0 +1,52 @@
+# pl_koala_b: from pixellab_src/pl_koala_b/base.png (variant of pl_koala) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 38)
+# head_top at (32, 19)
+# back at (31, 42)
+# tail at (51, 54)
+.........3333.........................3333........
+.........21113.3..................3.331111........
+.......3333112333................32322113333......
+.....3311111112323...............3232111111133....
+...311111111112223...3333^3333..3322211111111123..
+....o321122221122333322111112233332221222211233...
+...3222123332212233bb111111111bb3322222333212223..
+..3222233bbb3222321bb111111111bb1232223bbb3222223.
+.322223bbbbbb323221bbb1111111bbb122323bbbbb322223.
+3222223babbbbbo2221bbb1111111bbb12223bbbbab3222223
+o232223baabbbo222111bb1111111bb112222obbaaa322233o
+oo32223aaaaao2222211bbb11111bbb1122222oaaaa32222oo
+.o22223aaaao32222221bbb11111bbb12222223oaaa32232o.
+.323223aaaa3222222221bbb111bbb1222222223oaa322323.
+.323322aaao3222222222bbb222bbb2222222223oaa222333.
+..3333223332222222222bbb222bb22222222222333223333.
+...33332233222222222222222222222222222223322333...
+...33o33333222222233222222222233222222223333o33...
+....3o33o332222222222222222222222222222233o3o33...
+......ooo322222222222222222222222222222223o.......
+.......o332222222ooo2222222223ooo2222222233o......
+......o333222222o1ooo22cccc22o1ooo2222223333o.....
+......o333222222oocoo22caco22oocoo2222223333o.....
+.....o3333322222ooaco2oaaAco2ocaco22222333333o....
+.....o323333222aaa2222occcco2222aaa2222333323o....
+....oo223333322aa22221occcco12222aa2223333322o....
+....o22223o33322222221ooccoo122222223333o32222o...
+....o222223o33332222211oBoo112222233333o332222o...
+...o21222223o33333333311cc112233333333o32222212o..
+...o2122223233333333333111133333333333223222212o..
+...o2222232222333333333333333333333331122322232o..
+...oo32223221113333333333333333333331112232223oo..
+....o32223221111o33333333333333333311112232223o...
+....o3322332111123311333333311113o211112232233o...
+....o3323332222222o1111111111111o2222222333233o...
+....o33333o3222223o1111111111111o3222223o33333o...
+....oo3331oo33333o311111111111113o3333oo13333o....
+.....o33213212ooo31111111111111113oo212312333o....
+......o23bccc223311111111111111113322cccb323o.....
+......o3coooo223331111111111111133322ooooc33T.....
+.......oo33332233331111111111113333223333ooo......
+.......o33cc32233333111111111133333333cc33o.......
+........occco333o33333111111133333333occcoo.......
+........o3ooo333oo3333333333333333333ooo3o........
+.........o3333ooooooo333333333oooooo3333o.........
+..........oooo.......333P33333......oooo..........
diff --git a/parts_pl_src/body/pl_koala_c.txt b/parts_pl_src/body/pl_koala_c.txt
new file mode 100644
index 0000000..cacc7fb
--- /dev/null
+++ b/parts_pl_src/body/pl_koala_c.txt
@@ -0,0 +1,62 @@
+# pl_koala_c: from pixellab_src/pl_koala_c/base.png (variant of pl_koala) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 34)
+# head_top at (32, 10)
+# back at (31, 42)
+# tail at (49, 54)
+....333......................333....
+...311133..................331113...
+...3121123................3211113...
+...31221113..............32112313...
+..321bb31123............o21123b123..
+..322bb33222333333^3333322123bb223..
+..322abb33223222111112232223bba223..
+..322aabb322211111111112223bbaa223..
+..322aab33221111111111112233baa223..
+..322abo222211111111111122223aa233..
+..3323b3222221111111111222222b3233..
+...333322222221111111122222223333...
+....3332222222222222222222222333....
+.....32222223322222222332222223.....
+.....32222222222222222222222223.....
+.....32222222222222222222222223.....
+....332222oooo22222222oooo222223....
+....33222o1wooo222222owoo1o22223....
+....33222owoooo222222oooowo22223....
+....33222owoooo2cccc2oooowo22223....
+....33322owooao2oaco2ocoowo22233....
+.....3322aowac2oaacco2cawoa2223.....
+.....332aaaoo22occcco22ooaaa233.....
+......33bb22221ooccco12222bb333.....
+......o333222211oooo1122223333......
+.......o333322111oo1112233333.......
+........oo3333311111133333oo........
+.........oooo3331111333oooo.........
+........33333ooo3333ooo3333o........
+........3333333333A3333333333.......
+.......3322233111111111322223.......
+.......32222211111111111222223......
+......322222111111111111222223......
+......322222111111111111222223......
+.....32222321111111111111322223.....
+.....32223311111111111111332223.....
+....o221133111aa1111111113321223....
+....o221133111aa1B11111113321123....
+....o22111o111111111111113321123....
+....o22111o1111111111aa113311223....
+.....o22112o111111111aa11o21123.....
+.....o32112o1111111111111o21123.....
+....3o32222o1111111111111o2222333...
+...33o33223111111111111113o223323...
+..33233333311111111111111133332223..
+..3223333311aa11111111aa1133333223..
+.31o33333311aa11111111aa11333333313.
+321321233311111111111111113332123123
+23bccc223331111111111111133322cccb32
+3coooo223333111111111111133322oooocT
+3o33332233333111111111113332223333o3
+.33cc33333333331111111333333333cc33.
+.3ccco333333333333333333333333occco.
+.33ooo333333333333333333333333ooo3o.
+..33333333...333333333o..33333333...
+....33P......................333....
diff --git a/parts_pl_src/body/pl_koala_d.txt b/parts_pl_src/body/pl_koala_d.txt
new file mode 100644
index 0000000..6c706c3
--- /dev/null
+++ b/parts_pl_src/body/pl_koala_d.txt
@@ -0,0 +1,52 @@
+# pl_koala_d: from pixellab_src/pl_koala_d/base.png (variant of pl_koala) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (32, 15)
+# back at (31, 42)
+# tail at (49, 54)
+..................^o................
+............o....oa3................
+............oo..3ba3...oo...........
+............oa3.3b13..oao...........
+............oa333213331ao...........
+.......ooo..o21231133213o.3ooo......
+.......oaaooo21131133113o3aoo.......
+........oa12321111122113212o........
+.........3111211111111121133........
+....3333.32111111111111111333333....
+...311123321111111111111112321113...
+...2133222211111111111111222233113..
+..32caa3222221111111111122223ca313..
+..32aaa3222222122111122122222aaa13..
+..33ca322222222222111222222222a333..
+...o3322222222222222222222222233o...
+.oo33222222222222222222222222223o...
+.ob2222222332122222222112332222223..
+.oo322222223321112231111332222222o..
+...o32222222231122233113222222223o..
+..oo1222221ooo333222333ooo122222133.
+.ob22222221oooo3322233o1oo12222221bo
+.oo33322221oooc2222222oooo122222333o
+...o3222221boo22111112oooc1222223o..
+...o2222aaa111211111111111aaa2332o..
+..ob3332aa2222111oAo1122222aa3333bo.
+..oo33322222211oooooo112222233333oo.
+....o332332221oo1B11oo1222233333....
+....oo33333321o111113o123333333oo...
+...o2oo33333311111111113333333bo3...
+..322o3o3333333311111333333331o123..
+..322111333333333333333333o3211123..
+..33211112o33333333333333o21111233..
+..o32222222o333333333333o22222223o..
+...33222223o111111111111o32222333...
+...o333333o31111111111113o333333....
+.31oo33ooo3111111111111113ooo333313.
+.213212o3331111111111111133332123123
+23cccc223311111111111111113322cccc32
+3coooo223331111111111111133322oooocT
+3o33332233331111111111113333223333o3
+.33cc32233333111111111133333223cc33.
+.occco333333333111111333333333occco.
+.o3ooo333333333333333333333333ooo3o.
+...3333o....o3333333333o....33333...
+...............33P333.........33....
diff --git a/parts_pl_src/body/pl_kobold.txt b/parts_pl_src/body/pl_kobold.txt
new file mode 100644
index 0000000..74051fa
--- /dev/null
+++ b/parts_pl_src/body/pl_kobold.txt
@@ -0,0 +1,49 @@
+# pl_kobold: from pixellab_src/pl_kobold/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 40)
+# head_top at (29, 24) (from part/probe)
+# back at (38, 32) (from part/probe)
+# tail at (42, 52) (from part/probe)
+.....o...........................
+....o1o.....................ooo..
+....o11o..................o313o..
+....o113o................o12oo...
+....o3113o.............o312o3o...
+....oo2133o.ooooo.....o213o33o...
+...o1o233o3322^233oo.o113o331o...
+...o133o3311112213333111o33112o..
+....o3o3b21a11a123331113o333112o.
+....o33311a111122233113oo33133o..
+...o21311a111211123333o33o3333o..
+...o112211122111112333oo333311o..
+...o21211112111123333oo3333111o..
+....o321a121112ooo3333o333333bo..
+....o21c112223o3bo33333Booo211o..
+...o21111123ooo31332333o33333o...
+..o111111223oao1331123bo3333o....
+.o11111122223333211o223oo221o....
+.o1111o122b2211113o223oo3313.....
+.o21112222222oooo3333oo23ooo.....
+..o3332233o33222b333oooo2o.......
+...o22oo333333bb3ooo333oo........
+....ooooooooooooAo3311bbo....o...
+.....3o3oo3oooo33333111b3o..o3o..
+....o333o3333333233o321123o.o2o..
+...oa23o333222222233o32222o.o22o.
+..oaoboo3111111122333o3211boobbo.
+.o12bocob331111222233oaaobcoo213o
+.o3oooco3112333332223ooabocoo213o
+o133ocooo33311133233ooaa13ooo112o
+o33a2o.oooo33333333oo22332bo2ab2o
+o33ooo.obccooooccooco332233o2c22o
+.ob1o..obcacaacabbcco1o3333o2233o
+..oo..o33cacbacabccooooa3ooo323o.
+......o123obcccccco33o21oaoTc33o.
+......oc123ocoocoo3222oooo3333o..
+.......32233oooooo311223o3ccoo...
+.......oo3333o..oo3c13c3oooo.....
+.....oo3333333o...o33333o........
+....o1a3323333o...oo3333o........
+.....ooo1a3ooo...o3322332o.......
+.......oooo......o1oa1oa1o.......
+..................Poooooo........
diff --git a/parts_pl_src/body/pl_kobold_b.txt b/parts_pl_src/body/pl_kobold_b.txt
new file mode 100644
index 0000000..82d3743
--- /dev/null
+++ b/parts_pl_src/body/pl_kobold_b.txt
@@ -0,0 +1,49 @@
+# pl_kobold_b: from pixellab_src/pl_kobold_b/base.png (variant of pl_kobold) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 40)
+# head_top at (29, 23)
+# back at (38, 32)
+# tail at (46, 52)
+.....o...........................
+....o1o.....................ooo..
+....o11o..................o313o..
+....o113o................o12oo...
+....o3113o.............o312o3o...
+....oo2133o.oo^oo.....o213o33o...
+...o1o233o33222233oo.o113o331o...
+...o133o3311112213333111o33112o..
+....o3o3b21a11a123331113o333112o.
+....o33311a111122233113oo33133o..
+...o21311a111211123333o33o3333o..
+...o112211122111112333oo333311o..
+...o21211112111123333oo3333111o..
+....o321a121112ooo3333o333333bo..
+....o21c112223o3bo33333Booo211o..
+...o21111123ooo31332333o33333o...
+..o111111223oao1331123bo3333o....
+.o11111122223333211o223oo221o....
+.o1o11o122b221111oo3233o3313.....
+.o22222222222ooo113333o23ooo.....
+..o333333ooo11111333oooo2o.......
+...o33333111333333oo333oo........
+....ooooooooooooAo3311bbo....o...
+.....o33333333333333111bbo..o3o..
+....o333133333333233311123o.o2o..
+...o2o11111111111333o311113oo22o.
+..oa3o111111111111323o31112oobbo.
+.o2ao11111111111113223oa1aaco213o
+.o23o11111111111111323oa1caco213o
+o223o11111111111111323oa11c3o212o
+o23ao1111111111111132o22222coaa2o
+o33oo1111111111111332o222223oc22o
+.o13o3111111111113322o132223o233o
+..ooo3331111111133322ooo1233o23o.
+....o333331111333322113o1oaoc33T.
+....o13o3333333333211113ooo333o..
+.....o23ooo333333o3111123occoo...
+......o333oooooooo3111a33ooo.....
+.....o3333333o....o33333o........
+....oa3223333o....oo3333o........
+.....oo1133oo....o2322222o.......
+.......oooo......o13113a1o.......
+..................Poooooo........
diff --git a/parts_pl_src/body/pl_kobold_c.txt b/parts_pl_src/body/pl_kobold_c.txt
new file mode 100644
index 0000000..f5b25f9
--- /dev/null
+++ b/parts_pl_src/body/pl_kobold_c.txt
@@ -0,0 +1,60 @@
+# pl_kobold_c: from pixellab_src/pl_kobold_c/base.png (variant of pl_kobold) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 33)
+# head_top at (29, 7)
+# back at (38, 32)
+# tail at (46, 52)
+................oo^oooo................
+..............oo3222222ooo.............
+.............o311111122233oo...........
+............o211a11a12222223o..........
+...........o221a1122222222211o.........
+.........oo2221112211122221111o........
+.........o1122a1221111122211111o.......
+.........o212212211112232333211o.......
+..........o22b123222ooo322oo2111o......
+..........o3221233oo3ao3223o3111o......
+.........o2111123cco3132223o31112o.....
+.........o11111223aab3212ccoo1111o.....
+........o111122a23333211223oo2111o.....
+.......o1111o2222111112223o.o2111o.....
+......o11112222o333311223oo.o21112o....
+.....o1111222oo3333333ooo3o.o21112o....
+....o111222oo3oooooooo3333o.o21112o....
+...o112223oooo333oo3333333o.o21112o....
+..o11223ooo223333oo3311333o.o221122o...
+.o2122oo..o223333oo1111223o.oo21112o...
+.o12oo.....o23333o31111223o..o311122o..
+o123o......o2333oo3111122bo...o21122o..
+o2oo.......o223oo33331122bo...oo1122o..
+.oo.........o2o.o31111122bo.....o223o..
+.............oo.o111111223o......ooo...
+...............o31111112222Bo..........
+..............o311111A1222122o.........
+.............o33111111222211ao.........
+............o2311111111223111ao........
+............o23aa111aaa223211ao........
+...........o223aaaaaaaa22331112o.......
+..........oa2o11aaaaa1122333112o.......
+..........oaao1111111111233o11aao...o..
+.........ocao1aa11111aa1223oaacao..oo..
+.........o1bo11aaaaaaa11223ocaccco.o3o.
+.........o12o3111aaa1113223oaa2cco.o1o.
+........o112o33111111113233o2222co.oao.
+........o132o3331111133333o222223o.o12o
+........o131ooo333333333ooo232223o.o12o
+........o33oobcccccccccbcco1o2223oo112o
+.........o13obcacaacaaabbccoo2333oaa13o
+..........oooocacaacaaacb333o1oao11a23o
+............o3occbbcbbccb223oooob2223o.
+............o22obccbcbc321123o3333323o.
+............o113oocccco211113o3333c3o..
+............oc1233ooooo211113o33333T...
+............o332333o..o3111c3o33coo....
+.............o33333o..o332233oooo......
+.............o33333o...o33333o.........
+............oo33333o...o33333o.........
+...........o2322333o...o22223o.........
+..........owa3w3333o..o221122o.........
+...........oooooooo...ow3wa3wo.........
+.......................Pooooo..........
diff --git a/parts_pl_src/body/pl_kobold_d.txt b/parts_pl_src/body/pl_kobold_d.txt
new file mode 100644
index 0000000..39f5f14
--- /dev/null
+++ b/parts_pl_src/body/pl_kobold_d.txt
@@ -0,0 +1,53 @@
+# pl_kobold_d: from pixellab_src/pl_kobold_d/base.png (variant of pl_kobold) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 39)
+# head_top at (29, 19)
+# back at (38, 32)
+# tail at (50, 52)
+........oo..................................
+........o1o.....................ooo.........
+........o12o..................o213o.........
+........o112o................o12oo..........
+........o2123o..............o12o3o..........
+........oo2233o.oo^oo.....oo11o33o..........
+.......o2o33o33322222ooo.o211o332o..........
+.......o2o3o322222222233o2112o3222o.........
+.......oooo33223223222332112o332211o........
+.......oo322c2cb12c22233222oo33233oo........
+.......o32222cb122222233333oo33333o.........
+......o111222b112211123333o3333222o.........
+......o2112221122111113333oo333222o.........
+......oo212222221112233333oo333222o.........
+.......oo322a221123ooo3333o333322ao.........
+.......oo21c22222oo3ao333333333211o.........
+......o211122223ooo31323333o33323o..........
+.....o2111122223oaow322223bo3322o...........
+....o211111122223333222o223Bo222o...........
+....o21111o222b2222223o1233o3313............
+....o32222222222233333333oo333oo............
+.....o332222233331113333oo33oo..............
+......o33333333333333ooo333333o.............
+.....oooo33333333oooo3333322223o............
+....oaa33oooooooo333333332221ab3o.......oo..
+...o3223333333333322A22232221abb3o......oo..
+..o3223o2133311111122222333221123o.....o2oo.
+..o222o3211111111111222233o3222233o....o22o.
+.o1123o2111111111111222223o3322223o....o223o
+.oa23o321111111111111222233o3321233o..oo123o
+oa123o3311111111111112222333o3211abo.oo1123o
+o2133o3311111111111112223333o3221aboo2112a3o
+o2233o3331111111111132233333o322222o2ab1233o
+o2332ooo33311111113333333ooo3322222o2ab2233o
+o3331oocooo3333333ooooooccco2332222o222233o.
+.o23ooobcaaooooooobbbbcoccoo1o32333o2223boo.
+.o3acoooccacaaaaacaabcco3223oo32333o32333o..
+..ooo.oooccoccaaccabcco212223o333ao33333o...
+......o23oococccccccco2111223ooooo3cc33T....
+......o3a23ooooocccoo321112233o333333oo.....
+.......oo333ooooooooo331ab2333ooooooo.......
+........oo33333oo...oo33cc333o..............
+.......oo33333333o...oo3333333o.............
+......o2333333333o.....o2222233o............
+.....oa3a133333oo.....o21222322o............
+......ooooooooo.......ow33wa3awo............
+.......................Pooooooo.............
diff --git a/parts_pl_src/body/pl_komodo.txt b/parts_pl_src/body/pl_komodo.txt
new file mode 100644
index 0000000..f31fb8f
--- /dev/null
+++ b/parts_pl_src/body/pl_komodo.txt
@@ -0,0 +1,48 @@
+# pl_komodo: from pixellab_src/pl_komodo/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 42)
+# head_top at (31, 21) (from part/probe)
+# back at (35, 39) (from part/probe)
+# tail at (46, 50) (from part/probe)
+...............oooooo...............
+............ooo221111ooo............
+...........o21131^113113o...........
+...........o111231132112o...........
+...........3b1113333111b3...........
+..........ocyb11322212byco..........
+..........ozoa32211223aozo..........
+.........o1bwx32111233x1c2o.........
+.........o13cc32111123cc32o.........
+.........3o31232111113313oo.........
+.........o32o2231113231o33o.........
+..........333o22111123o333..........
+..........oo32oooooooo23oo..........
+..........ooo212bbbb212ooo..........
+...........33oo3baab3oo33...........
+...........o33oooaaooo33o...........
+............o3333aa3333o............
+............oo333co333oo............
+............oo3333c333oo............
+...........o2o13333332o2o......33...
+...........212o323323B212......32c..
+..........ox12o321323o21xo.....32b..
+..........oy112o2132o211yo.....o21c.
+.........o33y112o1Ao211y33o....o21c.
+........o323oy11223211yo323o..o31bc.
+........o2133o111oo111o3212o.o3212c.
+......oo3112331o1111o1331113oo212bc.
+.....b3o31113o11111111o32113o2o223c.
+....o1aoa2123o11111111o3112co11o33..
+...o11o321233o11122111o321133o1boc..
+...o22oba2333o12111122o3321aco2bo...
+...o22obb33oo2111111112o332bao22T...
+...13332113oo2211111122o321133332...
+...o333b1123o3222112223o32112333o...
+....333b1112oo32222223oo21113333....
+...ooo3cb122o.oooooooo.o2212b3ooo...
+.o13o3ob21123..........3211bco3o21o.
+o13o2oo322223..........322223oo2oo1o
+.ooooo3311123o........o3211133ooooo.
+....o23ooooo33o......o33ooooo32o....
+....oooo1oo1ooo......ooo1oo1oooo....
+........o..P............o..o........
diff --git a/parts_pl_src/body/pl_komodo_b.txt b/parts_pl_src/body/pl_komodo_b.txt
new file mode 100644
index 0000000..5f991fb
--- /dev/null
+++ b/parts_pl_src/body/pl_komodo_b.txt
@@ -0,0 +1,48 @@
+# pl_komodo_b: from pixellab_src/pl_komodo_b/base.png (variant of pl_komodo) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 40)
+# head_top at (31, 19)
+# back at (35, 39)
+# tail at (46, 50)
+............ooooo^oooooo............
+..........oo323311113322oo..........
+.........o3112222222122112o.........
+........o323312221122213322oo.......
+.......o233cc3122222223cc3322o......
+.....oo123cywc33322223cwyc3321oo....
+...oo32233cyoa33333233coyc333122oo..
+..o21223222bbc33222223ccc321233112o.
+..o2223222111332222222333212223222o.
+..o3332222222222222222222222213333o.
+...oo3322oooooooooooooooooo22233oo..
+.....o333333222222222222333333oo....
+......ooo3333333333333333ooooo......
+.........oooooooooooooooo...........
+..............o333333oo.............
+..............o3222233o.............
+............oo332222233oo...........
+...........oao331112233oao..........
+..........oaa33311122333aao.........
+..........ob333321123333oao....33...
+.........oao332122222B333bbo...33c..
+.........ob3332112A211333obo...33b..
+........oao33321111111333ooao..o32c.
+........oo3333211111113333oao..o32c.
+........o333332111111133223oo.o32bc.
+.......oo323332211111233223oao3223c.
+......oo32133o12211121332123bo322bc.
+.....b3o32123o11111111o33113o3o323c.
+....32aoa3233o21111111o3213co21o33..
+...o11o332333o22111112o331233o1aoc..
+...o33oaa3333o22111122o3332aco3bo...
+...o33obb33oo2222112222o333bao33T...
+...23333223oo2222222222o332233333...
+...o333b2233o3222222223o33223333o...
+....333b2123oo33222233oo32123333....
+...ooo3cb133o.oooooooo.o3312b3ooo...
+.o23o3ob32233..........3322aco3o32o.
+o13o3oo333333..........333333oo2o31o
+.ooooo3322233o........o3322233ooooo.
+....o33ooooo33o......o33ooooo33o....
+....oooo1oo1o3o......ooo1oo1oo3o....
+........o..P............o..o........
diff --git a/parts_pl_src/body/pl_komodo_c.txt b/parts_pl_src/body/pl_komodo_c.txt
new file mode 100644
index 0000000..df24380
--- /dev/null
+++ b/parts_pl_src/body/pl_komodo_c.txt
@@ -0,0 +1,62 @@
+# pl_komodo_c: from pixellab_src/pl_komodo_c/base.png (variant of pl_komodo) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (34, 37)
+# head_top at (31, 5)
+# back at (35, 39)
+# tail at (52, 50)
+...............oo^ooo....................
+............ooo221111ooo.................
+...........o211311113113o................
+...........o211221132112o................
+...........3b1113333111bo................
+..........ocyb11322212byco...............
+..........ozob32211223bozo...............
+.........o1b1y32111233y1c2o..............
+.........o13cc32111123cc32o..............
+.........3o31232111113313oo..............
+.........o32o2231113231o33o..............
+..........333o22111122o333...............
+..........o332oooooooo23oo...............
+..........o332111111112ooo...............
+...........o3o33333333o3oo...............
+............o3oooooooo3o3o...............
+............o3cccccccc3o3o...............
+.............occcccccc3o21o..............
+.............occccccaco322o..............
+.............ocbbccbaco322o..............
+.............ocbaacaacc22o...............
+.............ocaaccaabc13oo..............
+.............ocaacaaabc123o..............
+.............cbaacaaaab1231o.............
+.............caaacaaaabc233o.............
+............cbaaacaaaabc222o.............
+............caaaaaaaaaac22o..............
+............caaaaaaaaaac2oo..............
+............caaaaaaaaaac221oo............
+............caaaaaaaaaac2211o............
+............cbaaaaaababc2222o............
+............ocaaaaaaaac2222o.............
+............oocbaaabAc22323oo........33..
+...........o133cccccco1132321o.......33c.
+..........ox123322322B11yo322o.......33zc
+..........oy112321323211yo332o.......o31c
+.........o33y112o133211y33o332o......o31c
+.........o23oy11o33311yo323o32o......o21c
+........o3223o211oo112o3223o222o.oo.o21bc
+........o212331o1111o133112o332oo11o2112c
+......oo21123311111111o31122o2o1221o112cc
+.....c3o21123o11111111o31122o2o122131123c
+....o1bob2123o11111111o3112co11oo2121223.
+...o11o321233o12111121o321133o1bo122223c.
+...o32obb2333o11111111o3321aco2co2222bc..
+...o22ocb23oo2111111112o332bbo22o32333T..
+...13332112oo2211111122o3211233323333o...
+...o333c1123o3222112223o32112333o33oo....
+....333c1112oo33222233oo21113333ooo......
+...ooo3cb122o.oooooooo.o2212c3oooo.......
+.o13o3oc21123..........3211bco3o21o......
+o13o2oo322223..........322223oo2o31o.....
+.ooooo3311123o........o3211133ooooo......
+....o23ooooo33o......o33ooooo32o.........
+....oooo1oo1o3o......ooo1oo1oo3o.........
+........o..o............P..o.............
diff --git a/parts_pl_src/body/pl_komodo_d.txt b/parts_pl_src/body/pl_komodo_d.txt
new file mode 100644
index 0000000..8acd39c
--- /dev/null
+++ b/parts_pl_src/body/pl_komodo_d.txt
@@ -0,0 +1,50 @@
+# pl_komodo_d: from pixellab_src/pl_komodo_d/base.png (variant of pl_komodo) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 42)
+# head_top at (31, 17)
+# back at (35, 39)
+# tail at (52, 50)
+...................oo^ooo....................
+................ooo221111ooo.................
+...............o211211112113o................
+...............o211221122112o................
+...............3c1113332111c3................
+..............ooac11222211caoo...............
+..............ocza22222222azco...............
+..............ozob32211122bozo...............
+.............o1awx32111122xwc2o..............
+.............o13cc32111123cc32o..............
+.............3o31231111113213o3..............
+............o332o1231113221o333o.............
+...........o3o333o22111122o333o33o...........
+..........o13o3o32oooooooo2333o212o..........
+.........o111o33o212aaaa112o33o2113o.........
+........o21122o33oo3abba3oo33o321bbo.........
+........o222222o33ooobbooo33o3222bbbo........
+.......obb222222o3333bb3333o22222bbbo........
+.......obbb22211oo333co3333o21222bbbo........
+.......obb222z112o1333c332o211x2222bo....33..
+.......oaa223x1122o133323o2211x332222o...33c.
+.......o2223o3x1122o21322o111xzo33222o...33b.
+.......o223o333x11122132oB11xz33o3223o...o31c
+.......o33o22333x111o13o2111z3322o333o...o31c
+.......o3o211233211113321111332212o33o..o212c
+.....ooo3o21123321o113A11o11332111o33o.o321bc
+....o222o32112332111111111113321112o3ooo312bc
+...o2112o3211233211111111111o322122oo222o223c
+..o1b122ob22223o111111111111o32221bo221b1o23.
+.o211222o322233o111111111111o3322133221112oc.
+.obb222o3b22233o111111111111o33221bbo22112o..
+.obb223o3b2233o21111111111112o3221bbo2222bo..
+.obb223o311123o21111111111112o321111o3222bo..
+.o22233oo11122o32111111111122o321111oo3222T..
+.o33333oo11122o32211111111222o321113oo3333o..
+..o3333oob1112o32221111111222o221113oo333o...
+..o3333oob2112oo3222222222222o22111coo333o...
+...ooooooc2112ooo322222222222o2211bcoooooo...
+.o333333o22222ooooo22222222ooo2111b3o333322o.
+o133o33oo22222oooooooooooooooo222222o333o321o
+o3oo1ooo3222222o............o32222223ooo1oo2o
+......o233o32o22o..........o323o23o332o.o....
+......oooo1oo1ooo..........o3oo1oo1oo3o......
+..........o..P.................o..o..........
diff --git a/parts_pl_src/body/pl_krill.txt b/parts_pl_src/body/pl_krill.txt
new file mode 100644
index 0000000..8495761
--- /dev/null
+++ b/parts_pl_src/body/pl_krill.txt
@@ -0,0 +1,48 @@
+# pl_krill: from pixellab_src/pl_krill/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 38)
+# head_top at (25, 25) (from part/probe)
+# back at (41, 28) (from part/probe)
+# tail at (44, 49) (from part/probe)
+........oo......oo.....................
+.......o1o.....o1o.....................
+.......o2o.....o2o.....................
+......o1o.....o1oooooooooooo...........
+......o1o....oo2o3223cco322coo.........
+......o2o..ooo2o33o32aaco22cccoo.......
+......o33oo32^3o1123o22aco2aaccoo......
+......o33o221o3o11112o211o21aaco3o.....
+......oo3311133o11ww12o111o11abo22o....
+.....o32211111111www123o12o21B1o123o...
+....o332111111111111123322o2211o11cco..
+...ooo32111113ooo322223332o2221o2aaco..
+...oooo21111oooo1oo2223332o2223o22acco.
+..oowooo111oowooo1o3233333o332o22accco.
+..owwwoo222owwwooo1o333333o333o222acco.
+..oowooo222oowoooo1o33333o333o3222233oo
+..oooooo222ooooooo1o33333o33o3322223o3o
+..o1oooo222oooooo1wo33333o3oo333223o23o
+..o11o1o222o1ooo1wwo3333o3oo333333o223o
+...oo1o32222o111wwo3A333oo33333oo332cco
+...ooo3211222ooooo33333oo3ooooo333aaaco
+....o33211222223333333o3o33o3333322acco
+....o3322222222333333oo33o1o3333322ccco
+.....o3222222233333oo33o1oo1o333223cco.
+.....o32222233333ooooooo12o3o33332333o.
+.....o32222333ooo3oo2oo.o2ooooooooooo..
+...oo2233333oo3o3ooo1o.oo3ooo332233o...
+ooo212oooo32o.o3oo.o1oo3o3o33322bcco...
+oooooo...o22o..oo..o2oo3ooo3332aaco....
+........oo1o...o2o.ooo3o333oo33cco.....
+.......oo32o....oo..o333o3333oooT......
+......ooooo........o3333o33c33o........
+.................ooo22333ocaco.........
+...............oo33o123333ooo..........
+.............oo3333oooooooo............
+............o11223o333o333o............
+...........o11123322333233o............
+...........o11123111232233o............
+............oooo2111331223o............
+................o111331223o............
+.................ooooo122o.............
+......................Poo..............
diff --git a/parts_pl_src/body/pl_krill_b.txt b/parts_pl_src/body/pl_krill_b.txt
new file mode 100644
index 0000000..78782e1
--- /dev/null
+++ b/parts_pl_src/body/pl_krill_b.txt
@@ -0,0 +1,49 @@
+# pl_krill_b: from pixellab_src/pl_krill_b/base.png (variant of pl_krill) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 39)
+# head_top at (25, 18)
+# back at (41, 28)
+# tail at (50, 49)
+............oo^oooo.........................
+..........oo1111122oo.......................
+........oo11111111122oo.....................
+.......o21www1111111223ooooo................
+......o211ww111111111233o222oo..............
+.....o2111111111111112233o11bco.............
+.....o2111111111111112233o11accoo...........
+....o32111111111111212223o22aaco2o..........
+....oooo111111ooooo2222233o2aaco22o.........
+...oowwo11111owwoo1o222233o2222o122o........
+...oowwo21111owwoooo222233o222Bo1122o.......
+...ooooo22222ooooooo222233o333o2112co.......
+...ooooo22222ooooo1o222333o333o221aco.......
+...o2ooo22222oooo1wo222333o33o222aacco......
+...o3oo2222222ooooo222233o33oo22aaaacco.....
+...o332222222222222222333o3o322aaaaac2o.....
+....o3322222222222222333ooo33222aaac22o.....
+...oo333222222222333333o33333222cbc1222o....
+..o23o333333333333333oo3333332222111122o....
+..o23oooo33333333oooo33333333o33221112co....
+.oa2o2333oooooooo333332233333oo322111bco.oo.
+.oaco223333333333332A22223333o33222aaaco.o1o
+.obo32211222222222222222233333occbaaaccooo1o
+o2bo22111111111111112222223333occbaaacooo32o
+o22o22111111111111112222223333occbaa23occaco
+o13o22111111111111111222223333o3222222ocabco
+o13o2211111111111111122223333o22221122o11cco
+o23o3221111111111111122223333o2o211222o223o.
+.oooo221111111111111222333333o2o211223o333o.
+..ooo3222111111111122233222233oo21132o333o..
+.....o32222111111222233222222o3o2113o333o...
+.....o33322222222222332221122233oooo33oT....
+......oo333222222233oo22111122o3333ooo......
+.......oo33333333333o221111122o33oo.........
+.......ocooo33333333ocbaaabbccooo...........
+........obbooooo3333ocaaaaaccco.............
+.......oo223333ooooooccbaaaccco.............
+......o233333333o...oo33333333o.............
+.....o1311233333o...o222222333o.............
+.....ooo222333oo...o1112111233o.............
+.......ooooooo.....o112311223o..............
+....................oooo222oo...............
+........................Poo.................
diff --git a/parts_pl_src/body/pl_krill_c.txt b/parts_pl_src/body/pl_krill_c.txt
new file mode 100644
index 0000000..09ee535
--- /dev/null
+++ b/parts_pl_src/body/pl_krill_c.txt
@@ -0,0 +1,63 @@
+# pl_krill_c: from pixellab_src/pl_krill_c/base.png (variant of pl_krill) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 30)
+# head_top at (25, 8)
+# back at (41, 28)
+# tail at (51, 49)
+...................o......................
+........o........ooo......................
+.......oo.......o2o.......................
+......oo.......o1o........................
+.....o3o......^1o.........................
+.....o3o.....o13o.........................
+....o1o.....oo1o..........................
+....o1o....oo13ooooooooo..................
+....o2o..oooo2o322cco22cooo...............
+....o2ooo222o3o3o2aac22cccco..............
+....o33o2211o3o22321ao1aaccoo.............
+.....o331111231112o11222aaco2o............
+....o2211111111ww12o11o2112o12o...........
+...o32211111111ww12321o2212o12co..........
+..oo3211111oooo2222332o2222o2aco..........
+.oo3o31111o1oo1o322332o322o32acco.........
+.o1w1o211o1wwoo1o33333o322o22acco.........
+.oowoo222oowooo1o3333o333o2222222o........
+.ooooo222oooooo1o3333o33oo2222222o........
+.o1ooo222o1ooo1wo333o33o333222223o........
+..o11o2222o111wo3333ooo33333222cco........
+..ooo321222oooo3333oo33oooo333aaco........
+...o33112222233333ooo3o211o3332aco........
+....o32222233333oooo3o32112333bcco........
+...oo223333333ooo33o3o311w1o33Bcoo........
+o.o13ooooooooo.ooo333o311w1o3333o3o.......
+ooooo..........o3oo33A32111o333o333o......
+...............o33oo33o2211o3co3332o......
+................o33o33o3223oooo33332o.....
+................oooooooo333ooooo3332o.....
+.................o3oo.oo332o.oooo323o.....
+.................o33o..o322o.oooo32o2o....
+.................o33o..o322o.oooo32o22o...
+.................o13o..o312o..o3o33132o...
+.................o13o...o12o..o3o331o31o..
+..................o3o...o12o..o3o333o3o1o.
+..................o33o...o33o..oo3331o3ooo
+...................o3o....o33o..oo331o3o..
+...................o33o....o3o...o3o22oo..
+....................o3o....oooo..o3o21o2o.
+...................o33o.....o3o..o3o21o1o.
+...................o3o......o2o...oo21o1o.
+..................o33o......o2o....o31o1o.
+..................o3o.......o2o.....o1o3o.
+..................o3o.......o2o.....o2o3o.
+.................o33o.......o2o.....o3o3T.
+.................o3o........o2o.....oo.o..
+................o33o........o2o...........
+...............o333o.......o22o...........
+..............o323o........o22o...........
+...........ooo222oo........o22o...........
+.........oo3o2233o........o222o...........
+........o3oo1333oo......oo2223o...........
+........ooo2oooo......oo2o3133o...........
+..........oo.........o2oo1133o............
+.....................oooo2ooo.............
+........................Po................
diff --git a/parts_pl_src/body/pl_krill_d.txt b/parts_pl_src/body/pl_krill_d.txt
new file mode 100644
index 0000000..ff8c6b9
--- /dev/null
+++ b/parts_pl_src/body/pl_krill_d.txt
@@ -0,0 +1,49 @@
+# pl_krill_d: from pixellab_src/pl_krill_d/base.png (variant of pl_krill) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 37)
+# head_top at (25, 19)
+# back at (41, 28)
+# tail at (47, 49)
+...............ooooooooooooooo............
+.............o^3333222bbbo322coo..........
+..........ooo222223322aacbo22bbboo........
+.........o2221111112oo22ac3o11accoo.......
+........o2111111111122o2111o11aaco3o......
+.......o211111111111112o2112o211co32o.....
+......o211111111111www12o112o21112322o....
+.....o2211111111111www12o112o221123122o...
+.....o2211111111111111223o22o22212312bo...
+....o22211111111111222223o22o2222231abco..
+....ooo22111113ooo32222233o2o3B22o21aaco..
+....oooo21111oooo1oo222333o3o3322222cabco.
+...oowooo111oowooo1o323333oo3333o222aacco.
+...owwwoo222owwwooo1o33333oo333o2222abcco.
+...oowooo222oowoooo1o33333oo333o22222bc3o.
+...oooooo222ooooooo1o33333oo33o33222223oo.
+...o1oooo222oooooo1wo33333oo3o3332222oo33o
+...o1111o222o1ooo1wwo33333ooo3333333oo223o
+...o3ooo32222o111wwo333333ooo3333ooo22223o
+...o3332211122ooooo33A333oooooooo33222223o
+..oo33222111222223333333oo3oo33332222aaaco
+.o23o322222222222333333o3o32o33222222aacco
+o23oo33322222222333333oo22o1o3322222aaabco
+o2o2oo33332222233333oo33o1oo1o3322222bcbco
+o3o2o3o33333333333ooo3ooo12o2ooo22222cbco.
+oooo33oooo3333333o33o2o33o2o3ooooo2222cco.
+...o2o2o3oooooooo333o1o33o2oo3222ooo223o..
+...o3oo3222233333333o1o33o3o33222233oooo..
+....ooo2212222222233o2o33ooo22222ab333o...
+.....o32222222222233ooo3333o3222aabcc3o...
+.....o332222222222333332o222o22abbbbbo....
+......o33322223333332222o2222o23bbbbT.....
+.......o333333333333a222o22a23o3bbbo......
+........o333333333bbc223o2aab3ooooo.......
+.........oo3333333bbc33oobcbb3oo..........
+...........ooooooooooooooooooo............
+.............o333333333o333o..............
+............o22333323333233o..............
+............o12233112332233o..............
+.............oooo3122332223o..............
+.................o122331223o..............
+..................ooooo122o...............
+.......................Poo................
diff --git a/parts_pl_src/body/pl_lamprey.txt b/parts_pl_src/body/pl_lamprey.txt
new file mode 100644
index 0000000..eaca968
--- /dev/null
+++ b/parts_pl_src/body/pl_lamprey.txt
@@ -0,0 +1,46 @@
+# pl_lamprey: from pixellab_src/pl_lamprey/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (31, 23) (from part/probe)
+# back at (33, 39) (from part/probe)
+# tail at (45, 52) (from part/probe)
+.............ooooooooo..............
+...........oo221111112oo............
+..........o221111^111122o...........
+.........o211111111111112o..........
+........o11oo1o11111o13o22o.........
+.......o211o31122221113o222o........
+.......o2111222333332211122o........
+......o221223ccacocacc321222o.......
+......o2223caoo1ooo1ooa32222o.......
+......o223co1ooooooooo1c3222o.......
+......o22cooooooooooooooc222o.......
+......o22cooooooooooooooc322o.......
+......o22cooooooooooooooc322o.......
+.......o23co1ccccccccc1co22o........
+.......o223cacaacccaacao223o........
+........o22233bbbbbb333222o.........
+.........o222221111122223o..........
+..........ooo222222222ooo...........
+..........o33ooooooBoo33o...........
+.......oooo3223333332223oooo......oo
+.....oo333o3222222222223o222oo...o1o
+....o3322o322222333222223o2222o..o1o
+...o33222o3221112A2111223o22222oo12o
+..o332223o322111111111223o22122oo12o
+..o322223o322111222111223o321122o22o
+.o3222223o321111222111223o221112o22o
+.o3222223o322111111111223o211122o22o
+.o3222222o332111222111223o211123o22o
+oo32222223o3211122211123o2211123o22o
+o332222222o33221111122oo22111123o22o
+o3332221222oo3222222oo2221111223322o
+o3o3222112222ooooooo22211111223T32o.
+o3o3322111112222222221111112223o22o.
+o33o32222111111111111111122223o323o.
+.o33o322222211111111111222223o323o..
+..o33o3322222211111122222233o333o...
+...oooo33322222222222222333o33oo....
+......ooo3332222222222333ooooo......
+.........oooo333333333ooo...........
+.............ooooPoooo..............
diff --git a/parts_pl_src/body/pl_lamprey_b.txt b/parts_pl_src/body/pl_lamprey_b.txt
new file mode 100644
index 0000000..c643286
--- /dev/null
+++ b/parts_pl_src/body/pl_lamprey_b.txt
@@ -0,0 +1,51 @@
+# pl_lamprey_b: from pixellab_src/pl_lamprey_b/base.png (variant of pl_lamprey) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (31, 16)
+# back at (33, 39)
+# tail at (51, 52)
+.................ooo^oooo.................
+..............ooo11111111ooo..............
+............ooc1111111111bbcoo............
+...........ooaa1111111111aaabco...........
+..........ocbaa11111111111aaaaco..........
+.........ocaaa1111111111111aaa12o.........
+........o311111111111111111111122o........
+........o311111oo11111111oo1111123o.......
+.......o3111111oo11111111oo1111113o.......
+......o331111111111oooo111111111133o......
+......ocaa11111111o1111o11111111113o......
+......ocaa1111111o111111o1111111113o......
+......ocaa111111o21111113o111111113o......
+......ocaa111111o11111113o31111111co......
+......oc2111111oo1o1111o3o3111111aco......
+......o32111111oo1o1111o3o3111111aco......
+......o331111113o21111113o3111111cco......
+......o331111111o3311113o311111113co......
+.......o331111113o333333o3111111333o......
+......oo3321111113oo33oo21111111333.......
+.....o33o33311111333ooo31111112233o.......
+....ob333o3331111113333111111123333o......
+....obc333o333311111111111113333o333o...oo
+...obbc32233oo33333333B333333oo33333o...oo
+...ob3c22113333333333A333333333333333o.o1o
+...o333211111113333333333311112233333o.o1o
+...o332111111111111111111111111223333ooc1o
+..oo33caa11111111123333211111111232133oc1o
+.o3o33caaa1111111111111111111113331113o11o
+.o3o33ccaa111111111111111111113331111co13o
+o333333cc111111111233332111113332111aco13o
+occ3o3333211111111222211111133331111aco13o
+obb33o33333211111111111111133o211111aco13o
+obc333o333333211111111113333o21111112331co
+ob33333o33333333333333333ooo211111113o33co
+o333333ooo333333333333ooo221111111133o333o
+.o33333233oooooooooooo11111111111ac3o333T.
+.oo33332111aa1111aaa111111111111aabco333o.
+..o3333cc11111111aa1111111111111acco33co..
+...o333bbc21111111111111111aa1123co333oo..
+....oobbbb321cca1111111111aaa2333o333oo...
+.....ooocc333ccc111cccc112cc333oo33oo.....
+.......ooo333333333bbbb333333oooooo.......
+..........ooo333333cccc33oooo.............
+.............oooooooPoooo.................
diff --git a/parts_pl_src/body/pl_lamprey_c.txt b/parts_pl_src/body/pl_lamprey_c.txt
new file mode 100644
index 0000000..0db8d1f
--- /dev/null
+++ b/parts_pl_src/body/pl_lamprey_c.txt
@@ -0,0 +1,46 @@
+# pl_lamprey_c: from pixellab_src/pl_lamprey_c/base.png (variant of pl_lamprey) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (31, 21)
+# back at (33, 39)
+# tail at (48, 52)
+.............oooo^oooo..............
+...........oo221111112oo............
+..........o2111111111122o...........
+.........o211111111111112o..........
+........o11oo1o11111o13o12o.........
+.......o211o31122222113o122o........
+.......o2111222333332211122o........
+......o221223ccacocacc321222o.......
+......o2223caoo1ooo1ooa32222o.......
+......o223co1ooo333ooo1c3222o.......
+......o22cooooo22222ooooc222o.......
+......o22coooo2211112oooc322o.......
+......o22cooo221111112ooc322o.......
+.......o23co32111111122co22o........
+.......o223c21111111112o223o........
+........o22o21111111111o22o.........
+.........o231111111111123o..........
+..........o3211111111122o...........
+..........o32211111B1122o...........
+.......ooooco2221111122ocooo......oo
+.....oo333occ2222222222cco22oo...o1o
+....o3322occbbo222222cccco2222o..o1o
+...o33222occbacccAcccaacco22222oo12o
+..o332222o3ccaaaaaaaaaac3o22cc2oo12o
+..o322223o322ccaaaaaacc23occaabbo12o
+.o33cccc3o32211cccccc1223ocaaaabo12o
+.ocbaaabco322111111111223occcaaao22o
+.ocaaaaaco332111333111223o211cbao22o
+oocaaacccco3211122211123o221112co22o
+oocacc1222o33221111111ooccc11122o22o
+oocc2211222ooo222222oo3caaac1133o22o
+o3o32211122cccoooooo2222caaac23o22T.
+o3o3321111caaac2222221111caabc3o22o.
+o33o32211caaac111111111112cabco223o.
+.o33o3222caaa1111111111222ccco323o..
+..o33o333caac2211111222222cco333o...
+...oooo33cbbc2222222222233co33oo....
+......ooocbbc322222222333ooooo......
+.........ooocc33333333ooo...........
+............oooooPoooo..............
diff --git a/parts_pl_src/body/pl_lamprey_d.txt b/parts_pl_src/body/pl_lamprey_d.txt
new file mode 100644
index 0000000..d2f9b43
--- /dev/null
+++ b/parts_pl_src/body/pl_lamprey_d.txt
@@ -0,0 +1,47 @@
+# pl_lamprey_d: from pixellab_src/pl_lamprey_d/base.png (variant of pl_lamprey) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 20)
+# back at (33, 39)
+# tail at (48, 52)
+................o^o.................
+............oooo112oooo.............
+...........o2a1111211a2o............
+..........o212a11121a212o...........
+.........o2111a2112aa1112o..........
+........o11oo11a212a113o22o.........
+.......oo11o31111111113o12oo........
+.......oo2112223333321111ooo........
+......o22o223ccacocacc321o22o.......
+......o2223caoo1ooo1ooa32222o.......
+......o223co1ooooooooo1c3223o.......
+......oa3cooooooooooooooc33ao.......
+......o22cooooooooooooooc322o.......
+......o22cooooooooooooooc323o.......
+.......o23co1ccccccccc1co22o........
+.......o223cacaacccaacao223o........
+........o22233bbbbbb333222o.........
+.........o222221111122223o..........
+..........ooo222222222ooo...........
+..........o33ooooooBoo33o...........
+.......oooo2233333333323oooo......oo
+.....oo123o3231111111323o322oo...o1o
+....o2211o3333111A112333o31122o..o1o
+...ooo111o3223ooooooo322o321ooooo12o
+..oo2oo11o32231111111322o333211oo12o
+..o3112ooo33331111111333oo311111o12o
+.o32ac12oo322333333333223o311111o12o
+.o3221112o322311111113223o32211ao12o
+.o32213ooo333311111123233oooo11ao12o
+oo322oo11oo3333333333323o1111o22o22o
+oo3ao111112o3322222223ooo21111o2oc2o
+oo3oo1111ooooo222223oo211oo1113oo22o
+oo3o22112o211ooooooo221111o2123o12T.
+oooo2a12o2111o111o111o11111o2a3o22o.
+oooo3322o111oo111o1111o1112o3ao323o.
+.ooo333o2211o1111o1111o1222o3o333o..
+..ooo33o32a2o2c22o2c22o2223ooo33o...
+...ooooo333ao2a22o2a22oa333ooooo....
+.......o333ao333ao3333oa3ooooo......
+........ooooo333ao3333ooo...........
+.............ooooPoooo..............
diff --git a/parts_pl_src/body/pl_lantern.txt b/parts_pl_src/body/pl_lantern.txt
new file mode 100644
index 0000000..ca5843b
--- /dev/null
+++ b/parts_pl_src/body/pl_lantern.txt
@@ -0,0 +1,46 @@
+# pl_lantern: from pixellab_src/pl_lantern/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 40)
+# head_top at (31, 24) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (43, 51) (from part/probe)
+..............oooooooooo..............
+..........ooooccccccccccoooo..........
+.........ocbbaayy1111yyaabcco.........
+.........occcbbaaz^zzaabbccco.........
+........oocccbbaaazzaaabbcccoo........
+.......o22ooooccccccccccoooo22o.......
+......o222222222222222222o22222o......
+.....o22111ozz111111111zzbo11222o.....
+....o22113cbay11111111yyyaao11122o....
+...o332223222221111111122223322233o...
+..o222113cayyy111111111yyyaao311222o..
+..o22112oayyyy1111B1111yyyyac311122o..
+..o33333222222211111111122222333333o..
+.o22112oayyyyy111111111yyyyyao311122o.
+.o22113cyyoooy111111111yoooyac311122o.
+.o3333322owwwo211111111owwwo22333333o.
+o2211yoyoawcowo1111111owocwaoyc311122o
+o2211yoyoawcooo1111111ooocwaoyo311122o
+o33333333owwcco1111111occwwoo33333333o
+.o222b3zzooooo1111A1111ooooozz331222o.
+.o221aoyyaaa11ooooooooo11aaayyoa1122o.
+.o221zoyyaaa11ooooooooo11aaayyoa1222o.
+.o221zoyyyy111oocccccoo111yyyyca1222o.
+.o3333332222222cbbcbbc22222223333333o.
+..o2222oaayy111oaababo111yyaac32222o..
+..o22223cayy111oaaaaao111yyaac32222o..
+...o333332222bboaaaaaobb2222333333o...
+...o2222bccayyyobaaaboyyyabcob2222o...
+....o2222ocayyyyobbboyyyybbo22222o....
+.....o3333o333222ooo222233333333o.....
+......o2222o22bzzzzzzzzb22o222To......
+.......o2222o22222222222232222o.......
+........oooooooooooooooooooooo........
+.........occcbbaaazzaaabbccco.........
+.........occcbbaaaaaaaabbccco.........
+..........oooccccccccccccooo..........
+............oooooooooooooo............
+..........oo233o......o332oo..........
+.........o21123o......o32112o.........
+..........ooooP........ooooo..........
diff --git a/parts_pl_src/body/pl_lantern_b.txt b/parts_pl_src/body/pl_lantern_b.txt
new file mode 100644
index 0000000..d3ec764
--- /dev/null
+++ b/parts_pl_src/body/pl_lantern_b.txt
@@ -0,0 +1,60 @@
+# pl_lantern_b: from pixellab_src/pl_lantern_b/base.png (variant of pl_lantern) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 33)
+# head_top at (31, 7)
+# back at (31, 32)
+# tail at (44, 51)
+................oooo^ooooo...........
+............ooooccccccccccoooo.......
+...........ocbbaayy1111yyaabcco......
+...........occcbbaaaaaaaabbccco......
+..........oocccbbaaaaaaaabbcccoo.....
+.........o22ooooccccccccccoooo22o....
+........o22222o222222222222o22222o...
+.......o22222o3zz11111111zz3o22222o..
+.......o33333o22222222222222333333o..
+......o2222233zyy11111111yzz3o22222o.
+......o222223zyyy11111111yyzzo22222o.
+.....o333333322222222222222223333333o
+.....o2222z3zyyy1111111111yyzz322222o
+.....o2222z3zyyy1111111111yyyz322222o
+.....o333333322222222222222222333333o
+.....o2222z3zyyy1111111111yyyz322222o
+.....o2222z3zyyy1111111111yyyz322222o
+.....o333333332222222222222233333333o
+.....o2222z3zyy111111111111yyz322222o
+ooo..ooo22z3zyy111111111111yyz322222o
+oyzoooyyo333322222222222222233333333o
+oyyyzyyzo223yyoo11111111111yyy322222o
+oyyzyyzzo223yowwo1111111111yyy322222o
+.oyyyyyzo223owwooo111111111yyy322222o
+.oyyzyyzo22oawwoowo11111111yyy322222o
+..oyyyyzzo2oawoocwo1B1111ooooy322222o
+..ozyyyyzo2oawccwwo1A111oo1yyoo22222o
+..ozyyyyzo23oawwwo111111111yyy322222o
+..ozzyyyzo23zoooo1111111111azz322222o
+..oyyzyyzo23aaa111111111111aaa322222o
+..oyyyyyzo23aaa11o111111111aaa322222o
+.ozyyyyyzo23yyy111o1111oo11yyy322222o
+.oyyyyyzzo23yyy1111oooo1111yyy322222o
+.oyyyyyzo333332222222222222233333333o
+oyyyyyzzo2y3zyy111111111111yyy322222o
+oyyzyyyzo2y3zyy111111111111yyy322222o
+oyooozyzo333332222222222222223333333o
+ooo.ooyzo2233zzy1111111111yzzz322222o
+.....oozo2232zzyy11111111yyzz3322222o
+.....o3332232zzyyyyyyyyyyyyzz3322222o
+.....o333333333222222222233333333333o
+......o33322o222zzzyyyyyzzz22o22333o.
+......o33332o2222zzzzzzzzz222o23333o.
+.......o33333333333333333333333333o..
+........o3333o32222222222333o3333T...
+.........o3333o333333333333o3333o....
+..........oooooooooooooooooooooo.....
+...........occcbbaaaaaaaabbccco......
+...........occcbbaaaaaaaabbccco......
+............oooccccccccccccooo.......
+..............oooooooooooooo.........
+............oo333o......o333oo.......
+...........o22223o......o32222o......
+............ooooP........ooooo.......
diff --git a/parts_pl_src/body/pl_lantern_c.txt b/parts_pl_src/body/pl_lantern_c.txt
new file mode 100644
index 0000000..f40fe8a
--- /dev/null
+++ b/parts_pl_src/body/pl_lantern_c.txt
@@ -0,0 +1,53 @@
+# pl_lantern_c: from pixellab_src/pl_lantern_c/base.png (variant of pl_lantern) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 36)
+# head_top at (31, 14)
+# back at (31, 32)
+# tail at (47, 51)
+..................oooo^ooooo..................
+..............ooooccccccccccoooo..............
+.............ocbbaazz1111zzabbcco.............
+.............occcbaaaaaaaaaabccco.............
+...........ooocccbbbbbbbbbbbbcccooo...........
+..........oc22222cc222cc222cc222222o..........
+........oocbb221bb1111bb2222bb11222boo........
+.......o322bb111bb1111bb1111bb11111bc2o.......
+......oob21b11zzybbb11bb11bbbbz1111bb12o......
+.....ocbbbb11zzz1bbb11bb11bbb1z1111bbbcco.....
+....o3cbb221c11111bb11bbb11111111222bbccco....
+....occb211bbzzy111bbbbbb11111yzz1z11bcbco....
+...oc222bbbbzyyy11111111111111yyzzz111cccco...
+..o3c3oobb333111111111111111111113322233333o..
+..o2cbbbb1zzz11111111111111111111zzz1112222o..
+.o22221111zz11ooo111111111111ooo11yz11122222o.
+.occ22113zz11oowoo1111111111ooowo11zz112222co.
+.occb2111z111owoowo11111111owoowo111z11122bco.
+o222bb11zz111owoooo111B1111oooowo111zz112bcc2o
+o222bb11z1111owwcco11111111occwwo1111z112bc22o
+o222bb11z1aaa1oooo1111111111oooo1aaa1zz11b222o
+o22bb11zz1aaa11111111111111111111aaa1z111c222o
+obbb211zz111o1111111111A1111111111o11z1112ccco
+obbb211zz11ooo111111111111111111ooo11z1112ccco
+o22bb111z11oooooo111111111111oooooo11zz11222co
+o222b111z11ooooaoooooooooooooowwooo11z11122c2o
+o3ccb111zz1oooowawwooaaoaaowwowwooo11z1112cc3o
+o3ccb111zz11ooooowwoowwowwowwooooo11zz113cc33o
+.occc2111z11coooooooowwowwoooooooo11z1113cc3o.
+.o33cc2111z11oooooooaoooooooooooo11z31333ccco.
+.o33cc1bb1zz11ooowwoawwawwoowooo11zz1z223333o.
+..o33cccbb1zz11oowwwwwwawwowwoo11yz1122ccc3o..
+..o33ccc3bb1z1111oooaaaaaaooo1111zz1122bcc3o..
+...occcc33b11zz11111oooooo111111zz11bbcbcco...
+....o33c33c3z1zzz1111111111111zzz122bbc33c....
+.....o33cc333331zzzzzzzzzzzzzzzz333cc333oo....
+......o3cc333333ccc333bb33ccc133333cc3oo......
+.......ooc33333ccc3c33bb333ccc33333ccoT.......
+.........oo333cc333333bc33333cc33333o.........
+..........ooo3ccc33333cc33333cc33ooo..........
+.............occcbbaaaaaaaabbccco.............
+.............occcbbaaaaaaaabbccco.............
+..............oooccccccccccccooo..............
+................oooooooooooooo................
+..............oo333o......o333oo..............
+.............o21123o......o32112o.............
+..............ooooP........ooooo..............
diff --git a/parts_pl_src/body/pl_lantern_d.txt b/parts_pl_src/body/pl_lantern_d.txt
new file mode 100644
index 0000000..5f9b17f
--- /dev/null
+++ b/parts_pl_src/body/pl_lantern_d.txt
@@ -0,0 +1,63 @@
+# pl_lantern_d: from pixellab_src/pl_lantern_d/base.png (variant of pl_lantern) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 33)
+# head_top at (31, 4)
+# back at (31, 32)
+# tail at (45, 51)
+...................^o...................
+..................ozzo..................
+.................ozzybo.................
+................ozzzzzbo................
+...............obbzzzzbbo...............
+..............oooooooooooo..............
+.............obbbocbbbobbbo.............
+............obbbbozzzzobbbbo............
+...........obbzbozzzzzbobbbboo..........
+.........oobzzzobzzzzzzbobbbboo.........
+........oobbzzoozzzzzzzzbobbbboo........
+.......obbbzzzozzzzzzzzzzbobbbbbo.......
+......obbzzzzozzzzzzzzzzzbbobbbbbo......
+....oobbzzzbozzzzzzzzzzzzzbobbbbbboo....
+...ocbbbbzzozzzzzzzzzzzzzzzzobbbbbboo...
+..oobbbbbbozzzzzzzzzzzzzzzzzzobbbbbbbo..
+.occcccccobbbbbbbbbbbbbbbbbbbboccccccco.
+.oooooooooooooooooooooooooooooooooooooo.
+..o..o333bo3322222222222222233o333o..o..
+..o..o333bo3322222222222222233o333o..o..
+.ooo.o332oo332222222222222223oo233o..oo.
+.ozo.o33ozco2222222222222222oczo23o.ozo.
+oozo.o33ozco2222221111112yy2oczo23o.ozbo
+obco.o32obco2222211111112yy3ocbo23o.ocbo
+oaco.o32obco2yyy11111111yyy3ocbo23o.ocao
+oaco.o32oaco2yyy11111111yyyyocbo23o.ocao
+oaco.o32oacoyyyy11111111yyyyocbo23o.ocbo
+oaco.o32obcoyyyy11111111yyyyocbo23o.ocbo
+occo.o32obcoyyyy111B11111yyyocbo22o.ocoo
+.oo..o322oo3yyy11111A1111yyy3oo222o..oo.
+.....o322113yyy1111111111yyy311222o.....
+.....o322113yyy1111111111yyy311222o.....
+.....o322113yyy1o111111o1yyy311222o.....
+.....o322113yoooo111111ooooy311222o.....
+.....o322113yooo11111111oooy311222o.....
+.....o322113yaa1111111111aay311222o.....
+.....o322113yaa111ooo1111aay311222o.....
+.....o322113yyy11oo11o111yyy311222o.....
+.....o322113yyy11o111oo11yyy311222o.....
+.....o322113yyy1111111o11yyy311222o.....
+.....o322113yyy1111111111yyy312222o.....
+.....o322213yyy1111111111yyy322222o.....
+.....o332213yyyyy111111yyyyy322222o.....
+.....o332223yyyyyyyyyyyyyyyy322222o.....
+.....o3333232yyyyyyyyyyyyyy2322222o.....
+.....o3333332yyyyyyyyyyyyyy2323333o.....
+.....oo333333222222222222223333333o.....
+......o33333332222222222222333333T......
+.......ooo33332222222222223333oooo......
+.......occoooooooooooooooooooocco.......
+.......occocccbbazzzzzzabbcccccco.......
+........ooooccbbazzzzzzabbccoooo........
+...........oooccccccccccccooo...........
+.............oooooooooooooo.............
+...........oo333o......o333oo...........
+..........o22223o......o32222o..........
+...........ooooP........ooooo...........
diff --git a/parts_pl_src/body/pl_lavalamp.txt b/parts_pl_src/body/pl_lavalamp.txt
new file mode 100644
index 0000000..faf2b5b
--- /dev/null
+++ b/parts_pl_src/body/pl_lavalamp.txt
@@ -0,0 +1,46 @@
+# pl_lavalamp: from pixellab_src/pl_lavalamp/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 43)
+# head_top at (31, 24) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (42, 51)
+..........oooo..........
+.........o1223o.........
+.......oo212233oo.......
+......o11oo^ooo11o......
+......o3321111333o......
+......o3313222333o......
+.......oo122212oo.......
+......o22oooooo22o......
+......o2111221122o......
+......o2111221b22o......
+......o2112221ab2o......
+.....o221122211222o.....
+.....obba122211222o.....
+.....obaa122211b22o.....
+.....oboo122oooab2o.....
+.....oo1wobo111ob2o.....
+.....o1o1oao1o11o2o.....
+....oo1ooobBoo11o22o....
+....oo111obo111woc2o....
+....o2o1occao11oac2o....
+....ocbaaabcaaaaacco....
+....ocba1aabcaacccco....
+...o2cbaaabAcccabcc2o...
+...obac1bbcccca1abcco...
+...obba1ccaabcbaabcco...
+..o3cbb1cba1abcbbccc3o..
+..o3occ1cbaaabccccco3o..
+..o32oo1ccbbbcccooo33o..
+.o33311ooooooooo333333o.
+.o33322122222221223333o.
+.o33322333332221223333T.
+.o33222133322221222333o.
+o3332221222222212223333o
+o3332221232222211223333o
+o3332221222222211222333o
+.o33222123222221122233o.
+..o333332222222133333o..
+...ooo333333333333ooo...
+..o323oooooooooooo323o..
+...ooP............ooo...
diff --git a/parts_pl_src/body/pl_lavalamp_b.txt b/parts_pl_src/body/pl_lavalamp_b.txt
new file mode 100644
index 0000000..09a5bcd
--- /dev/null
+++ b/parts_pl_src/body/pl_lavalamp_b.txt
@@ -0,0 +1,46 @@
+# pl_lavalamp_b: from pixellab_src/pl_lavalamp_b/base.png (variant of pl_lavalamp) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 42)
+# head_top at (31, 21)
+# back at (31, 38)
+# tail at (41, 51)
+............o^oo............
+...........o1223o...........
+.........oo212233oo.........
+........o11oooooo11o........
+........o3321111333o........
+........o3313332333o........
+.........oo133312oo.........
+.......oo33oooooo33oo.......
+......o22222222222333o......
+.....o2111222222222333o.....
+....o2111222cccc2222333o....
+...o211122bbaaaacc222333o...
+..o211122caaaaaaacc222333o..
+.o221122caaaaaaaaacc222333o.
+.o221222caaaaaaaaaacc22233o.
+.o211222cooaaaaaaoocc22233o.
+o2211222owwoaaaaowwoc222233o
+o221222owwwwoBaowww1o222233o
+o222222owooooabooow1o222233o
+o22122cowowwoacowwo1oc22233o
+o2212caaowwoaaacowwoccc2233o
+o2212caabooaaAaccoocccc2333o
+.o222caaaacaccccccccccc233o.
+.o221cbaaabbbaabbaccccc233o.
+..o222cbaaabaaaabbccccc33o..
+..o331ccbbbbaaaabccccc333o..
+...o332ccccbbbbbccccc333o...
+....o332333cccccc333333o....
+.....oo33333333333333oo.....
+....o33oooooooooooooo33o....
+....o332212222222122333T....
+...o33222123222221222333o...
+..o3332221222222212223333o..
+..o3332221232222211223333o..
+..o3332221222222211222333o..
+...o33222123222221122233o...
+....o333332222222133333o....
+.....ooo333333333333ooo.....
+....o323oooooooooooo323o....
+.....ooP............ooo.....
diff --git a/parts_pl_src/body/pl_lavalamp_c.txt b/parts_pl_src/body/pl_lavalamp_c.txt
new file mode 100644
index 0000000..9af25ee
--- /dev/null
+++ b/parts_pl_src/body/pl_lavalamp_c.txt
@@ -0,0 +1,63 @@
+# pl_lavalamp_c: from pixellab_src/pl_lavalamp_c/base.png (variant of pl_lavalamp) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 36)
+# head_top at (31, 4)
+# back at (31, 38)
+# tail at (42, 51)
+..........o^oo..........
+.........o1223o.........
+.......oo212233oo.......
+......o11oooooo11o......
+......o3321111333o......
+......o3313222333o......
+.......oo122212oo.......
+......o22oooooo22o......
+......o2112222222o......
+......o211b222222o......
+......o211b222b22o......
+......o21122b2222o......
+......o2aa22b2222o......
+......o2aa2222222o......
+......o21122222b2o......
+......o21122b2222o......
+......o211a222222o......
+......o211c222ab2o......
+......o2112222bb2o......
+......o2a12222222o......
+......o21122ab222o......
+......o21ac2bb222o......
+......o2aaab222b2o......
+......o2aaab22222o......
+......o2aabb22babo......
+......oc1ac2ccaabo......
+......ocaabcaabbbo......
+......oaaacaaaccco......
+......oaaaaaabcaco......
+......ocooaaacooco......
+......oowwobbowwoo......
+......owowoaowow1o......
+......owoooAooow1o......
+......owwwoaowww1o......
+.....oaoooaBaooocco.....
+....ocaaaacbbaaaacco....
+....oaaooaaacaaoocco....
+....oaoowoooooowooco....
+...ocaooowwwwwoooocco...
+...ocaoooooooooooocco...
+...ocaoowoaaaaowoaaco...
+...occaaowwwwwwoaacco...
+..o3cccaaooooooaaccc3o..
+..o3occ1caaaaaacccco3o..
+..o32oo1ccccccccooo33o..
+.o33311ooooooooo333333o.
+.o33322122222221223333o.
+.o33322333332221223333T.
+.o33222133322221222333o.
+o3332221222222212223333o
+o3332221232222211223333o
+o3332221222222211222333o
+.o33222123222221122233o.
+..o333332222222133333o..
+...ooo333333333333ooo...
+..o323oooooooooooo323o..
+...ooP............ooo...
diff --git a/parts_pl_src/body/pl_lavalamp_d.txt b/parts_pl_src/body/pl_lavalamp_d.txt
new file mode 100644
index 0000000..013e989
--- /dev/null
+++ b/parts_pl_src/body/pl_lavalamp_d.txt
@@ -0,0 +1,50 @@
+# pl_lavalamp_d: from pixellab_src/pl_lavalamp_d/base.png (variant of pl_lavalamp) (pixellab_library.py extract)
+# pivot at (24, 57)
+# aura at (32, 38)
+# head_top at (31, 14)
+# back at (31, 38)
+# tail at (46, 51)
+................o^oo................
+...............o1112o...............
+...............o1223o...............
+.............ooo1223ooo.............
+............o11o3333o22o............
+..........ooo3323333333ooo..........
+.........o112oooooooooo222o.........
+.........o1211111111111233o.........
+.........o1222222222223333o.........
+..........oo333333333333oo..........
+..........o3oooooooooooo3o..........
+..........o12222222233333o..........
+.........oo22222333333333oo.........
+.......oo122222222233333333oo.......
+......o1122111222222222333333o......
+.....o112222222222222222233333o.....
+....o11211222222222222222223333o....
+...o1121112222222222222222223333o...
+...o1211122222222222222222223333o...
+..o122112222222222222222222223333o..
+..o1211222222ooo222oooo2222222333o..
+.o1221122222oww1obo1ww1o2222223333o.
+.o122222222owwowowowowwo2222222333o.
+.o12122222bowwooobooowwocc22222333o.
+o122122222baoww1oBAwww1oabc22223333o
+o12212222caaoooocbboooowabc22223333o
+o12212222cbbcaaabccaaaabbbcc2223333o
+o122122ccbccbawaabccaaaccccbc223333o
+o12222ocaaacbaaaabcccccabccaco23333o
+o12212ocawabccbbbcccccawaacbco23333o
+o12212ocaabcaabcccaaacaaaaccco33333o
+.o122o3occcaawabcbawabcbbccco3o333o.
+.o122o32oocbaaabcbaaabccccoo33o333o.
+.o12o33211oobbbcccbbbbccco3333o333o.
+..o1o3322211ooooooooooooo223333o3o..
+..o1o33222222222222222212222333o3o..
+...o2333222223333322222122223oo3o...
+...o3333222221333222222112223333T...
+....o33332222122222222211223333o....
+.....o333332212322222221133333o.....
+......o3333333222222222333333o......
+.......oooo33333333333333oooo.......
+.......o323ooooooooooooooo323o......
+........ooP...............ooo.......
diff --git a/parts_pl_src/body/pl_lilyray.txt b/parts_pl_src/body/pl_lilyray.txt
new file mode 100644
index 0000000..abfcbc4
--- /dev/null
+++ b/parts_pl_src/body/pl_lilyray.txt
@@ -0,0 +1,36 @@
+# pl_lilyray: from pixellab_src/pl_lilyray/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 46)
+# head_top at (32, 35) (from part/probe)
+# back at (31, 37) (from part/probe)
+# tail at (45, 51) (from part/probe)
+...........oooooooo...........
+.........oo11111111oo.........
+.......oo111oooooo111oo.......
+......o11ooo333333ooo11o......
+....oo13ca3o323^23oobco3oo....
+...o11ocao3232332323obco31o...
+...o1obao23222B222233obc31o...
+..o11oo3223221221223223ooo1o..
+..o1o33322222122122222333o1o..
+.o1oo22133132122123133222oo1o.
+.o1o3322111321221231112233o2o.
+o11o2233111121111211113322o21o
+o1oo3322221112112111222233oo1o
+o1o33322222211111122222233oo1o
+o1oc2222111111111111112222co1o
+o1oca33222oo11A111oo22233aco1o
+o1bbo2222owo111111woo2222obb1o
+o1oca2222ooo111111ooo2223aco3o
+o1oco32111331111113311223oco3o
+.o1oo2221o111oooo11131222oo3o.
+.o1o3332321111221111232333o3T.
+..o1oo3322213122131222333ooo..
+..o12o33222231221322223oo33o..
+...o2ocbo323213312322obco3o...
+...oo33cbo3323333233obc33oo...
+....oo33cb333o33o33obc33oo....
+...oabo333oo3ooooooo333obao...
+..oybbooo333oooooo333ooobbyo..
+...ooo...oooooooooooo...ooo...
+...........oooPoooo...........
diff --git a/parts_pl_src/body/pl_lilyray_b.txt b/parts_pl_src/body/pl_lilyray_b.txt
new file mode 100644
index 0000000..5182070
--- /dev/null
+++ b/parts_pl_src/body/pl_lilyray_b.txt
@@ -0,0 +1,47 @@
+# pl_lilyray_b: from pixellab_src/pl_lilyray_b/base.png (variant of pl_lilyray) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (32, 20)
+# back at (31, 37)
+# tail at (50, 51)
+.....................o^o....................
+....................obbbo...................
+..............oo...ob111bo...oo.............
+.............obbooob11111o.oobbo............
+.............o11bbob11111ooob11bo...........
+............ob1111o1111111o1111bo...........
+.......oooo.ob111o11133111o11111o...........
+......obbbbooo111o11333111o13311o.oooo......
+......ob11111o233c11333311o1331oobbbbo......
+......ob111111c33o11333322c333ob11111bo.....
+......ob1133111c33c233333c333oo111111bo.....
+.....ooo1133311c33c333333c333c2113311bo.....
+...oobbbo113333c3ooooooooooo1c2333311bo.....
+..ob11111co233ooo33oooooo33ooo3333111ooo....
+.ob1111111oo3oo3ooo333333ooo3oo33312oocco...
+.ob11123112co13ca3o323323oobc3oo33coo111bo..
+.oo11133333o3ocao3232332323obco3occ2111111oo
+..ob111333ooobao23222B222233obc3oo32111111bo
+...o111333o3oo3223221221223223ooo2o3333111bo
+...oo1113o3o33322222122122222333o2o3333111bo
+..ooooo33ooo22133132122123133222oooo331111bo
+.obb112oo1o33221113212A1231112233o2o33111bo.
+ob111133o2o3233111131111311113322o2o3222oo..
+ob11133o2oo3322221112112111222233ooooccooo..
+ob11333o2o33322222211111122222233oo2o3211co.
+ob11133o2oc2222111111111111112222co2o33111bo
+.ob1113o2oca33222oo111111oo22233aco2o33311bo
+..oo22oo2bbo2222owo111111woo2222obb3o33311bo
+...ooooo2oca2222ooo111111ooo2223aco3o11111bo
+....o1233oco32111331111113311223oco3c3111boo
+...ob13333oo3221o111oooo11131223oo333cobbo..
+...ob13333o3332321111221111232333o3331ooT...
+..ob1133132oo3322212122131222333o33231bo....
+..ob111111o2o33222221221322223oo333131bo....
+...obb111bo2ocbo323213312322obcoc21111bo....
+....oobboooo33cbo2323333233obcoooo1111bo....
+......oooo.oo3ocb333o33o33obcoooooobbbo.....
+..........oaboooooo3ooooooooooobao.ooo......
+.........oybboooooooooooooooooobbyo.........
+..........ooo...oooooooooooo...ooo..........
+..................oooPoooo..................
diff --git a/parts_pl_src/body/pl_lilyray_c.txt b/parts_pl_src/body/pl_lilyray_c.txt
new file mode 100644
index 0000000..f9822e1
--- /dev/null
+++ b/parts_pl_src/body/pl_lilyray_c.txt
@@ -0,0 +1,50 @@
+# pl_lilyray_c: from pixellab_src/pl_lilyray_c/base.png (variant of pl_lilyray) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 38)
+# head_top at (32, 16)
+# back at (31, 37)
+# tail at (51, 51)
+..................ooooo^oooo...................
+...............ooo1111111111oooo...............
+.............oo1112oooooooooo111ooo............
+...........oo11oooo333333333oooo111o...........
+.........oo1ooa33oo333333333ooooboo3o..........
+........o11obba33oo332333223oooobcco3oo........
+......oo1oobaaoo322332333223o233obbbo31o.......
+.....o11oobbao2232233222222222333oobboo2o......
+....o11oobbaoo2232222222222222333oobbco23o.....
+....o1ooooo32222322221222112223322233ooo3o.....
+...o11ooooo32222322221222112223322233oooo2o....
+...o1oo333332222222221222112222222233333oo2o...
+..o1ooo2222233331222212221122211333222233o2o...
+..o1o3333222222212222122211222112222223333o2o..
+.o12o3333222111112222122211222111112223333o2o..
+.o12o3222333111111122111111221111113332222o2o..
+o11oo3333222222211111211122111112222223333oo2o.
+o11oo3333222222211111211122111112222223333oo2o.
+o1ooo3333222222222211111111112222222223333ooo2o
+o1ooc2222222222222211111111112222222222222coo2o
+o1ooc2222222111111111111111111111112222222coo2o
+o1oocaa333322222ooo111B111112ooo22222333aacoo2o
+o1bbboo2222222oo1oo1111A11111wooo2222222oobbb2o
+o1bbboo2222222oowoo1111111111wooo2222222oobbb3o
+o1oocaa2222222ooooo1111111112oooo2222222abcoo3o
+o1oocaa2222222ooooo1111111113oooo2222222abcoo3o
+o1ooco33322211113331111111112333111222333ocoo3o
+.o1ooo322222113311111oooooo11111311222223ooo3o.
+.o1ooo32222211331111112221111111231222223ooo3o.
+.o1oo3333322332211111122211111112232233333oo3o.
+.oooo3333322332211111122211111112232233333oooo.
+..o1oooo22332222211221222112212222233223ooo3o..
+..o1oooo2233222221122122211221222223323oooo3o..
+...o13oo22332222222221222112222222233oooo33o...
+...o33oobb333222233221333112332222ooobboo33o...
+....o3ooobbc3222233221333112332222oobcoo33T....
+....oo3ooocbcooo3332233333323333oobbcco33oo....
+.....oo33occcoooo3322o333oo233oooobbc333oo.....
+......oo33oocbboo33ooo333oooo3oobbcc333oo......
+.....occo333ocboo33ooo333oooo3oobbcc33occo.....
+....oybcooo3333ooooooooooooooooo33333oocbao....
+...oybbbo.ooo33333ooooooooooo333333oooobbbyo...
+....oooo.....oo3333333333333333oooo....oooo....
+...............ooooooooPooooooo................
diff --git a/parts_pl_src/body/pl_lilyray_d.txt b/parts_pl_src/body/pl_lilyray_d.txt
new file mode 100644
index 0000000..5685ba2
--- /dev/null
+++ b/parts_pl_src/body/pl_lilyray_d.txt
@@ -0,0 +1,43 @@
+# pl_lilyray_d: from pixellab_src/pl_lilyray_d/base.png (variant of pl_lilyray) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (32, 28)
+# back at (31, 37)
+# tail at (40, 51)
+......oooooo............oooooo......
+....oo322222oo........oo222223oo....
+...o3222222223oo.....o3222222233o...
+..o211b122222233o...o322222222233o..
+..o211b1222222233o^o3222222222233o..
+.o2112c22222b2223333222b22222b2233o.
+.o21222b2222b2222332222b22222b2223o.
+o2212222b222b2222332222b2222cc22233o
+o2212222b22b222222322222b222c222233o
+o22222222b2b222222322222322c2222223o
+o222222222cc22222222222223cc2222223o
+o22bbbbbbbcc2222222222222cccbbbbb23o
+o2222222222c222222322222cc322222223o
+o32222222222b2222B322222c3222222233o
+o322222222222b222232222c32222222333o
+.3222222222222bc233222c322222222333.
+.o3222222222222ccA322c322222222233o.
+.o3322b222222oo22333coo2222222b233o.
+..o322b322222wo222332wo222222b223o..
+...o322222222oo222322oo222222c23o...
+...o3322c2222332223223322222c223o...
+....o322c2232222oooo2223222c223o....
+.....o322c2222222232222222c223o.....
+......o322c22222223222222c223o......
+.......o322c222222322222c223o.......
+.......o3322c2222232222b2233o.......
+........o3322cc2223222c2233o........
+.........o3322cc33322c2233T.........
+.........oo33222c332c2333oo.........
+........obbo3322233c2233obbo........
+........oaboo33222c2233oocao........
+.......oabo..o3322c233o..obao.......
+......oaabo...o333c33o...obaao......
+.....oybbbo....o3333o....obbbyo.....
+......oooo......o33o......oooo......
+................oo3o................
+.................Po.................
diff --git a/parts_pl_src/body/pl_lithops.txt b/parts_pl_src/body/pl_lithops.txt
new file mode 100644
index 0000000..d1f8e70
--- /dev/null
+++ b/parts_pl_src/body/pl_lithops.txt
@@ -0,0 +1,46 @@
+# pl_lithops: from pixellab_src/pl_lithops/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (30, 24) (from part/probe)
+# back at (33, 39) (from part/probe)
+# tail at (48, 45) (from part/probe)
+.........oooooo..........oooooo.........
+.......oo111111oo......oo111111oo.......
+......o1111111113o....o2111111111o......
+.....o211111111123^..o211111111112o.....
+....o2caa11111111aboobaa111111aac22o....
+...o23baa1111111aabc3baaa11111aab323o...
+...o23ba11111111aabc3baaaa11111bb323o...
+..o3211111111111aabc3baaa111111112233o..
+..o32211111111122bbc3bbb1111111122233o..
+..o3222111111a12222332211111111122bbco..
+..oc32221111aab222333222211112122bbbco..
+..ocbb222222bbc2233333222222222222bcco..
+..occbb3222222233333o33332222ab22bccco..
+..occcb33222223333ooooo33322bbbb33ccco..
+...occcb33333333ooooooooo3333cc3333co...
+...occc333333ooooooo33ooooo333333333o...
+....oc333oooooooo3333333ooooooo3333o....
+.....oooooo333222oooooo22233ooooooo.....
+....occc3333333321111B1233333333ccco....
+...ocbba112222233333333332222222bbbco...
+...obaa1111111111222A221111111122aabo...
+..ocbaaa11111ooo11222211ooo11111aaabco..
+..ocbaa11111oww3o112211oww3o111122bbco..
+..ocb2211111oww3o112211oww3o1112223bco..
+..o322222111ooooo122221ooooo11222233To..
+..o333222222o323o222222o323o222223333o..
+..o3333222223ooo32233223ooo322223bbc3o..
+..o33cbb322223332233332233322233bbcc3o..
+...o3ccbb33222222333333222222333bccco...
+...o3cccb33332323bcc333323233333ccc3o...
+....o3cc3333333bbbcc333333bb3333333o....
+.....o33333333bbcccco3333cbbc33333o.....
+...ooboo3333333ccccobo3333cc33333oboo...
+..o22bbboo33333ccoob3boooo33333oobb32o..
+.o2x23bbbbooooooobbb3b3xx3ooooobbbb223o.
+o3322b323bb2xx1bbbbbb211333bbbb3x22b3bbo
+oo33b2x23b211223b2112b3333b3xx3b2222bboo
+..ooo333b222223b221133bbbb3x1223b333oo..
+.....oooo333333bb333333bbb333333oooo....
+.........ooooooooooPoooooooooooo........
diff --git a/parts_pl_src/body/pl_lithops_b.txt b/parts_pl_src/body/pl_lithops_b.txt
new file mode 100644
index 0000000..26f0a10
--- /dev/null
+++ b/parts_pl_src/body/pl_lithops_b.txt
@@ -0,0 +1,53 @@
+# pl_lithops_b: from pixellab_src/pl_lithops_b/base.png (variant of pl_lithops) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 37)
+# head_top at (30, 24)
+# back at (33, 39)
+# tail at (52, 45)
+.............ooooo....................ooooo...........
+...........oo21122oo................oo21122oo.........
+.........oo2111112bbo.............oo21122222bo........
+........o22112222222bo...........o22111222222bo.......
+.......oc211222222222bo..........o211222222222bo......
+.......o21122oooo2222bo.........o211222oooo222bbo.....
+......o22122obaabo2222bo........o21122obaabo222bo.....
+......o2212oaaaaabo222bo.......o22112oaaaabbo222bo....
+.....o22122oaaaaabo222bbo......o22122oaaaaabo222bo....
+.....o22222oaaaaabo2222bo.....ob22122oaaaaabo222bbo...
+....ob22222oaaaabbo2222bb^....ob22222oaaaabbo222bbo...
+....ob22222obaaabbo2222bbo...ooc32222obaaabbo2222bo...
+...occb22222obbbbo22222bbco..o22cc2222obbbbo22222bbo..
+...o2cc222222oooo222222bbco.ob2222c2222oooo222222bbo..
+..ob22cc222222222222222bcco.obb212c22222222222222bbo..
+..ob212c22222222222222cccbboobb2222c222222222222bbco..
+..ob221cc222222222222ccc2bbocbb2222c22222222222bbccbo.
+.obb2221cc22222222222cc222bocbb2222c22222222222bccbbo.
+.obb22222c222222222222c222bbob2222cc2222222222bb212bo.
+.ob222222c222222222222c2222bob222c212222222222b2222bo.
+obb222222c222222222222b2222bob22b22222222222222c222bo.
+obb22222c2222222222222b222bbob22b22222222222222c222bbo
+obb2222b22222222222222b222bbobbbb222222222222222b22bbo
+obbb222b2222222222222bbbbbbAooobbb22222222222222b22bbo
+obbb222c222222222bbbbooooooooo3oobbbb2222222222cbbbbbo
+obbbb22c222222bbbbooo3322222B2233ooobbb22222222bcbbbbo
+obbbbbcb22222boooo322233333333332222ooobbb222bbbcbbbo.
+.obbbbcbbbbbbo3222222222222222222222223obbbbbbbbcbbbo.
+.obbbbcbbboooba22222ooo22222222ooo22222aooobbbbbcbbo..
+..oobbcbboobaa22222owwco222222owwco222222bcobbbbcooo..
+....ooobbocb2222222owwco222222owwco2222223bcobbboo....
+......oooo322222222ooooo222222ooooo222222333oooT......
+.........o333222222oc2co222222oc2co222223333o.........
+.........o3333222223ooo32233223ooo322223bbc3o.........
+.........o33cbb322223332233332233322233bbcc3o.........
+..........o3ccbb33222222333333222222333bccco..........
+..........o3cccb33332323bcc333333233333ccc3o..........
+...........o3cc3333333bbbcc333333bb3333333o...........
+............o33333333bbcccco3333cbbc33333o............
+..........ooboo3333333ccccobo3333cc33333oboo..........
+.........o22bbboo33333ccoob3boooo33333oobb32o.........
+........o2x23bbbbooooooobbb3b3xx3ooooobbbb223o........
+.......o3332b323bb2xx1bbbbbb2x1333bbbb3x22b3bbo.......
+.......oo33b2x23b211223b2112b3333b3xx3b2222bboo.......
+.........ooo333b222223b221133bbbb3xx223b333oo.........
+............oooo333333bb333333bbb333333oooo...........
+................ooooooooooPoooooooooooo...............
diff --git a/parts_pl_src/body/pl_lithops_c.txt b/parts_pl_src/body/pl_lithops_c.txt
new file mode 100644
index 0000000..387eb28
--- /dev/null
+++ b/parts_pl_src/body/pl_lithops_c.txt
@@ -0,0 +1,44 @@
+# pl_lithops_c: from pixellab_src/pl_lithops_c/base.png (variant of pl_lithops) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (30, 23)
+# back at (33, 39)
+# tail at (53, 45)
+...............ooooo^ooooooo................
+.............oo111oo11111111ooo.............
+...........oo11111oo111111111ooooo..........
+.........oooo111111o111111111oo111o.........
+........ooooo111111o111111111oo1111oo.......
+.......o222oo11111o11111111113o111113o......
+......o22211o3111o111111111111o111133o......
+......o22111oooooo111111111111oo112ooo......
+.....o221111oo11oo111111111111occooo22o.....
+....o2221111o1111o11111111oooooccoo1122o....
+....o222111oo11111o111111oo11111oo11122o....
+...o322211oo111111311111o31111111o111222o...
+...ooo221oo111111111111o111111111o1112222o..
+..o22oo22o1111111111111c111111111o1122222o..
+..o222cooc11111111111111111111111o1222222o..
+.o322222o311111111111111111111o11o12222223o.
+.o322222o21111111111111B1111111ooo22222223o.
+o3322222o221111ooo11111111ooo111oo222222oooo
+o3322222o22221owwbo111111owwbo122oo2223oco3o
+o3322223o22222owwbo111A11owwbo1222ooooooo33o
+o333322oo22222ooooo211111ooooo22222oo222ccoo
+o33332ooo22222ob3bo222222ob3bo22222o222233co
+o333cco22o22223ooo32222223ooo32222o22223333T
+.oooco322o222223332222222233322222o2223333o.
+.oooo3322o2222222222222222222222222oo23333o.
+.ooo33333cco222222222222222222c22222c33333o.
+..o33333o333o22222222222222222c223333o333o..
+..o3333co3333323o222222222222cc333333o333o..
+...o333co33333co3222222222333c3333333o33o...
+....o33co3333cc33333333333333c3333333o3o....
+.....oooo3333co33333333333333c333333ooo.....
+....oaaaoo333co3333333333333cc3333ooaaao....
+...o1123aaooooo333333333333occooooaaa113o...
+..o3222a313aa1ooooooooooooooooaaa3111a3aao..
+..oo33a1x13a11111aa3333a2222a3xx3a1111aaoo..
+....ooo333a111113a11xx33aaaa3x1113a333oo....
+.......oooo333333aa333333aaa333333oooo......
+...........ooooooooooPoooooooooooo..........
diff --git a/parts_pl_src/body/pl_lithops_d.txt b/parts_pl_src/body/pl_lithops_d.txt
new file mode 100644
index 0000000..986486c
--- /dev/null
+++ b/parts_pl_src/body/pl_lithops_d.txt
@@ -0,0 +1,46 @@
+# pl_lithops_d: from pixellab_src/pl_lithops_d/base.png (variant of pl_lithops) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (30, 24)
+# back at (33, 39)
+# tail at (49, 45)
+..........oooooo..........oooooo..........
+........oo111111oo......oo111111oo........
+.......o1111111113o....o2111111111o.......
+......o211111111123^..o221111111112o......
+.....o3caa11111111aboobaa111111aac22o.....
+....o23baa1111111aabc3baaa11111aab323o....
+....o23ba11111111aabc3baaaa11111bb323o....
+...o3211111111111aabc3baaa111111112233o...
+...o32211111111122bbc3bbb1111111122233o...
+...o3222111111a12222332211111111122bbco...
+...oc32221111aab222333222211112122bbbco...
+...ocbb222222bbc2233333222222222222bcco...
+...occbb32222222333aco33332222ab22bccco...
+...occcb33222223333aaaooaa322bbbb33ccco...
+....occcb33333333oaxaaoaxab333cc3333co....
+....occc333333oooooaa33obbbo333333333o....
+..aa.oc333ooaaoooo331313bbooaaoo3333o..ab.
+.ayaa.ooooobyab222oo11oo222bxabooooo..axaa
+.baaaoccc33baab3321111B1233baab33ccco.aaaa
+..bbocbba112bb22333333333322bb222bbbco.bb.
+...3obaa1111311111222A221111331122aabo33..
+...ocbaaa111111111122221111111111aaabco...
+...ocbaaa11111ooo11122111ooo1111122bbco...
+...ocbaxaa111o311o112211oo22o1112223bco...
+...o32aaaa11111111122221o2221112222333T...
+...o333bb22222222222222222222222223333o...
+...o33333222aa222o222222o222aa2223bbc3o...
+...o33cbb322aa2222o2222o2222aa233bbcc3o...
+.aa.o3ccbb332222223ooooo222222333bccco.aa.
+aaaao3cccb33332323333333323233333ccc3oaxaa
+aaaa.o3cc3333333bb333333333bb3333333o.aaaa
+.bb...o3333aa33bbcccco3333cbbc33aa3o...bb.
+..3.ooboo3byaa33ccccobo3333cc33ayaaboo.3..
+..3o22bbbobaab33ccoob3boooo3333aaaab32o3..
+..o2x23bbbbbbooooobbb3b3xx3ooooobbbb223o..
+.o3322b323b33xx1bbbbbb2x1333bbbb3222b3bbo.
+.oo33b2x23b211223b1112b3333b3xx3b2222bboo.
+...ooo333b222223b221133bbbb3x1223b333oo...
+......oooo333333bb333333bbb333333oooo.....
+..........ooooooooooPoooooooooooo.........
diff --git a/parts_pl_src/body/pl_lizard.txt b/parts_pl_src/body/pl_lizard.txt
index 5a7c518..204a073 100644
--- a/parts_pl_src/body/pl_lizard.txt
+++ b/parts_pl_src/body/pl_lizard.txt
@@ -1,9 +1,9 @@
# pl_lizard: from pixellab_src/pl_lizard/base.png (pixellab_library.py extract)
# pivot at (40, 60)
# aura at (30, 44)
-# head_top at (30, 32) (from part)
-# back at (32, 32) (from part)
-# tail at (44, 47) (from part)
+# head_top at (30, 32) (from part/probe)
+# back at (32, 32) (from part/probe)
+# tail at (44, 47) (from part/probe)
.............oooooo................
...........oo222222oo..............
.........oo2222222222oo............
diff --git a/parts_pl_src/body/pl_lizard_b.txt b/parts_pl_src/body/pl_lizard_b.txt
new file mode 100644
index 0000000..28bca35
--- /dev/null
+++ b/parts_pl_src/body/pl_lizard_b.txt
@@ -0,0 +1,50 @@
+# pl_lizard_b: from pixellab_src/pl_lizard_b/base.png (variant of pl_lizard) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 40)
+# head_top at (30, 17)
+# back at (32, 32)
+# tail at (59, 47)
+..........................o^oooo..........................
+........................oo222222oo........................
+......................oo2222222222oo......................
+..................oooo32222222222223oooo..................
+.................o2111222222222222221112o.................
+................o321111222222222222111123o................
+................o322111122222222221111223o................
+...............o33oo311222222222222113oo33o...............
+............oooo3oo1o2222222222222222oooo3ooooo...........
+..........obaa2o3o11o222122222222122311oo3o2baao..........
+..........babb2o3o11o322222222222222o11oo3o3bbaao.........
+.........obbbb3o333ooo32222222222223ooo333o33bbbo.........
+.........obbb3o3333oooo222222222222oooo3333o3bbbo.........
+.........o3333o33o3323o222211112222o3233o33o3333o.........
+.......oo22332oc23oa3oo222111111222oo3ao32co23333o........
+......ooaaa222ocb233333222111B11222333322bco22baaaoo......
+.....o22aaa222o31c222222223111312222222ob3o322baaa22o.....
+....o212bb22223o313oooo222222222222oooo11333222bbb212o....
+...o212222222223o3111ocooooooooocooco1113o32222222222ao...
+..o22b22223222233o3111ocobbbccccbcoo1113o332222322222aao..
+..o22b222232b22233o3111oo3aaaaaa3co1113o33222223222222ao..
+.o2122222332bb22233o333111coooo3111333o33222bb2233222221o.
+.oa222223o22bb222133oooo31111111113ooo3312222222333b2222o.
+oaab22333o22b22231133333oo333A33ooo33311132222223o33222ao.
+obbb2333o32222233311111333oooooo333111131132222abo33322aao
+o3322333o3222231131131111133333311111311113222bab3o3322bbo
+o322223oo3b22231111111333333333333331111111322bab3oo32222o
+o322222oo3bb223111111111111111111111111bb113322bb3o322222o
+o3222o33o3b22331bbb111111111111111111111bb13322333o3o2223.
+.o3223ooo333233111b1111111111111111113111113323333oo3223o.
+.o1o33o.o33333311113311111111111111133111113333333oo3231T.
+..ooo1o.o3333331111111133333333333311111111333333o..31oo..
+.....o..o322333331111bb11111111111111111113332223o..oo....
+........o212223333111b11111111111111111b133322212o........
+........o2bb22333333111111111111111111bb33o322bb2o........
+........o3bbb2233333333111111111111333333o332bbbbo........
+.........o3bb3333oo33333333333333333333oo3333bbbo.........
+..........o33333333ooo333333333333aaooo33333333o..........
+...........ooo33b3333ooo33333333333ooo333b333oo...........
+...........o333333333o..ooooooooooo..o33333333oo..........
+..........o3222322333o...............o333223222o..........
+..........o1333313333o...............o3333133331o.........
+..........ooooo313ooo.................ooo313ooooo.........
+...............ooP.......................ooo..............
diff --git a/parts_pl_src/body/pl_lizard_c.txt b/parts_pl_src/body/pl_lizard_c.txt
new file mode 100644
index 0000000..54e1317
--- /dev/null
+++ b/parts_pl_src/body/pl_lizard_c.txt
@@ -0,0 +1,48 @@
+# pl_lizard_c: from pixellab_src/pl_lizard_c/base.png (variant of pl_lizard) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 41)
+# head_top at (30, 19)
+# back at (32, 32)
+# tail at (49, 47)
+................o^...................
+...............o22o.ooo..............
+..............o223oo222o.............
+.............o322332222o.............
+..........oooo333322223o.............
+........oo2223333322223o.............
+.......o322222222233233oo............
+......o222221111122333322o...........
+.....o22222111221222332222o..........
+.....o222212ooo22222232233o..........
+....o222222owo3o222223333o...........
+...oo22222oowo3o222223333o...........
+..oo222222oooo2o222222333o...........
+.o11122222oaob2o222B223332o..........
+o2112222222abb221222223333o..........
+o22222222222222oo1222333oo...........
+o3222oooooooooo111222333o............
+.oooo1111111111111333333o............
+....o222222222222333o333o............
+.....ooooooo33333333oooo.............
+............o3222333o................
+............o2112333o..............oo
+............o11122Aco.............obo
+...........o21112223o.............obo
+...........o2111222ccoo...........obo
+..........o2111222bc22boo........o2bo
+..........o2111222222bb2boo......o22o
+..........o211122222bb22bb2o....o223o
+..........o3111122222222b22coooob223T
+..........oo11113222222222222oc2b233o
+..........o32111o222232222222332233o.
+..........o3o211o22223223211223333o..
+..........o23o2132223o33o21112o33o...
+..........o233o332223o33o21112ooo....
+.........ob233ooo2223o23o21112oo.....
+.........o2233o.o2bbco22o333323o.....
+........oo22ao..o2223oo33o33333o.....
+.......oo2233o.oo2bboo3333o3333o.....
+......o3w333o.oo3223o3333o33223o.....
+......ooooooo.owow23ooooowow333o.....
+..............ooowooo...ooowooo......
+.................P.........o.........
diff --git a/parts_pl_src/body/pl_lizard_d.txt b/parts_pl_src/body/pl_lizard_d.txt
new file mode 100644
index 0000000..53c0e96
--- /dev/null
+++ b/parts_pl_src/body/pl_lizard_d.txt
@@ -0,0 +1,44 @@
+# pl_lizard_d: from pixellab_src/pl_lizard_d/base.png (variant of pl_lizard) (pixellab_library.py extract)
+# pivot at (40, 60)
+# aura at (31, 43)
+# head_top at (30, 23)
+# back at (32, 32)
+# tail at (47, 47)
+................^o.................
+...............o12o................
+...........oo.o2123o.oo............
+..........o12oo2233oo12o...........
+..........o233o2233o222o...........
+........ooo233332333233ooo.........
+.......o223233223322233322o........
+.....oooo32222222221323oooo........
+....o2111222132222333221112o.......
+...o32111122332222B332111123o......
+...o322111122222222221111223o......
+..o33oo311222222222222113oo33o.....
+..o3oo1o2222222222222222oooo3o.....
+..o3o11o222122222222122311oo3o.....
+..o3o11o322222222222222o11oo3o.....
+..o333ooo32222222222223ooo333o.....
+.o3333oooo222222222222oooo3333o....
+.o33o3323o222211112222o3233o33o....
+.oc23oa3oo222111111222oo3ao32oo....
+.ocb233333222111111222333322booo...
+.o31c222222223111A12222222oa2o32o..
+..o213oooo222222222222oooo113o32o..
+...o2111ocooooooooooooco1112o23ao..
+....o3111ooobbbccccbcoo1112o322bo..
+.....o3211oo3aaaaaa3oo1122o2322baT.
+.....ooo32111coooo111123oo32322bao.
+....o23o3oo2111111112oo33o323233co.
+....o33o233ooo22223oo3332o323333o..
+....o33c223323ooooo32332ac33333o...
+..ooo3o2223o322222223o3222o3oooo...
+.oc33coa22ooo3222223ooo22ao3c33coo.
+o13oo3o223o..ooooooo..o322o333oo31o
+oooooooa2ao...........oc2aoooo31oo.
+.oocc32a223oo.......oo322a23ccooo..
+.o3133o23o313o.....o313o22o3313o...
+.ooooo133ooooo.....ooooo331ooooo...
+....o12oo...............oo21oo.....
+.....oo...................Po.......
diff --git a/parts_pl_src/body/pl_lungfish.txt b/parts_pl_src/body/pl_lungfish.txt
new file mode 100644
index 0000000..c1305c0
--- /dev/null
+++ b/parts_pl_src/body/pl_lungfish.txt
@@ -0,0 +1,44 @@
+# pl_lungfish: from pixellab_src/pl_lungfish/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 41)
+# head_top at (33, 25) (from part/probe)
+# back at (35, 27) (from part/probe)
+# tail at (50, 51)
+................ooooooo...............
+.............ooo2222222ooo............
+...........oo22222a2^1a223oo..........
+..........o22a11211111112232o.........
+.........o211111111121B22223bo........
+........o2211111112223222a2223o.......
+.......o2211111122222222222223o.......
+......o211111112222232332222222o......
+......o21111111123223333322222bo......
+....oooo22222111333333333332322ooo....
+...ozzoao32322ooo3233bbbbo33222oozo...
+..oycoooo3333oaoc2aobbbabbo32233ocyo..
+.oxzooo3322223o3323obooocbo33333oozyo.
+.oyooooo2ooo222223ooooobcco333b3oooyo.
+.oyooo33o22ooo223oooooobboo3333ooooyo.
+.ozyo3333oo2233ooooooobaboo333ooooyzo.
+.ozxyo33oooooooooooobbaboo333boooyxzo.
+.ozzxyoo3oooooobbbbccbcoo3333oooxxzzo.
+.ozzyyxyoooobbbaaabAoooo333oooxxzyzzo.
+.ozzyyyxyooooooooooo33o3ooooyxyyyzzzo.
+..ozzyyyooxxxxoooooo3oooyxxooyyyyzzo..
+..ozzyyooyyyyyyxxxooooxxxyxyooyyzzzo..
+..oozzyzyyyyxyxyyxxxoyyyyxxyyoyzzzoo..
+...ozzyyyyyyyxxxyyyyoyyyxyyyyyyzzzo...
+...ooozzyyyyyyyxyyyyzoyyyyyyyyzozoo...
+....oozzzzyyyyyyyyyyycyyyyyyzzzzoo....
+...ooooozzzzyyyyyyyyyyzyyzczzzooooo...
+.oocoooooozzzzyycyyyyyyzzzzoooooooooo.
+oabcoooooooozzzcyyyyzzzzzzoooooooocbaT
+ooooo..oooooooozzzzzzzzoooooooo..ooooo
+......oooooooooozzzzzooooooooooo......
+.....occoooooooooooooooooooooocco.....
+....obbco..oooooooooooooooo..ocbbo....
+...oaboo...oco.oooooooo.oco...oobao...
+...ooo.....obo..........obo.....ooo...
+..........obbo..........obbo..........
+..........oao............oao..........
+..........oP..............oo..........
diff --git a/parts_pl_src/body/pl_lungfish_b.txt b/parts_pl_src/body/pl_lungfish_b.txt
new file mode 100644
index 0000000..6f9b6cf
--- /dev/null
+++ b/parts_pl_src/body/pl_lungfish_b.txt
@@ -0,0 +1,58 @@
+# pl_lungfish_b: from pixellab_src/pl_lungfish_b/base.png (variant of pl_lungfish) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 35)
+# head_top at (33, 9)
+# back at (35, 27)
+# tail at (50, 51)
+................ooooo^o................
+..............oo22aaa22oo..............
+............oo2211a222222oo............
+...........o2211111222222bboo..........
+..........o222111122222222bboo.........
+.........o21221122211122222bb3o........
+.........o332222222233332222bc2o.......
+........oao32222223oaoo32222bc2o.......
+........ooo32222223oooo32222bb23o......
+.......o322211222222oo332222bb22ooo....
+.......o31aaaaaaaa223333222bb222co3o...
+......o32aaoooooooa22332222bb222co32o..
+......o2aaoooooooooa223322bbc222cc322o.
+.....o22aoooooooooooc22322222222bco3co.
+.....o22aoccoooooooooc2222222222bco33o.
+.....o22aocccooooooooob22222222bbc3o3o.
+.....o22aocccooooooooob2222222bbb33o3o.
+.....o22aocccoooooooooob22222bbbc33oo..
+.....o22aocccooooooooooB222222cc333oo..
+.....o22aocccoooooooooooa2222222333o...
+....oo22aooccoooooooooooa2222222333o...
+...o2o22aoocccooooooooooa222222233co...
+..o12o22aoooccooooooooooa2222cbbccco...
+.o122o32aooooooobbbbbbboa222233cccco...
+o2222o32aoooooobbbbbbbbc22233oooooco...
+o22333o2aooooobabaaaabbc2233322222oco..
+o2333oo2aoooobaaaaaaAbb22333o222212ozo.
+o333ooo32boobbaaaaabbba22333oo222112oo.
+o3ozoooo22aobbbbbbbbba223333o3322211oo.
+o3ozyooo322abbbbbbbba223333cco3322222o.
+.oozxyooo322aaaaaaa2223333ccc3o332222o.
+..ozzxyoooo22222222233333ccc33oo33322o.
+..ozzyyxyooo3333333333333cccooozo3332o.
+..ozzyyyxyooooo33333333ccooooyxyzo333o.
+...ozzyyyooxxxxooooo33oooyxxooyyzzo3oo.
+...ozzyyooyyyyyyxxxooooxxxyxyooyyzzoo..
+...oozzyzyyyyxyxyyxxxoyyyyxxyyoyzzzoo..
+....ozzyyyyyyyxxxyyyyoyyyxyyyyyyzzzo...
+....ooozzyyyyyyyxyyyyzoyyyyyyyyzozoo...
+.....oozzzzyyyyyyyyyyycyyyyyyzzzzoo....
+....ooooozzzzyyyyyyyyyyzyyzczzzooooo...
+..ooooooooozzzzyycyyyyyyzzzzoooooooooo.
+.obccoooooooozzzcyyyyzzzzzzooooooooccbT
+.ooooo..oooooooozzzzzzzzoooooooo..ooooo
+.......oooooooooozzzzzooooooooooo......
+......occoooooooooooooooooooooocco.....
+.....occco..oooooooooooooooo..occco....
+....obcoo...oco.oooooooo.oco...oocbo...
+....ooo.....oco..........oco.....ooo...
+...........occo..........occo..........
+...........obo............obo..........
+...........oP..............oo..........
diff --git a/parts_pl_src/body/pl_lungfish_c.txt b/parts_pl_src/body/pl_lungfish_c.txt
new file mode 100644
index 0000000..a311315
--- /dev/null
+++ b/parts_pl_src/body/pl_lungfish_c.txt
@@ -0,0 +1,54 @@
+# pl_lungfish_c: from pixellab_src/pl_lungfish_c/base.png (variant of pl_lungfish) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 38)
+# head_top at (33, 13)
+# back at (35, 27)
+# tail at (50, 51)
+.................ooo^.................
+................obaabo................
+..............oooabbbbo...............
+.............obabbbbbboooo............
+...........ooobbbcbbbbbbbo............
+..........obboabbcbbcbcbbo............
+.........oobccbbbcbbcbbbboo...........
+........oabccabbccbcccbbcbbo..........
+........obbcbacbccccccbccbbo..........
+........occcabccc33333bccboo..........
+.........occbbcc33111113cco...........
+.........oc2bbc31111a1112o............
+........o211cc111211a11113o...........
+.......o31111111122111113b3o...ooo....
+.......o11111111113222B1333o..o111o...
+......o111111111311322231333oo1111o...
+......o1111111o333132223b333oo1122o...
+.....o1111113o1o3311322333333311b3o...
+.....oo111113ooo331113312333b3312o....
+....oo3111113obb31111o31131333333o....
+...ozo111111113311111o31132133b33oo...
+..oyco111111111111111o33c33333333oyo..
+.oxzoo1oooo3311111113o33c33333333ozyo.
+.oyoooo311113oo11111333333b3333113oyo.
+.oyoooo3311113311113o3333333oo3333oyo.
+.ozyoooo33333111133A3333333oooo33oyzo.
+.ozxyoooo333333333o333b33b3ooooooyxzo.
+.ozzxyoooooooooooo33333333ooooooxxzzo.
+.ozzyyxyooooooooo33333333oooooxxzyzzo.
+.ozzyyyxyoooooooo3333oooooooyxyyyzzzo.
+..ozzyyyooxxxxooooo33oooyxxooyyyyzzo..
+..ozzyyooyyyyyyxxxooooxxxyxyooyyzzzo..
+..oozzyzyyyyxyxyyxxxoyyyyxxyyoyzzzoo..
+...ozzyyyyyyyxxxyyyyoyyyxyyyyyyzzzo...
+...ooozzyyyyyyyxyyyyzoyyyyyyyyzozoo...
+....oozzzzyyyyyyyyyyycyyyyyyzzzzoo....
+...ooooozzzzyyyyyyyyyyzyyzczzzooooo...
+.oocoooooozzzzyycyyyyyyzzzzoooooooooo.
+obccoooooooozzzcyyyyzzzzzzooooooooccbT
+ooooo..oooooooozzzzzzzzoooooooo..ooooo
+......oooooooooozzzzzooooooooooo......
+.....occoooooooooooooooooooooocco.....
+....occco..oooooooooooooooo..occco....
+...obcoo...oco.oooooooo.oco...oocbo...
+...ooo.....oco..........oco.....ooo...
+..........occo..........occo..........
+..........obo............obo..........
+..........oP..............oo..........
diff --git a/parts_pl_src/body/pl_lungfish_d.txt b/parts_pl_src/body/pl_lungfish_d.txt
new file mode 100644
index 0000000..c52ec03
--- /dev/null
+++ b/parts_pl_src/body/pl_lungfish_d.txt
@@ -0,0 +1,61 @@
+# pl_lungfish_d: from pixellab_src/pl_lungfish_d/base.png (variant of pl_lungfish) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 36)
+# head_top at (33, 9)
+# back at (35, 27)
+# tail at (50, 51)
+.........ooooooo......................
+........o1111111oo....................
+.......o111111111aoo..................
+......o2112211111113^.................
+......o22122221222111o................
+......oo222aoo33322211oo..............
+......oo222oo2a333221113o.............
+......o2222222333332211a2o............
+.......o22223ooooo3332111o............
+........ooooo.....o3332112o...........
+...................oo331112o..........
+....................o333112o..........
+.....................o3321a2o.........
+......................o332112o........
+......................o33211ao........
+.......................o321123o.......
+.......................o322112o.......
+................oooooo..o32112o.......
+.............ooo222222ooo331122o......
+...........oo22222a211a2o331112o......
+..........o22a11211111112o3311ao......
+.........o211111111121B22o332122o.....
+........o2211111112223222o332113o.....
+.......o22111111222222223oa32113o.....
+......o211111112222232333oa33113o.....
+......o211111111232233333o331113o.....
+....oooo22222111333333333o331113oo....
+...ozzoao32322ooo3233cbbbo331123ozo...
+..oycoooo3333oaoc2aocbbabo321123ocyo..
+.oxzooo3322223o3323ooooooo31112aoozyo.
+.oyoo21o2ooo222223oAoooco3311223oooyo.
+.oyoo211o22ooo223oooooobo3222233oooyo.
+.ozyo2212oo2233ooooooobo3322233oooyzo.
+.ozxyo2123oooooooooocoo33222333ooyxzo.
+.ozzxyoo223ooooobbbboo3222223aooxxzzo.
+.ozzyyxyo223obbaaaoo33332223ooxxzyzzo.
+.ozzyyyxyoooooooooo33333ooooyxyyyzzzo.
+..ozzyyyooxxxxoooooo3oooyxxooyyyyzzo..
+..ozzyyooyyyyyyxxxooooxxxyxyooyyzzzo..
+..oozzyzyyyyxyxyyxxxoyyyyxxyyoyzzzoo..
+...ozzyyyyyyyxxxyyyyoyyyxyyyyyyzzzo...
+...ooozzyyyyyyyxyyyyzoyyyyyyyyzozoo...
+....oozzzzyyyyyyyyyyycyyyyyyzzzzoo....
+...ooooozzzzyyyyyyyyyyzyyzczzzooooo...
+.oocoooooozzzzyycyyyyyyzzzzoooooooooo.
+oabcoooooooozzzcyyyyzzzzzzoooooooocbaT
+ooooo..oooooooozzzzzzzzoooooooo..ooooo
+......oooooooooozzzzzooooooooooo......
+.....occoooooooooooooooooooooocco.....
+....obbco..oooooooooooooooo..ocbbo....
+...oaboo...oco.oooooooo.oco...oobao...
+...ooo.....obo..........obo.....ooo...
+..........obbo..........obbo..........
+..........oao............oao..........
+..........oP..............oo..........
diff --git a/parts_pl_src/body/pl_magnet.txt b/parts_pl_src/body/pl_magnet.txt
new file mode 100644
index 0000000..56fa313
--- /dev/null
+++ b/parts_pl_src/body/pl_magnet.txt
@@ -0,0 +1,48 @@
+# pl_magnet: from pixellab_src/pl_magnet/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (26, 39)
+# head_top at (31, 22) (from part/probe)
+# back at (31, 31) (from part/probe)
+# tail at (46, 44) (from part/probe)
+................oooooooo................
+.............ooo11111111ooo.............
+............oo221111111122oo............
+..........oo2111111^11111112oo..........
+.........oo21111oo1111oo11112oo.........
+........oo22ooo111oooo111ooo22oo........
+........o21owwoo11133111oowwo22o........
+.......o221owaoo22222222ooawo122o.......
+.......o222owoob22222222boowo222o.......
+...oooo32222obbo233ccc32obbo22223oooo...
+..o22oo222a22222cccccccc22222a222oo22o..
+.o2122o22aaa222cccccccccc222aaa22o2212o.
+oo2223o2222222cccooBoooccc2222222o3222oo
+o2223oo222222cccoo....ooccc222222oo3222o
+o322oo3222222cco........occ2222223oo223o
+o3222ooo22223coo........ooc32222ooo2223o
+.o32222oo2223co..........oc3222oo22223o.
+..o33223o222cco..........occ222o32233o..
+...ooooo3222cco..........occ2223ooooo...
+.....oc32222cco..........occ22223co.....
+.....o322222ccA..........occ222223o.....
+.....o322222cco..........occ222223o.....
+.....o332222cco..........occ222233o.....
+.....o322222cco..........occ222223o.....
+.....o333222cco..........occ222333o.....
+.....o332322cco..........occ223233T.....
+.....o333232cco..........occ232333o.....
+.....o333323cco..........occ323333o.....
+.....o333333cco..........occ333333o.....
+.....o333333cco..........occ333333o.....
+.....oc33333cco..........occ333333o.....
+.....oc33333ccoo........oocc33333co.....
+.....oo33333ooco........ocoo33333oo.....
+.....ocoooooocco........obcooooooco.....
+......ocaaaaacco........obcaaaaaco......
+......oobbaaacco........obcaaabboo......
+.......oobaaaabbo......obcaaaacoo.......
+......ooooaaaabco......obcaaaaoooo......
+.....ooaaaaaaacoo......oocaaaaaaaoo.....
+.....ocaaabbbboo........oobbbbaaaco.....
+.....occcbbcooo..........ooobbcccco.....
+......ooooooP..............ooooooo......
diff --git a/parts_pl_src/body/pl_magnet_b.txt b/parts_pl_src/body/pl_magnet_b.txt
new file mode 100644
index 0000000..74f3e12
--- /dev/null
+++ b/parts_pl_src/body/pl_magnet_b.txt
@@ -0,0 +1,49 @@
+# pl_magnet_b: from pixellab_src/pl_magnet_b/base.png (variant of pl_magnet) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (26, 38)
+# head_top at (31, 18)
+# back at (31, 30)
+# tail at (52, 44)
+..................ooo^oooo..................
+...............ooo11111111ooo...............
+..............oo221111111122oo..............
+............oo2111111111111112oo............
+...........oo21111oo1111oo11112oo...........
+..........oo22ooo111oooo111ooo22oo..........
+..........o21owwoo11133111oowwo12o..........
+.........o221owaoo22222222ooawo122o.........
+.........o222owoob22222222boowo222o.........
+.....oooo32222obbo23bbbb32obbo22223oooo.....
+....o223o222a22222bbbbbbbb22222a222o322o....
+...o2122o22aaa222bbbbbbbbbb222aaa22o2211o...
+..oo2223o2222222bbbooBooobbb2222222o3211oo..
+..o21233o222222bbboo....oobbb222222o33212o..
+..o2223o2222222bbo........obb2222222o3222o..
+..o2223o2222223bbo........obb3222222o3222o..
+.o22233o2222223bo..........ob3222222o33222o.
+.o32333o222222bbo..........obb222222o33323o.
+oaacccco222222bbo..........obb222222occccaao
+oaaaacco322222bbo..........obb222223occaaaao
+oaaaacocacccccccA..........occcccccacocaaaao
+oaaaccocaaaaaabco..........ocbaaaaaacoccaaao
+oooooooccaaaaabco..........ocbaaaaaccooooooo
+o22222oocccccccco..........occccccccoo22222o
+o222233o322222bbo..........obb222223o332222o
+o3232o3o322222bbo..........obb222223o3o2323o
+.o232ooo322222bbo..........obb222223ooo232T.
+..ooo.ocaccccccco..........occcccccaco.ooo..
+......ocaaaaaabco..........ocbaaaaaaco......
+......occaaaaabco..........ocbaaaaacco......
+......oocccccccco..........occccccccco......
+.......ob33333bbo..........obb33333bo.......
+.......ob33333bboo........oobb33333bo.......
+.......oo33333oobo........oboo33333oo.......
+.......oboooooobbo........obboooooobo.......
+........obaaaaabbo........obbaaaaabo........
+........oobbaaabbo........obbaaabboo........
+.........oobaaaabbo......obbaaaabo..........
+........ooooaaaabbo......obbaaaaoooo........
+.......ooaaaaaaaboo......oobaaaaaaaoo.......
+.......obaaabbbboo........oobbbbaaabo.......
+.......obbbbbbooo..........ooobbbbbbo.......
+........ooooooP..............ooooooo........
diff --git a/parts_pl_src/body/pl_mammoth.txt b/parts_pl_src/body/pl_mammoth.txt
new file mode 100644
index 0000000..dbecd81
--- /dev/null
+++ b/parts_pl_src/body/pl_mammoth.txt
@@ -0,0 +1,45 @@
+# pl_mammoth: from pixellab_src/pl_mammoth/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (30, 28) (from part/probe)
+# back at (39, 32) (from part/probe)
+# tail at (48, 40) (from part/probe)
+.............ooooo......................
+..........oooo1122o.ooo.................
+..........o22211112o12o.................
+.........oo21111111112ooo...............
+........o3111111111111223o..............
+........o33111111111112333o.............
+........oo11111111^212133oo.............
+........o33o11211o13133333o.............
+......ooo3oo23o12oo33333ooo.............
+.....o11oo323o2o3o2o3o3o112o............
+....o12o3o11o211o21233o2111Bo...........
+....o1bco111111111111333oc31ooo.........
+....o2bbo11111111111123oobb1o33oo.......
+.....3bbooo111111111323obbb1o3333o......
+.....o3bo1oo11113oooo22obbb2o33333o.....
+.....oo3o1oo11113oo1311obb22o113133o....
+.......o1o1211113aa1311o322o21111133o...
+.......oa12112311o331113ooo321111113o...
+.....ooo12111133111aaa13o33311111233T...
+.oo.o111o211111311111123o32111111133o...
+o31o11111o111133311A123o3221111111133o..
+o1o111112o113o333333333o3211111111133o..
+o1o211122o11o1o3o33o3oo33111111111333o..
+o11oo2222311o1ooo1zooo331111111131333oo.
+o113ooo332211o1oo1zo33311131131131333o2o
+oz31zo3322222o11z1zo33111331331313333o2o
+.oo333o333333o111zzo31331133313313333ooo
+...ooooo3333ooo333o33131111331333333oo..
+........oooooooooo331133113333333333o...
+.........o3ooo3333331333333333333o3oo...
+.........o33oo3o33o3333333o333333o3oo...
+.........o333ooo33o3113333o333o3ooooo...
+.........o22333oooo311133ooooooooo3oo...
+.........o21123oooo111133oooooo3333oo...
+.........o22223oo.o111113ooo.o33o33oo...
+........oc22c33oo.o222233ooo.occoccoo...
+........oacoac3oo.oc3c333oo..ooooooo....
+.........ooooooo..oaoa3ccoo.............
+...................Poooooo..............
diff --git a/parts_pl_src/body/pl_mammoth_b.txt b/parts_pl_src/body/pl_mammoth_b.txt
new file mode 100644
index 0000000..6bd3e18
--- /dev/null
+++ b/parts_pl_src/body/pl_mammoth_b.txt
@@ -0,0 +1,50 @@
+# pl_mammoth_b: from pixellab_src/pl_mammoth_b/base.png (variant of pl_mammoth) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 39)
+# head_top at (30, 17)
+# back at (39, 32)
+# tail at (53, 40)
+...................^.......................
+.............oo.ooo2ooooooo................
+..........ooo22o23223322223ooo.............
+..........o2o22222222222222222oooo.........
+.......oooo2222122221222112222333o.........
+.......o22222121122222211121122222oo.......
+.......oo222211112222222221122222333oo.....
+......o222oo22112222ooo22212222223333o.....
+.....o322oaao222222oaaao2222211222223oo....
+.....ooooaccco2222oaacaao2332222222233o....
+....ooooaaacco2323occaaaooooo2222122233o...
+....o22cacccoo233o3occacac213o221112333o...
+...oo2ccacoo33o3o333ocaaacc32o2211222333o..
+..o2o2bacco3322333223ocaaccb2o22211223333o.
+..o2o3caco321222212223oacaob2o32222122333o.
+.o22o3caco222222222222occacbBo3222222233oo.
+.o223oaccooo222223oooo3ocac3o332112222333o.
+.oo22oacoowo222223oow33ocacoo3222112222333o
+..o22oaboowo211223aaw32oacao33222111222233o
+.o22oabbo2o221112233322occao32222112222233o
+.o22oabcoa2211122222aaaocaao32222222223233o
+o222oaaco232oaao2222222ocaao3222222222233o.
+.oo2oaaco3321ao222322A2ocaao32122222222333o
+.o223oaboo323o222332233ocaco32212222222333T
+.o222ocboooo3222333ooooocco322222222233333o
+.o2222obco33o3333ooo33ocaco222222222223333o
+.o3322occo233oooo33333ocao322222222223333oo
+.oo3222oco223333333222oaco222222222323333o.
+..o3232oco222222222222oao2222222232333333o.
+..o33322o2221222212222oc32222222232333333o.
+..o3o323222212222212222o22222233233333333o.
+...oo3332322222222222222222232332333333oo..
+...oo3333323222222222222322232333333333o...
+....o3o333333232233223223232333333333o3o...
+....ooo333333332333323332333333333o33oo....
+......oo3o333333333333333333333333o3ooo....
+.......oooo33333333333333333o33o33ooo3o....
+........oo3oo333333o33333333o33ooo3333o....
+.........o333oo33o3o3332333oooooo33333o....
+.........o32333ooooo3332223oo...o33333o....
+........oo322233o.oo3222223o...oc3cccoo....
+........oac2a23oo..oc222123o...ooooooo.....
+.........ooooooo...oa2a2bb3o...............
+....................oPooooo................
diff --git a/parts_pl_src/body/pl_mammoth_c.txt b/parts_pl_src/body/pl_mammoth_c.txt
new file mode 100644
index 0000000..cf9a7b9
--- /dev/null
+++ b/parts_pl_src/body/pl_mammoth_c.txt
@@ -0,0 +1,54 @@
+# pl_mammoth_c: from pixellab_src/pl_mammoth_c/base.png (variant of pl_mammoth) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 39)
+# head_top at (30, 13)
+# back at (39, 32)
+# tail at (48, 40)
+..........oooo^o....................
+........oo222222oo..................
+.......o3221122233o.................
+......o221111122233o................
+.....o3211111122223o................
+.....o22111122222223o...............
+....o322222222222222o...............
+....o3222222222222223o..............
+..ooo32222222222222oooo.............
+.o22o22222222222223o212o............
+o23o2222222222222233o31o............
+o2bo2222222222223233bb2o............
+o2aoooo22222oooo3233ba2o............
+o3aoowo22222oowo2223ba3o............
+oo3oowo22222oawo222333oo............
+.ooo23321112ooo22223ooo.............
+..oaa2o1111o22aaa223oo..............
+..o222oo11oo22222233oo..............
+..o2222222222222223o3o..............
+..o3222ooooo2222233o33oB............
+...o33o2222o322333o3333cooo.........
+....o332222233333o33322ccccoo.......
+.....oo33333ooooo332222aa2cc3o......
+.....o33333333333322222aa2ac2co.....
+....o333333333322222222aa2ac2ao.....
+...o3322222222222222222aa2ac2aco....
+...o322222222222A211222aa2ac2ac3o...
+...o2222222222222111222c22ac2ac2T...
+..o32222222222222111122222cc2ac23o..
+..o32222222222222211122222c22cc23o..
+..o32222222222222211122222222cc22o..
+..o33222222222322222222222222c222o..
+...o33222222223222222223222222222oo.
+...oo3222222223222222223222222222oo.
+...oo3322222233222222223223222222o3o
+...o3o33222223322222222o233222223o3o
+...o33o3322233322222222o233222233oo.
+...o33oo333333o32222222o3o322223oo..
+...o333oo33333o32222223o3o322233o...
+...o3233oo3333o32222223o3o333333o...
+...o322333oo33o32222223ooo333333o...
+...o3222333oooo32222223o.oo333333o..
+....o222333o..o3222223oo..oo33333o..
+....o222333o..o3222223oo.o3333333o..
+...oo322333o..o3222223o..ooc3b33oo..
+...oacac333o.oac2a2123o...ooooooo...
+....ooooooo..oac2a2cc3o.............
+..............oooPoooo..............
diff --git a/parts_pl_src/body/pl_mammoth_d.txt b/parts_pl_src/body/pl_mammoth_d.txt
new file mode 100644
index 0000000..c4569cc
--- /dev/null
+++ b/parts_pl_src/body/pl_mammoth_d.txt
@@ -0,0 +1,59 @@
+# pl_mammoth_d: from pixellab_src/pl_mammoth_d/base.png (variant of pl_mammoth) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (32, 32)
+# head_top at (30, 7)
+# back at (39, 32)
+# tail at (51, 40)
+.................oooo^oooooo..................
+..............ooo33222222333oooo..............
+............oo322222222222222333oo............
+...........o3322222222222222223333oo..........
+.........oo3322112222222222222233333o.........
+........o3311121112222222222222222233o........
+.......o322111222222222222222222222333o.......
+......o32211122222222222222222222222233o......
+.....o3311112222222222222222222222222333o.....
+....o331111122222222222222222222222222333o....
+....o321122222222222222222222222222222233o....
+...o33211222222222222222222222222222222333o...
+...o32222222222222222222222222222222222233oo..
+..o3322222222222222222222222222222222222333o..
+..o33222222222222222222222222222222222222333o.
+.o332222222222222222222222222222222222222333o.
+.o332222222222222222222222222222222222222333o.
+.o322222222222222222222222222222222222222333o.
+.o322222222222222222222222222222222222222233o.
+o332222ooo22222222222222222ooo222222222222333o
+o32222ooooo222222222222222oooooo2222222222333o
+o3222ooaaoo22222222222222oaaaoooo222222222333o
+o332ooaaaooo2222222222222oaaaoooo322222223333o
+o332oooaaooo222222222222ooaaaoooo322222223333o
+o332oooooooo222222222222oooooooco32222222333oo
+o332oocooooo22233333222AooooooBco32222223333o.
+oo32ooccooao222222233222occoooaco32222223333o.
+.o322occccco2222222222222occcccoo22222223333o.
+.o3323occcc332211112222322cccco3222222233333o.
+.o332bbb33o3222111122222o223333b22222223333oo.
+.oo3bbbb22o32211111222222o2222bbbb222233333oo.
+..o33bb22o3222222222222223o222bbbb22233333oo..
+...o33222o3222111122222223o2222c2222333333oo..
+...oo3332o3o22222222232333o22222223233333oT...
+....o3333o3o221112222o2333o3222223333333oo....
+.....o333o3o222222222o333o3322223333333oo.....
+......oo3o3o222222223oo3yo333333333333oo......
+.......oo13o222222223o3y1yo333333333oo........
+........o13o32222223oooy1yo3333oooooo.........
+........o113o2222223o11113oooooo3333o.........
+.........o33o3222223o3333o33333333333o........
+..........oooo3322233oooo333333o32222o........
+..........o33oo332233o333333333o322112o.......
+.........o2233oo333333oo3332223o322212o.......
+.........o2233o3o333333o3222223o322222o.......
+.........o2233o33oooooo32222223o322222o.......
+.........o3233o33o3333332222223oo32223o.......
+..........o333o333oo33333221123ooo333o........
+...........oooo32333oooo3221123o.oooo.........
+..............o333333oooo222223o..............
+..............o333333o..o222223o..............
+..............o3b3b33o..o312123o..............
+...............oooooo...Poooooo...............
diff --git a/parts_pl_src/body/pl_manatee.txt b/parts_pl_src/body/pl_manatee.txt
new file mode 100644
index 0000000..f65bf59
--- /dev/null
+++ b/parts_pl_src/body/pl_manatee.txt
@@ -0,0 +1,45 @@
+# pl_manatee: from pixellab_src/pl_manatee/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (31, 23) (from part/probe)
+# back at (32, 34) (from part/probe)
+# tail at (48, 50) (from part/probe)
+...............oooooooo...............
+.............oo222^2223oo.............
+...........oo211112222223oo...........
+..........oo21111222222223oo..........
+..........o2211112222222223o..........
+.........o321122222222221123o.........
+........o32211222222222111223o........
+........o22222322222222322222o........
+.......o322owoo22333322owoo223o.......
+.......o32o2ooo23222232ooo2o23o.......
+......oc32owoooooooooooooowo23co......
+......oc322ooo2222222222ooo223co......
+......oc3322o211111B11112o2233co......
+.....o3ob33o212o222222o212o33bo3o.....
+....oo3ob3o2212o222222o2122o3bo3oo....
+....o333o3o22a2222222222a22o2o333o....
+...oo3233oo2c222222222222c2oo3323oo...
+...o322233oc22c22222222c22co332223o...
+...o322223oc2c2222cc2222c2co322223o...
+..o33332233oc22bbcooccc22co33222333o..
+..o33o322o33oooooo33oooooo33o223o33o..
+..o32o3223o333oo33A333oo333o3223o23o..
+.o332o32123o3333oooooo3333o32123o233o.
+.o332o32223o33333333333333o32223o233o.
+.o332o332212oo3333333333oo212233o233o.
+.ob322o3321123o32333323o3211233o223bo.
+.ob332o3332122ao222222oa2212333o233bo.
+.ob3322o3332233bo2222ob3322333o3233bo.
+..ob3223o33322ooo2222ooo22333o3233bT..
+..ob33223o3333ao211112oa3333o32233bo..
+..obb33223o3cooo111111oooc3o32233bo...
+...ob333223oo221111111122oo322333bo...
+....ob33322311111111111111322333bo....
+..oooob333321111111111111123333boooo..
+.o3223ocb33221111111111122233bco3233o.
+o212223oob332222111111222233boo322212o
+oa1122223ooc32222222222223coo3322211ao
+.oc2222223ooooo22222222ooooo3222222co.
+..oooooooo.....oooPoooo.....oooooooo..
diff --git a/parts_pl_src/body/pl_manatee_b.txt b/parts_pl_src/body/pl_manatee_b.txt
new file mode 100644
index 0000000..1ab46a5
--- /dev/null
+++ b/parts_pl_src/body/pl_manatee_b.txt
@@ -0,0 +1,54 @@
+# pl_manatee_b: from pixellab_src/pl_manatee_b/base.png (variant of pl_manatee) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 38)
+# head_top at (31, 13)
+# back at (32, 34)
+# tail at (51, 50)
+......................ooo^oooo......................
+....................oo22222222ooo...................
+..................oo2111122222223o..................
+.................o3221112222222223o.................
+.................o32222222222233333o................
+................o3211113222233111123o...............
+...............o33111111o22231111113o...............
+...............o233332223ooo322223332o..............
+.............ooo233owoooo222ooowoo332ooo............
+...........oo22o23o2ooo2122223ooo2o32oooo...........
+.........oobc2o3223woo211122222oo13223o2coo.........
+.......ooaabc2ob2223o22211112223o3322bo2cbao........
+.......obacc22ob322o212o11112o11o2233bo2cbaao.......
+......o3cc3222ob322o112o11112o111o223bo2cccabo......
+.....o3222aac2ob32o1112o11112o1113o23bo22ccccoo.....
+.....occ22cac23o23o111o2111122o112o23o322occc2o.....
+....ocabc2cc223o33o112o2111122o112o33o222cc2222o....
+....ocacc2222233o3o212o2111122o112ooo32222222cco....
+...o3ccc223322233oo322o2111123o223o3332233222cabo...
+...o32222233222233oo33o2211123o33oo3322233322ccbo...
+..o3322223332111113oooo3222233oooo33111223o322cc3o..
+..o322223o221111113333oo33B33ooo3331111123o322223o..
+.o311222o33211111111333oo333oo3331111111113o322223o.
+.o311223o3211111111111333ooo333111111111113o332223o.
+.o312233o3211111111111113333311111111111113oo32213o.
+o321223oo32111111111111111A11111111111111223o332123o
+o311233o332211111111112222222211111111111223o332113o
+o31223oo3332221111122222ooooo2222211111222333o32213o
+o32223o33233222222222ooo22222ooo2222222223o23o32223o
+o32223o3322o332222ooo2222222222ooo2222233o223o31223o
+o32212o32222oooooo222211333331122oooooooo2233o21223o
+o32232o32222222222211111111111111222222222223o22223o
+o32233a33222211111111111111111111111111122223oa3223o
+.o323oo332222111111111111111111111111111122233o323o.
+.o32aoob32221111111111111111111111111111122233oa23o.
+..ooaoob32221111111111111111111111111111122333oaco..
+...oo.ob332211111111111111111111111111111223bo.oo...
+.......ob33221111111111111111111111111112233bT......
+.......ob3332211111111111111111111111112223bo.......
+........o3333222111111111111111111111222233bo.......
+........oo33332211111111111111111111122333bo........
+.........ooob33222111111111111111112223333oo........
+...........ooooo3221111111111111112223ooooo.........
+..........o2333oo3222221111111122223oo3333o.........
+.........o3222333o32222222222222223o3332223o........
+........o11o222333oooo222222222oooo333222o22o.......
+........oaboab3333o...ooooooooo...o3333baobao.......
+........oooooooooP.................oooooooooo.......
diff --git a/parts_pl_src/body/pl_manatee_c.txt b/parts_pl_src/body/pl_manatee_c.txt
new file mode 100644
index 0000000..578dc74
--- /dev/null
+++ b/parts_pl_src/body/pl_manatee_c.txt
@@ -0,0 +1,63 @@
+# pl_manatee_c: from pixellab_src/pl_manatee_c/base.png (variant of pl_manatee) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 36)
+# head_top at (31, 4)
+# back at (32, 34)
+# tail at (45, 50)
+...........oo^ooo...........
+.........oo222222oo.........
+........o3111222222o........
+.......o311122222223o.......
+.......o211222222222o.......
+......o31112222221122o......
+......o23333222223333o......
+.....o32o1o323332o1o33o.....
+.....o3o1oo332223oo1o3o.....
+.....o3o1oo332223oo1o3o.....
+.....o33oo11111111oo33o.....
+.....o333122222232133bo.....
+......o3o123222232133o......
+.......o212222222212o.......
+.......o2222222222a2o.......
+.......o322223322223o.......
+.......oo3333oo3333oo.......
+.......o3oooo33oooo3o.......
+.......o333333333333o.......
+.......o333333333333o.......
+.......o333323323333o.......
+.......o233322223332o.......
+.......o222322223222o.......
+.......o222222223222o.......
+......o11122122122212o......
+.....o3112221111222212o.....
+.....o1122211111222222o.....
+.....o2222211111122222o.....
+....o32232111111112322o.....
+....o223321111111123222o....
+...o3223321111B111233223o...
+...o222o311111111113o223o...
+...o223o31111A111112o322o...
+..o3223o211111111112o3223o..
+..o3222o211111111112o3123o..
+..oc2223o11111111112o212co..
+..oc3211o3111111113o2123co..
+...oc3112o11111111o2113co...
+....o33122o111111o22133o....
+...ooc32222o1111o22223coo...
+..oo3o32223c2111oc2223o3oo..
+.oa223o3333o2111oo323o322ao.
+.oa2223o3co211112oc3o3222ao.
+oaa22223oo21111112oo32222aao
+oa22222322111111111222222aao
+oc222223221111111112222222co
+oc222223211111111112222222cT
+oc222233221111111122332222co
+oc32223o321111111122o32223co
+.oc32333o22111111223o3323co.
+.oc33333o3222222222o33333co.
+..oc33333o322222223o3333co..
+..oooo333oo222222oo333oooo..
+.o2222333oooooooooo3332222o.
+o21111233o........o33211112o
+oc2222333o........o3333222co
+.oooooooP..........oooooooo.
diff --git a/parts_pl_src/body/pl_manatee_d.txt b/parts_pl_src/body/pl_manatee_d.txt
new file mode 100644
index 0000000..ef13994
--- /dev/null
+++ b/parts_pl_src/body/pl_manatee_d.txt
@@ -0,0 +1,47 @@
+# pl_manatee_d: from pixellab_src/pl_manatee_d/base.png (variant of pl_manatee) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (31, 20)
+# back at (32, 34)
+# tail at (48, 50)
+...............ooo^oooo...............
+.............oo22222223oo.............
+............oaa11222222aaoo...........
+..........oo3aa11222222aa23o..........
+..........o22112a2222a222a2o..........
+.........o2a1222222222222a22o.........
+........o32233322222222233222o........
+........o22111133322223311122o........
+........o21222211322331122212o........
+.......o3233oo322o333o22oo3323o.......
+.......o32ooooooo33333oooooo23oo......
+.......o32o11ooo222222ooo1wo23o3o.....
+......oc322owwo11111111o1wo323c2oo....
+......oc32233o1221111221o33223c2ao....
+.....o3ob322o212o22B2o212o2233o2a3o...
+....oc3oa32o21122222222112o33ao22ao...
+....oa23o3o21131212o1212112o3o322ao...
+....oa23o3o11211112o1111211o3o32222o..
+...o22223oo12211123o21112211o22222ao..
+...oa22233o1212133ooo2121221o22222ao..
+...oa22223o121213o33oo121121o2222223o.
+..o3223223o2212oo22333o22121o2223223o.
+..o32o322o3o212o212A213o2121o223o2aao.
+..o32o3223oo213o122o212o212o3223o2aao.
+.o332o32123o213o12ooo21o212o2123o233o.
+.o332o32223oo12o1o333o1o21o32223o233o.
+.o332o332212oo2oo33333oooo212233o233o.
+.ob322o3321123o33222222o3211233o223bo.
+.ob332o3332122ao222222oa2212333o233bo.
+.ob3322o3332233bo2222ob3322333o3233bo.
+..ob3223o33322ooo2222ooo22333o3233bT..
+..ob33223o3333ao211112oa3333o32233bo..
+..obb33223o3cooo111111oooc3o32233bo...
+...ob333223oo221111111122oo322333bo...
+....ob33322311111111111111322333bo....
+..oooob333321111111111111123333boooo..
+.o3223ocb33221111111111122233bco3233o.
+o212223oob332222111111222233boo322212o
+oa1122223ooc32222222222223coo3322211ao
+.oc2222223ooooo22222222ooooo3222222co.
+..oooooooo.....oooPoooo.....oooooooo..
diff --git a/parts_pl_src/body/pl_mandrake.txt b/parts_pl_src/body/pl_mandrake.txt
new file mode 100644
index 0000000..337081c
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrake.txt
@@ -0,0 +1,49 @@
+# pl_mandrake: from pixellab_src/pl_mandrake/base.png (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (31, 39)
+# head_top at (33, 25) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (46, 42) (from part/probe)
+.....................ooo....................
+....................oxxo....................
+...................oxx3yo...................
+...........oooooo..oxy3yo..oooooooo.........
+...........oxyxyyooy3y3yyooyyxxxxxo.........
+...........oxx3y3yo3y3y33oy3y333xo..........
+............oyyy3yo33333o3y33yyyyo..........
+............oy333o3o3o3^3o3333yyo...........
+.............o33333o3o3o3333333o............
+..............ooo3ooooo3o33oooo.............
+....o.....o.....oo3222333oo............o....
+..oo1o....o....o21111112333o.....o....o1oo..
+.o1o2o.....o..o211111111233oo...o....o13o1o.
+.o32o2.o..o3oo111231111112233o.o...o.o2o22o.
+o2o332o1o..oo11111111111112333o3o.o1o3333o1o
+o33o3312o...o21111111122112233oo..o21333o32o
+.oo3321o...o111121112B11111233o....o12333oo.
+...3222o...ooo21131311112oo2233o...o2223o...
+...o3322o.o113oo2323112ooo32233o..o2223o....
+....o321o.o13o1boo33ooob11o3233o.o2122o.....
+.....o321oo1o11oo3333o1o111o2333o2122o......
+.....o3322o2o113o2233A13111o233o21223o......
+......o332o23ooo322223ooo11323o22223o.......
+...o..oo33o2223321111233223223o2233o........
+....oo3oo3o12121ooooooo12112233333o3T...o...
+...o..o..oo1111occccccco111223333o.o3o3o....
+......o...o221occbcccccco12223ooo...o.o.....
+..........o321occcbbbbbbo123o33o....o.......
+..........o321occaaaaabbo122333o............
+.........o3o22ocbaaaaaabo1223333o..o........
+.......3o33o32ocoooooaabo22333oo3oo..o......
+......oo.ooo333o11111ooo223333ooo..oo.......
+.........3o.o3322333322223333o..3o..........
+.........o...o332222223333ooo...o...........
+.........o..o3o333333333333ooo..o...........
+...........o333oo33333333oo333o.............
+..........o2233o.oooooooo.o3322o............
+........ooo123o............o321oooo.........
+.......o222223o............o3223211o........
+......o233o23o3o..........o3o31o3321o.......
+.....o23ooo1oo33o........o33oo1ooo322o......
+.....ooo..o2o.ooo........ooo.o2o...ooo......
+...........oo................Po.............
diff --git a/parts_pl_src/body/pl_mandrake_b.txt b/parts_pl_src/body/pl_mandrake_b.txt
new file mode 100644
index 0000000..571c952
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrake_b.txt
@@ -0,0 +1,51 @@
+# pl_mandrake_b: from pixellab_src/pl_mandrake_b/base.png (variant of pl_mandrake) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 39)
+# head_top at (33, 16)
+# back at (31, 34)
+# tail at (47, 42)
+......................o^o.....................
+.....................oxxo.....................
+....................oxxzzo....................
+............oooooo..oxzzzo..oooooooo..........
+............oxzxzzooz3z3zzoozzxxxxxo..........
+............oxx3z3zo3z3z33oz3z3zz1o...........
+.............ozzz3zo33333o3z3zzzzzo...........
+.............oz333o3o3o3o3o3333zzo............
+..............o33333o3o3o3333333o.............
+...............ooo3ooooooo33oooo..............
+....o...........oo221122233oo............o....
+..o.1o.........o1111112123333o..........o1oo..
+.o1o3o.o.....oo11111111111123coo.......o13o1o.
+.o32o3o1o...oab1121111111111baaao....o.o2o23o.
+o2o32312o..oabb1211111112111bacao...o1o3333o2o
+o332221o...obb11111121111111baacao..o21333o33o
+..o2222o...o21111311121111222caaao...o12333oo.
+...o3222o..o23o1113131111ooo22ccco...o1333o...
+....o331o.o2113oo2323B12ooo3223333o.o2233o....
+.....o321oo213o1boo33ooob11o222333oo1123o.....
+.....o332o211o11oo3333o1o111o22333o1133o......
+..o...o33o211o112o2232o12111o2233o32333o......
+..o..o3o3o1113ooo322223ooo1132233o3333oo..o...
+...ooo..o1111123311111A33333222233333oo3oo....
+.....o..o22312222ooooooo1112231233ooo..o..o...
+........o2213222occccccco11221323333o..o......
+.......o2222222occccccccco22222233333T........
+.......o2222212occcbbbbcco22222233cc3o........
+.......obbb2222occaaaaaabo2222223caabo........
+.......oaaac222ocaaaaaaabo222223caaaco........
+.......oacac222ocoooooaabo222223caacao........
+.......ocaac2222o11111ooo2222223caaaao........
+.......oaabc322222333322222222333caaao........
+.......occc3332222222222222222333ccco.........
+........o333333322222222232223333333o.........
+.........o333333333222233333333333oo..........
+..........o3oooo333333333333oooo3o............
+...........occcoo33333333333occco.............
+..........oxcbo..ooooooooooo.ocbxo............
+..........obxbo..............obxxo............
+........ooobxboo............oobxbooo..........
+.......oxbbcxbbco..........obbcxccbxo.........
+......oboooxboocco........obooobxoooxo........
+.....obo..obo..oco.......ocoo..obo..oco.......
+.....oo...oo....oo.......Po....ooo...oo.......
diff --git a/parts_pl_src/body/pl_mandrake_c.txt b/parts_pl_src/body/pl_mandrake_c.txt
new file mode 100644
index 0000000..f11a2e3
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrake_c.txt
@@ -0,0 +1,63 @@
+# pl_mandrake_c: from pixellab_src/pl_mandrake_c/base.png (variant of pl_mandrake) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 30)
+# head_top at (33, 5)
+# back at (31, 34)
+# tail at (46, 42)
+........................oo........................
+.......................oyy^.......................
+......................oyyzo.......................
+...............ooooo..oy3zo..ooooooo..............
+...............oy3yzoo333zzooz3yyyyo..............
+...............oyy3zzo3z3z3o33zoz3o...............
+................ozz3zo33333o333zzzo...............
+................oz333oo3o3oo333zzo................
+.......ooo.......o33333oo3o333ooo.......ooo.......
+.......o31o.......ooo33oo333oo.........o1oo.......
+........o31o........o11111233o........o13o........
+.........o31o......o1111111222o...o..o13o.........
+..........o1o..o..o111111111223o.o...o1o..........
+...ooo....o1o...oo1111111111123oo....o1o....ooo...
+.oo111o...o1o....o11111111111223o....o1o...o111o..
+o13oo31o.o31o...o1111111111111233o...o22o.o13oo1o.
+o2o..o31o21o....o1111111111111o23o....o12o13o..o3o
+oo...o3111o.....o1oo11121311oo323o.....o1113o...oo
+......o11o......o1o1oo11331oo1o23o......o31o......
+......o13o......o1o11ooo3ooo11o23o......o31o......
+.....o313o......o1311oo33oo111323o......o11oo.....
+.....o311o......o113oo32123oo3123o......o122o.....
+....o1o211o.....o1112211111221123o.....o11231o....
+....o13o311o...oo21111oooo111112ooo...o113o31o....
+....o1o.o311ooo2oo111o1111o11122o33ooo113o.o1o....
+....o2o..o331113oo21o113311o112333311133o..o2o....
+....o3o...o3ooooooo22211A11112233ooooo3o...o2o....
+.....o3o.o3o....ooo32111111123333o....o3o.o3o.....
+......oo..o.....o2oo3222222223oo3o.....o..oo......
+.......o..o....o22ooo332222333oo22o....o..o.......
+..............o223o.o333B3333o.o322o..............
+..............o12o..o33333333o..o21o..............
+.............o21o....o222223o....o12o.............
+.............o11o....o211123o....o21o.............
+............o31oo....o211122o....oo1o.............
+............o11o.....o211112o.....o11o............
+............o13o.....o311122o.....o32o............
+...........o12oo.....o321123o.....oo21o...........
+..........oo12o......o322233o......o21oT..........
+..........o312o.....o32oooo33o.....o213o..........
+..........o112o.....o12o..o32o.....o211o..........
+.........o1121o....o112o..o321o....o1311o.........
+.........o11331o...o12o....o21o...o13311o.........
+........o1313o2o...o12o....o21o...o3o31o1o........
+........o1o1o.oo...o12o....o21o...oo.31o1o........
+........o3o1o.....o11o......o11o.....o1o3o........
+.........oo3o.....o12o......o21o.....o2oo.........
+..........o3o.....o12o......o31o.....ooo..........
+...........oo.....o22o......o22o.....oo...........
+..................o32o......o22o..................
+...................o2oo....o32o...................
+...................o23o....o32o...................
+.................ooo33o....o32ooo.................
+................o12233o....o32221o................
+...............o2331233o..o3321331o...............
+..............o2oo13oooo..oooo31oo1o..............
+..............oo.ooP..........ooo.oo..............
diff --git a/parts_pl_src/body/pl_mandrake_d.txt b/parts_pl_src/body/pl_mandrake_d.txt
new file mode 100644
index 0000000..e6b9250
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrake_d.txt
@@ -0,0 +1,61 @@
+# pl_mandrake_d: from pixellab_src/pl_mandrake_d/base.png (variant of pl_mandrake) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 33)
+# head_top at (33, 5)
+# back at (31, 34)
+# tail at (40, 42)
+...............o^o.............
+..............oxxo.............
+.............oxx3o.............
+.....oooooo..ox33o..oooooooo...
+.....oxx333ooxx333oo33xxxxxo...
+.....oxxx233o3x333o333333xo....
+.....o3x33333o333oo3333333o....
+......o333332o33oo33333z3o.....
+......o333233oo3o3333333o......
+.......oo33333o3o3oooooo.......
+.........oooo3o33oo............
+..........ooooo3oooo...........
+........ooo222222333ooo........
+.......o122222222223333o.......
+......o11112222222222233o......
+.....o2112222222222222233o.....
+....o121122222222222222233o....
+...o11222222222222222222333o...
+..o1122222222222222222222333o..
+..o1222222222222222222222233o..
+..o22222222222222222222222233o.
+.o22oo2222222222222222oo22233o.
+.o222oo3222232322222oo3322233o.
+.o2223ooo222323222oo1o33222333o
+o3222o11wooo333oooo111o3222333o
+o2222owwwoo33333owoww1o3222333o
+o2222owwooo22223oooww1o3222333o
+o22233owo3o22222o22w1o33222333o
+o22222333322222A2ooo3322222333o
+o3222222222oooBo22222222223333o
+o322222222obbbbbo222222222333o.
+.33222222obbbbbbbo22222222333o.
+.o3322222obbaaaaabo2222223333o.
+..o332222obaaaaaaao222223333o..
+..o333222oooooooaao22223333o...
+...oo33322222222oo22233333o....
+....oo333333333333333333oo.....
+......oo33333333333333oT.......
+.......oooooooooooooooo........
+.......o33333333333333o........
+......o33o3333333333o33o.......
+.....o223o3222222233o323o......
+....o213o322222222233o223o.....
+...o1223o322222222233o3223o....
+..o22233o322222222233oo222o....
+.o22223oo322222222233oo3222o...
+.o2223ooo322222222233ooo2222o..
+.o32o2ooo333222222333ooo2o23o..
+..o2ooo.o233333333333o.ooo3o...
+...ooo..o223oooooo223....oo....
+........o2233oooo322o..........
+.........o333o..o333o..........
+........oo333o...o333o.........
+........o2223o...o222o.........
+.........oooP.....ooo..........
diff --git a/parts_pl_src/body/pl_mandrill.txt b/parts_pl_src/body/pl_mandrill.txt
new file mode 100644
index 0000000..da2c3a1
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrill.txt
@@ -0,0 +1,46 @@
+# pl_mandrill: from pixellab_src/pl_mandrill/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (32, 26) (from part/probe)
+# back at (39, 32) (from part/probe)
+# tail at (47, 51)
+.................ooooo..................
+...............oo22223o.................
+.............oo22122333oo...............
+............o211111222233oo.............
+...........o311111122222233o............
+..........o211111111^2222233o...........
+.........o2211111122222222233o..........
+....ooooo322221222222222222333ooooo.....
+...o2112o322boocc222222222233o21112oo...
+...o222oo22b1ao11c2222222233o21222222o..
+..o22c2o22obwobwwc222222232o2222ccc22o..
+..o2bbo3122c1wwwco221111222B223cbbbb2o..
+..o2bbo21122cccco2211111122222obbbbb2o..
+..o2bao2111222222211111122222occbaa22o..
+...o2aooooo222222ooooooo222222ocbaa22o..
+...o22oc1oo233222oc1obco222222oaaa223o..
+....o2ocbo2a11a222oboaoo2211222aa223o...
+.c..o212oo1aaaa122ooooo221112o22223o....
+ba...21231111111a22aaa22111122ooooo.....
+cabb.22ba1211121ab2222211c211233oo......
+.cazccbab1321231bab2A222bab22333o...ooo.
+..cbazaac1133311caaacbbaac23233oo.32222o
+...ccbbbc11111111caaazaac322333o.321222o
+.....cco2211111111cbcbbc333333o..212222o
+........o3222111222o3333oooooo..2122ooo.
+.........ooo22222222oooo333o....212o....
+..........oooooooooo33322333o...312o....
+.........o233o33333oooo22223o...312o....
+........o222o33222o222222223o...o22o....
+.......o32222oaaao22222222o33o..o22o....
+.......o3222aabyoa2222222oo33o..o22T....
+........o32ayaoyoay2222oooo33o..o23o....
+........ooaybbayabaya3o2222o3o.322o.....
+.........obaboaaaobaoo2222223o3222o.....
+.........oooooaaabooo32222233o333o......
+........ooo333obbbboo22222333o33o.......
+.......oo222233bbbbooo2223333ooo........
+.......o2o22333oooo232233333o...........
+.......oooooooo..o2o2o233ooo............
+..................oPooooo...............
diff --git a/parts_pl_src/body/pl_mandrill_b.txt b/parts_pl_src/body/pl_mandrill_b.txt
new file mode 100644
index 0000000..4ec9baa
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrill_b.txt
@@ -0,0 +1,50 @@
+# pl_mandrill_b: from pixellab_src/pl_mandrill_b/base.png (variant of pl_mandrill) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 40)
+# head_top at (32, 17)
+# back at (39, 32)
+# tail at (50, 51)
+...........o...ooo^......................
+..........o2o.o2233oooo..................
+........o.o2oo212322222oo................
+.......o2o12o212221222233................
+.......o1o123112212223333oo..............
+.......o1212212212222211222o.............
+.......o12122122122111223322o............
+.......o122221222211222333332o...........
+......oo2122222231232221123333o..........
+..ooooo2322cc22222333322223oooo..........
+.o2112o232c1ac22332223332oo2111oo........
+.o222o3222a1aac2222222232o2122222o.......
+o22c2o222c1aaco22222222232222cc22o.......
+o2bbo2122caacco222111122222obbbb2o.......
+o2bbo21122caco222111111222ocbaab2o.......
+o2bao211122co322111111222Bocbaa22o.......
+.o2aooooo222222ooooooo22223obaa23o.......
+.o22oc1oo2222222c1occo221222aa22o........
+..oo2cbo2azzaa22oboao2211232222o.........
+..o22aoo1aaaa1222ooo2211123oooo2o........
+..o212a1111111112aaa2211223o3332o........
+...o22211211311122221111323o33322o.......
+...o2o111333311112222122o23oo3332o.......
+...o3o211111111112A222233o333o333o..ooo..
+....ooo12111111112o2o22o3oo33oo33o.o222o.
+....o3o22211112123o2oooo332233o3o.o22222o
+...o33o3223222o23oooo33oo222233oo.o23332o
+..o323oooo3222oooaaac3o22222333o.o22ooo2o
+.o222obaaooooooaaaaaao2222223o33oo23o..o.
+.o222ozzzzzaaaaazzzzo22222223o33oo23o....
+.o222oz11zzzzzzzzzzoa2222223o333oo23o....
+.o22zozz1zzzzzzzzzzoz222223oo333oo23o....
+..oabozzzzzzzzzzzzzobz2223o32233oo23o....
+...oobzzzzzzzzzzzzzaobza3o332233oo23o....
+...oobzzzzzbzzzzzzzzboooo332223oo223T....
+...oobbzzzbazzzzzzzzbbb33322233o223o.....
+..o2oobbzzzbazzzzzbbbb322222233o333o.....
+..o22oobbbbbbbzbbbbbb322222223o333o......
+...o233oobbbbbbbbbbbo32222222ooooo.......
+...oo2333oooooooooooo32222233o...........
+....o3333333oooooo..o3333333o............
+...oo2o23333o........o322223o............
+...ooooooooo.........o2o2o23o............
+.....................Poooooo.............
diff --git a/parts_pl_src/body/pl_mandrill_c.txt b/parts_pl_src/body/pl_mandrill_c.txt
new file mode 100644
index 0000000..fef36cc
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrill_c.txt
@@ -0,0 +1,56 @@
+# pl_mandrill_c: from pixellab_src/pl_mandrill_c/base.png (variant of pl_mandrill) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (33, 35)
+# head_top at (32, 11)
+# back at (39, 32)
+# tail at (47, 51)
+..............oo^oo...............
+............oo22223o..............
+...........o22122333o.............
+.........oo2111122223oo...........
+........o31111112222223o..........
+.......o3111111112222223o.........
+......o321111112222222233o........
+..ooooo2222222222222222233ooooo...
+.o211o32bbbbbbc2222222223o21112oo.
+.o222o2bbaabbbbc22222223321222223o
+o23cco2baabbbbbb22222233o222ccc22o
+o2cco22bbbbbbbbc21112222o22occcc2o
+o2co211cbbbbbbc21111122222occccc2o
+o2coooo2cbbbbc2oooo122222occcbb22o
+.o2oo1oocccccco1ocoo222222occbb22o
+.o2oocoo2cccccooocco222222obbb223o
+..o3ooooaaaa22ooccoo2211222bb223o.
+..o12o311111122oooo221112o22223o..
+..o1a213111o1122ba22a11112ooooo...
+..o1211o11o21112222211112333o.....
+..o221111111111122221111333o......
+..o3213oooo211112222333B333o......
+...o3331111oo111223333333oo.......
+....o33111111111ooooooooo.........
+.....ooooooooooo3A333oo...........
+...........o3333333222oo..........
+..........o3223332222222o.........
+.........o3222222222oo222o........
+........o223o21111123oo322o.......
+.......o213oo21xx21223oo312o......
+......o213o.o2zzzz2223o.o313o.ooo.
+......o13o..oczzzzb223o..o22o3212o
+.....o22o...oabbbbb223o...o22o122o
+....o223o...oazzzzz223o...o322oooo
+....o13o....oazzzzz223o....o21o...
+...o11o.....oazzzza223o....o21o...
+...o13o....o33azzaa223o....o311o..
+..o22oo....o23baaa2223o....o311o..
+..o23o....o1233cc2222oo...o2o21o..
+.o222o...o2123oooo222o3...o2o21o..
+.o22aao..o223o...o22oo23oo22o22T..
+.o2acbo..o23o....o22oo33223o222o..
+.o2cooo..o33o....o22oooooooz1222o.
+.ozco....o33oo....o33o...ozcc222o.
+.obbco....o33o....o33o...obocz22o.
+..ooo......o3oo...o222o...ooozcbo.
+.........ooo33o...o222o.....oaco..
+........o22223o..o2122o.....ooo...
+........oo2oooo..o2o23o...........
+........ooooo....Poooo............
diff --git a/parts_pl_src/body/pl_mandrill_d.txt b/parts_pl_src/body/pl_mandrill_d.txt
new file mode 100644
index 0000000..c8a3075
--- /dev/null
+++ b/parts_pl_src/body/pl_mandrill_d.txt
@@ -0,0 +1,59 @@
+# pl_mandrill_d: from pixellab_src/pl_mandrill_d/base.png (variant of pl_mandrill) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (32, 33)
+# head_top at (32, 7)
+# back at (39, 32)
+# tail at (49, 51)
+........................o^o........................
+......................oo223oo......................
+..................ooooo223333oo....................
+................oo3222212333223oo..................
+...............o32222211222222333oo................
+.............oo32221211122222222233oo..............
+............o222221121122222222223333o.............
+...........o32222212212221122222222333o............
+..........o3222222121122211222222222333o...........
+.........o322222222112221222222222222333o..........
+........o32222222221122212222222222223333o.........
+........o222222222211222222222222222223333o........
+..oooo.o3222222222221222222222222222223333o.ooooo..
+.o3212oo222222222bbooccc222222222222223333oo11122o.
+o22222o222222222c11bocbbcc222222222222333o21122222o
+o22222o222222222cwwoobwwcc22222222222223o211222222o
+o2cc2o3221111222cwwoobwwcc22211112222223o2122occ22o
+o2bbco2221111122ccwwwww1c221111112222223o222obbbb2o
+o2bbco22111111122ccccccc2211111111122222o22obbbbb2o
+o2aboo2211oooo1122ccccc2211ooooo11122222332ccbaab2o
+o2abo322oooooooo2222222221ooooooo312222233occbaab2o
+o2aao322ooowwooo222222222oowwoooooo22222233ocbaa22o
+o32ao322ooowwocoo22222222oowwooccoo222222333aaa22oo
+.o22o322occooocoo22333222ocooooccoo222222333aaa22o.
+.ooo3222occooocoo2axxx222ocooooacoo222222233aa22oo.
+..oo2112ocaoooao2aazzaaa2occoocaBoo2211122o3332oo..
+..oo11112ocaccoo11aaaa112Aoaccaco322111122o333oo...
+..o2211122oooo2111111111122ooooo32211111122oooo....
+..oac111122aaa21111111111a22aaa221111111122333o....
+..obac111222aa11311111111ab22222211cc111223333o....
+..ocaab2222bab11311111311bab222222cac111223333o....
+...ocaabbbaabc11131113111baac2222aabc22223333o.....
+...o3caaaaaacc11113331111caaaaaaaaac22223333o......
+....oocccbabc2111111111111cbaaaaabc23233333ooo.....
+.....oo333cc3211111111111123ccbbcc33333333o333o....
+......oo33333322111111111123333333333333oo32223o...
+.......ooo3333322211111222233333333333ooo323323o...
+.........ooo333332222222233333333333oo.o223oo33o...
+............ooo333333333333333333ooo...o22o..oo....
+..............ooooooooooooooooooo3o....o22o........
+.............o333333333333333333333o...o22o........
+............o222o333bbbbbb33333o3223o..o22o........
+............o223o23aaaaaaaa33223o2223o.o22o........
+...........o2223o22zzzzzzzaa2222oo222o.o23o........
+...........o222oo22zzzzzzzzz22223o2223o223T........
+...........oza3oo22zzzzzzzzz22223o2zzao233o........
+...........obaoo2223zzzzzzza22223oozaao33o.........
+............oo.o22233bbbbbb322223o3ooo3oo..........
+...............oo2233obbbb3322233oooooo............
+................o33333ooooo333333o.................
+................o32233o....o32223o.................
+................o21o23o....o121o2o.................
+.................ooooo......Poooo..................
diff --git a/parts_pl_src/body/pl_mantis.txt b/parts_pl_src/body/pl_mantis.txt
new file mode 100644
index 0000000..4ec9405
--- /dev/null
+++ b/parts_pl_src/body/pl_mantis.txt
@@ -0,0 +1,47 @@
+# pl_mantis: from pixellab_src/pl_mantis/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 43)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (43, 51) (from part/probe)
+............oo..........oo............
+...........311o........o113...........
+..........o2oo1o......o1oo23..........
+..........oo..313....31o..3o..........
+...............o23..32o...............
+...............o23..32o...............
+................3oooo3................
+.............ooo332233ooo.............
+...........oo3233o^1o3323oo...........
+..........oaaa22o1111o22aaao..........
+.........oaa11a21111112a11aao.........
+.........oba11o22111122o11abo.........
+.........o1booo22222222ooob1o.........
+.........o11ooo22222222ooo11o.........
+.........o21b1c22111122c1b12o.........
+..........o21c1221111221c12o..........
+...........o22332222223322o...........
+............oo3332222333oo............
+........o....oo3b3333b3oo....o........
+.......o2o...o3oo3B33oo3o...o1o.......
+......o131o...o33oooo33o...o131o......
+......o132o...o33333333o...o231o......
+.....o13o32o..o33333333o..o22o31o.....
+.....o3bc3223o33o3A33o33o3223bb3o.....
+......oboc32oo33o3223o33oo23cobo......
+......oaobc3233o33oo33o3323cboao......
+......ocoobc233o233332o332cbooco......
+.......ocoobo3o33obbo33o3obooco.......
+........ocoooo3333333333ooooco........
+.........oo3333o333333o3333o..........
+........o3333o33o3333o33o333o.........
+......oo333333o33o33o33o33333oT.......
+.....o3233333o33o3333o33o333333o......
+....o222233oo223o3333o322oo333323o....
+..ooa22233o.oa3oooooooo3ao.o33222aoo..
+.oca2123oo..o23o......o32o..oo2212abo.
+.oooab3o....o33o......o33o....o3baooo.
+ocabcoo.....o33o......o33o.....oocbaco
+.oooo.....oooc3o......o3cooo.....oooo.
+.........ocabaco......ocabaco.........
+..........ooooP........ooooo..........
diff --git a/parts_pl_src/body/pl_mantis_b.txt b/parts_pl_src/body/pl_mantis_b.txt
new file mode 100644
index 0000000..88d4e59
--- /dev/null
+++ b/parts_pl_src/body/pl_mantis_b.txt
@@ -0,0 +1,49 @@
+# pl_mantis_b: from pixellab_src/pl_mantis_b/base.png (variant of pl_mantis) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 42)
+# head_top at (31, 24)
+# back at (31, 39)
+# tail at (53, 51)
+................oo..........oo................
+...............311o........o113...............
+..............o1oo1o......o1oo13..............
+..............oo..313....31o..3o..............
+...................o23..32o...................
+...................o23..32o...................
+....................3o^oo3....................
+.................ooo332233ooo.................
+...............oo3233o11o3323oo...............
+..............oaaa21o1111o12aaao..............
+.............oba11b11111111b11abo.............
+.............ocb11o22111122o11bco.............
+.............o1cooo22222222oooc1o.............
+.........ooooo11ooo22222222ooo11ooooo.........
+.......oo11133o1cac22111122cac1ooo111oo.......
+......o11111133o11332222223311o33311112o......
+.....o31111113333o3332222333o33333111111o.....
+....o331111113133oo3c3333c3oo331331111113o....
+...o313311113313333oo3333oo333313311111132o...
+...o31132223331113333oooo33331113o31111331o...
+..o331113333o31111133333333111113o333331113o..
+..o33311233o3331111111B11111111133o33311133o..
+.o32113333o33333111111111111113333o333133113o.
+.o31111333o331111111111111111111333o33331113o.
+oc3111113o331111111111A1111111111333o3311113co
+ocb111113o33111111111111111111111133o331111bco
+ocbbb123oc33111111111111111111111133co311bbbco
+o3bbbbbcocc311111111111111111111113ccocbbbbb3o
+o3211bbcoccc1111111111111111111111cccocbbb123o
+o3222113o3ccbb111111111111111111bbcc3o3221223o
+oc111223o333bbbb11111111111111bbbbc33o222111co
+ocbbb233o33322bbbbbbbbbbbbbbbbbb23333o332bbbco
+o33222o3co3332222bbbbbbbbbbbbb223333ocoo22223o
+.o3332oooo33332222222222212222233333oooo2333T.
+..oo333o.oo333333222222222113333333oo.o333oo..
+....ooo.o3oo3333333333333333333333oo3o.ooo....
+......oob23oo33333333333333333333oo33boo......
+.....ocb2133ooo3333333333333333ooo3312bco.....
+.....oooac3o...oooo33333333oooo...o3caooo.....
+....ocbccoo.....333ooooooooo33.....ooccbco....
+.....oooo.....oooc3o......o3cooo.....oooo.....
+.............ocbcbco......ocbcbco.............
+..............ooooP........ooooo..............
diff --git a/parts_pl_src/body/pl_mantis_c.txt b/parts_pl_src/body/pl_mantis_c.txt
new file mode 100644
index 0000000..32c3f20
--- /dev/null
+++ b/parts_pl_src/body/pl_mantis_c.txt
@@ -0,0 +1,63 @@
+# pl_mantis_c: from pixellab_src/pl_mantis_c/base.png (variant of pl_mantis) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 35)
+# head_top at (31, 10)
+# back at (31, 39)
+# tail at (47, 51)
+................oo..........oo................
+...............311o........o113...............
+..............o1oo1o......o1o313..............
+..............oo..313....31o..3o..............
+...................o13..31o...................
+...................o13..31o...................
+....................3o^oo3....................
+.................ooo331133ooo.................
+...............oo3233o11o3323oo...............
+..............obbb21o1111o12bbbo..............
+.............obb11b11111111b11bbo.............
+.............ocb11o11111111o11bco.............
+.............oacooo11111111ooocao.............
+.............oaaooo11111111oooaao.............
+.............o11c1c11111112c1c11o.............
+..............o1bcb12111122bcb1o..............
+...............o11332222222311o...............
+................oo3332222333oo................
+.................oo3c3333c3oo.................
+.................o3oo3333oo3o.................
+..................o33oooo33o..................
+..................o33333333o..................
+..................o333333321o.................
+.................o1333333321o.................
+...oooooooo......o1333233332o......ooooooo....
+..ob1111122oo....o3o332333o2o....oo1111111oo..
+.ob1111112222oo.o33o311113o22o..o2222111111bo.
+ob1bb1111122233oo23o311113o32ooo333221111133bo
+oc1111111113333oo3oo3bbbb3oo33o33331111111ccco
+o31111111111333o33o33111123o32o33311111111111o
+.oc111112333333o23o33111133oo1o3333333111bbbo.
+..obb111223333o11oo3312A133oo11o33333111112o..
+...o3222223333o11oo33333333oo21o3331111111o...
+....o333333333o11oo22322333oo31o33333333bo....
+..ooo33333333obbboo22o33o31oocbbo33332222ooo..
+...o211113333oboboo12oBoo21oobobo333321111oo..
+..oc111113333ocoo3o12o..o21o3ooco333331111bo..
+..o1111133123ooco3o12o..o21o3ocoo33313311111o.
+.ob11111111333oo33o12o..o11o33co333311111111c.
+.o1bb1111133333333o11o..o11o33333333311111bbbo
+.ocb11113oo3333333o11o..o11o3333322oo311111bco
+..oo3bb3o.o2113333o11o..o11o33333212ooo1bb3oo.
+....oooo.o11113233o11o..o31o333332112o.oooo...
+.........o11133133o11o..o21oo33133111o........
+........o111131133o23o..o32oo331131111o.......
+........o11111113oo33o..o33oo331111111o.......
+........ob1111113oo33o..o33o.o3111111bo.......
+........o1111113o.o33o..o33o..o3111111T.......
+........o1b1113o..o33o..o33o...o2111c1o.......
+........ob21b3o...o33o..o33o....o1b11bo.......
+........oc3bbo....o33o..o32o.....obb3co.......
+.........oooo.....o23o..o32o......oooo........
+..................o23o..o32o..................
+..................o23o..o32o..................
+.................oob3o..o3boo.................
+................ocbbco..ocbbco................
+.................oooP....oooo.................
diff --git a/parts_pl_src/body/pl_mantis_d.txt b/parts_pl_src/body/pl_mantis_d.txt
new file mode 100644
index 0000000..eb4cdda
--- /dev/null
+++ b/parts_pl_src/body/pl_mantis_d.txt
@@ -0,0 +1,56 @@
+# pl_mantis_d: from pixellab_src/pl_mantis_d/base.png (variant of pl_mantis) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 34)
+# head_top at (31, 18)
+# back at (31, 39)
+# tail at (41, 51)
+.......ooo............oooo......
+......3111o..........oo1123.....
+....oo2ooo1o........o11ooo23....
+....oo3ooo1o........o11ooo23....
+....ooo...o13......31oo...33....
+...........o23....31o...........
+...........o23....31o...........
+...........o23....31o...........
+............3oo^ooo2o...........
+........oooo33222232oooo........
+......oo1123231112323212oo......
+...ooo22111323111132311133ooo...
+..obbbbb2111o111111o2112bbbbboo.
+..obbbbbb21111111111112bbbbbboo.
+oobbbaaaab211111111112baaaabbboo
+ooccb1111b222111111222b1111bccoo
+oocbb1111o222111111222o1111bbcoo
+oo1bbooooo222222222222ooooobb1oo
+oo1bbooooo222222222222ooooobb1oo
+oo11booooo222222222222ooooob11oo
+oo111ooooo222222222222ooooo111oo
+oo111cbccc222211111222cccbc111oo
+..o11bbbcc222211111222ccbbb11oo.
+..o111bbb22222222222222bbb112o..
+..o3322222223222A223222222233o..
+...o3322222b32222223b2222233o...
+....o3332222b333333b2222333o....
+.....oo333332222222223333oo.....
+.......ooo333333333333ooo.......
+.........ooooooBooooooo.........
+........o33333333333333o........
+.......oo33333333333333oo.......
+.......o3333333333323333o.......
+.......o23o3322222223333o.......
+......o223o33211112333o32o......
+......o22o332222222233o32o......
+......o22o322111111223o32o......
+.....o122o322222222223o321o.....
+.....o122o322222222223o321o.....
+.....o122o333322222233o321o.....
+.....o233o333333333333o332o.....
+......o3oo333333333333oo3T......
+.......ooo2233oooo3322ooo.......
+.........o2233o..o3322o.........
+.........o223o....o322o.........
+.........ob23o....o32bo.........
+.........o333o....o333o.........
+.........oc33o....o33co.........
+.........obbco....ocbbo.........
+..........ooP......ooo..........
diff --git a/parts_pl_src/body/pl_marimo.txt b/parts_pl_src/body/pl_marimo.txt
new file mode 100644
index 0000000..3365a5f
--- /dev/null
+++ b/parts_pl_src/body/pl_marimo.txt
@@ -0,0 +1,46 @@
+# pl_marimo: from pixellab_src/pl_marimo/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 41)
+# head_top at (30, 27) (from part/probe)
+# back at (37, 40) (from part/probe)
+# tail at (49, 41) (from part/probe)
+....................ooo...................
+.................o.o113o..................
+............ooo.o3o3113oooo...............
+...........o212o2222133323ooooo...........
+......ooo..o31132122223223o212o..ooo......
+.....o311oo3321222222221232113ooo113o.....
+.....o3211322222122^2211222233321113o.....
+.....o332122111221222222222332211233o.....
+......o3332111112222122221222222333o......
+......o332221112222112122222223333oo......
+....oo222222222222111122222221223333oo....
+...o3222122ooooo22211222oooo2212233333o...
+...o333122oo222oo222222o322oo221223333o...
+....oo222oo22222oo2222o22222oo222233oo....
+....o222oo2222123o222oo212222oo222233o....
+...o3322oo2221113o222o3111122oo2233333o...
+...o3332oo221112oo222oo211122oo2233333o...
+ooo.o322oooooooooo222oooooooooo222233o.ooo
+oyyoo212obbo11oobo222obo11oobbo223333oo1yo
+o23o2222ob11oooobo222o11ooBo1oo22233oo131o
+.o2o33322o111cc1o222A2o11cc11o22223oo1T1o.
+.o33o3222ooo11ooo22122ooo11ooo22333o132o..
+ooooo33222ooooo222111222oooo322223oo3ooooo
+o12o332b2b2222222221222222222b2b23o3o2111o
+o2oo3322b2b22222322222322222b2b223oo33322o
+oo2o33322b2222222o33oo2222222232333oo113o.
+.ooooo332222222222abb2222222232o333o3oooo.
+..o33oo3333221222222222222322233o3o333o...
+..o233o33332133222233222123o223333o3323o..
+.o2223o333332o323222322o223o333333o3222o..
+.o22233oo333o33o322o3233o333o333oo33222o..
+..o23333o3333333333333333o333333o33332o...
+..oo333ooooo33333333333333333ooooo333oo...
+....ooo..ooo33o3333333333o33oooo..ooo.....
+..........o3oo3o3o3333o33ooo33o...........
+..........o3333oooo33oooo33333o...........
+..........o333333o.ooo.o333333o...........
+...........o32233o.....o33223o............
+............o323o.......o323o.............
+.............ooo.........Poo..............
diff --git a/parts_pl_src/body/pl_marimo_b.txt b/parts_pl_src/body/pl_marimo_b.txt
new file mode 100644
index 0000000..2c11d4f
--- /dev/null
+++ b/parts_pl_src/body/pl_marimo_b.txt
@@ -0,0 +1,50 @@
+# pl_marimo_b: from pixellab_src/pl_marimo_b/base.png (variant of pl_marimo) (pixellab_library.py extract)
+# pivot at (31, 61)
+# aura at (31, 40)
+# head_top at (30, 20)
+# back at (37, 40)
+# tail at (50, 41)
+.....................ooooo................
+................o...o1122o................
+...........oo..oo..^1133oo................
+..........o1o.o1o.o2123o.ooooo............
+..........o1o.o1oo21223oo1122o............
+..........o1o.o12o2123321133o.............
+..........o12o22232123311333ooooo.........
+......ooo.o311322322132113221112oooo......
+.....o311oo33122223222212221133oo113o.....
+.....o331133322212222211222133321113o.....
+.....o333112111221222222221232211233o.....
+......o3332111112222122221222222233o......
+......o3222211122221121222222222333o......
+....oo222222222222111122222221222222oo....
+..oo1112122ooooo22211222oooo2212211111o...
+..o2333122oo222oo222222o322oo221222331o...
+..ooo3222oo22222oo2222o22222oo222223ooo...
+...o2222oo2221123o222oo211222oo222222o....
+..o11122oo2211113o222o3111122oo2211112o...
+.o112222oo221112oo222oo211122oo22222112o..
+o1133322oooooooooo222oooooooooo222233312oo
+o1oo3222oaaowwooao222oaowwooaao222223331co
+ooo22112oa11ooooao22Ao11ooBo1oo221112ooooo
+..o111222o1w1ccwo22222o1wcc11o22221112oT..
+.o1133322ooowwooo22122ooowwooo222222111o..
+o113332212ooooo222111222oooo322222322213oo
+o1133321122222222221222222222221113332211o
+o1333211222112222222222222222222211333221o
+o23o321132211122212222212221122221133o321o
+o2oo21133211222211222221122211232211ooo21o
+oboo21333111332212321222122321133221o3ocbo
+oboo23332113332113322233112331123331o23obo
+oooo23oo2113331123321233211333123o31o22ooo
+o23o23oo2133331133321123311233223oo1o22...
+.o3occoo313oo313333311233222o322o3obo22o..
+..ooocoo313oo323o3332123o222oo22oooco3o...
+....oo.o323oo323o3332333oo22oo2bo.oooo....
+.......occo3ocb3oo33233ooobo3obbo.........
+.......oboo33occoo33233o3obo33ooo.........
+.......oooo333ooooo323oo3ooo33o...........
+...........o32233oocbcoo33223o............
+............o223o.ocbco.o323o.............
+.............ooo...oco...ooo..............
+....................Po....................
diff --git a/parts_pl_src/body/pl_marimo_c.txt b/parts_pl_src/body/pl_marimo_c.txt
new file mode 100644
index 0000000..461d69b
--- /dev/null
+++ b/parts_pl_src/body/pl_marimo_c.txt
@@ -0,0 +1,43 @@
+# pl_marimo_c: from pixellab_src/pl_marimo_c/base.png (variant of pl_marimo) (pixellab_library.py extract)
+# pivot at (22, 54)
+# aura at (31, 35)
+# head_top at (30, 18)
+# back at (37, 40)
+# tail at (57, 41)
+......................ooo^oooooo......................
+.................ooooo2222222222oooo..................
+...............oo3322222222222222222oooo..............
+............ooobb2222222222222bab2222222oo............
+..........oobaab22111212222222bbb222222bbbooo.........
+.........ocaaabb21111222222222222222222bbabbo.........
+........o2cbbbb221111122221222222222222bbabbcoo.......
+......oo222bb222221122222112122222222222bbbbc23o......
+.....o32212222222222222211112222222222222ccc2223o.....
+....o32212222122ooooo22221122222ooooo222222222223o....
+...o33222222122o11111o222212222o11111oo22222222233o...
+..o3322bb22222o1wwooooo2222222oooooww11o22222222233o..
+..o3222bb2222o1wwoowwooo22222oowwoooww1o222222ab233o..
+.o33222bb222o1wwwoowwooo22222oowwooooww1o22222bb2233..
+.o3322222222o1wwooowwooo22222oowwooooww1o22222cc2233o.
+.o3222222222o1wwoooooooo22222ooooooooww1o22222222223o.
+o33222222222o1wwoooooo3o22222ooooooooww1o222222222233o
+o33222222222o1wwoccoocco22A22occooocoww1o222222222333o
+o3332aab22222o1wwcccccco22222occccccww1o3222222222333o
+o333baabb22223o1wwcccco3222223occccww1132222222222333o
+o333bbbbb222223o1www1o322212223o1www11o2222222aac3333o
+o333cbbbb2222223ooooo32221112223oooooo2222222aaabc333o
+.o333ccc222222b23333222222122222B23322b222222bbbbc33o.
+.o3333322222b22b222222222222222222222b22b2223bbccc33T.
+..o3333222222b222222222o222223222222222b22223cccc33o..
+...o33333322222222222222ooooo322222222222233333333o...
+....o333332aab22222222222aaa222222222322bb3333333o....
+.....o3333cbbbc2211222222222222222232233b3333333o.....
+......oo33cccbb3312322322222223222332333333333oo......
+........oooccc333o3333332333323333333333333ooo........
+...........ooo333333333333333333333333333oo...........
+............o3ooooo33333333333333333oooooo............
+............o333333ooooooooooooooooo33333o............
+............o3333333o.............o333333o............
+.............o32233o..............o33222o.............
+.............oo223o................o322o..............
+..............oooP..................ooo...............
diff --git a/parts_pl_src/body/pl_marimo_d.txt b/parts_pl_src/body/pl_marimo_d.txt
new file mode 100644
index 0000000..5d32262
--- /dev/null
+++ b/parts_pl_src/body/pl_marimo_d.txt
@@ -0,0 +1,49 @@
+# pl_marimo_d: from pixellab_src/pl_marimo_d/base.png (variant of pl_marimo) (pixellab_library.py extract)
+# pivot at (17, 54)
+# aura at (32, 35)
+# head_top at (30, 14)
+# back at (37, 40)
+# tail at (57, 41)
+...........................ooo........................
+........................o.o113o.......................
+...................ooo.o3^3113oooo....................
+..................o311o2222133323oooo.................
+.............ooo..o31132122223223o21o..ooo............
+............o311oo332122222222123211oooo13o...........
+............o32113222221222221122213332113o...........
+............o33211211122122222222233221233o...........
+.............o333211111222212222122222233o............
+.............o33222111222211212222222333oo............
+...........oo22222222222211112222222122333oo..........
+..........o3222122ooooo22211222ooo2221233333o.........
+..........o333122oo222oo222222o322o222123333o.........
+...........oo222oo22222oo2222o22222o222233oo..........
+...........o222oo2221123o222oo211222o222233o..........
+..........o3322oo2211113o222o3111122o2233333o.........
+..........o3332oo221112oo222oo211122o2233333o.........
+.......ooo.o322oooooooooo222ooooooooo2222333.ooo......
+.......o22oo212obbowwoobo222obowwoobo2233333o12o......
+.......o32o2222ob11oooobo222o11oooo1o222333o131o......
+........o2o33322o1w1ccwo22222o1wcc11o22233o131o.......
+........o33o3222ooowwooo22122ooowwooo22333o13o........
+.......ooooo33222ooooo222111222oooo3222333o3oooo......
+.......o13o332b2b2222222221A22222222b2b333ooo11o......
+.......ooooo322b2b22222322222322222b2b233o111ooo......
+.....oo11111ooo2b2222222o33oo2222222233oo1111111o.....
+....o111111111oo222222222abb222222223oo11111111c3oo...
+...o11111111111oo3221222222222222322oo11111111111coo..
+..o111cc1111bb11oo21332222332221B3o2ooc11111111c111o..
+.oo11111111111111oo2o323222322o223ooo111oo11111oo111T.
+.o111ooo1111ooo111oo333312o3233o333oo11ocwo111owco1oo.
+o111ocwco11owoco11oo333333333333o3ooo11ocoo111ooco1oo.
+o111ococo11ococo11oo33333333333333oo1o1oabo111obao11oo
+o111ocao111obabo1ooooo3333333333o3oo11cboo11111ooac1oo
+o11bboo11111ooo11oooo3o3o3333o33oooo111b111ooo11bb1ooo
+oo11b111ooo111bb11ooo33ooo33oo3333oooo1111111111111ooo
+.oo11b11111111b1coooo33o.ooooo33333ooo11b1111112b1ooo.
+.ooo1b111111111oooooo33o.....o33223oooo1111111cc3oooo.
+..ooo1o11111bc1ooooo23o.......o323o.ooooo1oo1333oooo..
+..ooooo1oo1oocoooooooo.........ooo..ooooooooooooooo...
+...ooooooooooooooo....................oooooooooooo....
+....oo.oooooooooo........................oooooo.......
+........ooooP.........................................
diff --git a/parts_pl_src/body/pl_marshmallow.txt b/parts_pl_src/body/pl_marshmallow.txt
new file mode 100644
index 0000000..0a8139e
--- /dev/null
+++ b/parts_pl_src/body/pl_marshmallow.txt
@@ -0,0 +1,44 @@
+# pl_marshmallow: from pixellab_src/pl_marshmallow/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 41)
+# head_top at (31, 26) (from part/probe)
+# back at (32, 37) (from part/probe)
+# tail at (49, 47) (from part/probe)
+.........ooooooooooooooooo..........
+.......ooooooc33333333333ooo........
+......oooooccba222222222223ooo......
+.....oocbbbbba22a^cbccca22223oo.....
+....oobbabaa222abooooooca22223o.....
+....oooa1111211babcooobab11233o.....
+....ooc3211111111aaboba1112333o.....
+....ooc322211111111boa12223333o.....
+....ooba22222222222bba2222333bo.....
+....oca221112222222baa222233bbo.....
+....oba221111222222222222233boo.....
+....ob322111222222222222223bboo.....
+....o3322222222222222222223booo.....
+....o332223oo222222222oo32bbooo.....
+....o33223o11o2222B22o11o3boooo.....
+....o3322o11cco22222occ11oboooo.....
+...ooo32o11o1co22222o1co11ocooooo...
+..oo33o2o11occo22222occo11ocoo33oo..
+..o223o32o11ooo2oAo2ooo11ocboo322o..
+.o3223o3223oo222222222ooo3abbo3223o.
+.o2123o3222222222222222223aabo3212o.
+o32123o32222222233322222233a3o32123o
+o32123ocaa2222222222222233333o32123o
+o32112oocaa22222222222223333oo21123o
+o321112ooca22222222222223333o211123T
+o3322a23ooba222222222223333o32a2233o
+.o33a3coooca222222222333333ooc3a33o.
+..o3c33ooooc3222223333333333o33c3o..
+..oooooooccc333333333333333ooooooo..
+........ooo33333333333333ooo........
+..........oooooooooooooooo..........
+..........o333o......o333o..........
+..........o323o......o323o..........
+.........oo3ab3o....o3aa3oo.........
+........o3233333o..o3333323o........
+.......oo2313233o..o3323132oo.......
+........oo33c3oo....oo3c33oo........
+.........oooooP......oooooo.........
diff --git a/parts_pl_src/body/pl_marshmallow_b.txt b/parts_pl_src/body/pl_marshmallow_b.txt
new file mode 100644
index 0000000..c39b923
--- /dev/null
+++ b/parts_pl_src/body/pl_marshmallow_b.txt
@@ -0,0 +1,58 @@
+# pl_marshmallow_b: from pixellab_src/pl_marshmallow_b/base.png (variant of pl_marshmallow) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 35)
+# head_top at (31, 9)
+# back at (32, 37)
+# tail at (46, 47)
+........oooooo^ooooooo........
+........ooocc22222223oo.......
+......oocaab2cbooocb223o......
+......ooo1111cacooab133o......
+......ooo2211111oa22333o......
+......occ2112222ca223obo......
+......ob3211222222223boo......
+......o3323o222222o2oooo......
+......o332o1o2222o1obooo......
+......oo3o1oc222owo1ooooo.....
+.....o23o212o2oooo13coo22o....
+....o323o23o222222ooaco22o....
+....o213o222223322233oo213o...
+....o212oca2222222233oo213o...
+....o211oob3222222333o2113o...
+...oo33oooca222333333oo333oo..
+.oo1boo3ooco333333333o3o3o11o.
+o111boooooooooooooooo1ooo1111o
+o1w11bboooooobb111111ooob1111o
+o11wwwbbooobbb111cbooooobb111o
+o111111bboobwwwwwwabooobb1111o
+o1111111bocb1111111booob11111o
+o1111111bob11111111bbobb11111o
+o1111111bbb111111111bob111111o
+o11111111b1111111111bob111111o
+ob111111111111111111bbb111111o
+oba111111111111A11111b1111111o
+ocba1111111111111111111111111o
+oooca1111111111B111111111111o.
+.ooob1111111111111111111111oo.
+.ooooo111111111111111111ooooo.
+o1111boooooooooooooooooooob11o
+o1w11bboooooob111booooooob111o
+o11wwwbbooobbb111cbbooocbb111o
+o111111bboobwwwwwwaboooc11111o
+o1111111bob11111111booob11111o
+o1111111bob11111111bbobb11111o
+o1111111bb1111111111bob111111o
+ob111111111111111111bob111111T
+obb11111111111111111bbb111111o
+ocb111111111111111111b1111111o
+oobb1111111111111111111111111o
+.ooob11111111111111111111111o.
+..ooob11111111111111111111oo..
+...ooooo111111111111111ooo....
+.......oooooooooooooooo.......
+.......o323o......o323o.......
+......oo3ab3o....o3aa3oo......
+.....o3233333o..o3333323o.....
+....oo2313233o..o3323132oo....
+.....oo33c3oo....oo3c33oo.....
+......oooooP......oooooo......
diff --git a/parts_pl_src/body/pl_marshmallow_c.txt b/parts_pl_src/body/pl_marshmallow_c.txt
new file mode 100644
index 0000000..51f4988
--- /dev/null
+++ b/parts_pl_src/body/pl_marshmallow_c.txt
@@ -0,0 +1,48 @@
+# pl_marshmallow_c: from pixellab_src/pl_marshmallow_c/base.png (variant of pl_marshmallow) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 19)
+# back at (32, 37)
+# tail at (48, 47)
+................oooooooo^oooooooo.................
+..............ooooooc33333333333ooo...............
+.............oooooccba222222222223ooo.............
+............oobbbbbba22abbbccca22223oo............
+...........oobbabaa222abooooooba22223o............
+...........oooa1111211babcooocab11233o............
+...........ooc3211111111aaboba1112333o............
+...........ooc322211111111boa12223333o............
+...........ooba22222222222bba2222333bo............
+...........oca221112222222baa222233bbo............
+...........oba221111232222222222233boo............
+...........ob32211122o22222o222223bboo............
+...........o33222222o2222222o22223booo............
+...........o332223oo222222222oo32bbooo............
+...........o33222o22o2222222o22o3boooo............
+...........o3322o11cco22222occ11oboooo............
+...........o332o11o1co22222o1co11ocooo............
+..........ooo32o11occo22222occo11ocooooo..........
+.........oo33o22o11ooo222B2ooo11ocboo33oo.........
+.........o223o322ooo222222222ooo3bboo322o.........
+........o3223o3211112222222221112abbo3223o........
+........o2123o323222222oooo222223aabo3212o........
+.......o32123o32222222o222co222233a3o32123o.......
+.......o32123obaa2222oc2A22co2233333o32123o.......
+.......o32112oobaa222o2ooo2co2233333o32123o.......
+.......o321112occa22222222222223333o321123o.......
+.......o3322a23ooba2222222222233333o211233o.......
+........o33a3c3ooba2222222223333333o2a2233o.......
+........o33c333oooc3222223333333333o33a33T........
+.........o3oooo333c3333333333333o13o33c2o.........
+.........o3o333333333ooo33oo3233o133ooo2o.........
+.........ooo33333oo33ooo2oooo22oo23333o2oo........
+....oooooooo3323ooo13ooo2o333223oo3333o23ooooo....
+..oo3333oooo3123ooo13ooo2o33312ooo3133o2333333oo..
+.oo31123o3321123ooo13o33o333312o3o31133o323321o3o.
+oo2222222111222o22122333333321222oo2112o33222222oo
+o333112333322oo221122223333221122222211122221233oo
+.o333333o22222222oooooo3333222222233333333333333o.
+..ooooooo2112222222222222222222222233oooooo3o3oo..
+........o3333333333333332211111333333o...ooooo....
+.........ooooooooooooooo333333333333o.............
+.......................oPooooooooooo..............
diff --git a/parts_pl_src/body/pl_marshmallow_d.txt b/parts_pl_src/body/pl_marshmallow_d.txt
new file mode 100644
index 0000000..4c89ea3
--- /dev/null
+++ b/parts_pl_src/body/pl_marshmallow_d.txt
@@ -0,0 +1,53 @@
+# pl_marshmallow_d: from pixellab_src/pl_marshmallow_d/base.png (variant of pl_marshmallow) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 37)
+# head_top at (31, 14)
+# back at (32, 36)
+# tail at (48, 47)
+................oooooooo^oooooooo..................
+..............ooooooc333333333333oo................
+.............oooooccba22222222222233o..............
+............oobbbbbba22aabbbbba222223o.............
+...........oobbabaa222abooooooba222223o............
+...........oooa1111211babbooobab112233o............
+...........ooca211111111aaboba11123333o............
+...........ooca22211111111boa122233333o............
+..........oooba22222222222bba22223333boo...........
+..........oooa221112222222baa2222333bboo...........
+..........obba2211112222222222222333booo...........
+..........obb3221112222222222222233bbooo...........
+..........ob32222222222222222222233boooo...........
+........ooo3322223oo222222222oo323bbooooooo........
+......oo33oo32223o11o2222222o11o33boooooo33o.......
+.....oo3222o3222o11cco22222occ11o3booooo3333o......
+....oob2222o322o11o1co22222o1co11obcoooo3333bo.....
+...ooba1122o222o11occo22222occo11obcoooo3322boo....
+..o32a11223o2222o11ooo2ooo2ooo11o3bboobo3322bb3o...
+..o3211223o2222223oo222222222ooo22abbbb3o3222133o..
+.o3211223o322222222222222222222222aaab33o3322223o..
+.o3111233o32222222222223332222222233a3333o3322233o.
+oo211223o3222222222222222B2222222233a3333o332222bo.
+oca11233o3222222222222222A2222222222333333o3222aboo
+ooba2233o322222222222222222222222222333333o3321bcoo
+oob2223ooaa2222222222222222222222222333333o3321bcoo
+obb2222oooaaa22222222222222222222222333333o32221boo
+o3222223oobba2222222222222222222222233333oo322222bo
+o3222222ooobba222222222222222222222233333o32222223o
+o32222o3ooooba222222222222222222222233333o33o22223o
+o33o22o3oooobba222222222222222222223333333ooo22o33o
+.o3o333ooooobba222222222222222222223333333oo333o3o.
+..ooooo..ooooo322222222222222222222333333o..ooooo..
+.........ooooo332222222222222222223333333T.........
+..........ooooo3332222222222222333333333o..........
+..........oo333333333333333333333333333oo..........
+...........o3333333333333333333333333ooo...........
+...........o333oooo3333333333333oooo333o...........
+...........o3333333ooooooooooooo3333333o...........
+...........o32a33333o.........oo3333a33o...........
+...........o3cac2333o........oo3332aab3o...........
+..........o33cc223333o.......oo3332aob33o..........
+.........o32222222333o.......oo3322222223o.........
+.........o2o123222333o.......o333221321o2o.........
+.........o3o22o2233ooo.......o333331o22o3o.........
+.........ooo33o33oooo.........oo3333o333oo.........
+..........ooooooooP.............oooooooo...........
diff --git a/parts_pl_src/body/pl_mask.txt b/parts_pl_src/body/pl_mask.txt
new file mode 100644
index 0000000..e46afa8
--- /dev/null
+++ b/parts_pl_src/body/pl_mask.txt
@@ -0,0 +1,38 @@
+# pl_mask: from pixellab_src/pl_mask/base.png (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (31, 43)
+# head_top at (31, 32) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (45, 51)
+.........oooooooooooooo.........
+......ooo222caaaaaac222ooo......
+....oo221111caaaaaac112222oo....
+..oo22211111caa^aaac11111222oo..
+.oo222211bb1caaaaaac1bb112222oo.
+.o2222ccbb11caaaaaac11bbcc2223o.
+o222bb211111ccaBaacc111112bc233o
+o32bb22111111cbaabc11111122bb23o
+occb3223ooo211cccc112ooo2223bcco
+occ322oo333oo111111oo333oo223cco
+oc322oo3ooo3oo1111oo3ooo3oo223co
+o2o3oo3oo11o3oooooo3o11oo3oo3o2o
+ooa3o3ooowwooo3333ooowwooo3o3aoo
+o2o3oo3oooooo333333oooooo3oo3o2o
+o2222oo3oooo3ooAooo3oooo3oo2222o
+o22222oo3333o222222o3333oo22222o
+obb22223oooo22111122oooo32222bbo
+o22a222222222222222222222222a22o
+o22ab222222223o22o322222222ba22o
+o22bb223oo222222222222oo222bb22o
+.obc2222oooo22222222oooo2222cbo.
+.oo222222o1oooooooooo1o222222oo.
+..oo32222ooccooooooccoo22233oT..
+....oo2222oao1cccc1oao2222oo....
+......oo22oco211112oco22oo......
+........ooooo322223ooooo........
+...o.....obboooooooobbo.....o...
+.oo2o....oooo......oooo....o2oo.
+.o23o23.obcbo......obcbo.o2o32o.
+o23232o.obcbo......obcbo.o23232o
+.o222o...obo........obo...o222o.
+..ooP......................ooo..
diff --git a/parts_pl_src/body/pl_mask_c.txt b/parts_pl_src/body/pl_mask_c.txt
new file mode 100644
index 0000000..83f2514
--- /dev/null
+++ b/parts_pl_src/body/pl_mask_c.txt
@@ -0,0 +1,48 @@
+# pl_mask_c: from pixellab_src/pl_mask_c/base.png (variant of pl_mask) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (31, 38)
+# head_top at (31, 19)
+# back at (31, 35)
+# tail at (40, 51)
+.........oooooo^ooooooo.........
+......ooo222caaaaaac222ooo......
+....oo221111caaaaaac112222oo....
+...o33211111caaaaaac11111233o...
+..oo32211bb1caaaaaac1bb11223oo..
+..o322ccbb11caaaaaac11bbcc223o..
+.o33bb211111ccaaaacc111112bb33o.
+.oo2b32111111cbaabc11111123bb3o.
+.occb323ooo211cccc111ooo3223bco.
+.occ32ooo33oo111111oo33ooo22cco.
+.oc32oo3ooo3oo1111oo3ooo3oo23co.
+.o3ooo3oo11o3o1111o3o11oo3ooo3o.
+.ooao3ooowwooo1111ooowwooo3oaoo.
+.o33oooooooooo2112oooooooooo33o.
+.o332oo3oooo3o2112o3oooo3oo233o.
+.o3322oo3333o321123o3333oo2233o.
+.oa32222oooo232B1232oooo32223ao.
+.oaa222222222321123222222222aao.
+.occa2222222232112322222222acco.
+.o33ca22aa22232A1232222aa22c33o.
+.o33ca2aaaa22o2112o222acaaac33o.
+..o32cac2ba22o2112o22ac2caac3o..
+..o332cc22222o2112o222222cc33o..
+..o3322222222o2112o2222222233o..
+...o322222222o2112o222222223o...
+...o322222222o2112o222222233o...
+....o32222222o2112o22222223o....
+....o32222222o2112o22222223o....
+.....o3222222o2112o2222223o.....
+......o322222o2112o222223o......
+......o3222223o11o3222233o......
+.......o322222o22o322223o.......
+.......oo32222o22o22223oT.......
+........oo3222o23o2223oo........
+.........oo3223oo3233oo.........
+.........obo33333333obo.........
+...o.....obbo333333obbo.....o...
+.oo2o....oooooooooooooo....o2oo.
+.o33o33.obcbo......obcbo.o3o33o.
+o33233o.obcbo......obcbo.o33233o
+.o323o...obo........obo...o333o.
+..ooP......................ooo..
diff --git a/parts_pl_src/body/pl_mask_d.txt b/parts_pl_src/body/pl_mask_d.txt
new file mode 100644
index 0000000..01ad1bc
--- /dev/null
+++ b/parts_pl_src/body/pl_mask_d.txt
@@ -0,0 +1,38 @@
+# pl_mask_d: from pixellab_src/pl_mask_d/base.png (variant of pl_mask) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (31, 43)
+# head_top at (31, 29)
+# back at (31, 35)
+# tail at (45, 51)
+.........oooooo^ooooooo.........
+......oooc22caaoaaac22cooo......
+....oo33cc11caooaaac11cc33oo....
+..oo33212c11caaoaaac11c21233oo..
+.oo332211cc1caaooaac11c112233oo.
+.o33222111c1ccaaobac1c11122233o.
+o332b22111cc1caBoac11c11122b233o
+o32bb221111c1ccaobc11111122bb23o
+occb3222221111caoc1111222223bcco
+occ322oooo32111bo11122oooo223cco
+oc322oo3oooo221o31123ooo3oo223co
+o3o3oo3oo11ooo3oo33oo11oo3oo3o3o
+ooa3o3ooowwooo3333ooowwooo3o3aoo
+o3o3oo3oooooo333333oooooo3oo3o3o
+o3322oo3oooo3ooAooo3oooo3oo3233o
+o33332oo3333o322223o3333oo22233o
+obb22323oooo22111122oooo32322bbo
+o22a2222c2222332223222cc2222a22o
+o22ab22c222223o33o32222c222ba22o
+o22bb3c22222223333222222c22bb22o
+.obc32c222223oooooo322222c23cbo.
+.oo33322222ooo3333ooo3222c333oo.
+..oo333223oo32222222oo322333oT..
+....oo3332o3222222222oo333oo....
+......oo3333332222233333oo......
+........oooo33333333oooo........
+...o.....obboooooooobbo.....o...
+.oo2o....oooo......oooo....o2oo.
+.o33o23.obcbo......obcbo.o2o33o.
+o33233o.obcbo......obcbo.o33233o
+.o322o...obo........obo...o322o.
+..ooP......................ooo..
diff --git a/parts_pl_src/body/pl_meerkat.txt b/parts_pl_src/body/pl_meerkat.txt
new file mode 100644
index 0000000..74dc3ed
--- /dev/null
+++ b/parts_pl_src/body/pl_meerkat.txt
@@ -0,0 +1,46 @@
+# pl_meerkat: from pixellab_src/pl_meerkat/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 40)
+# head_top at (31, 24) (from part/probe)
+# back at (32, 34) (from part/probe)
+# tail at (41, 54) (from part/probe)
+...........ooooo............
+.........oo31113oo..........
+.......oo111121122oo........
+......o3211b1^2b2113o.......
+.....o322221bbb222123o......
+..ooo32111222212211123oooo..
+.o31311bbb1122211bbb213113o.
+o33312cbbbb12121bbbbc122333o
+ocoo1ccooobb122bbooocc13ooco
+occo2coa1oob121bo1oaoc2oocco
+.oco3co1ooob222booo1oc3ooco.
+..oc3bb1bocb111bcob1bb3oco..
+...o11bbacb11221bcabb11oo...
+....o11bbb1233B21bbb11o.....
+.....oo11112ooo21111oo......
+.......oo1123o3211oo........
+........oooaoooaooo.........
+........o33ooooo33o.........
+.......o3222aaa2213o........
+.......o22211A11221o........
+......o1121111111221o.......
+.....o111311111113121o......
+.....o1133aa111aa3311o......
+.....ob111oa111ao211bo......
+.....o3c121o111o122c3o......
+......o33132o1o23133o.......
+.......oo33co1oc33oo........
+.......o3ooo111ooo3o........
+.......o33a11111a33o........
+......o3111111111223o.......
+......o2221111111222o.......
+.....o212211111112222o..oco.
+.....o121211111112222ooobbo.
+.....ob1113a111a3122bo1Tbco.
+.....o222333aaa333222o333o..
+.....o22333ooooo33322oooo...
+......o333o.....o3333o......
+....ooo333o.....o333ooo.....
+...o332233o.....o332233o....
+....oooooo.......Poooooo....
diff --git a/parts_pl_src/body/pl_meerkat_b.txt b/parts_pl_src/body/pl_meerkat_b.txt
new file mode 100644
index 0000000..bccbaea
--- /dev/null
+++ b/parts_pl_src/body/pl_meerkat_b.txt
@@ -0,0 +1,46 @@
+# pl_meerkat_b: from pixellab_src/pl_meerkat_b/base.png (variant of pl_meerkat) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 42)
+# head_top at (31, 21)
+# back at (32, 34)
+# tail at (48, 54)
+..............oo^oo...............
+............oo21113oo.............
+..........oo111111111oo...........
+.........o1111c111c11113o.........
+........o211111ccc1111112o........
+.....ooo111111111111111113oooo....
+....o2131111111111111111113113o...
+...o333111111cc1111cc1111131333o..
+...ocoo311ccccc1111ccccc1133ooco..
+...occo31ccccoo1111oocccc13oocco..
+....occ31ccoo1o2222o1oocc13occo...
+.....oo11ccccwo1111owcccc13oco....
+.....o21bacccc113311ccccab13o.....
+.....o11bbbb11113B1111bbbb11o.....
+.....o111bb11111oo11111bb111o.....
+.....o211111111o11o111111112o.....
+.....o3111111111111111111113o.....
+.....oo3a1111111111111111a33o.....
+....o3333a11111111111111a3333o....
+...o311333aaaaaaaaaaaaaa333113o...
+...o11111333222aaaaa3333321111o...
+..o113111111aaaaaAaaaa311111111o..
+.o11131111111111111a111111113111o.
+.oc1321111111111111111111111331co.
+o11131111111111111111111111113111o
+o11131111111111111111111111113111o
+o11331111111111111111111111113311o
+o33331111111111111111111111113313o
+.o333111111111111111111111111333o.
+..oo31111111111111111111111113oo..
+...o3111a1111111111111111a1113o...
+...o33111a11111111111111a11133o.oo
+....o3311aa11111a111111aa1133oocco
+....o33313aaa111aa111aaa33333occcT
+.....o33333aaaaaaaaaaaa33333o333o.
+.....o33333333aaaaaa33333333oooo..
+......o33333oooooooooo33333o......
+......o33333o........o33333o......
+.....o311333o........o333113o.....
+......oooooP..........ooooooo.....
diff --git a/parts_pl_src/body/pl_meerkat_c.txt b/parts_pl_src/body/pl_meerkat_c.txt
new file mode 100644
index 0000000..68705b8
--- /dev/null
+++ b/parts_pl_src/body/pl_meerkat_c.txt
@@ -0,0 +1,61 @@
+# pl_meerkat_c: from pixellab_src/pl_meerkat_c/base.png (variant of pl_meerkat) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 33)
+# head_top at (31, 6)
+# back at (32, 34)
+# tail at (44, 54)
+...........oo^oo............
+.........oo32222oo..........
+.......oo222222222oo........
+......o3211b222b2113o.......
+.....o322222bbb222223o......
+.....o222222222222222o......
+..ooo32111222222211122oooo..
+.o32322bbb1122211bbb223223o.
+o33322cbbbb12221bbbbc222333o
+ocoo2ccooobb222bbooocc23ooco
+occo3coawoob222booo1oc3oocco
+.oco3co1ooob333booo1oc3ooco.
+..oc3bbwbocb222bbobwbb3oco..
+...o11bbacb12221bcabb11o....
+....o11bbb1233321bbb11o.....
+.....oo11112ooo21111oo......
+.......oo1123o3211oo........
+.........ooaoooaooo.........
+..........oooooo33o.........
+..........o3aaa333o.........
+..........o311a333o.........
+..........o2111333o.........
+..........o211123o..........
+..........o111123o..........
+..........o111123o..........
+..........o111223o..........
+.........o111122o...........
+.........o1111A2o...........
+.........o1111B2oooo........
+.........o111223oaaaoo......
+........o2111223obbaao......
+........o21112223bbb3ao.....
+.......o2111122223bb3ao.....
+......o31111122222bbb2o.....
+......o211111222223bb22o....
+.....o22111112322223bb2o....
+.....o32111112332223bb2o....
+....o23a11111a332233cb22o...
+....o23a1111ao222bo3cbb2o...
+....o23o1111o2222o33cbb2o...
+....o223o11o2222o322cbb2o...
+....o323o11o323oo222cbb3o...
+.....o3bo111oooo32222ca3o...
+......oo11111aa222222ca3o...
+......o31111111222222cao....
+......o31111111222222cco..oo
+.....o331111113222222co..obo
+.....o223a111a3222223oooobbo
+.....o2233aaa33222223332bbT.
+.....o2233oooo322223o3333oc.
+......o3333oooo32223oooooo..
+.......o333o...o3222o.......
+......oo333o...o2223o.......
+.....o33333o..o3233o........
+.....oooooo...Pooooo........
diff --git a/parts_pl_src/body/pl_meerkat_d.txt b/parts_pl_src/body/pl_meerkat_d.txt
new file mode 100644
index 0000000..059eaf4
--- /dev/null
+++ b/parts_pl_src/body/pl_meerkat_d.txt
@@ -0,0 +1,46 @@
+# pl_meerkat_d: from pixellab_src/pl_meerkat_d/base.png (variant of pl_meerkat) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 40)
+# head_top at (31, 21)
+# back at (32, 34)
+# tail at (44, 54)
+...........oo^oo............
+.........oo32223oo..........
+.......oo222222222oo........
+......o3211b222b2113o.......
+.....o322222bbb222223o......
+..ooo32111222222211123oooo..
+.o32322bbb1122211bbb223223o.
+o33322cbbbb12221bbbbc222333o
+ocoo2ccooobb222bbooocc23ooco
+occo3coawoob222bowoaoc3oocco
+.oco3co1ooob333booo1oc3ooco.
+..oc3bbwbccb222bccbwbb3oco..
+...o11bbacb12221bcabb11oo...
+...o311bbb1233B21bbb11co....
+..o3y3311112ooo2111133yyo...
+.o311yy331133o331133yyy13o..
+.o2y311yy33aoooa33yyyy311o..
+o33oy11y1yy33333yyyy11yo3o..
+ooooy1yy1311yyyyy11yy113oo..
+..oy13y13311yA13yy13y311o...
+..oyo3y13313y113y31oyy31o...
+..oyo3oo3o13y1133oyoo3o3o...
+..oooo33ooo3yyy3ooo33oo3o...
+...o.oc222oo3y3oo232booo....
+.....o3c222o333o222c3o......
+......o33233ooo33233o.......
+.......oo33coaoc33oo........
+.......o3oooaaaooo3o........
+.......o33a11111a33o........
+......o3221111111223o.......
+......o2221111111222o.......
+.....o222211111112222o..oco.
+.....o222211111112222ooobbo.
+.....ob2223a111a3222bo2bboT.
+.....o222333aaa333222o333o..
+.....o33333ooooo33333oooo...
+......o333o.....o3333o......
+....ooo333o.....o333ooo.....
+...o332233o.....o332233o....
+....oooooo.......Poooooo....
diff --git a/parts_pl_src/body/pl_mimic.txt b/parts_pl_src/body/pl_mimic.txt
new file mode 100644
index 0000000..0bd5b72
--- /dev/null
+++ b/parts_pl_src/body/pl_mimic.txt
@@ -0,0 +1,34 @@
+# pl_mimic: from pixellab_src/pl_mimic/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 46)
+# head_top at (29, 35) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (45, 49) (from part/probe)
+.....ooo.......................
+...ooaccooooooo................
+..oaaco311111^1Booooooooo......
+.oaabo222211111111111oaacooo...
+oaabo211112222222333oaacbccco..
+occo222222222222222oaaccooocco.
+oooo3333ooooo322223ccbco322oco.
+o2222222oaaaboo333ooooo32322oco
+.ooooooooaoco222222222o32223oco
+..ooo222ocaco33ooooooo3332223oo
+...o22o22ooo222223333ooo333223o
+...o23wo2222233oo113333oo33333o
+...o2ww3o1113w3w3o12233oooo33oo
+.ooo3w22o1113w2A3o112c33oooo3o.
+o1111ooo1aa13w222o11223oo3333o.
+o12a211111111oooo11ooo3333223o.
+o32ooooooooooo111a11123222223T.
+o32oyyo1o1yo1yoooo23232222333o.
+o321oyo1oooo1oo1yo2323223322oo.
+oo311ooocccco1o1o1232332222oco.
+oco311ooacaco1oo1123232222ocoo.
+ooco221oaaaooo1112ooooo333occo.
+occo332oaab111222ocaacco3oooo..
+.oooooooooo333333ocoacoooo33o..
+..o3333o..oooooooooooooo3333o..
+..o2223o........o3333o..oooo...
+...oooo.........o2223o.........
+.................Pooo..........
diff --git a/parts_pl_src/body/pl_mimic_b.txt b/parts_pl_src/body/pl_mimic_b.txt
new file mode 100644
index 0000000..bb63497
--- /dev/null
+++ b/parts_pl_src/body/pl_mimic_b.txt
@@ -0,0 +1,41 @@
+# pl_mimic_b: from pixellab_src/pl_mimic_b/base.png (variant of pl_mimic) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 42)
+# head_top at (29, 27)
+# back at (31, 35)
+# tail at (52, 49)
+.......ooooo................................
+......oaaabcoo...oo^oooooooo.....oooo.......
+.....oaacco322oo321111111111oooooaaacooo....
+....oaacco21122111111111111322oaaacccccco...
+...oaacc321132111111111111322oaaacccccccco..
+..oaaco3211121111111111113112oaaccooooocco..
+..oaaco221122211111111113212oaacco33333occo.
+..oaco3211222222222222223222oacco332222occo.
+.oaaco322222222222222222322oaacco3222222occo
+.oaaco322322222222222B23222oaaco332222223obo
+.obcco322o222oooooo22223222oaaco332222223oco
+.obbco333322oaaaaaco2223222obbbo3322233ooooo
+.ooooooooooooaaaaacoooooooooccco33333333333o
+111122222222oaaccaco2222222222333333ooooooo.
+.ooo33333333oacccaco33333ooooooooo33333333o.
+.o2322222222oaacaaco2222222223o33333333333o.
+.o232222ooo2oaacaaco2oAo222222o33333333333o.
+.o23211oww3o2oaaabo2oww3o11222o33333322333o.
+.o23211ow23o22oooo22ow23o11122o33222222333o.
+.o232a1ow22o11222211ow22o11122o33222222333o.
+.o2322o2ooo2111111111ooo131122o33222222333o.
+.o2321ooo111111111111111oo1122o33222222333o.
+.o2321oo1oooooooooooooo1oo1122o33222222333o.
+.o2321oo1oo1oo1oo1oo1oo1oo1122o3322222233oT.
+.oo3221oooo1oooooooo1ooooo1122o332222333obo.
+.oaoo222oo1oooacbbooo1ooo12232o33223333oboo.
+.oaao3222o1oo1aa1cc1o1o1112332o33333333obbo.
+.oaoao3222ooo1cc1c11oo11122oooooo33333oooo..
+..oaabo333222ooooooo222222oaaabbbo33ooo3o...
+...ooooooooooo222222222222oaoaboboooo333o...
+....o2233o....oooooooooooooooooooo..3333o...
+....o1233o...............o23333o....oooo....
+.....oooo................o12233o............
+.........................o11233o............
+..........................Poooo.............
diff --git a/parts_pl_src/body/pl_mimic_c.txt b/parts_pl_src/body/pl_mimic_c.txt
new file mode 100644
index 0000000..9ecf8ac
--- /dev/null
+++ b/parts_pl_src/body/pl_mimic_c.txt
@@ -0,0 +1,44 @@
+# pl_mimic_c: from pixellab_src/pl_mimic_c/base.png (variant of pl_mimic) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 41)
+# head_top at (29, 24)
+# back at (31, 35)
+# tail at (45, 49)
+......oooo.......................
+.....oabbbooo^ooo.......oooo.....
+....oabo322211111oooooooaaabo....
+...oaaoo22222222222222oaabbbbo...
+..oaaco22222222222112oaabboobbo..
+..obbo2222ooooo22222obbbbo32obbo.
+..oooo3332oaaaoo3222ooooo3223obo.
+..22222222oaobo22222222332222obo.
+..o2ooooooobaboooooooo22322223oo.
+...o2oooooooooooooooooo2322222obo
+...o22oooooooooooooooooo2332223bo
+....o23oooooooooooooooooo233223bo
+.....o2oooo3cccBooooooooo323223bo
+......o2ooo3ccccccccccoooo2322obo
+.......o2o33333ccccccccc3oo233obo
+......ooo222222333cccccc3ooo23bo.
+....oo22oooooo2222222222222223o..
+..oo22oooooooooooooooooooooooo...
+.o11ooooooooooooAoooooooo2233o...
+o2233111oaaao11ooooooo2233333o...
+o32322o2obbbo2233331123333223o...
+o32323wooooo233oo113233322223o...
+o3232ww3o1113w3w3o13233222223o...
+o3233w22o1113w223o13233222223o...
+o3231ooo1aa13w222o13233222223o...
+o32a211111111oooo113233222223o...
+o32ooooooooooo111a13233222223T...
+o32oyyo1o1oo1yoooo23232222223o...
+o321oyo1ooooooo1yo2323222222oo...
+oo311oooabbbo1o1o1232332222obo...
+obo311oaababo1oo1123233322oboo...
+oobo21oabaaooo1112ooooo323obbo...
+obbo33oabaao21222obaabbo3oooo....
+.ooooooaaaaoo3333oboaboooo33o....
+..o333oaaaaooooooooooooo3333o....
+..o2223oaaco....o3333o..oooo.....
+...oooo.ooo.....o2223o...........
+.................Pooo............
diff --git a/parts_pl_src/body/pl_mimic_d.txt b/parts_pl_src/body/pl_mimic_d.txt
new file mode 100644
index 0000000..97567d5
--- /dev/null
+++ b/parts_pl_src/body/pl_mimic_d.txt
@@ -0,0 +1,39 @@
+# pl_mimic_d: from pixellab_src/pl_mimic_d/base.png (variant of pl_mimic) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 43)
+# head_top at (29, 30)
+# back at (31, 35)
+# tail at (47, 49)
+........ooooo.........................
+.......ox1xzzoo..........ooooo........
+......ox1zz2222o^ooooooooxxxxxoo......
+.....oxxxz2111111111111zxxxzzzzzo.....
+.....oxxz2111111111111211yzz333yyo....
+....oxxz22111111111113x1xz332233yo....
+....obcz22111111111123xxz33222223yo...
+....occz2221111111B23xxxy32222223yo...
+....occz2222222222223xbyy32222223yo...
+....oxxzxxxx111z2222zbczy32222yyyyo...
+....oooooooxxbxzzxxxxbczy3yyyyooooo...
+....o222233oxcxzooooxxxzyyyooo3332o...
+....o122owo1zxzz2oo222ooooo3333232o...
+....o12owwo21zz2ow3o12222333222232o...
+....o12ow1o3111ow13o12122332222232o...
+....o1223113111ow11A12122332222232o...
+....oxz212211111ooo11212233222223xo...
+....oxy2211oooooo11112122332222oxco...
+....obcx21ocbcbbco1123xyyz32223zxco...
+....occx21oabaacco122xbyyy32223ycco...
+....oyczz2oabacoo112zbbyccyo223yyyo...
+....o2oooooabao22222xccyccyyooo222T...
+...o1ooooooaabooooooxxczyyoo...o221o..
+..o12ooaaoocabo33o..oo122o......o21o..
+..o12ooaooocaco33o...o112o......o221o.
+..o12ooaaoaacoo33o....o11o.......o21o.
+..o22o.oaabco..o3o.....o12o......o22o.
+..o22o..oooo...o33o....o12o......o22o.
+.o112o........oo33o....o12o......o22oo
+o1122o.........ooo.....o22o......oo22o
+.oooo.................o112o.......ooo.
+......................o112o...........
+.......................Poo............
diff --git a/parts_pl_src/body/pl_mitten.txt b/parts_pl_src/body/pl_mitten.txt
new file mode 100644
index 0000000..1399385
--- /dev/null
+++ b/parts_pl_src/body/pl_mitten.txt
@@ -0,0 +1,43 @@
+# pl_mitten: from pixellab_src/pl_mitten/base.png (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 42)
+# head_top at (33, 27) (from part/probe)
+# back at (28, 36) (from part/probe)
+# tail at (44, 47) (from part/probe)
+................oooooooo........
+.............ooo21212222oo......
+............o2121211222222oo....
+...........o2121212212222322o...
+..........o21211211^122222322o..
+..........o121121121122222232o..
+.........o21211211212222232232o.
+.........o12121112122222222223o.
+........ob111bab212bbc2223cc332o
+........oab2baaab2babbc22cbcc3co
+........oaabaaaaabaabbbccbbcccco
+........oaabaabaaaaaccbcbbccccco
+........ocaaab2baaab3cbbbc3cccco
+........ocbab2B2bab322cbbc23ccco
+..oooo..o2cb11112b31222cc2233cco
+.o2112o.o1212121121222222222332o
+o111122oo11oooo121222ooooo23223o
+o111112232o11ooo1222o1oo11o2332o
+o211122231o111oo2222o11o11o2322o
+o221222232o1oooo22A2oooo11o3223o
+.o22222222o12ooo2222o1oo11o2322o
+..o22222322o11o222222o111o22332o
+...o22223222oo2o222o22ooo223222o
+....o333322222232o2222222322323o
+.....o322222222222322222323333To
+......o33223222222322232233333o.
+.......o3233322323222322233332o.
+........o333232232332232333333o.
+........o333322322323333333333o.
+........o333333333333333333333o.
+........o323113223222322333333o.
+.......o32221131132223223333333o
+.......o32322232232223223333333o
+.......o32322232232223223333333o
+........o332223223222333333333o.
+........ooo33333333333333333ooo.
+...........ooooPoooooooooooo....
diff --git a/parts_pl_src/body/pl_mitten_b.txt b/parts_pl_src/body/pl_mitten_b.txt
new file mode 100644
index 0000000..de86d4f
--- /dev/null
+++ b/parts_pl_src/body/pl_mitten_b.txt
@@ -0,0 +1,48 @@
+# pl_mitten_b: from pixellab_src/pl_mitten_b/base.png (variant of pl_mitten) (pixellab_library.py extract)
+# pivot at (29, 59)
+# aura at (32, 40)
+# head_top at (33, 18)
+# back at (28, 36)
+# tail at (54, 47)
+......................ooo^oooo.................
+...................ooo21222223oo...............
+..................o2111112222323o..............
+.................o211121122332333o.............
+................o21211111223232233o............
+...............o2111211131132232333o...........
+..............o21111211131223233333o...........
+..............o212112212132223223333o..........
+.............oab211bab212bac2233c333o..........
+.............oaab1baaab2baacc23cbc333o.........
+.............oaaabaaaaabaabbaccbbcc3co.........
+............oacaabaabaaaaacbaabbccccco.........
+....ooo.....oaccaabb3baaab3caabbcccccco........
+..oo111oo...oaccaac313bab322cabc3ccccco........
+.o1111111o..oc22cc22113b32322cc333cccco........
+.o1111111o..o2222331222322223232333c33o........
+o111111111o.o222ooooo222222ooooo333333o........
+o1111111111oo22o111ooo2222o1oo11o33333o........
+.o111111111oo32o1111Bo2222o11o11o33333o........
+.o111111111oo32o11oooo2222oooo11o33333o........
+..o111111133o32o113ooo2222o2oo11o33333o........
+..o111111333o332o111o222222o111o3333333o.......
+..o1111133b33o322ooo2o22Ao22ooo3333o3333oo.....
+...o11333b33o2332222232o22222223333o33333bo....
+....oo33c3c3o22333222322223322332333o332a3boo..
+......occ33o3221123332333333333322333o2bb3311o.
+.......o33o33211122122222222222222333oc3231111o
+........ooo322112211112222222222222233o3311111o
+.........obc321a22111a1222a3222a22a233o3111111o
+.........o3c22a1a211a1a22aa3222a2b2233co111111T
+.........o3caa122a2a111aaa232a2ab223bbco111111o
+.........o3c33222aa2222aa223222a223333co111111o
+.........oc3c3222aba222bb22322acb23333ccoo111o.
+.........oc33c32a3a222ab2a222a2c3c333c3cooooo..
+..........o333c3c22b2bb22aa2a33c33c3c33oo......
+..........oo33cc3333bb3333cc333c333c33oo.......
+...........oo33c3333c3333333c333333c3oo........
+............oooo333333333333c3333ooooo.........
+.............oo3ooooo33333333oooo333o..........
+..............o333333oooooooo3333333o..........
+...............o223333o.....o333333o...........
+................oooooP.......oooooo............
diff --git a/parts_pl_src/body/pl_mitten_c.txt b/parts_pl_src/body/pl_mitten_c.txt
new file mode 100644
index 0000000..b7e467b
--- /dev/null
+++ b/parts_pl_src/body/pl_mitten_c.txt
@@ -0,0 +1,55 @@
+# pl_mitten_c: from pixellab_src/pl_mitten_c/base.png (variant of pl_mitten) (pixellab_library.py extract)
+# pivot at (29, 58)
+# aura at (32, 34)
+# head_top at (33, 10)
+# back at (28, 36)
+# tail at (44, 47)
+..................ooo^ooooo........
+..............oooo212222233oo......
+.............o321212122223322oo....
+............o221212122223323333o...
+...........o21221121122223322333o..
+...........o21121121122222322333o..
+...........o12211211211322232333o..
+..........o2122112112122332233333o.
+..........o2212221121222223222333o.
+.........ob211bbab212bbc22223cc333o
+.........oab2bbaaab2babbco23cbcc3co
+.........oaabaaaaaabaabbbcccbbcccco
+.........oaabaaabaaaaaccbccbbccccco
+.........oaabaaabaaaaaccbccbbccccco
+.........ocaaabb3baaab3cbbbbc3cccco
+.........ocbab3223bab322ccbbc33ccco
+..ooooo..o3cb222213b32232ccc3233cco
+.o22112o.o232221222322223323233333o
+oo21112ooo22ooooo222322oooooo33333o
+o2111122oo22ooooo222322oooooo23333o
+o21111123o2o11oooo2232o1ooo11o3333o
+o21111223o2o1111oo2222o11co11o3333o
+o2221222233o1ooooo2322ooooo11o3333o
+.o222222222o13oooo2232o2ooo11o3333o
+..o332222322o111o222A22o1111o33333o
+...o332223222ooo2o322o22oooo333333o
+....o33333322332B32o22232222333333o
+.....o3333322332323232322223333333o
+......o33333322223223323333333333o.
+.......o3333333323233223333333333o.
+........o333333323333233333333333o.
+.........o33333333o33333333333333o.
+.........o3333333o33o33o333333333o.
+.........occ33oooboooooboo3o3c333o.
+.........occo3oobbb22obbco22obc33o.
+.........ocbcocbbbbccbbbbcoobbccco.
+.........ocbbbbbbbbbbbbcbbbbbcccco.
+.........occbbbbc3bbbbc3bbbbbcccT..
+..........o3cbcc22cbbc32ccbbc3ccc..
+..........o33c33222cc32233cc333co..
+..........o333332222o22223333333o..
+..........o333ooooooooooo333o333o..
+..........o32322o22o222333333333o..
+.........o32232232232223333333333o.
+.........o32322232232223333333333o.
+.........o33o222o2232223333333333o.
+..........o33333333o333333333333o..
+..........ooo33333333333333333ooo..
+.............ooooPoooooooooooo.....
diff --git a/parts_pl_src/body/pl_mitten_d.txt b/parts_pl_src/body/pl_mitten_d.txt
new file mode 100644
index 0000000..9e0abdc
--- /dev/null
+++ b/parts_pl_src/body/pl_mitten_d.txt
@@ -0,0 +1,51 @@
+# pl_mitten_d: from pixellab_src/pl_mitten_d/base.png (variant of pl_mitten) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (32, 39)
+# head_top at (33, 15)
+# back at (28, 36)
+# tail at (52, 47)
+.................ooooo^oooo...............
+..............ooo2121222223ooo............
+.............o212111122222333oo...........
+............o212121122223223233o..........
+...........o21111211222223222233o.........
+..........o2111121111122223222333o........
+..........o1111121111122223322333o........
+.........o211111211112223223233333o.......
+.........o211122211122222323233333o.......
+........ob211baab212bbbc2223ccc333co......
+........oab2baaaab2babbbc22cbbcc3cco......
+........oaabaaaaaabaabbbbccbbbccccco......
+........oaabaaabaaaaacccbcbbccccccco......
+........obaaaab3baaabc3cbbbb33ccccco......
+........obbab3c3cbabc33ocbbc33occcco......
+........obbab2213bab3223cbbc333cccco......
+........o3bb211212b322232cc33333cc3o......
+........o22231232132222222333333333o......
+........o22ooooo1222222ooooo2333333o......
+........o2o11oooo22222o1oo11o233333o......
+........o2o111ooo22222o11o11o233333o......
+........o2o1oooooB2222oooo11o333333o......
+........o2o122ooo32322o2oo11o333333o......
+........o22o111o2223222o111o3333333o......
+.......oo222ooo2o222oA22ooo33333333o......
+......o3o222322222o22223222333333333o.....
+.....o33o3223223222322322233333333333o....
+....o312o32332222223223222333333333333o...
+...o2b13o333233232233323333333333332cco...
+..o311bboo333332323322233333333333bb223o..
+.oobb23bco3333333333333333333333ob1223bco.
+o11ooo3bo1o333333333333333333333oo12bboooo
+o1322ooo311ooo3333333333333333oo3obooooo3T
+o132233o322311ooooooooooooooo2333ooo323o3o
+o132333o2223211311131122o222o2333o31323o3o
+o13233oo2223222322232222o222o3333o3132333o
+o23233oo32232223222322223223333333o132333o
+o33333oo332o22232223222232333333o3o132333o
+.oo3o3ooo33o333o222o2223o3333333o3o33333o.
+..ooooo.oo3o333o333o3333o333o333oo.ooo33o.
+.........oooo33o333o3333o3333oooo...oooo..
+........o3333oooooooooooooooo3333o........
+.......o2113333333o....o3333333333o.......
+.......o3333333333o....o3122223333o.......
+........oooooooooP......oooooooooo........
diff --git a/parts_pl_src/body/pl_mochi.txt b/parts_pl_src/body/pl_mochi.txt
index 5a10958..12bd843 100644
--- a/parts_pl_src/body/pl_mochi.txt
+++ b/parts_pl_src/body/pl_mochi.txt
@@ -1,9 +1,9 @@
# pl_mochi: from pixellab_src/pl_mochi/base.png (pixellab_library.py extract)
# pivot at (24, 60)
# aura at (32, 43)
-# head_top at (32, 28) (from part)
-# back at (31, 31) (from part)
-# tail at (52, 46) (from part)
+# head_top at (32, 28) (from part/probe)
+# back at (31, 31) (from part/probe)
+# tail at (52, 46) (from part/probe)
....................ooo...................
................ooo1111ooo................
...............ow13oc^oo3wo...............
diff --git a/parts_pl_src/body/pl_mochi_b.txt b/parts_pl_src/body/pl_mochi_b.txt
new file mode 100644
index 0000000..b75c1c1
--- /dev/null
+++ b/parts_pl_src/body/pl_mochi_b.txt
@@ -0,0 +1,59 @@
+# pl_mochi_b: from pixellab_src/pl_mochi_b/base.png (variant of pl_mochi) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 34)
+# head_top at (32, 8)
+# back at (31, 31)
+# tail at (52, 46)
+......................o^o.....................
+..................ooo1122ooo..................
+.................ooooo123o31o.................
+.................o113oc3oo31o.................
+...........ooooooo111oooo123ooooooo...........
+..........o111223o1b111o11c3o331211o..........
+.........o113333co3c1b1o1bcbooo33311o.........
+......ooo1111ooocc33b31o3bc3bbcoo3111ooo......
+.....o111111o33333cbb33c3bc3bbbbco311111o.....
+....o111111o11113b33333c333c3333bbo211111o....
+...o113113o11111111111332221c33333bo113311o...
+..o111b33o1111111111122222211322333bo33b111o..
+..o1113oo11111111111122222221122223bcoo1111o..
+..o1113o2111111112112222222221222233bco3111o..
+..o313oo2111111112122222222222222223bboo313o..
+..o313o22111111112222222222222222223bbbo313o..
+.o1133o2211112222222222222222222222333bo3311o.
+.o113o22222122233222222222223322222333bbo311o.
+o1133o22221123oooo222222222oooo3222333bbo3311o
+o1bbco2222222ooaoo222222222ooaoo222333bbocbb1o
+o1333o2222222o32222222222222223o2222333bo3331o
+o1333o222222222222222222222222222223333bo3331o
+o3333o222222aa22222o222222o222aa2223333bo3333o
+o33bcob2222aaaa2222oooBoooo22aaaa223333bocc33o
+o3333ob22222bb222222obaabo2222bb2223333bo3333o
+.o333o3b222222222222223322222222223333bco333o.
+.o333ob3332222222222222A22222222333333bco333o.
+.o3bbcobbb332222222222222222233333333bcocc33o.
+..oooooobbb333333332222233333333333bbcoooooo..
+.....o33obbbb333333333333333333333bbco33oo....
+....o2222oobbbbbb333333333333bbbccooo3bbbo....
+...o3222222ooobbbbbbbbbbbbbbbbbbooo3333bbbo...
+...o2221112223oooooooooooooooooo33333333bbbo..
+..o2221111111222233333333333333332223333bbbo..
+..o22211111112222222222222222222222233333bbo..
+..o222111111223oooo22222222oooo3222223333bbo..
+..o22211111222ooaoo22222222ooaoo2222223333bo..
+..o22221111222o3222222222222223o2222233333bo..
+..o222222122222222222222222222222222233333bT..
+..ob222222222aa2222o222222o222aa2222233333bo..
+..obb2222222aaaa222oooooooo22aaaa22223333bco..
+...ob32222222bb22222obaabo2222bb222333333bco..
+...obbb222222222222222332222222222233333bco...
+....ob333222222222222222222222223333333bbo....
+.....obbb33322222222222222222233333333bboo....
+......obbbb3333333222222333333333333bbboo.....
+.......oocc33333333333333333333333bbbooo......
+.........ooccbbbb333333333333bbbbbcoo.........
+...........oooooobbbbbbbbbbbboooooo...........
+.............o3bcoooooooooooocb3o.............
+............o1133o..........o3311o............
+............o233o............o332o............
+.............ooP..............ooo.............
diff --git a/parts_pl_src/body/pl_mochi_c.txt b/parts_pl_src/body/pl_mochi_c.txt
new file mode 100644
index 0000000..df59b5a
--- /dev/null
+++ b/parts_pl_src/body/pl_mochi_c.txt
@@ -0,0 +1,51 @@
+# pl_mochi_c: from pixellab_src/pl_mochi_c/base.png (variant of pl_mochi) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 40)
+# head_top at (32, 17)
+# back at (31, 31)
+# tail at (53, 46)
+.......................ooo..................
+....................oo^222oo................
+...................o21112223o...............
+..................o211222222oo..............
+..................o2122223322o..............
+.................o21222233o32o..............
+................o22122223oo33o..............
+................o22222233oooo...............
+.............oooo22c22233oooooo.............
+...........oo222o32c222333o3c33oo...........
+.........oo22222233c233233c33333boo.........
+........obbbbb22233c23322333322bbcco........
+.......o22211bb222222222222222bbb333o.......
+......o2211111bb22222222222222bb22333o......
+.....ob211bbb11b1222222222222bb22bbbb3o.....
+....obb11b11b11b12112B2222222bb22b22b3co....
+...o2bbb1bbb11bb1211222222222bb22b22b3cco...
+...o2bbb111111bb21222222222222b222bb33cco...
+..o222bbb1111bb221222222222222bb222223cc3o..
+..o2221bbbbbb122222222222222222bbb222bc33o..
+.o2222221122222222222222222222222bbbbb333o..
+.o2222221222222222222222222222222222223333o.
+.o2222211222222332222222222332222222223333o.
+.o222222222223oooo22222222oooo322222223333o.
+o222222222222ooaoo2222A222ooaoo222222233333o
+o2bbbbb222222o3222222222222223o222222223333o
+obbbbbbb22222222222222222222222222222bbbcc3o
+obb222bbb222aa2222o222222o222aa22222bbbbccco
+oc22222bbb2aaaa222oooooooo222aaa222bb22333co
+o332bb22bb22bb22222obaabo2222bb222bbb23333co
+o33c3bb22bb22222222223322222222222bb22ccc3cT
+.o3c32b22bb22222222222222222222222bb22c3c3o.
+.o3c3cb22bb22222222222222222222222bb23cc33o.
+.o33c322bbb22222222222222222222222bbb3333co.
+..o33332cb2222222222222222222bbb222ccc33co..
+..occccccb222bbb222222222222bbb2c223ccccco..
+...occccc222c22bc22222222222bb22c3333ccco...
+....occ33332cc2bc22222222222bb2cc3333cco....
+.....occc333333bb32222322233cc333333ccco....
+......ooccc333ccc33333333333ccc333cccoo.....
+........oocccccc3333333333333ccccccoo.......
+..........oooooo3cc333333333ooooooo.........
+..........o11333oooooooooooo33311o..........
+..........o2o13o............o31o2o..........
+...........oooP..............oooo...........
diff --git a/parts_pl_src/body/pl_mochi_d.txt b/parts_pl_src/body/pl_mochi_d.txt
new file mode 100644
index 0000000..8906716
--- /dev/null
+++ b/parts_pl_src/body/pl_mochi_d.txt
@@ -0,0 +1,53 @@
+# pl_mochi_d: from pixellab_src/pl_mochi_d/base.png (variant of pl_mochi) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 35)
+# head_top at (32, 14)
+# back at (31, 31)
+# tail at (43, 46)
+......................o^o.....................
+.................oooo2122ooo..................
+................oo123ob3oo31o.................
+...........ooooooo211oooo113ooooooo...........
+..........o11113oo2b111o11c3oo31111o..........
+........oo11333coo3c1b1o1bcbooo33311oo........
+.........111333coo3c2c1o3bcbocc333111.........
+......oo11111oocc333b31o3bc3bbboo3111ooo......
+.....o111111o33333cbb33c3bc3bbbbco311111o.....
+....o11111132113b333333c323c3333bbo111111o....
+...o11311o211111111112332221c33333bo133311o...
+..o111b3o31111111111122222211333333bo33b111o..
+..o1113o211111111121122222221223223bcoo1111o..
+..o111o32111111121112222222221122233booo111o..
+..o313o21111111122122222222222222223bboo113o..
+.o1133o211111222222222222222222222233boo3311o.
+.o113oo21111122oo222222222222oo222233bbbo111o.
+o1133o22221122owoo2222B22222owoo22233bbbo3311o
+o1233o22211122owoo2222222222owoo22233bbbo3321o
+o1bbco22222222oooo2222222222oooo22233bbbocbb1o
+o2333o22222222oooo2222222222oooo2222333bo3332o
+o2333o222222222oo22222A222222oo22223333bo3332o
+o3333o222222aa2222o2222222o2222aa223333bo3333o
+o33bcob2222aaaa222ooooooooo222aaaa23333bocc33o
+o3333ob22222aa22222ooaaaoo22222aa223333co3333o
+.o333ob22222222222222222222222222223333co333o.
+.o333o3b22222222222222222222222222333bbco333o.
+.o333ob332222222222222222222222223333bbbo333o.
+.o3bbbobb332222222222222222222233333bboocc33o.
+..oooooobbb333222222222222223333333bbooooooo..
+........obbbb333333322223333333333bbo.........
+.........oobbbb33333333333333333bbbo..........
+...........oobbbbb3333333333bbbbcoT...........
+.............oooobbbbbbbbbbbooooo.............
+...............oooooooooooooooo...............
+..............o33o3333333333o33o..............
+.............o323o2222222233o332o.............
+.............o12o321222222333o312o............
+............o122o321222222233o321o............
+............o22co322222222233ob22o............
+.............oooo332222222333oooo.............
+................o333222223333o................
+................o2333bbb33333o................
+................o22boooooo333o................
+...............o1123o....o3213o...............
+...............o2233o....o3333o...............
+................oooP......oooo................
diff --git a/parts_pl_src/body/pl_mola.txt b/parts_pl_src/body/pl_mola.txt
new file mode 100644
index 0000000..ddc0aa5
--- /dev/null
+++ b/parts_pl_src/body/pl_mola.txt
@@ -0,0 +1,48 @@
+# pl_mola: from pixellab_src/pl_mola/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (33, 27) (from part/probe)
+# back at (35, 31) (from part/probe)
+# tail at (45, 45) (from part/probe)
+.............ooooooo................
+............oaa22211oo..............
+...........oaa2222222co.............
+..........oaa222c222c22o............
+..........oaa223ca2cc222o...........
+..........oa223ca23ca22c2o..........
+.........o22233a23ca23c222o.........
+.........o22b3ca33a23cc223o.........
+.........o233oooooo^oc22ocao........
+........oo23o22222cc3ooocc3o........
+......oo1o3o211111222223o33oo.......
+.....o211o31111cac1a2a223ooco.......
+....oca1111aa111c2111B3222co3o..oo..
+...o1c11a11cc1a111a111222223oo.o11o.
+..o21111111111111111122aa223o3o221o.
+..o21a111111111111b1c23ac32c3oca221o
+.o221111ac11111111ac22c332223o222aao
+.o322111111113332122222222c223o2a12o
+ooo2222111123o113222222oooo223oa233o
+o11o222222231oo113222oo1a1o2cc3o3c2o
+o1oo2222222o1oo113A2oca133o2233oaaco
+o1co2211222oooc11322ca23ca12233o333o
+o31c22oo2222ca112222cccca2o23c3cba3o
+o3222obbo22223332222ccc222o3cc3o3cco
+.o2222aa2222222222c22o222o3333o3333o
+.o22222222222222222222ooo33c33ocb3o.
+..oc222222222c22aa22223333333o3Taco.
+..oo222222222222cc22c23333cco3c333o.
+...occ22222c2222222233bacc33oooc3o..
+....o33c222222a22333333cc33o3o.o3o..
+.....o333c3333333aac3c333ooco...o...
+......oo33333cb33ccb33coo3o3o.......
+........oooooccb3333oooocc3o........
+..........o33oooooooo3cc3cco........
+..........o333c33c33c33c33o.........
+..........ooc33c33c33c3c33o.........
+...........oc22a22a22c333o..........
+...........o3222c22a2c3oo...........
+............o2c2333c33co............
+............ooccc333coo.............
+.............occcoooo...............
+..............oooP..................
diff --git a/parts_pl_src/body/pl_mola_b.txt b/parts_pl_src/body/pl_mola_b.txt
new file mode 100644
index 0000000..dc9ac2f
--- /dev/null
+++ b/parts_pl_src/body/pl_mola_b.txt
@@ -0,0 +1,54 @@
+# pl_mola_b: from pixellab_src/pl_mola_b/base.png (variant of pl_mola) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 37)
+# head_top at (33, 13)
+# back at (35, 31)
+# tail at (51, 45)
+..................ooooo^o...................
+.................oaa22211oo.................
+................oaa2222222bo................
+...............oaa222ca22c22o...............
+...............oaa223ca2cc222o..............
+...............oa223ca23cb23c2o.............
+..............o12233a23ca23c222o............
+..............o12c3ca33b23cc223o............
+........ooo...o1333c333c3cc2ooooo...........
+.......o112o..o233ooooooooooo111o...........
+......o22212ooo23o222222223o11222o..........
+......o2332o32o331111111223113322oo.........
+......o23oo21112111cac1a22222o332oo.....oo..
+......o3oca1111aa111c31111223o332o3o...o11o.
+.......o3c11a11cc1a111a1111233323ooo..o221o.
+.......o1111111111111111222aa333o23ooocb221o
+......o31a111111111111c1b23ac22332c3ooc22a1o
+.....o221111ac11111111ab22c33222222bo3222a2o
+.....o3321111111113332222B2222c223233o3a223o
+.....o1o3221111223o11322222222222a22bocc333o
+..ooo31wo22222223wooww322222oooooa22b3o33cao
+.o13o3woo2222222owooww3222ooa111o222b3o3bbco
+o2cao3woo2212222ooobww3222caa1c2o22223oc33o.
+o1aco23w322oo2222caww22222ca23a21222c33o3co.
+o2ao322322occo22223332A222cccca2o22cc33o3co.
+.o2o3222222222222222222b22ccc22oo23cc33o3cco
+..oo32222222222222222222222ooooo2233333oc33o
+..oo3a222211111122222aa222233o222333333occ3o
+..oo32211111111111222cc2222133o23333333o3c3o
+..oo32211111111111112222232112o3333333yo333o
+.o1o311111111111111111222321122o33333yyoc3o.
+.o1o311111111111111111111oo1112o333yyyyoo3o.
+.o22o11111111111111111111yo2122oyyyyyyo..T..
+..ooobb11111111111111bbbb1yo22oyyyyyyyo.....
+....obbbbb1111111111bbb111yyooyyyyyyyo......
+.....obbbbbbbbbbbbbbbbc11yyyyyyyyyyyyo......
+......oy11bbbbbbbb111111yy22222yyyyyo.......
+......ocb111111111111bcyy2211222yyyco.......
+.......obbbbb11111bbccyy22111222yyco........
+........occccbbbbccccyy222111122oyo.........
+.........oyyycccccyyyyy221111122oo..........
+..........oooyyyyyyyyyy321111223o...........
+...........o3ooyyyyyyyyo2211122oo...........
+...........o333oooooooooo211223o............
+............o33333o.....o222223o............
+.............o223o.......o2223o.............
+..............ooo........o2223o.............
+..........................Pooo..............
diff --git a/parts_pl_src/body/pl_mola_c.txt b/parts_pl_src/body/pl_mola_c.txt
new file mode 100644
index 0000000..dcbfcae
--- /dev/null
+++ b/parts_pl_src/body/pl_mola_c.txt
@@ -0,0 +1,62 @@
+# pl_mola_c: from pixellab_src/pl_mola_c/base.png (variant of pl_mola) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 37)
+# head_top at (33, 16)
+# back at (35, 31)
+# tail at (48, 45)
+.......................oo...........
+.............o.........oo...........
+............oo........o2o...........
+............oo........o2o...........
+...........o2o.......o12o...........
+...........o2o.......o12o...........
+...........o2o.......o12o...........
+...........o2o......o11ao...........
+..........oa2o......o11ao...........
+..........o12o......o123o...........
+..........o12o......o123o...........
+..........o23o.....^1123o...........
+.........o123o.....o112bo...........
+.........o223o....o2a2bbo...........
+.........o2abo....o2222bo...........
+.........o2abo....o2222o............
+.........o223o...o222a2o............
+........oa223o...o222a2o............
+........oa233o...o22223oo...........
+........o22bbo...o2a223o2o..........
+........o22bbo..o22a223o22o.........
+........o2233o..o2222bbo23o.........
+........o2233oooob222bboobao........
+........o2333o22o22233oob33o........
+......ooo3332211o22233o3o33oo.......
+.....o21o311111b222b33o33oobo.......
+....oba1111aa11122223B3223bo3o..oo..
+...o1b11a11bb1a1122211222333oo.o11o.
+..o31111111111111111122aa223o3o221o.
+..o21a111111111111c1b23ab32b3oba221o
+.o221111ab11111111ab22b332223o222aao
+.o322111111113332122222222b223o3a22o
+ooo3222111123o1132A2222oooo223oa233o
+o11o222222231oo113222oo1a1o3bb3o3b2o
+o1oo2222222o1oo11322oba133o2233oaabo
+o1bo22ooo22ooob11322ba23ba12233o333o
+o31b2o111o22ba112222bbbba2o23b3bca3o
+o332o11122o223332222bbb222o3bb3o3bbo
+.o32o22222o2222222b22o222o3333o3333o
+.o32o2ooo2o22222222222ooo33b33obc3o.
+..ob2o222o222b22aa22223333333o33abT.
+..oo22ooo2222223bb22b33333bbo3b333o.
+...obb22222b2222222233cabb33ooob3o..
+....o33b322223a22333333bb33o3o.o3o..
+.....o333b3333333aab3b333oobo...o...
+......oo33333bc33bbc33boo3o3o.......
+........ooooobbc3333oooobb3o........
+..........o33oooooooo3bb3bbo........
+..........o333b33b33b33b33o.........
+..........oob33b33b33b3b33o.........
+...........ob22a22a22b333o..........
+...........o3222b22a3b3oo...........
+............o3b2333b33bo............
+............oobbb333boo.............
+.............obbboooo...............
+..............oooP..................
diff --git a/parts_pl_src/body/pl_mola_d.txt b/parts_pl_src/body/pl_mola_d.txt
new file mode 100644
index 0000000..942c2df
--- /dev/null
+++ b/parts_pl_src/body/pl_mola_d.txt
@@ -0,0 +1,48 @@
+# pl_mola_d: from pixellab_src/pl_mola_d/base.png (variant of pl_mola) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (33, 19)
+# back at (35, 31)
+# tail at (48, 45)
+.............oooooo^................
+............oaa22211oo..............
+...........oaa2222222bo.............
+..........oaa222c222b22o............
+..........oaa223ba2cc222o...........
+..........oa223ba23ca22b2o..........
+.........o12233a23ca33c222o.........
+.........o1233ba33a33cc223o.........
+.........o133ooooooooc22ocao........
+........oo23o32222cc3ooocc3o........
+......oo1o3o211111222222o33oo.......
+.....o211331111cac1a2a223oobo.......
+....oca1111aa111c2111B3233bo3o..oo..
+...o1111111cc11111a111222333oo.o11o.
+..o21111111111111111122aa223o3o221o.
+..o11111111111111111b23ac32b3oca221o
+.o11111111111111111c22b222223o222aao
+.o111111111111111111222222c223o2a12o
+o1111111111111111111222oooo223oa233o
+o11oo11111111woo11111oo1a1o2cc3o3b2o
+o11oo11111111ooo11A1oca122o2233oaaco
+o11ob11111111ooo11112a22ca12233o333o
+o1111111111111cc11112cc2a2o23b3c3a3o
+o11111111111111111112cc222o3bc3o3cco
+.o11111oo111111111b12o222o3333o3333o
+.o1111o11o111111111122ooo33b33occ3o.
+..oc1111111111111112223333333o33acT.
+..o31111111111111c22b3333333o3c333o.
+...o3c11111111112222333acc33oooc3o..
+....o33c111111a22333333bc33o3o.o3o..
+.....o333c3333333aac3c333oobo...o...
+......oo33333a333cc333boo3o3o.......
+........ooooobc33333oooocc3o........
+..........o33oooooooo3cb3cbo........
+..........o333c33c33c33c33o.........
+..........ooc33b33c33b3c33o.........
+...........ob22a22a22b333o..........
+...........o3222b22a2c3oo...........
+............o2b2333c33co............
+............ooccc333boo.............
+.............occc3ooo...............
+..............oooP..................
diff --git a/parts_pl_src/body/pl_mole.txt b/parts_pl_src/body/pl_mole.txt
new file mode 100644
index 0000000..45d5bf4
--- /dev/null
+++ b/parts_pl_src/body/pl_mole.txt
@@ -0,0 +1,47 @@
+# pl_mole: from pixellab_src/pl_mole/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 42)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 33) (from part/probe)
+# tail at (46, 50) (from part/probe)
+..................oo................
+...............ooo11o...............
+............ooo121121ooo............
+...........oo1111111111oo...........
+.........oo11112111121111oo.........
+.........o1111221^11111111o.........
+.......oo111111111111111111oo.......
+.......o21211111111111111212o.......
+......o3221111112112111111223o......
+.....o223o3211113223111123o322o.....
+.....o322oooo32oo22oo23oooo223o.....
+......o32oc1oooo2112oooo1co23o......
+.....oo22oowyoo311113ooywoo223o.....
+.....o32223ooo31cBcc13oooo3223o.....
+....oo221123321caaaac1233211223o....
+....o332211111caaaaaac111112233o....
+...o3o22221111cboaaobc11112222o3o...
+..o322o22221112obbbbo21112222o223o..
+..o2222o222222oboooobo222222o2222o..
+.o32212o322222caooooac222223o21223o.
+.o22233ooo22223ao22oa22222ooo33222o.
+o322111ooooo232o2222o232ooooo111223o
+o222213aaaaco23333A3332ocaaaa312222o
+o33223aabbb21o22333322o1bbbbaa32233o
+o332oabb22c21wo222222ow1bc22ccao233o
+.o33caac2wo221wo2222ow122ow2caac33o.
+.o33cbcob1wo22wo2222ow2oow12ocbc33o.
+.o33oc22o21oo21o2222o22oo12o22co33o.
+..o3oo21o22o3o2o2222o2ooo22o12oo3o..
+...ooo211o2o22o222222o22o2o112ooo...
+...o33oo2oo32222222222223oo2oo33T...
+...o3233ooo32222222222223ooo3323o...
+....o32333322222222222222333323o....
+.....o323333322322223223333323o.....
+.....o332233333333333333332233o.....
+......o33333o3333333333o33333o......
+......oooo33o3oooooooo3o33oooo......
+.....ocbbboocoooooooooocoobbbco.....
+....obc22bbbco.occcco.ocbbb22bbo....
+....oo12bc1bco..oooo..ocb1cb21oo....
+.....oooooooP..........oooooooo.....
diff --git a/parts_pl_src/body/pl_mole_b.txt b/parts_pl_src/body/pl_mole_b.txt
new file mode 100644
index 0000000..71a1609
--- /dev/null
+++ b/parts_pl_src/body/pl_mole_b.txt
@@ -0,0 +1,50 @@
+# pl_mole_b: from pixellab_src/pl_mole_b/base.png (variant of pl_mole) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 40)
+# head_top at (31, 18)
+# back at (31, 33)
+# tail at (47, 50)
+..................oo................
+...............oo^22o...............
+............ooo232232ooo............
+...........oo2221222222oo...........
+.........oo22213222231222oo.........
+.........o2222332222222222o.........
+........o322222222222222222o........
+........o323122222222221132o........
+.......oo33211223223221112ooo.......
+.....ooo33oo3112o33o2112ooo3ooo.....
+....obbo33oc1oooo33oooooaoo3ooc.....
+...oobbo33oowyoo2222oooyooo3obboo...
+..oaaboo333oooo2cccc2oooooo23obaao..
+..obabo33223oo2caaaac23oo3223obaoo..
+.occabo3331122caaaaaac221113oobaco..
+.oocaabo332222cboaaocc222233ocaaco..
+.oocbabo3332223obBbboo222333ccacco..
+..occcaboo3333oboooobo33333ocaacoo..
+..ooocaabboo33caooooac33ooobaaccoo..
+..o3occcaaacoooaooooaooocbbcccco3o..
+.o333occcabbabbbbbbbbbbbbaacooo33oo.
+.o333ooocacbbabbaabaaaacccccooo333o.
+oo33221ooocccbacabaacaccooooo12233oo
+o33332oaaaacococcAaccccocaaaao23333o
+ooo33oaabbbc1ooococcooo1bbbbaao33ooo
+ooo3oabb22cc1wo3ooco3ow1bc22ccao3ooo
+.ooocaac2woc21wo33o3ow12cow2caacooo.
+.ooocbcob1woc2wo3333ow2oow1cocbcooo.
+.ooooc22o21ooc1o2322o2coo12o22coooo.
+..oooo21oc2o3o2o2222o2o2o2co12oooo..
+..ooooc11o2o22o222222o22o2o11coooo..
+..oooooo2oo22222222222222oo2oooooo..
+..ooooo3o332222222222222222o333ooo..
+..oooo3332222222222222222223333ooT..
+..oooo332322222222222222222233oooo..
+...oooo3332222222222222222333oo3o...
+...ooooo33332222222222223333ooooo...
+....oooooo3333222232223333oooooo....
+.....ooooooo333333333333ooooooo.....
+......oooooooo3333o333oooooooo......
+.....ocbbboooooooooooooooobbbco.....
+....obc22bbboooooooooooobbb22bbo....
+....oo12bc1bco........ocb1cb21oo....
+.....oooooooP..........oooooooo.....
diff --git a/parts_pl_src/body/pl_mole_c.txt b/parts_pl_src/body/pl_mole_c.txt
new file mode 100644
index 0000000..954ec01
--- /dev/null
+++ b/parts_pl_src/body/pl_mole_c.txt
@@ -0,0 +1,49 @@
+# pl_mole_c: from pixellab_src/pl_mole_c/base.png (variant of pl_mole) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 40)
+# head_top at (31, 19)
+# back at (31, 33)
+# tail at (47, 50)
+..................oo................
+.................^13o...............
+...........oooo.o113o.ooo...........
+...........o321oo113oo13o...........
+........ooooo311o113o11oooooo.......
+.......o31111o31o113o11o11113o......
+.......ooo31113111131111113oo.......
+......o11111111111111111112ooo......
+.....oooo1o11111111111111o2111o.....
+......o221o31111111111113o23333o....
+....oo1122oo331132131123oo222oo.....
+...o313322oo2o33o32o33o2oo22223o....
+...oooo222oowooo2222ooowoo22ooo3o...
+....oo22223ooooo22223ooooo2222oo....
+...o31332223ooo2bbbb2ooo3322322o....
+...oooo33222222caBaac22222223o33o...
+...oooo3222222cboaacbc2222232oooo...
+..ooo3oo232222cboaaobc22222o2oooo...
+..oo22oo2o22222obbbbo2222o2ooo33oo..
+.o3322oooo2o322aooooa2223o2ooo323oo.
+oo3122oooooo322aooooa2o2oooooo22323o
+o3312ccoooooo2o2222222o2ooooocc2123o
+oo32cccoooooooo2oA2o2ooooooooccc22oo
+oo3cca1oooooyyyoo32oooyoooooo13cc2oo
+ooccb2oaaaacoyyyyooyyyyocaaaao22ccoo
+ooca2oaabbb31o11yyyy11o1bbbbaao2ac3o
+oocooaab22c31wo11yy11ow1bc22caaoocoo
+.ococaac2wo321wo1111ow123ow2caacoco.
+.ooocbcob1wo32wo1111ow2oow13ocbcooo.
+..oooc22o21oo31o1111o23oo12o22cooo..
+..oooo21o32oyo2o1111o2oyo23o12oooo..
+..oooo311o2oy1o111111o1yo2o113oooo..
+..oooooo2ooy111111111111yoo2oooooT..
+..oooooooooyy1111111111yyyooooo3oo..
+...oo33ooooyyy11111111yyyoooo33oo...
+...oo3o333ooyyyy1111yyyyoooo33ooo...
+....oooo333oooyyyyyyyyyooooo3ooo....
+....oooo3ooooooooooooooooo3o3ooo....
+......oooooooooooooooooooooooo......
+.....ocboboocoooooooooocoobooco.....
+....obc22bbbco..oooo..ocbbb22bbo....
+....oo12bc1bco........ocb1cb21oo....
+.....oooooooP..........oooooooo.....
diff --git a/parts_pl_src/body/pl_mole_d.txt b/parts_pl_src/body/pl_mole_d.txt
new file mode 100644
index 0000000..b7f3ba0
--- /dev/null
+++ b/parts_pl_src/body/pl_mole_d.txt
@@ -0,0 +1,48 @@
+# pl_mole_d: from pixellab_src/pl_mole_d/base.png (variant of pl_mole) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 41)
+# head_top at (31, 19)
+# back at (31, 33)
+# tail at (46, 50)
+................oo^oooo...............
+..............o21111111o..............
+............ooo211111113oo............
+...........o21oo1111111o21o...........
+..........o2111o1111111o111o..........
+..........oo111o1111111o111o..........
+.........o12o11ooooooooo11o1oo........
+........o211oo3o2221112o3o111o........
+........o21o11oo322111o331o11oo.......
+.......o32oo111oo3211oo111oo1oo.......
+......oo1ooo2111oooooo211o3oo11o......
+......oo1ooooooooo22o3ooooooo13o......
+.....ooooooc1oooo2112oooo1co33ooo.....
+....o11aoooowyoo311113ooywoo33oa1o....
+...o1111ao23ooo31cBcc13oooo33oa111o...
+..o11111bo123321caaaac123322oo11111o..
+.o3111122bo1111caaaaaac11111oa111111o.
+.ooo1122obo1111cboaaobc1111ob2211113o.
+o11oo22oobo22112obbbbo21122ob3222133o.
+o1112oo3booo222oboooobo222oob33223311o
+obc12obbooo3oo2ca3333ac22o1ooc333311bo
+.ooobbooooo211ooao33oaooo133oocc3baco.
+.o33oo33ooooo211o11A1o111oooooooooo3o.
+.o333113aaaaco3111111111ocaa3cco33o3o.
+.oo311oaabbcc1oooooooooo1bc33aao113oo.
+.oa31oabb11cc1wo111111ow1bc11ooao23ao.
+.oa33caac1woc21wo1111ow12cow1o1ba33ao.
+.oa33ccoo21woc2woooooow2oow12o3ca33ao.
+..o33oc11o21ooc1o2222o2coo12o21cb33o..
+...oooc21oc2o3o2o1111o2ooo2co11cc3o...
+....oooc11o2o33o222222o33o2o11cooo....
+....o33oo2oobooooooooooooboo2oo33T....
+....o3333ooobo322222222oobooo3333o....
+.....o31333boo3222211111oob33311o.....
+.....o31133boo3222211111oob33111o.....
+.....ooaaaco3oc22221111co3ocaaaao.....
+.......oooo33ooc222111boo33oooo.......
+.......o33333oooo2211oooo33333o.......
+......o333333cooooooooooc333333o......
+.....o3c22c22co.occcco.oc22b22b3o.....
+.....oo123c13co..oooo..oc21c321oo.....
+......oooooooP..........oooooooo......
diff --git a/parts_pl_src/body/pl_molecricket.txt b/parts_pl_src/body/pl_molecricket.txt
new file mode 100644
index 0000000..7f10b7b
--- /dev/null
+++ b/parts_pl_src/body/pl_molecricket.txt
@@ -0,0 +1,44 @@
+# pl_molecricket: from pixellab_src/pl_molecricket/base.png (pixellab_library.py extract)
+# pivot at (40, 60)
+# aura at (31, 44)
+# head_top at (31, 32) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (52, 51)
+.............33o..........ooo.............
+.............321o........o13o.............
+.............oo21o......o13o..............
+................o2o....o2o................
+................o2o....o2o................
+.................o3o..o2o.................
+.................o2oooo2o.................
+................o21111112o................
+..............o32111111122oo..............
+.............oo21111^111122oo.............
+.............o21111111111122o.............
+............o2211111a11111222o............
+...........oo21o2111111112o22oo...........
+...........oo21oco11Ba11oco22oo...........
+....oooo..ooo21o1o311313o1o22ooo..oooo....
+oo.o21223.ooo21o11o1111o11o22ooo.32212o.oo
+o1o111122oooo22o1oo1111oo1o22oooo222111o1o
+.oo111c22ooooo22oao2bb1oao32ooooo22c111oo.
+.o1111coo3ooooo23oo2222ooo2ooooo2occ1112o.
+o21112cbo33ooooo22cooooc22ooooo22oac21123o
+o2122oa1o31o22ooo33222233ooo21o12o1ao2212o
+o2222co1c3212oooooooAoooooooo2122baoc2212o
+o222cccoo332oooooooooooooooooo1ooooccc212o
+o222caoooo3ooooocoooooooocoooo333oooac222o
+o22oa1aooo3oooooao333333oaooooo3oooa1ao22o
+o22coaac.ooooo3oao222222oao3ooooo.caaoc22o
+o2ocooo..ooooo32oao3323oao23ooooo..oooco2o
+oooccoo...oooo322oca32cbo223oooo...ooccooo
+ooocco....oooo32111222211123oooo....occooT
+oooccoo...oooo32111111111123ooo....ooccoo.
+.occaao....oooo321111111123ooo.....caacoo.
+.ooca1o......ooo2222222222ooo......c1aoo..
+.ooocoo......ooooo111111ooooo......occoo..
+..oocbo.......ooo.oooooo.ooo......occoo...
+..ooocao......ooo........ooo.....oacooo...
+...ooocao....oooo........oooo...oacooo....
+....ooocaooo.................ooobcooo.....
+......oooooo.................Pooooo.......
diff --git a/parts_pl_src/body/pl_molecricket_b.txt b/parts_pl_src/body/pl_molecricket_b.txt
new file mode 100644
index 0000000..592000e
--- /dev/null
+++ b/parts_pl_src/body/pl_molecricket_b.txt
@@ -0,0 +1,44 @@
+# pl_molecricket_b: from pixellab_src/pl_molecricket_b/base.png (variant of pl_molecricket) (pixellab_library.py extract)
+# pivot at (40, 60)
+# aura at (31, 45)
+# head_top at (31, 29)
+# back at (31, 36)
+# tail at (52, 51)
+.............33o..........ooo.............
+.............332o........o23o.............
+.............oo32o......o23o..............
+................o3o....o3o................
+................o3o....o3o................
+.................o3o..o3o.................
+.................o3o^oo3o.................
+................o32212223o................
+..............o33221112233oo..............
+.............oo322111112233oo.............
+.............o32221111122233o.............
+............o3322122b11223o22o............
+...........oo22oc222bb223co22oo...........
+...........oo22owo22B323owo22oo...........
+....oooo..ooo22ow1o2222o1wo22ooo..oooo....
+oo.o32333.ooo22owoo2222oowo22ooo.33323o.oo
+o2o212233ooooo22obo2cc2oboo2ooooo332212o2o
+.oo112c33oooooo2ooo3333ooo3oooooo33c211oo.
+.o2122coooo223oo33cooooc33oo33oooocc2213o.
+o31223ccoo22223oooo3333oooo332oooobc32233o
+o3133obooo2222233ooooooooo33222oooobo3323o
+o3233coooo222222233333333322222oooooc3323o
+o323ccooocbb22222222A22222222bbboooocc323o
+o333caoooocbbbbbbbbbbbbbbbbbbbbbooooac333o
+o33obwooooocbbbbbbbbbbbbbbbbbboooooowbo33o
+o33coaoooooooobbbbbbbbbbbbbbcoooooooaoc33o
+o3ocooooooo333333cccccccc33333ooooooooco3o
+oooccoooooo2222222222222222222oooooooccooo
+ooocco.ooooo22222222222222222oooooo.occooT
+oooccoo.oooooo22222222222222oooooooooccoo.
+.occaao.oooooooo2222222222oooooooo.cabcoo.
+.oocawo..oooooooooooooooooooooooo..cwboo..
+.ooocoo....oooooooooooooooooooo....occoo..
+..oocbo......oooooooooooooooo.....occoo...
+..ooocbo......oooooooooooooo.....obcooo...
+...ooocbo....oooo........oooo...obcooo....
+....ooocbooo.................ooobcooo.....
+......oooooo.................Pooooo.......
diff --git a/parts_pl_src/body/pl_molecricket_c.txt b/parts_pl_src/body/pl_molecricket_c.txt
new file mode 100644
index 0000000..9eed1a7
--- /dev/null
+++ b/parts_pl_src/body/pl_molecricket_c.txt
@@ -0,0 +1,45 @@
+# pl_molecricket_c: from pixellab_src/pl_molecricket_c/base.png (variant of pl_molecricket) (pixellab_library.py extract)
+# pivot at (18, 60)
+# aura at (32, 44)
+# head_top at (31, 25)
+# back at (31, 36)
+# tail at (54, 51)
+...............ooo...........ooo..............
+...............oo2o.........o2oo..............
+................oo2o.......o2oo...............
+.................oo2oo^oooooo.................
+..................o3o21112ooo.................
+................oooo3o212o3o2oo...............
+...............o332ooo222oo2233o..............
+..............oa223oo33333o332abo.............
+.............o222a3o331233oo33bbbo............
+............oa222o2221122222o33b3bo...........
+............oa2abo2111aa22222o333bo...........
+...........o322bo322211a222223o3333o..........
+..........oab223o3oo2222222oo3obb3b3o.........
+.........oobb21o3oaco22222oaco3o33abo.........
+.........oooc22o3owco3Ba23cwco3o22cb3o........
+.........oo3211oooccco2a2occco3o223ooo........
+........oooo311oooacco222occaooo1233ooo.......
+.......o223o3122oooaco333obaooo2223o33o.......
+......o2122o33212oooo33333oooo22233o211oo.....
+.....o112223o32222oo33ooo33oo1212oo322213o....
+....o2122233oo2o221133333oo111322ooo22221o....
+...o2122233o32oo212112232222223o2oooo2b211o...
+..o31222323o32oo21o2121A2112o23oo33oo222213o..
+..o312c222oo3222o3oo1o122o1oo2o2233oo322222o..
+..o3232323oo33222o3oo332ooo2oo22233oo322223o..
+..o3332o23oo332o2223333o23322222233oo3o2323o..
+..o3333oo3ooo33o2222222o22222222333oo3oo333o..
+.ooo3oooooooo3oo322222222222222o3o3oooooo3ooo.
+o13oo31ooooooooo33232222222332oo3oo.ooo31oo31o
+o133o31o33oooooooo23222222333oooooo.33o31o331T
+o133331o32o.ooooooo33222o23ooooooooo23o313331o
+o132231331o..ooooooo3322o33oooooo..o133312221o
+o122233221o..ooooooo33o3oooooooooo.o122332221o
+o212222221o.oooocoo.oo33oo.ooooooooo122222121o
+.o12222221oobccoooo..ooo...ooooccaco12222111o.
+..o1222221oacocoooo........oo3ococao12211112o.
+...o112211ooooboooo........ooooboooo121111oo..
+....oo1111o........................o2211oo....
+......oooP..........................oooo......
diff --git a/parts_pl_src/body/pl_molecricket_d.txt b/parts_pl_src/body/pl_molecricket_d.txt
new file mode 100644
index 0000000..aed389f
--- /dev/null
+++ b/parts_pl_src/body/pl_molecricket_d.txt
@@ -0,0 +1,44 @@
+# pl_molecricket_d: from pixellab_src/pl_molecricket_d/base.png (variant of pl_molecricket) (pixellab_library.py extract)
+# pivot at (40, 60)
+# aura at (31, 43)
+# head_top at (31, 24)
+# back at (31, 36)
+# tail at (52, 51)
+..............ooo..........ooo..............
+..............332o...^oo..o2oo..............
+..............oo32o.o32o.o23o...............
+.................33o312oo33o................
+...............oo3313122233ooo..............
+..............o23231212223212o..............
+............ooo213112122222233o.............
+............o311222111212222222o............
+.............o2211211111221122oo............
+...........o321221221111112223ooo...........
+...........o32222222211112222112o...........
+..........o2222222222a1122222222oo..........
+..........o22222o3222212223o22222o..........
+..........oo2222oco22Ba22oco22233o..........
+.....oooooo32222owo322323owo22223o.oooo.....
+.oooo2223oo32122ow1o2222o1wo22233oo3222oooo.
+.o11222233o33222owoo2222oowo21233o33222222o.
+..o2112c333o33122oao2bb2oaoo22133o33c2112oo.
+.o11122coo32331223oo3333ooo2223333occ22111o.
+.o11223cbo323332223cooooco22223333oac322111o
+o11223oawo3332332223oAooo222333333owao3211oo
+o21233cowc332233322222222233333233baoc33211o
+o2223cccoo332233332322222333332223ooccc3321o
+o3233caoo33322223333333333332222233ooac3323o
+o32ooawao33323222223333332222223233oawao333o
+.o3ocoaac33323222222233322222123233caaoc33o.
+.o3ocooo.o333322222222222222222333o.oooco3o.
+.oooccoo.o333323232221222122132333o.ooccooo.
+.ooocco..o333333132221122133233333oo.occooT.
+.oooccoo.o3o333323323132223333333o..ooccoo..
+..occaao.o3o333333323232233333333o..caacoo..
+..oocawo.oo.o333333333333333333o3o..cwaoo...
+..ooocoo.....o3333o33333333o33o.o...occoo...
+...oocbo......ooooo33oo33ooooo.....occoo....
+...ooocao......ooo.oo..oo.ooo.....oacooo....
+....ooocao....oooo........oooo...oacooo.....
+.....ooocaooo.................ooobcooo......
+.......oooooo.................Pooooo........
diff --git a/parts_pl_src/body/pl_moloch.txt b/parts_pl_src/body/pl_moloch.txt
new file mode 100644
index 0000000..6bd925b
--- /dev/null
+++ b/parts_pl_src/body/pl_moloch.txt
@@ -0,0 +1,46 @@
+# pl_moloch: from pixellab_src/pl_moloch/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 42)
+# head_top at (27, 29) (from part/probe)
+# back at (39, 33) (from part/probe)
+# tail at (49, 43) (from part/probe)
+.........................ooo..............
+...........oo..........ooaco..............
+..........o1o.....oo..o21bco..............
+..........o13o....ocoo21133o...ooo........
+..........o123o..o33o311333o.ooooo........
+..........o1133o.o33o212333oo223co........
+.........oo1133ooooo333333oo21133o........
+.........o312233ocaa333333oo22333o........
+.....oo..o312233^caaab333ooao3333o........
+.....b2ooo322333oca2aaaco21coo33o..oooo...
+.....o13oco3333occo1oa33113o3coooo211aco..
+.....o3ocac333occc333331133o33c3311123o...
+......o3oaaabb2oa33o333323ooBcc3223333o...
+.....o3ooaaaao332223323333333ccc32333o....
+...oo3322aaa22oo222223333o33oooooo33o.....
+..o33322111111222123222333332112cooo......
+..o3113111111211113332323o31123boc3o......
+..o31131111111113oo322333b3333oo3cco......
+.o1o21322221311oo.1122333boooo33co32oooo..
+.ocwo2323323113ooow122133bccc333o3211122ao
+.ocoo332222313owobww22333co3oo33c322223bco
+o3cao32222233ocooaww2A333o2113ooc333ooooo.
+o32221111223o33aabw222333332112aooooo3To..
+o322111111233333113333333o3333oo3bccc3o...
+.o3223113223333333oooo3333oooo33333cco....
+.1oo32222223333ooo1113o333oo33332333oo....
+.o11oo33323oooo1111123333oo3333333323oooo.
+..o211ooooo11ww111122233o3333333333223o3co
+...o2111111111111222233o33333333o3211233o.
+....o22211111122222233o33323333oo321113o..
+.....oo222222222222ooo3o323223oo3321113o..
+.......ooo222222ooo3333o322223oo3322323ooo
+.......o3oooooo3333333o3211233bo333333oo3o
+.......o333oooo2222222o311122ooo333333o3oo
+......o333333ooo32222o32112333ooooooooooo.
+....oo3333333oo3oooooo2222323ooo333333o...
+...o111331233o.oooooo32112333ooo23o1o1o...
+....ooooooooo......o113123313o.oooooooo...
+...................oooo11oo11o............
+.......................Po..oo.............
diff --git a/parts_pl_src/body/pl_moloch_b.txt b/parts_pl_src/body/pl_moloch_b.txt
new file mode 100644
index 0000000..667927f
--- /dev/null
+++ b/parts_pl_src/body/pl_moloch_b.txt
@@ -0,0 +1,53 @@
+# pl_moloch_b: from pixellab_src/pl_moloch_b/base.png (variant of pl_moloch) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 40)
+# head_top at (27, 22)
+# back at (39, 33)
+# tail at (54, 43)
+......................oo.....................
+......................obo....................
+.....................o11o....................
+....................o2112o...................
+....................o1112o......oo...........
+...........ooo......o11122o....o2o...........
+...........o12oo...o211222o..oo12o...........
+...........o112oo..o211223o.o1123o...........
+...........o1112o^oo222233oo32123o...........
+...........o11122occ333333cc33333o...........
+...........o11122occcccccccccc333o...........
+.........ooo1112223cbbbb111111cc2oo..........
+.ooo...oo3bo2112223cbb111111ooo2222oo........
+.o11ooo331bo2222223cbb11111o12o112222ooooooo.
+.o3113331bbo222223cc1111133113o111222o33113o.
+..o113311bbb33333cbb1111331123o111122333133o.
+..o3331111bbcccccc111111331133o111bb223333o..
+...o311111bbbbbb11111111132333o211bb222333o..
+..o11111111bbb111111111111333o3211bbb2233o...
+..o12111111111111111111111122B111111b2233o...
+.o1121111111111111111221111111111111122233o..
+.o1133111111111111233321111111111111122223o..
+.o1112311311111113o111211111111111112222233o.
+.o11wco1131111113oocww11111111111222222b233o.
+ob11wcwo23111313owocww11111111bb1222222b233o.
+o111wcoo31111333coobww11111111bbb222222b233co
+o221wcbc3111133oboobwwA11222222cc222222b3333o
+o222122211111123cbbcw11122222222222222233333o
+o222222111111122221111122222222222222223333co
+o22oo221311311222222oooo22222222222323o3333cT
+o22o1oo211111122oooo1111o22222222221111o333co
+o322111o22222ooo11111111122222222231111o333o.
+.o222111ooooo1111111111122222222223211bo333o.
+.o2b221111111111111111222222222222233oo3333o.
+.o3b2222211111111122222222222232222cc33333o..
+..ob22322222222222222223221122333333333332o..
+..o3333oo2222222222222332111122o33333o333oo..
+...oo332o2222222122222321111bc2o33333o222o...
+....o222o3322c22222223o21111bc2o22223o2oo....
+.....oo22o333c22222222o211113c2o2222oooo.....
+......ooooo33222222222o22111222o222ooo3o.....
+......o332oooo22222222o22222222o2oo3333o.....
+.....o3233222ooo222222o3222222oooo33333o.....
+....o111211222oooooooo31112222ooo12o1o1o.....
+.....ooooooooo......o113112312o.oooooooo.....
+....................oooo11oo11o..............
+........................Po..oo...............
diff --git a/parts_pl_src/body/pl_moloch_c.txt b/parts_pl_src/body/pl_moloch_c.txt
new file mode 100644
index 0000000..697d1e5
--- /dev/null
+++ b/parts_pl_src/body/pl_moloch_c.txt
@@ -0,0 +1,47 @@
+# pl_moloch_c: from pixellab_src/pl_moloch_c/base.png (variant of pl_moloch) (pixellab_library.py extract)
+# pivot at (34, 58)
+# aura at (32, 40)
+# head_top at (27, 24)
+# back at (39, 33)
+# tail at (56, 43)
+.........................oo...................
+...........oo..........ooao...................
+..........o1o.....oo..o21co...................
+..........o13o....ocoo2113o....oo.............
+..........o123o..o33o31123o.ooooo.............
+..........o1233o.o33o21223o.o22co.............
+.........oo12333^ooo333233oo2113o.............
+.........o312233ocaa333333oo2233o.............
+.....oo..o312233ocaaac333ooao333o.............
+.....c2ooo322333oca2aaaco21coo3oo.oooo........
+.....o13oc333333cco1oa33113o3cooo311aco.......
+.....o3ocac333occc333331133o33c321113o........
+......o3oaaaaa2oa333333333oo3oc333333o........
+.....ooooaaaao3oo333333333oo3cco3333o.........
+.....o3ooaaaaooo2222223333333ccc333o..........
+...oo3322aaa22oo222222333333Booooo3o..........
+..o33322111111222122222233332112co3o..........
+..o3113111111111113332323o32223coc3o..........
+..o31131111111113oo322333c3333ooccco..........
+.o1o21322221111oo21222333a3ooo33c332oooo......
+.ocwo2323323113ooow122133aacc333o3211122co....
+.ocoo332222313owoaww22333c33oo33c322223cco....
+o3cao32222233ocooaww2A333o3113ooc333ooooo.....
+o32221111123o3oaacw222333332112aooooo3o.......
+o322111111233333222222333o3333oo3accco......oo
+oo3223113123333333oooo3333oooo33333cco.....ocT
+o1oo32222223333ooo1123o333oo333323333ooo..oa3o
+.o12oo33333oooo2222223333oo3333332222oaaoo213o
+..o221ooooo22ww222222233o3333333322223oo2123o.
+...o2211111222222222233o33333333322122o32233o.
+....o22222222222222233o333223333322111o3333o..
+.....oo222222222222ooo3o322233o3322111o333o...
+.......ooo222222ooo3333o322233o3332233o22o....
+.......o3oooooo3333333o3211233o3333333ooo.....
+.......o333oooo2222222o211123ooo333333o.......
+......o333333ooo22222o32112333oooo3333o.......
+....oo3333333oo.oooooo2222223ooo333333o.......
+...o112331233o.....oo32222233o.o233232o.......
+....ooooooooo......o123223313o.oooooooo.......
+...................oooo12oo12o................
+.......................Po..oo.................
diff --git a/parts_pl_src/body/pl_monk.txt b/parts_pl_src/body/pl_monk.txt
index 1a0d58d..1b4835a 100644
--- a/parts_pl_src/body/pl_monk.txt
+++ b/parts_pl_src/body/pl_monk.txt
@@ -1,9 +1,9 @@
# pl_monk: from pixellab_src/pl_monk/base.png (pixellab_library.py extract)
# pivot at (35, 60)
# aura at (31, 39)
-# head_top at (31, 22) (from part)
-# back at (33, 44) (from part)
-# tail at (39, 52) (from part)
+# head_top at (31, 22) (from part/probe)
+# back at (33, 44) (from part/probe)
+# tail at (39, 52) (from part/probe)
..........oooooo............
........o2222^2233oo........
......o2222222222333o.......
diff --git a/parts_pl_src/body/pl_monk_b.txt b/parts_pl_src/body/pl_monk_b.txt
new file mode 100644
index 0000000..f371cdf
--- /dev/null
+++ b/parts_pl_src/body/pl_monk_b.txt
@@ -0,0 +1,57 @@
+# pl_monk_b: from pixellab_src/pl_monk_b/base.png (variant of pl_monk) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 36)
+# head_top at (31, 10)
+# back at (33, 44)
+# tail at (52, 52)
+.................ooo^ooo...................
+...............oo222222233o................
+..............o222222222233o...............
+.............o22222222222233o..............
+............o2211122222222233o.............
+...........o221111222222222333o............
+...........o222112222222222233o............
+..........o32222222222222222333o...........
+..........o2b222222222222b22333o...........
+..........o2bb2222222222bbb2333oo..........
+..........o2bbb2222222bbbbb2233oo..........
+.........oo22cbb22222bbbcc22233ooo.........
+........o2o223cbb222bbbc322223o222o........
+........o3oooo3cc222cc33oooo233332o........
+........o33o1ooo33333oooo113233332o........
+.........o3o1oo33ooy33ooo122232323o........
+.........cooa2ayo33oyya22aa23o222oo........
+........occo32ayooooyya222233oooocoo.......
+.......obacoo3ayyyyyyaa33333occccccoo......
+......oobbacoo3yoaaaoaa333ooccccaooooo.....
+.....o22obbaacooooooooooooccccaco33223o....
+....o2112obbbaaccccccccccaacccco3222223o...
+...o221222ocbbbbaaaaaaaccccccoo322112223o..
+...o2222222oocbbcbbbcccbbbcoo33222212223o..
+...o222232yyyoobaaaaaabboooaa22222222223o..
+...o32223yyyyyyoooooooooaayyyy2222222223o..
+...o3322oyyyyyyyyaa3aAayyyyyyy3332222233o..
+..o22333oyyyyyyyyya3yyyyyyyyyyyo333333323o.
+..o22223oayyyyyyyya3yyyyyyyyyyaoo22223223o.
+..o22223oaayyyyyyya3ayyyyyyyyaaoo22222323o.
+.o223223oooaaaaaaaa333aaaaaaaao3o22222323o.
+o2222333oo3oobbbayyayybb333ooo33o322232233o
+o22223oooo3333ayyyyayyyyaa3333333o33322233o
+oooooo33oo3322yyaaaaaaayya2233333oo3ooooooo
+oaaaaaooooo222aayyyayyBaa322333oooooaaaaaco
+oaaaacccoo.o222yyyyayyyya22333oo.ooccaaacco
+oaaaaccco..o322aaaaaaaaa32233oo...occaaacco
+oaaaacco...o322ayyyayyya32333o.....ocaaaco.
+oaaooooo....o32ayyy3yyya3233oc.....ooooaco.
+oaa22233o...ooooooooooooooooo3...o3222ooco.
+o22222o3o...oocaaaaabaccbcccoo...o2322233o.
+o22222o3o...o3ooocaabcoooooooo...o3o22223o.
+.o2232oo....o33oocaaboooo333oo....oo22233T.
+..o3o33o....o333oaabcoo33333oo....o33o33o..
+...oooo.....o3333oooooo33333oo.....ooooo...
+............o3333oooooo3333ooo.............
+.............ooooooo.oooooooo..............
+..............ooooo...oooooo...............
+.............o3223o....o222o...............
+.............oooooo....o3323o..............
+........................Pooo...............
diff --git a/parts_pl_src/body/pl_monk_c.txt b/parts_pl_src/body/pl_monk_c.txt
new file mode 100644
index 0000000..2755635
--- /dev/null
+++ b/parts_pl_src/body/pl_monk_c.txt
@@ -0,0 +1,48 @@
+# pl_monk_c: from pixellab_src/pl_monk_c/base.png (variant of pl_monk) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 38)
+# head_top at (31, 19)
+# back at (33, 44)
+# tail at (42, 52)
+..........oo^oo............
+........oo22222oooo........
+......oo32222222333o.......
+.....o22222222222333o......
+....o2211222222222333o.....
+...o211112222222222333o....
+...o221122222222222333o....
+..o22222222222222222333o...
+..o22222222222222222333o...
+..o22222c222cc222222333o...
+..o22ccc3222cccc2222233o...
+.oocccc3322233cccc22233ooo.
+o2occ333322233333cc233o222o
+o3o3oooo32223oooo332332oo2o
+o3ow1oo133333wooow32333oo3o
+o3o2woo13aab31ooow2233ooo2o
+.oo1222baooaa3222122332o23o
+.ooaa2aaooooaab22aa333223o.
+..o322211221112322233oooo..
+...o321122221A123333o......
+....o112oooo21112ooo.......
+....o12o2112o2112ooo.......
+....o12221112o212oooo......
+....o122211113212o33o......
+....o121211213113o223o.....
+....o121211212B13o322o.....
+....o321211212133oo323o....
+...o2o2121122213ooo322o....
+..ob2o2331122213oooo2bc....
+..obco3331122333oooocbbo...
+..obcoo33112233ooooocbbo...
+.o22ooo33312233occooo2co...
+.o2o2ooo332333oooooo222o...
+.o3o3ooo332333oo33oo2o2T...
+..ooo.oooo33ooo333o..o3o...
+......o2oo33o.oo32o..oo....
+......o33ooo...o32o........
+.......o3oo....o33o........
+......o323o....o33o........
+.....o2223o....o322o.......
+.....oooooo....o3222o......
+................Pooo.......
diff --git a/parts_pl_src/body/pl_monk_d.txt b/parts_pl_src/body/pl_monk_d.txt
new file mode 100644
index 0000000..11b8dee
--- /dev/null
+++ b/parts_pl_src/body/pl_monk_d.txt
@@ -0,0 +1,56 @@
+# pl_monk_d: from pixellab_src/pl_monk_d/base.png (variant of pl_monk) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 33)
+# head_top at (31, 11)
+# back at (33, 44)
+# tail at (39, 52)
+..............oooo^oooo...............
+...........oo32222222223ooo...........
+.........oo2222222222222333o..........
+........o2222222222222222333oo........
+.......o2222222222222222223333o.......
+......o222111122222222222223333o......
+.....o2221111122222222222222333o......
+.....o22211111222222222222223333o.....
+....o322221111222222222222222333o.....
+....o2222221122222222222222223333o....
+...o22222222222222222222222222333o....
+...o222222222222222222222222223333o...
+...o222b222222222222222222b2223333o...
+...o22bbb2222222222222222bbb222333o...
+...o22bbbb22222222222222bbbb222333o...
+...o223cbbb2222222222bbbbbbb222333o...
+...o222oobbb22222222bbbbbc22222333o...
+.ooo2ooooobbb222222bbbbooooo22233oooo.
+o22o3oowwooob222222bboooooooo223o3222o
+o22o3o1wwoooo2222222owwoooo1o22332222o
+o2oo3o1oooooo2222222ooooooo1o22322o32o
+o23o3owoooooo2aaaa22ooooooo1o2233o332o
+o233o2w33oo3o31111A3o3ooo33w32233o332o
+o323o2233333a1111111333oo22222332o323o
+.o33o2aa22211111111112222aaa22332322o.
+..oooaaaa1111111111111111aaa22332223o.
+....oaaaa11111oooo1111111aaaa33ooooo..
+.....oaa11111oaaao1111111aaa33o.......
+.....o3aa11111111111111111aa33o.......
+......ooaaaa1111111111aaaa33oo........
+........oooaaaaaaaaaaaaaoooo..........
+...........ooooooooooooooo............
+...........o33oo333ooo33o3o...........
+..........o233o22o3oB33o23o...........
+.........o223o2332o3o3o2223o..........
+........o22ooo2o23cooooo223o..........
+........o22aab2o33baaa22223o..........
+........o32bbccocccbcb22333o..........
+.........o3ccooooooccc3333o...........
+..........oooooooooooooooo............
+...........ooccobcocccccoo............
+..........o3ooococcooo33ooT...........
+..........oo33oboocb33333ooo..........
+...........ooocaoooao3oooooo..........
+...........333oooooooo333oo...........
+...........ooo3ooo.ooo33ooo...........
+............ooooo...oooooo............
+...........o3223o....o333o............
+...........oooooo....o3323o...........
+......................Pooo............
diff --git a/parts_pl_src/body/pl_moose.txt b/parts_pl_src/body/pl_moose.txt
new file mode 100644
index 0000000..b6559e9
--- /dev/null
+++ b/parts_pl_src/body/pl_moose.txt
@@ -0,0 +1,48 @@
+# pl_moose: from pixellab_src/pl_moose/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (27, 22) (from part/probe)
+# back at (37, 30) (from part/probe)
+# tail at (46, 38) (from part/probe)
+...........ooo.......................
+.........oo222oo.....................
+.......oo2112233oo...................
+...ooooo312233^33o..oooo.............
+..o2123o322o322233oo2112oo...........
+.o3332o2o3o322222o32233333oo.........
+.o3bco112o2211122o33occcba3o.........
+.o3aboo222213o322o3occcbba3o.........
+..oabobo222obab32oocccbb3a3o.........
+...o3owo222bwowb32obbbb333o..........
+....ooo3222bwoob323o33333o...........
+.....o32222bw33b323oooooB............
+...oo2222233aab3223oo................
+.ooo1112223b3332223oo................
+ob121112212bb22223ooo................
+o1b122212b23b32333o3ooo..............
+oco22222cob3b3333o333obo...oo.....ooo
+oco2222coob3b333o3333obaooobaoo...o2o
+obc3333ccb33booo33323ooacbbcaaoooo22o
+o3b3333cb33bbo3o332233obcaaacao23T33o
+o3333333333boo2o332322obcbbbcbo12ooo.
+ob33333333bbo32o33A2122occbbcbo113o..
+.ob333333bbo332o3331112occcccc2112o..
+.obbbbbbbbbo322333211222obccbo2211o..
+..obbbbbboo32212o32222222oooo32211o..
+...oooooo3332112o332222222bb332221o..
+.......o3322211oo333222322bb333222o..
+.......o3222221ooo33322o33bbo33222o..
+.......o3322222oooo3322oooboo33222o..
+........o33232ooooo3223oooooo33222o..
+........oo32ooo3ooo322oooooooo3322o..
+.........oo3oo33o.o322ooo3333oo3322o.
+..........oo.o33o.o223o..o333ooo332o.
+.............o3oo.o33oo...o33o..o33o.
+.............oo3o.ooo3o...o33o..o33o.
+.............o33o.oo33o...o33o..o33o.
+.............o23o.oo32o..oo33o..o33o.
+............ooc3o.oo22o.oocco..ooc3o.
+...........ocbbco.occ2ooobcco.ocbbco.
+...........obobcoocbbcoooooo..obobco.
+............oooo.obobco........oooo..
+..................Pooo...............
diff --git a/parts_pl_src/body/pl_moose_b.txt b/parts_pl_src/body/pl_moose_b.txt
new file mode 100644
index 0000000..92640cd
--- /dev/null
+++ b/parts_pl_src/body/pl_moose_b.txt
@@ -0,0 +1,48 @@
+# pl_moose_b: from pixellab_src/pl_moose_b/base.png (variant of pl_moose) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (27, 20)
+# back at (37, 30)
+# tail at (49, 38)
+............ooo.........................
+..........oo222^o.......................
+........oo2112223oo.....................
+....ooooo312223333o..oooo...............
+...o2123o322o322233oo2112oo.............
+..o3332o2o2o222222o22233333oo...........
+..o3boo112o2211122o22occcbb3o...........
+..o3bboo222213o322o3occcbbb3o...........
+...obbobo222obab32oooccbb3b3o...........
+....o3oao222baoab32obbbb333o............
+.....ooo3222baoob223o33333o.............
+......o22222bw33b2223ooooB..............
+....oo3223333aab32223ooo................
+...o21111123b33311122o3oo...............
+.ob1111111222b2221222o333ooooooo........
+.o1b22222bb223b222223o322cbc22cco..ooo..
+o3co2222boo323b32223o3321ccc11cbc2oo2o..
+o3co3333coo333b3223oo322111111cbb12ooo..
+o33c3333ccb333b3233o3222111cc11cbc12oo..
+o33b3333cb333bb333o3222211cbbc11c2112T..
+.o33333333333bbooo33222211cbbc1122222o..
+.ob33333333bbboo333A222221cbbc12222222o.
+..oobbbbbbbbboo333222222222cc222222222o.
+....oooooooooo333222222222222222221112o.
+......o3333333332222222222222222211ccc2o
+......o333333322222211122222222321cbbc2o
+......o332222222222211122322223221cbbc2o
+......o2o22222222322111223222232211cbc2o
+......o2oo2222222o221112233223322212cc2o
+......o22oo222222o222122233333322211222o
+.......o22oo22223o22222223333333222223o.
+.......o22oo33333o22222233333oo3322223o.
+.......o22oooooooo222222o3333ooo332233o.
+.......o222ooooooo322222oooooooooo3333o.
+........o22ooo....o2222oooooooo..ooo33o.
+........o22oo.....o2222o..ooooo...oo33o.
+........o333o.....o3223o..occ3o...o33oo.
+........occ3o.....o3223o.occco...occ3o..
+.......ocbbco.....occc3o.occco..ocbbco..
+.......obobco.....obbbco..ooo...obobco..
+........oooo......obobco.........oooo...
+...................Pooo.................
diff --git a/parts_pl_src/body/pl_moose_c.txt b/parts_pl_src/body/pl_moose_c.txt
new file mode 100644
index 0000000..3fa7a4a
--- /dev/null
+++ b/parts_pl_src/body/pl_moose_c.txt
@@ -0,0 +1,49 @@
+# pl_moose_c: from pixellab_src/pl_moose_c/base.png (variant of pl_moose) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 39)
+# head_top at (27, 18)
+# back at (37, 30)
+# tail at (49, 38)
+............oo^......................
+.........ooo13oooo...................
+........o221222133oo.................
+......oo311111111111o................
+...ooo22112212222122oooo.............
+..o21oo112222ooo22oo2112oo...........
+.o3332o1o2ooo22oo232233333oo.........
+.o3booo3o2o23112oo33occcba3o.........
+.o3aboooo3o13o322o3occcbba3o.........
+..oabobo2ooobab32oooccbb2a3o.........
+...o2owo222bwowb32obbbb223o..........
+....ooo3222bwoob323o22223o...........
+.....o32222bw33b323oooooB............
+...oo3333233aab3223o3333o............
+.ooo1113333b3332223o33322o...........
+ob131113313bb22223oo32333oo..........
+o1b133313b33b32333o3322oo............
+oco33333cob3b3333o332211o..oo.....ooo
+oco3333coob3b333o3321212ooobaoo...o2o
+obc3333ccb33booo33221222ocacaacooo22o
+o3b3333cb33bbo33321211o2occacaac3333T
+o3333333333bo33222A322oboacaccac2ooo.
+ob33333333bbo332221o32ooaacaacac13o..
+.ob333333bbo3322221o3oocbaccacac12o..
+.obbbbbbbbbo3212221oooocbaccacbc11o..
+..obbbbbboo33212o2oo2o2cbbccacbc11o..
+...oooooo3332212o3o3222cbbccacbc21o..
+......o333222o11oo33223cbbccbcbc22o..
+......oo33212o22oo33323cbbccbcbc22o..
+.......ooo112o22ooo332ocbbccbcbc22o..
+........oo212oooooo322ocbbcbccb222o..
+........oo312oooooo322ocbbcbcco322o..
+.........o332oooo.o322ooobcbooo3322o.
+..........o33o3oo.o222o..ooo3ooo332o.
+...........ooo3oo.o33oo...o33o..o33o.
+............ooo3o.ooo3o...o33o..o33o.
+.............o33o.oo33o...o33o..o33o.
+.............o23o.oo32o..oo33o..o33o.
+............ooo3o.oo22o.oocco..ooc3o.
+...........oobbco.ooc2ooobcco.oobbco.
+...........obobooocbbcoooooo..oboboo.
+............oooo.obobco........oooo..
+..................Pooo...............
diff --git a/parts_pl_src/body/pl_moose_d.txt b/parts_pl_src/body/pl_moose_d.txt
new file mode 100644
index 0000000..29842d1
--- /dev/null
+++ b/parts_pl_src/body/pl_moose_d.txt
@@ -0,0 +1,59 @@
+# pl_moose_d: from pixellab_src/pl_moose_d/base.png (variant of pl_moose) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 32)
+# head_top at (27, 9)
+# back at (37, 30)
+# tail at (49, 38)
+..................oooo...................
+...............oo^2222ooo................
+..............o3111122oo3o...............
+.............o32112223333oo..............
+............oo3112223o3333oo.............
+...oooooo.oo3o31222333222333o..oooooo....
+..o321113oo32oo222oo222222233oo221112o...
+ooo222122o3222o22oo3222222233322112222oo.
+o3333332o32122o3oo2222222223o22223333333o
+o3aboooo3111122oo22211111122o223ooooobb3o
+o33bbooo21111122222111111112ooooooobbb33o
+o333bboo22o22122222123332222oooooobbb333o
+.o333bo33ooo22222222ooooo2222oobbbba3333.
+..o333o3occoo2222223oooooo222oobaaaa333o.
+...oooo3owwoo222222owwoooo2222ooa33333o..
+......oocwwoc222222owwooco322233oooooo...
+......ooccooc222222ocoooco3222233o.......
+......oobboob222222ocoooao3222233o.......
+......oowbaab222222oaoooab3222233o.......
+......o3cwaa33333322aaaaa32222233o.......
+......o33cc3111111323aaa322112233o.......
+......oob221111112222332222112233o.......
+.....o311122111121112233222B22333o.......
+.....o32c12222222cc2122a32222333o........
+....o33coc322222cooc22Aab3333333o........
+....o33coc333333cooc333ab33333oo.........
+....o333cc333333ccc333aab33333o..........
+....ob3333333333333333abbooooooo.....ooo.
+.....ob33333333333333bbbbooooobaoo...o2o.
+.....obb3333333333aabbbbooocbbcaaoooo22o.
+......oobaaaaaaaaabbbboo3obcaaacao23333T.
+........obbbbbbbbbbboo333obcbbbcbo12ooo..
+.........ooooooooooo333322occbbcbo113o...
+..............o3bbbb333112oocccco2112o...
+..............o3bbbb3221122obccbo2211o...
+..............o3bbb333211222oooo32212o...
+..............o33333b32222322bb332221o...
+..............o33333b33222o22bb333222o...
+...............o3b33bo3223o33bbo33222o...
+...............o3oobbo3223oooboo33222o...
+...............o33oooo3223oooooo33222o...
+...............o33oo.o3223ooooooo3322o...
+...............o33oo.o3223oo3333oo3322o..
+...............o33oo.o322o..o333ooo332o..
+...............o23oo.o322o...o33o..o33o..
+...............o33o..oo22o...o33o..o33o..
+...............o33o..oo33o...o33o..o33o..
+...............o33o..oo33o..oo33o..o33o..
+..............ooooo..oo33o.ooooo..ooo3o..
+.............oobboo..ooo3ooobooo.oobcoo..
+.............obbooo.oobbooooooo..oboboo..
+..............oooo..oboboo........oooo...
+.....................Pooo................
diff --git a/parts_pl_src/body/pl_morel.txt b/parts_pl_src/body/pl_morel.txt
new file mode 100644
index 0000000..18c3fac
--- /dev/null
+++ b/parts_pl_src/body/pl_morel.txt
@@ -0,0 +1,46 @@
+# pl_morel: from pixellab_src/pl_morel/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 42)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 47) (from part/probe)
+# tail at (40, 55) (from part/probe)
+.............oooo.............
+...........oo1111oo...........
+..........o11a11112o..........
+.........o1aaa1oo212o.........
+........o3aco2^obo1o3o........
+........o1obbo1obo1o3o........
+.......o31obbo12bo1oo3o.......
+.......oo23bb2112112o3o.......
+......o2oo1221111oo1133o......
+......ooco1111co1obo133o......
+.....o3oc31oo13o1obo1co3o.....
+.....o33221obo1112bo3oo3o.....
+.....oo23co3bc1111oo1oo3o.....
+....o3o2obc1211co1121oco3o....
+....o3o22co111obbo1112oo3o....
+....oo231111o1obbo1co1223o....
+...o32oco11oco3oo21co12co3o...
+...o2occo1obbc11111cco3oo3o...
+...oocco313obc1boo1bco3oooo...
+..o2occ2oo1221obbbo1co33oo3o..
+.oo2223oco1111obbboo3332223oo.
+.o3oo2occo3ccoAcccco3coo2oo3o.
+o3oco2ccco3cco3333333occo2oo3o
+o3ooo2ccco33333333333occo2oo3o
+o33333oooooooooooooooooo33333o
+o33ooooob333333333333booooo33o
+.oobbbbo333111B1111333obbbboo.
+...ooooo31111111111113ooooo...
+......oo31oo111111oo13oo......
+.....o3331o1o1111o1o1333o.....
+....o11b31ooo1111ooo13b11o....
+....o1ob31aca1111aca13bo1o....
+...o11ob311111bb111113bo11o...
+...o13oo33111111111133oo31o...
+...o33ooo331111111133ooT33o...
+....oo..oo3333333333oo..oo....
+.........ooo333333ooo.........
+.........o33oooooo33o.........
+........o113o....o211o........
+........oooP......oooo........
diff --git a/parts_pl_src/body/pl_morel_b.txt b/parts_pl_src/body/pl_morel_b.txt
new file mode 100644
index 0000000..1c9c082
--- /dev/null
+++ b/parts_pl_src/body/pl_morel_b.txt
@@ -0,0 +1,49 @@
+# pl_morel_b: from pixellab_src/pl_morel_b/base.png (variant of pl_morel) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 38)
+# head_top at (31, 19)
+# back at (31, 47)
+# tail at (41, 55)
+............ooooo..ooooo............
+..........oo111a3^o32212oo..........
+........ooccwaaaa3o22oo21ooo........
+.......o1ccc1cccc331ccco1ocooo......
+.....oo3222221222331ccco11oo23o.....
+....o12ooo13332221311111111113oo....
+....o2occo322131oo31113333321oco....
+..oo113oo32cc11oco3133222oco1ocoo...
+..oco111321cc121o33231121ooo2oco3o..
+.occcc11311cc11111331112233311o33o..
+.occco13211111ooo13311oco22131113oo.
+.o3oo21oooo11occo13312oco121131oooo.
+o33211occco111ooo13111oo21occo1ocoo.
+o3oo11occc3212211131111221occc33oo3o
+o3oo112ooo2ooo21113112ooo2occc33233o
+o3o32111212occo113331occco1ooo33333o
+o333ooo2111occo133333occco113333oo3o
+o333occo3333oo33333333ooo3333333oo3o
+.o333ooo333333333ooo333333333oo333o.
+.oo3333333ooooooo333oooooo333oo33oo.
+...o3333ooo333111A1111333ooo3333o...
+....ooooooo31111111111113ooooooo....
+.........oo31oo111111oo13oo.........
+.........ob31owo1111owo13bo.........
+.........ob31ooo1111ooo13bo.........
+........oob31aca1111aca13boo........
+.......o33o321111bb111113bo3o.......
+......o313oo3211111111133o333o......
+......o21333o3211111122oo3313o......
+.....o3111333oo22B222oo3331113o.....
+.....o111b31333oooooo33313b111o.....
+....o3113b3111333333331113b1113o....
+....o311o331111111111111133o113o....
+....o311o311111111111111113o113o....
+....o333o311111111111111113o333o....
+.....o33o331111111111111133o33o.....
+......ooo333111111111111133ooo......
+.........o33311111111111333T........
+..........o333311111113333o.........
+..........ob333333333333bo..........
+..........ob333oooooo333bo..........
+..........o111bo....ob111o..........
+..........ooooP......ooooo..........
diff --git a/parts_pl_src/body/pl_morel_c.txt b/parts_pl_src/body/pl_morel_c.txt
new file mode 100644
index 0000000..df2fc2c
--- /dev/null
+++ b/parts_pl_src/body/pl_morel_c.txt
@@ -0,0 +1,64 @@
+# pl_morel_c: from pixellab_src/pl_morel_c/base.png (variant of pl_morel) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 38)
+# head_top at (31, 5)
+# back at (31, 47)
+# tail at (40, 55)
+.............o............
+.............o............
+............^o............
+............oo............
+............o1o...........
+...........o31o...........
+...........o3co...........
+...........o3bo...........
+...........oc13o..........
+...........oc13o..........
+..........o2313o..........
+..........o211oo..........
+..........o31oco..........
+..........o313c2o.........
+..........oo1132o.........
+.........oobo112o.........
+.........oobo112o.........
+.........o2b311oo.........
+.........o22111ooo........
+........o2211112oo........
+........oo21ooo12o........
+........ooo1obo12o........
+.......o2oo13bo122o.......
+.......o2o21111132o.......
+.......o2211bo1c32o.......
+.......o2oo13o1cc2o.......
+......o22obo111cc2oo......
+......ooo2bb111cc2oo......
+......obo1211oo113ooo.....
+......ooo111obbo132oo.....
+.....o2211o1obbooo32o.....
+.....oo21obo2oo1bo322o....
+....ooo2obbb1111bbo3oo....
+....oo231bb21oo1bbb3ooo...
+...o222oo111obbo1bb32oo...
+..oo22obo111oAbbo1133o2o..
+..ooo2obo1bo3oooo1oo3ooo..
+.ooco3bbo3bo333333oco3ooo.
+o22oo3bbo332333333occ2oo2o
+o23333ooo332333333ooo2322o
+o2333oooooooooooooooo3332o
+o33oobob3333333333boboo32o
+.oobbbo331111111133obbboo.
+...oooo311111111113oooo...
+......o2oo11B111oo2o......
+.....o22owo1111owo22o.....
+.....o22ooo1111ooo22o.....
+....o2o2aca1111aca2b2o....
+....oco21111bb11112oco....
+...ocoo221111111122occo...
+...o13oo2211111112oo31o...
+...o13ooobbbbbbbbooo31o...
+....oo.ooobbbbbbooo.oT....
+........o22oooo22o........
+........o12o..o21o........
+........o13o..o31o........
+.......o113o..o311o.......
+.......oooP....oooo.......
diff --git a/parts_pl_src/body/pl_mosquito.txt b/parts_pl_src/body/pl_mosquito.txt
new file mode 100644
index 0000000..298afb1
--- /dev/null
+++ b/parts_pl_src/body/pl_mosquito.txt
@@ -0,0 +1,42 @@
+# pl_mosquito: from pixellab_src/pl_mosquito/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 45)
+# head_top at (31, 33) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (43, 53) (from part/probe)
+.............oo....oo.............
+............31o....o13............
+............31o....o13............
+............1o......o1............
+...........31o......o13...........
+...........2o........o2...........
+...........o2o......o2o...........
+............cooooooooc............
+............oo11^111oo............
+...........o2111111112o...........
+..........o211111111112o..........
+.........obbb11111111bbbo.........
+........oba1ab111111ba1abo........
+........ob1bab111111b1babo........
+........ocbccb111111bccbco........
+........ocbccb211112bccbco........
+.........ocbbc21B312cbbco.........
+......oo..occ32322323cco..oo......
+.....oa1oo.o333o11o333o.oo1ao.....
+.....ob313o.oooo11oooo.o313bo.....
+....o13oo33oo33oA1o33oo33oo31o....
+....o1o..o33oo3o33o3oo33o..o1o....
+....o1o...oo3o33oo33o3oo...o1o....
+....o1o...o23o23oo32o32o...o1o....
+....o1o...o1o321oo123o1o...o1o....
+....o1o..oa1o333oo333o1ao..o1o....
+...o13...obo.o22oo22o.obo...31o...
+...o13...o1o..o3oo3o..o1o...31o...
+...o1o...o1o...oooo...o1o...T1o...
+...o3o....o1o...oo...o1o....o3o...
+..o13o....o1o...oo...o1o....o31o..
+..o1o......3o...oo...o3......o1o..
+..o3o......3o...oo...o3......o3o..
+.o33.......3o........o3.......33o.
+o33o......obo........obo......o33o
+ooo.......oP..........oo.......ooo
diff --git a/parts_pl_src/body/pl_mosquito_b.txt b/parts_pl_src/body/pl_mosquito_b.txt
new file mode 100644
index 0000000..6b35cbc
--- /dev/null
+++ b/parts_pl_src/body/pl_mosquito_b.txt
@@ -0,0 +1,48 @@
+# pl_mosquito_b: from pixellab_src/pl_mosquito_b/base.png (variant of pl_mosquito) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 39)
+# head_top at (31, 19)
+# back at (31, 41)
+# tail at (45, 53)
+................ooo^oooo...............
+.............ooobb22222booo............
+...........oo2bbbb22222bbb2oo..........
+.........oo222bbb222222bbb222o.........
+.......oobb221aab2222222bb2222oo.......
+......o2bbb211aab1122222bb22222bo......
+.....o22bb1112aaoo2222oobbb2222bco.....
+....o222ba1112a31o2222o13bb2222bbco....
+...o221bb11112a31o2222o13bb22222bc3o...
+...o222bb11112b1o222222o1bb22222bb3o...
+..o2212bb2112b31o222222o13b22222bb3o...
+..o2112bb2122b3o22222222o3b222222bb3o..
+.o2211bbb2222bo2o222222o2ob222222bb3o..
+.o2211bb22222bbboooooooobbb2222222bb3o.
+.o2222bb22222bboo222222oobbb222222bb3o.
+.o222bbb22222bo3221111223obb222222bb3o.
+o2222bbb22222o322111111223ob222222bb33o
+o2222bbb2222oaaa21111112aaao2222222b33o
+o2222bbb222oaa1aa211112aa1aao222222b33o
+o2222bbb222oa1aaa222222a1aaao222222bc3o
+o3222bbb222obacca22A222accabo222222bc3o
+o3222bbb222obacca322223accabo222222bc3o
+o3322bbb2oo2obaab32B323baabo3o22222bc3o
+o3322bb3o12obob33oo22o33bbobo2o2222cc3o
+.o332bbo2oo2bboooyyoooo33obb2o2o222cc3o
+.o332bbo3222bbozy1zyyyooo3bb22oo22cc3o.
+.o333bbo3222bbozyyy11yyo33bb2232o2cc3o.
+..o33cbo2o22bbcozyyyyzzo2bbb2232o2cc3o.
+..o333co2o22bbbcozzzzyz22bbb22o2o3cco..
+...o33co3o322bbb3oozzyo22bbb22o2o3coo..
+....o3cco3222bbb233ozyo22bbb223o33co...
+....oo3c33222bbb2223ozo22bb2233333o....
+.....oocc3333cbb2222oo222bc333333o.....
+......ooc3333ccc22222222ccc33333oo.....
+......o3o33333ccc3333333ccc3333o2T.....
+......o3ooo333ccc3333333cc333ooo3o.....
+.....o23o..oo3ccc333333ccc3oo..o32o....
+.....o2o.....ooocc33333cooo.....o2o....
+.....o3o......3oooooooooo3......o3o....
+....o3o.......3o........o3.......33o...
+...o33o......oao........oao......o33o..
+...ooo.......oP..........oo.......ooo..
diff --git a/parts_pl_src/body/pl_mosquito_c.txt b/parts_pl_src/body/pl_mosquito_c.txt
new file mode 100644
index 0000000..e5771cf
--- /dev/null
+++ b/parts_pl_src/body/pl_mosquito_c.txt
@@ -0,0 +1,42 @@
+# pl_mosquito_c: from pixellab_src/pl_mosquito_c/base.png (variant of pl_mosquito) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 45)
+# head_top at (31, 30)
+# back at (31, 41)
+# tail at (45, 53)
+............c....c............
+...........b......b...........
+..........ac......ca..........
+.........bc........cb.........
+.........ac........ca.........
+.........bc...^o...cb.........
+.........cc.oo11ooocc.........
+.........occ111111cco.........
+........o1cc111111cc1oo.......
+.......o11331111113311o.......
+......o1111111111111111o......
+.....o111bb11111111bb111o.....
+.....o11awab111111bawa11o.....
+.....o1bwbab211111bwbab1o.....
+....o31bbccb311113bccbb11o....
+....o31cbccb321113bccbc13o....
+.....o33cbbc32B213cbbc33o.....
+.....o333cc33322o33cc333o.....
+.....oo333333oooo333333oo.....
+....o33333333311333333333o....
+...o11133333333A3333333211o...
+..o111233333333333333333111o..
+.o11113333113333331133331111o.
+.o11113333111133111133331111o.
+o111133o33111111111133o312111o
+o311133o33211111111233o332121o
+o331333o33331111111333oo32223o
+.o3333o.o333311113333o.o3332o.
+.o333o..o333332233333o..o333T.
+..o33o.o133o333333o321o.o33o..
+...oo..o113oo3333oo311o..oo...
+.......o33o..oooo..o33o.......
+.......o33o........o33o.......
+........o33o......o33o........
+.......o333o......o333o.......
+.......oooP........oooo.......
diff --git a/parts_pl_src/body/pl_moth.txt b/parts_pl_src/body/pl_moth.txt
new file mode 100644
index 0000000..55ee3ce
--- /dev/null
+++ b/parts_pl_src/body/pl_moth.txt
@@ -0,0 +1,42 @@
+# pl_moth: from pixellab_src/pl_moth/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 44)
+# head_top at (31, 30) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (45, 54) (from part/probe)
+.........ooooo............ooooo.........
+........o22111oo........oo11122o........
+.......o22122211o......o11222122o.......
+.......o22222222o......o22222222o.......
+.......3oooooo222o.oo.o222oooooo3.......
+..............oo2oo^ooo2oo..............
+...........oo..o2oo33oo2o..oo...........
+...........o3ooooo3223ooooo3o...........
+.........ooo33o3221112223o33ooo.........
+........o33o3o332111111233o3o33o........
+........o333o33221111112233o333o........
+.......ooo3o3232221111222323o3ooo.......
+......o2222o33woo222222oow23o2222o......
+.......oo22o3wo3wo2B22ow3ow3o22oo.......
+......o222oo3wow3o2222o32ow3oo222o......
+.....o21112o3wo2oo2222oo2ow3o21122o.....
+.....oo3111o32aoo222222ooa23o1113oo.....
+......oo2111o32222222222223o1112oo......
+.....o3o21111oo3222oo2223oo11112o3o.....
+....o33o321bb113o33A333oo11bb13oo33o....
+...o223ooo21111113ooooo1111112ooo322o...
+..o2223ooo21211111111111112122ooo3222o..
+..o312oo3oo222112111111111222oo3oo212o..
+.o133oo233o3o21221111112212o3o332oo231o.
+.o113o1233ooo22322211222322ooo3321o311o.
+o1111oo22333oo2o2o2222o2o2oo33322oo1111o
+o11112oo2123oooo2oo22oo2oooo3212oo21111o
+o31112oo12oo333oo3oooo3oo333oo21oo21113o
+o313123oooooo3333323333333333oooo321213o
+o332333333ooo3223o3223o3223ooo333T33233o
+.o33333333ooo3222o3333o3223ooo33333333o.
+.oo33333oo.o3o2123o33o3222o3o.oo33333oo.
+...ooooo...o3o3113o33o3113o3o...ooooo...
+..........o333o11oooooo11o333o..........
+..........o33oo13o....o31oo33o..........
+...........oo..oP......oo..oo...........
diff --git a/parts_pl_src/body/pl_moth_b.txt b/parts_pl_src/body/pl_moth_b.txt
new file mode 100644
index 0000000..8eebfba
--- /dev/null
+++ b/parts_pl_src/body/pl_moth_b.txt
@@ -0,0 +1,48 @@
+# pl_moth_b: from pixellab_src/pl_moth_b/base.png (variant of pl_moth) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 40)
+# head_top at (31, 23)
+# back at (31, 38)
+# tail at (44, 54)
+.....ooo............ooo.....
+...oo111oo........oo111oo...
+...o112213.......o2132212o..
+..o112oo32o......o23oo311o..
+.o1123o.o33o.^o.o23o.o3211o.
+.o1223o..o3oo33oo3o..o3221o.
+.o223o..oo33322233oo..o322o.
+.o22o..o332211112223o..o22o.
+.o22o.oo332111111223oo.o22o.
+..oo..o33211111112223o..oo..
+.....o3233221111222233o.....
+.....o33woo222222oow33o.....
+.....o3wo3wo2222ow3ow3o.....
+.....o3wow3o2222o32ow3o.....
+...oo33wo2oo2222oo2ow33oo...
+..o22232aoo222222ooa23222o..
+..o211bc222222222222cb111o..
+..o32111oo222oo2223311122o..
+..o3211111oo3333oo111112o...
+...oo1111111oBoo2111112oo...
+...oo221111111111111212o....
+....oo3222221A1112222ooo....
+...o3ooo232o21123232oo33o...
+...o333ooo2o2222o2ooo333o...
+..o333o33oo2oooo3o333o333o..
+..o313o33122222222213o313o..
+.o111occ331111111133cco111o.
+.o111o3cbbbbbbbbbbbbc3o111o.
+o3113o31111bbbbbb11113o3113o
+o3113ocb111111111111bco3113o
+o1113o3bbbbbbbbbbbbbb3o3111o
+o1113o311bbbbbbbbb1113o3111o
+o1113o3211111111111123o3111o
+o3133o3322111111112233o3313o
+.o13oo3332221111122333oo31o.
+.o33o.o33333333333333o.o33T.
+..oo..o33333333333333o..oo..
+......o3333oooooo3333o......
+......o3133o....o3311o......
+.....o21112o....o21111o.....
+.....o33333o....o33322o.....
+......ooooP......ooooo......
diff --git a/parts_pl_src/body/pl_moth_c.txt b/parts_pl_src/body/pl_moth_c.txt
new file mode 100644
index 0000000..f68f7de
--- /dev/null
+++ b/parts_pl_src/body/pl_moth_c.txt
@@ -0,0 +1,47 @@
+# pl_moth_c: from pixellab_src/pl_moth_c/base.png (variant of pl_moth) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 41)
+# head_top at (31, 25)
+# back at (31, 38)
+# tail at (44, 54)
+.........ooooo............ooooo.........
+........o22222oo........oo22222o........
+.......o22222222o......o22222222o.......
+.......o22222222o......o22222222o.......
+........oooooo222o....o222oooooo........
+..............oo2oo^ooo2oo..............
+..........oo...o2o3333o2o..oo...........
+..........o3o.ooo32cc22ooo.o3o..........
+......ooooo3oo32222cc22223o33ooooooo....
+......o21122o322cc2222cc223o3221122o....
+....ooo2112o3322cc1221cc2233o21122o.....
+...o222111o33cac211111122ac33o11222o....
+..o221111o332ccc211111122cc233o111112o..
+..oo22112o32222222111122222223o111122o..
+..o21111o33222woo222222oow22233o11222o..
+.o211111o3222wo3wo2222owoow2223o111222o.
+.o222112o3222wow3o2222o33ow2223o111112o.
+o2221112o3222wo2oo2222oo2ow2223o111111o.
+o2221111o33233aoo22B222ooa33233o1112222o
+ooo111112o33aa222222222222aa33o21111232o
+.o21211112o33222222oo22222233o21112112oo
+.o222211112ooo322222A22223ooo211112222o.
+.o222112111222ooo322223ooo222111111222o.
+.oo22121111111111oooooo1111111111212o3o.
+..o231212111111111111111111111211232oo..
+..ooo22321211211111111111111211222o2o3o.
+.o33o22o22212211211111211121211222oo33o.
+o3223ooo2221221121211222112122222oo3323o
+o3223o3o3o2222212221122212322oo2ooo3223o
+o3223o33o3o22o222222222222o22o3o33o3223o
+o3223o33333o2oo22o2222oo223oo33333o3223o
+.o223oo3322oo23oo3o22o22oo2332233oo322o.
+.o323oo332222223323oo222222222233oo323o.
+..ooo.o33322222222233222222222333o.ooo..
+.......o333222222222222222222333T.......
+........o3332222222222222233333o........
+.........o3333333333333333333oo.........
+.........o33333333333333333333o.........
+........o322233oooooooooo332223o........
+........o322223o........o322223o........
+.........oooooP..........oooooo.........
diff --git a/parts_pl_src/body/pl_mourner.txt b/parts_pl_src/body/pl_mourner.txt
new file mode 100644
index 0000000..6260189
--- /dev/null
+++ b/parts_pl_src/body/pl_mourner.txt
@@ -0,0 +1,50 @@
+# pl_mourner: from pixellab_src/pl_mourner/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 40)
+# head_top at (31, 21) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (49, 52) (from part/probe)
+.................cccccccccc.................
+...............cc2222222222cc...............
+.............cc22222222222222cc.............
+............c222222222222222222c............
+...........c222222222^2222222222c...........
+..........c2222222222222222222222c..........
+.........c22222222223bb32222222222c.........
+........cc2222222cb22bb22bc2222222cc........
+........c2222cb2cbo223322ob22c22222c........
+.......cc2222c2bco23322332obb222222cc.......
+.......cc2cbo2c2o2o233332o232b2obc2cc.......
+......occccoocco2ooo2332ooo23b32occcco......
+......occco33oo3oo2oo22oo2oo2o2o3occco......
+.....occco3oo33o22222oo2222o333oo3occco.....
+.....occco3o2oo2212122221212ooo2o3occco.....
+.....occo3o2222212211111122122222o3occo.....
+....occo3o221112332111111233211122ooocco....
+....ocooo221123oob211B1112boo321122oooco....
+....occoo22233oaab21111112baao33222oocco....
+....occoo333bboaab21111112baaobb333oocco....
+...occooo22bzbooob21333312booobzb22ooocco...
+...occooo22b2booob23yyyy32booob2b22ooocco...
+...occo33o2a1zbaa12zb11bz21aabz1a2o33occo...
+...occoo3o221111122zzA1zz221111122o3oocco...
+..ooooo3o2212222211bcyycb1122222122o3ooooo..
+..oooo3o32111111111bzbbzb11111111123o3oooo..
+..ooooo3211111111112bbbb2111111111123ooooo..
+.oo2oo23221211111111222211111111212232oo2oo.
+.o1122233222111111111111111111112223322211o.
+.o1111233332211211111111111121122333321111o.
+.o1111233223322211121111211122233223321111o.
+o211122332222333211211112112333222233221112o
+o211122333222223222322223222322222333221112o
+o211122333322222333322223333222223333221112o
+o211222333332222222233332222222233333222112o
+o212222o3333322222222222222222233333o22T212o
+o22222ooo33333332222222222223333333ooo22222o
+o2222o..oo333333333322223333333333oo..o2222o
+o222o....oo3333333333333333333333oo....o222o
+.ooo.......oobbb333333333333bbboo.......ooo.
+...........obbbbbo33333333obbbbbo...........
+..........obabaabboooooooobbaababo..........
+..........boboaobbo......obboaobob..........
+..............oboP........oobo..............
diff --git a/parts_pl_src/body/pl_mourner_b.txt b/parts_pl_src/body/pl_mourner_b.txt
new file mode 100644
index 0000000..ddcaa12
--- /dev/null
+++ b/parts_pl_src/body/pl_mourner_b.txt
@@ -0,0 +1,49 @@
+# pl_mourner_b: from pixellab_src/pl_mourner_b/base.png (variant of pl_mourner) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 42)
+# head_top at (31, 18)
+# back at (31, 34)
+# tail at (54, 52)
+......................cccc^ccccc......................
+....................cc2222222222cc....................
+..................cc22222222222222cc..................
+.................c222222222222222222c.................
+................c22222222222222222222c................
+...............c2222222222222222222222c...............
+..............c22222222223bb32222222222c..............
+..............c2222222c222bb22bc2222222cc.............
+.............c22222b2bb32233223b22222222bc............
+............c22222232b3233223323bbc2b222bc............
+............c222222bc32o233332o23222b222cco...........
+...........oc22cc3bb32ooo2332ooo23bb33b22co...........
+...........oc22c32232oo2oo22oo2oo23323b22co...........
+..........occ22ooo222o2222oo2222o233oo3b2cco..........
+..........oc22c3o2ooo222222222222ooo2o3b22co..........
+..........oc2cc3o222233o111111o332222o3oc2coo.........
+.........occ2coo2233oooo11B111oooo3322oocccco.........
+.........oc2cco223ooooao111111oaoooo322occ2co.........
+.........oc2c3o22oaboooo111111oooobao12o3c2co.........
+........occ2co222oaaaao21333312oaaaao122oc2cco........
+........oc22co22122333213xxxx31233322112oc2cco........
+........oc22co2111222211yb11by1122221112o22cco........
+........oc2cco2111111111yy11yy1111111112oc2cco........
+.......occ2co21111111111bbxxbb11111111112o22cco.......
+.......occ2co21111111111bybAyb11111111112o222co.......
+.......oc22o3211111111112bbbb2111111112123o22co.......
+......occ22o32b1211111111222211111111211b3oc22co......
+......occ2co33bb21111111111111111111122bb3oc22co......
+......occ2co333322b1211111111111121b223333oc22co......
+......oc22co332233bb21112111121112bb332233oc22co......
+.....occ22co332222bb32112111121123bb222233oc22cco.....
+.....occ22co333222223222322223222322222333oc22cco.....
+.....occ22bo333322222333322223333222223333oc2bcco.....
+.....occ22bo333332b2222223333222222b233333oc2ccco.....
+....occcc2bco3333bb2222222222222222bb3333occ2ccccT....
+....occbc2bcoo3333b3322222222222233b2333oocc2cccco....
+....occcc2bccoo333333bb3322223b33333333ooccc2cccco....
+....oc2cc2ccccoo3333333333333333333333oocccc22ccco....
+...occ2cc2ccccccoobbb333333333333bbboocccccc22cc2co...
+.ccc222c22ccccccobbbbbo33333333obbbbboccccccc22cc2ccc.
+occ22cc22cccoooobabaabboooooooobbaababoooocccc2ccc2bco
+occcccccccco...boboaobboooooooobboaobob...occccccccbco
+.oooooooooo........oboP........oobo........oooooooooo.
diff --git a/parts_pl_src/body/pl_mourner_c.txt b/parts_pl_src/body/pl_mourner_c.txt
new file mode 100644
index 0000000..ad7fbbe
--- /dev/null
+++ b/parts_pl_src/body/pl_mourner_c.txt
@@ -0,0 +1,50 @@
+# pl_mourner_c: from pixellab_src/pl_mourner_c/base.png (variant of pl_mourner) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 40)
+# head_top at (31, 17)
+# back at (31, 34)
+# tail at (51, 52)
+..................www^wwww..................
+...............1bbbbbbbbbbbbb1..............
+............1bbbww111111111wwbb.............
+...........1bbww11111111111111bb1...........
+...........bbw111111111111111111bw..........
+..........bw111111111111111111111bb.........
+.........bb11111111111111111111111b1........
+........bb111111111111111111111111ww1.......
+.......1b111wbb11bbbb11bbbb111bw1111b.......
+.......bb111bb1bbb33bbbb33bbbb3b1111b1......
+......bb1111b333333233332333333bw1111b......
+.....2b111bb33332232233223323323wb111b1.....
+.....bw111b3322333322222233332233bw111b.....
+....wb111bb3233ooc32222223coo33223b111b1....
+....b1111b3333obbc32222223cbbo3333b1111b1...
+...bb1111b33ccobbc32222223cbbocc33bb1111b...
+...bw111b33czcoooc32333323coooczc33b1111b...
+..wbw111b33c2coooc33yByy33coooc2c33b1111bb..
+.1bb1111b33a1zccc13z3113z31cccz1a33b1111wb1.
+.bbw111bb3331111122zz11zz2211111233bb1111wb.
+1bww1a1b332232222223cyyc322222222233b11a1wb1
+bww11aab333232222223zzzz322222232333baaa1wwb
+wbbb1abcoo333222222233332222222333oocbaabbb1
+.oo3bbocccooo33oooo222A22oooo333ooccc1bb3oo.
+.o33333ooccccoocccco3222occccoooccccoo3333o.
+.o33322233occcocccccoooocccccocccco33333333o
+o3333222223ooooccccooccooccccoooo3322223333o
+o3332222122233occcccoccoccccco3332211222333o
+o3332222112222occccoooooocccco2222112222333o
+o33332221222223ooooco33ocoooo32222112223333o
+o3333222222212233occo32occo3322222122223333o
+.o33322222221222occo3223occo22122212222333o.
+.o33323222222222ooco3223ocoo22122222232333o.
+.o3333323222222123oo2123oo2212222222232333o.
+..o33332322222221233212233222222222323333o..
+..o33333332322222222212222222222222323333T..
+...o333333232223222222222222232223233333o...
+....o3333333232322322222232223223333333o....
+.....oo333333323323222222322332333333oo.....
+.......oo333333333333333333333333333o.......
+.........oo33333333333333333333333oo........
+..........oc33333333333333333333co..........
+..........cocococcooooooooccocococ..........
+..............ocoP........ooco..............
diff --git a/parts_pl_src/body/pl_mudskipper.txt b/parts_pl_src/body/pl_mudskipper.txt
new file mode 100644
index 0000000..570f651
--- /dev/null
+++ b/parts_pl_src/body/pl_mudskipper.txt
@@ -0,0 +1,44 @@
+# pl_mudskipper: from pixellab_src/pl_mudskipper/base.png (pixellab_library.py extract)
+# pivot at (41, 60)
+# aura at (33, 45)
+# head_top at (35, 32) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (50, 51)
+......................ooo.............
+.....................o122oo...........
+.....................o1232o...........
+....................o113322o..........
+....................o123223o..........
+..................oo2233233o..........
+.................o12o233233o..........
+.................o123o33333o..........
+.................o1233o3333o.....oo...
+.................o1333^o333o....o33o..
+...............oo3233333oo3o...o333o..
+.............oo323o3332333oo..o33322o.
+........ooooo332212212oooo23o.o33323o.
+.......o1ww11o1111111oww11o23o333233o.
+......o1wwooo2o11111owwooo2o3o333333o.
+......o1cwow2o2311131cwow2o2o3o33333o.
+......owbooooo1311B3wbooooc1o33o3332o.
+......owa2ooo3231113wa2ooob1o33o3323o.
+.....oowa2wo23231113wa2wo2b1o2oo33333o
+....o232w312312311132w312312oo21o3333o
+...o232o21111o3211123211112o32232o333o
+..o1233o3oooo321111123ooooo3332231o22o
+..o232o3333332111111A233333333o3122o2o
+.o3223oba22221111111112222aab3o32233oo
+.o2323oaaa222122222221222aaab3o32322o.
+.o3233o3b22221111111112222bbb3o33233o.
+o3333o332221121211212212222233o333222o
+o2223o3a2221ba222222abb21223a3o332222o
+o2222o3a322booobbbbbooob2223a3o322222T
+o33333o331aoc1baaaaabc1oc22233o333333o
+o112333o322ac2cccccccc2ca2233o3332111o
+o2222333o2222112111122222233o33322222o
+o22223233o322bbaaaaaabb2223o332322223o
+.o223222333ooa32222223333o3332223222o.
+.o33222333333ooooooooooo333333222323o.
+..o33233333oo...........oo333332333o..
+...o33333oo...............oo33333oo...
+....ooooo...................Poooo.....
diff --git a/parts_pl_src/body/pl_mudskipper_b.txt b/parts_pl_src/body/pl_mudskipper_b.txt
new file mode 100644
index 0000000..b591043
--- /dev/null
+++ b/parts_pl_src/body/pl_mudskipper_b.txt
@@ -0,0 +1,56 @@
+# pl_mudskipper_b: from pixellab_src/pl_mudskipper_b/base.png (variant of pl_mudskipper) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (32, 40)
+# head_top at (35, 11)
+# back at (31, 39)
+# tail at (50, 51)
+.......................o^oo...............
+......................ocaco...............
+.....................ocabco...............
+....................ocabbco...............
+...................ocabbbco...............
+...................oaacbbco...............
+..................ocabcbbco...............
+..................oabbcbbco...............
+.................oaabbcbbcooo.............
+.................oabbbcbbccbbo............
+................obacbbcbccbbabo...........
+................oabcbbcbccbbbbo...........
+................oabcbbcbccbbbco...........
+................oabcbbcccccbccoo..........
+................oabcccooooobccbo..........
+..............ooobcco322bb3oocbbo.........
+............oo11obc322222bbb2ocbo.....oooo
+...........o1111oo111112222b12ooo....o212o
+..........o1111111111111222bbb1bbo..o2122o
+.......oooo11111111oooo2122bbb1bbo.o21223o
+......o1111o111111o1111o2122bb1bb1oo22223o
+.....o11ooo231111o11ooo13111bb1bb1oo32233o
+.....o1oo1o131111o1oo1o13321111bb1co33333o
+.....o1oooo131111o1oooo13321111bb1cco333o.
+.....o13oo3131111o13oo313321111bb1cco322o.
+....o31333113111131133a13321111111233o22o.
+...o323111131111113111132221111112233o323o
+...o123333321111112333332111111112233o323o
+..o11aa2221111111112B221aaa1111122223o333o
+..o11aa11113111131111A11aaa1132222111oo3co
+..o31111111111111111111111111322211111o33o
+.oo311111111111111111111111223232211bbbo3o
+.o233111113ooooo3111111111223323322bbbbo3o
+o1333311oo3111113o33111111333222322bb112oo
+o1323333333111111133o1222332222232111112oo
+o132233333333333333333333322222223311112o.
+o232111333333333333333333112222223311112o.
+o232111111333333333333111111222223331113o.
+o332311111111111111111111111222223333133o.
+.o3211133111111111111113311122222333333o..
+..o3y1111333311111333331111122233333oooT..
+...o311111111111111111111113233333333o....
+...o333111111111111111111133332112333o....
+....o3331111111111111111333332111233o.....
+....o2333333zz11111111333333211bbbco......
+.....oc333333333333333333b332bbbbcco......
+.....o333o33bb3333333333bbo33333333o......
+....o1223333oooooooooooooooo3321123o......
+...o3122333o...............o3222223o......
+....ooooooo.................Poooooo.......
diff --git a/parts_pl_src/body/pl_mudskipper_c.txt b/parts_pl_src/body/pl_mudskipper_c.txt
new file mode 100644
index 0000000..0853e32
--- /dev/null
+++ b/parts_pl_src/body/pl_mudskipper_c.txt
@@ -0,0 +1,44 @@
+# pl_mudskipper_c: from pixellab_src/pl_mudskipper_c/base.png (variant of pl_mudskipper) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (33, 44)
+# head_top at (35, 23)
+# back at (31, 39)
+# tail at (56, 51)
+..............................ooo.................
+...........................^oo112o................
+.........................oo222112o................
+.......................oo12232122o................
+......................o11222321322o...............
+......................o12323322322o...............
+.....................o123323323323o...............
+.....................o1333333332332o..............
+..................oooo3333333333332o..............
+...............ooo11133322112223333oooo........oo.
+..............o22111111122222212233o222o.....oo11o
+.............o1111112111122312222133o33o....o1111o
+............o211111122311122322222332oo....o1112o.
+........oooo21111111211111222211222322o....o1122o.
+.......o211231221112212oooo222313223222o..o11221o.
+......oo21113111222112oww11o223332222122oo122212o.
+......o1oo1123111111311www11o222212222223o12222o..
+.cac..o1owo2231111131woBoow1o3222222c2223332233o..
+.caac.owoooo331111131wowoow1o322222cac223333332o..
+.cbaaoow2oo1131111131w2ooow1o33222caac321222222o..
+.cbbaoow2o21131111131w2oo2w1o3332caacc323232222o..
+caaacoo12121221111132w21221ao333caacc3333233333o..
+caabbcoo111232111112321wwA1o333cabbaac333333322o..
+.ccccc33ooo32211111223ooooo333ccaaaaac333333332o..
+.caacobb333323111o322222222bbbccccccc33333o3333o..
+.caccobyb2222211122222222yyybbcccaaac33332o3322o..
+..ccaobbb2222222222222222yyybbcacccac3333co33323o.
+...co222222211111122222222bbbbcaabbc33333o.o3332o.
+....o22222221111111222222222233caac333o3c...oo33o.
+....o3322221ooooo2211222222223o3cc32222oo.....ooT.
+.....o332233yyyyyoo12112222233o2o3322122o.........
+....oo33332yy1111y2oo22222223o22o3222112o.........
+..oo33o222yyyyyyyyyyy3oo3ooo2222oo3222223o........
+.oo1233o222yyyyyyyy1yyyyyyy32222co33222321o.......
+o1222333oo223yyyyyy2yyyyy2222222co333222211o......
+o222333oo.oo222223333222222222ooo.o333222211o.....
+ooooooo.....ooocc222222222oooo.....oo3322222o.....
+...............oooooooooPo...........oooooooo.....
diff --git a/parts_pl_src/body/pl_mudskipper_d.txt b/parts_pl_src/body/pl_mudskipper_d.txt
new file mode 100644
index 0000000..19ecbea
--- /dev/null
+++ b/parts_pl_src/body/pl_mudskipper_d.txt
@@ -0,0 +1,47 @@
+# pl_mudskipper_d: from pixellab_src/pl_mudskipper_d/base.png (variant of pl_mudskipper) (pixellab_library.py extract)
+# pivot at (41, 61)
+# aura at (33, 44)
+# head_top at (35, 21)
+# back at (31, 39)
+# tail at (52, 51)
+........................^o..................
+.......................oaao.................
+......................oaabo.................
+....................ooaa2booo...............
+...................oa2a22bbbo...............
+..................o2a222222bbo..............
+.................o121222222boo..............
+.............oo.o3121222332333o.............
+............o21oo2121222333333oo............
+............o1133212112332222222o...........
+...........oo11232121122211223333oo.........
+.......oooo3211132111122112233333bbo........
+......o2111222111221112111222111122aoo......
+.......o2222222112211221222222222222aao.....
+......oo32ooooo221221212oooo2222222222ao....
+.....o222o1ww11o2222222oww11o222111122aao...
+.....o21o1wwooo3o22222owwooo3o22222222aaao..
+....o222o1cwow3o3322231cwow3o3o222233333bao.
+...o2222owbooooo1322B3wbooooc1o22222233bbbbo
+..o21112owa2ooo3332223wa2ooob1o222122223ooo.
+..222222owa2wo23332123wa2wo2b1o32222333bbo..
+.o22221233w212212321233w212213o32222233bbbo.
+..o321122o31111o3211123211113o33221122333bbo
+.o321111233oooo3211111A3ooooo332222222233bbo
+o2222211222222222111111122222222122222223oo.
+o33332112aa22222222111122222aa22111222323o..
+ooa32112baaa222222222222222aaab2111132333o..
+.oa32222bbb22212211111222222aab2211133333o..
+oaa3122222222222222222222222222222213333bo..
+oa331233222222ccccccccccc2212222232123333o..
+oa33223322222cooobbbbboooc22222223322333oT..
+oo3323323222coc1baaaaabc1oc322222232233bo...
+..o333323223ccc3cccccccc3cc322222233333bo...
+..ob3332332322222222222222222222223333bbo...
+..ob3332333222222322222222233222323333obo...
+..obob33333323233322323222233323333b33oo....
+..ooob3b333333333332333322333333333bbbo.....
+....obbb3b333o33oo3b333o32oo333bb33booo.....
+.....obbbob3o.oo..ob33o.oo..ob3bobbbo.......
+......ooo.oo.......ooo.......obboooo........
+..............................Po............
diff --git a/parts_pl_src/body/pl_narwhal.txt b/parts_pl_src/body/pl_narwhal.txt
new file mode 100644
index 0000000..383fa58
--- /dev/null
+++ b/parts_pl_src/body/pl_narwhal.txt
@@ -0,0 +1,43 @@
+# pl_narwhal: from pixellab_src/pl_narwhal/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (28, 45)
+# head_top at (24, 27)
+# back at (34, 36) (from part/probe)
+# tail at (49, 51)
+........oo...........................
+.......obbo..........................
+.......obbo..........................
+.......occc^.........................
+.......obbco.........................
+.......obbco.........................
+......obccco.........................
+......obbbboooooooo..................
+......obbbbo2223333oo................
+......occcoco22223333oo..............
+.....oobbbbco1222223333o.............
+....o1cbbbbco11222222233o............
+...o112occco211122222B233o...........
+..o21112oo2211122222222333o..........
+..o22111111111222222223333o..........
+..o222111111222222222233333o.........
+.o2222222222222222222222333o.........
+.o2222222222222222222222333o.........
+.o23322222223332222222223333o........
+.ooaoo222223ooao222222323333o........
+.oaoao222223oaoao22222323333o........
+.oaooo222223oooAo22222223333o........
+.o2oyo222223oyoao22222233333oo.......
+cb33321112223o2o222222233333o3o.ooo..
+ob33311311222222bbb222333333o33o222o.
+.o11313o21321122bb2223333333o3322222o
+.o123oooo3o211122223333333333o222222o
+.o33o3ccbc3oo33333333333333333222223T
+..oo333bb3333ooo3333333333333332233o.
+..o3333333333333333233333333333333o..
+..oo3331111133333322233333333oooo....
+..o3o31111111133o22223o33331o........
+..o23o1111111111o22223o1111o.........
+..o233o111111111o22223o112o..........
+..o3333ooo111111o32233ooo............
+...oooo...ooooooo3333o...............
+.................oPoo................
diff --git a/parts_pl_src/body/pl_narwhal_b.txt b/parts_pl_src/body/pl_narwhal_b.txt
new file mode 100644
index 0000000..f8c3b01
--- /dev/null
+++ b/parts_pl_src/body/pl_narwhal_b.txt
@@ -0,0 +1,53 @@
+# pl_narwhal_b: from pixellab_src/pl_narwhal_b/base.png (variant of pl_narwhal) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (29, 39)
+# head_top at (24, 15)
+# back at (34, 36)
+# tail at (48, 51)
+........oo.........................
+.......oab^........................
+.......obbo........................
+.......cccco.......................
+.......cabco.......................
+.......cbbcoooooooo................
+......obcccc2222cccoo..............
+.....oobabbc222bbbbbcoo............
+....o1obbbbc222bbbbbbc3o...........
+...o21obbbcco22bbbbbbc33o..........
+..ob21obabbco122bbbbbc233o.........
+.obb11obbbbco11222bbb2223o.........
+.obb111oooo311122222222233o........
+.obb2111111111222222222233o........
+.ob22211111122222bb2222bb3o........
+o2222222222222222bb222bbbc3o.......
+o22222222222222222222bbbbcco.......
+o3cc222222223cc322222bbbbcco.......
+oowoo222222coowo32222bbbbcco.......
+owowo222222cowowo2222bbbccco.......
+owooo222222cooowo22222bbcc3o.......
+o2obo222222cobowo222222cc33o.......
+o2cc22111222cocc2222B22333o........
+oa22211111222222aaaa222333o........
+oa22111111111222aaa2223333o........
+o32211ooooo1112A222233333o.........
+.o323o22222o222222333333oo.........
+..o33333322233333333333o...........
+...o33333333333333333oo............
+....oo333333333333333o.............
+......o3333333333333ccooo..........
+......o3311111333333ccc33o.........
+.....o22311111222222bbbc3co........
+.....oa2111111222222bbbb2bbo.......
+.....o221111112222222bb22bb2o....oo
+.....o22111111222222222222222o..o2o
+.....o231111113222232221122222oo13o
+....o32321111132222333111223222233T
+....o223o1111132222o3311222333333o.
+....o223o11111o2222o3322222o3333o..
+....o2233o1111o2222o3322222o11oo...
+....o2233oo111o2222o3332222ooo.....
+....o2233o.oooo2223o3333223o.......
+....o2233o.o3oo2223ooo22223o.......
+....o2333o..oo22233o.o22333o.......
+.....oooo....o3333o..oooooo........
+..............oooP.................
diff --git a/parts_pl_src/body/pl_narwhal_c.txt b/parts_pl_src/body/pl_narwhal_c.txt
new file mode 100644
index 0000000..7923c61
--- /dev/null
+++ b/parts_pl_src/body/pl_narwhal_c.txt
@@ -0,0 +1,49 @@
+# pl_narwhal_c: from pixellab_src/pl_narwhal_c/base.png (variant of pl_narwhal) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (30, 42)
+# head_top at (24, 19)
+# back at (34, 36)
+# tail at (49, 51)
+...........oo.............................
+..........oaa^............................
+..........oaao............................
+..........occco...........................
+..........oaaco...........................
+..........oaaco...........................
+.........oacccooooooooo...................
+.........oaaaaoocccbbb2oooo...............
+.........oaaaao22ccbbbb2222coo............
+........ooaaaao22222bbbb222cc3o...........
+.......o2occccco22222bbbbb22ccco..........
+......o22oaaaaco122222bbbb222cc3o.........
+.....o221caaaaco1122222bbbb222cc3o........
+....o22113occco211222222bbb222ccc3o.......
+....2221113oo31111222222bbbb222cc33o......
+...o222211111111122222222bbbb22ccc3o......
+..o22222211111112222222222bbb22ccc33o.....
+..o22222222222222222222222bbbb22cc33o.....
+.o222222222222222222222B22bbbb22cc333o....
+.o2222222222222222222222222bbb22cc333o....
+.o2222222222222222222222222bbb2233333o....
+o2223cc322222223cc322222222bbb2233333o....
+o223owoo222222coowo322222222b222333333o...
+o22owowo222222cowowo222222222222333333o...
+o22owooo222222cooowA222222222222333333o...
+o222woao222222coaowo222222222222333333o...
+o2222cc22111222ccc2a222222222222333333oo..
+o2aaa2221131122222aaaa222222222233333332o.
+o32aa22222o2222222aaa22222222223333333322o
+o3222222ooooc222222222222222223333333c222o
+.o22222oocccoo222222222222222233333333223o
+.o2222o22bbb22o22222222222222333333333333o
+.oo322222222222222222222222233333333o33oo.
+.o333222222222222222222222223333333oooT...
+.o3o3332222222222222222222222333333o......
+o223o3332111111222223332222223o333o.......
+o2223o3111111111133333o2222223o33o........
+o22233o111111111113333o2222223o1o.........
+o222333oo1111111111133o3222223oo..........
+o32333o..oo11111111111o3222223o...........
+.o333o.....ooo111111111o322333o...........
+..ooo.........ooooooooo.o3333o............
+.........................Pooo.............
diff --git a/parts_pl_src/body/pl_narwhal_d.txt b/parts_pl_src/body/pl_narwhal_d.txt
new file mode 100644
index 0000000..4052046
--- /dev/null
+++ b/parts_pl_src/body/pl_narwhal_d.txt
@@ -0,0 +1,50 @@
+# pl_narwhal_d: from pixellab_src/pl_narwhal_d/base.png (variant of pl_narwhal) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 42)
+# head_top at (24, 18)
+# back at (34, 36)
+# tail at (51, 51)
+...........oo..............................
+..........oab^.............................
+..........obbo.............................
+..........ocooo............................
+..........occco............................
+..........obbco............................
+..........obbco............................
+.........obcccoooooooooo...................
+.........obaabo2222bbbbbooo................
+........oobbbbo2222bbbbbbb2ooo.............
+.......o3occcoco2222bbbbbb2233o............
+......o21obaabco12222bbbb222223o...........
+.....o221cbbbbco1122222222222222o..........
+....o22113occco311222222222222bbbo.........
+...ob221113oo32111222222222222bbbbo........
+..obb2221111111112222222bb2222bbbbbo.......
+..ob22221111111222222222bb2222bbbbbo.......
+.o3222222222222222222222bb22222bbbbbo......
+.o222222222222222222222222222222bbbbo......
+.o222222222222222222222B2222222222233o.....
+.o223cc32222222cc32222222222222222223o.....
+o222owoo222222oowo322222222bbb22222233o....
+o22owowo222222owowo22222222bbbb2222233o....
+o22owooo222222ooowo22222222bbbb2222233o....
+o22owoao222222oaowo222222222bb22222233o....
+o2aa3cc22111223o3o2A222222222222222223o....
+o2aa22221111122222aaa22222222222222233o....
+o22222221oo1122222aa2222222222222bbb33ooo..
+o223222ooocooo222222222222222222bbbbc3ob2o.
+o323333ocbbb33322222222222222222bbbbc3ob2o.
+o322oo333aa3222ooo32222222222222bbbcc3o223o
+.o222222222222222222222222222222bbbc3o223co
+.o2222222wwwwww2222222222222222222333o22bco
+.o32222wwwwwwwwww22222222222222223333o33co.
+..o3223wwwwwwwwwww322222222222322333o333T..
+..o333wwwwwwwwwwwww32222222223333333o33o...
+..o3o3ww1wwwwww1wwww3322222223o3333oooo....
+..o33o1w1ww1wwww1www13o2222223o333o3o......
+..o233o111ww1wwww1w111o2222223o33o33o......
+..o2233o111111w1111111o2222223ooo333o......
+..o32233o1111111111111o2222233o33333o......
+...o3333oooo1111111111o322233oo3333o.......
+....oooo....ooooooooooo33333o..oooo........
+.......................Poooo...............
diff --git a/parts_pl_src/body/pl_neon.txt b/parts_pl_src/body/pl_neon.txt
new file mode 100644
index 0000000..46d23a0
--- /dev/null
+++ b/parts_pl_src/body/pl_neon.txt
@@ -0,0 +1,47 @@
+# pl_neon: from pixellab_src/pl_neon/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 41)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 42) (from part/probe)
+# tail at (43, 51) (from part/probe)
+........bbaaabbb..........
+.......baaaaaaaab.........
+.....ba1aooooooaabc.......
+.....a1ao333^33oaabb......
+....b1ao21122223oaab......
+....bao3111122223oab......
+...bao32111222222oaab.....
+...bao322222222223oab.....
+...bao322222222213oab.....
+...bao33o32223oo23oab.....
+...bao3o1o222o1oo3oab.....
+...bao3ooc222ooco3oab.....
+....bo32c22222c2o3ob......
+....bao333ooo233o3bb......
+.....baoo333333o31oc......
+......baboooooob3ob.......
+.......boaabbco321oc......
+........o1cccc23obob......
+......c.bboooooo3oob......
+.....boboobo3222o13oc.....
+....coboo3bo122oc3boc.....
+....cob32bo3A113ooob......
+.....bo12oo1B1133ob.......
+.....coooo3111233o........
+......bbbo111133oobc......
+....ccooo21112bbo3oobb....
+...boo3oo11113bo33333ob...
+..bo333o11113bbo333333ob..
+.bob23o33112b1bo3332233ob.
+co2b23o11223bbooo3332233oc
+co2223o1111323ooo3o22223ob
+co3223o11113223oooobb223Tb
+bo3233o31113223ooobaa223ob
+bca333o23333322b3222b233oc
+.ob333o22222322b22231o33oc
+.bob333o2222333222313boob.
+..boooooo222233333o3boboc.
+...cccccbo33323333ocoboc..
+.........bo3322222ocbob...
+..........ccbooooocbob....
+.............Pcccc........
diff --git a/parts_pl_src/body/pl_neon_b.txt b/parts_pl_src/body/pl_neon_b.txt
new file mode 100644
index 0000000..3f3b8ed
--- /dev/null
+++ b/parts_pl_src/body/pl_neon_b.txt
@@ -0,0 +1,47 @@
+# pl_neon_b: from pixellab_src/pl_neon_b/base.png (variant of pl_neon) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 20)
+# back at (31, 42)
+# tail at (44, 51)
+.........bbbb^ooo..........
+........bbboocccoo.........
+......bawao2abcooooo.......
+......awao22aao32222o......
+.....bwao22obc3211222o.....
+.....bao222oco32111223o....
+....bao3222oco322211123o...
+....bao32222oo3332211223o..
+....bao32222oooo33321222o..
+....bao33o32223oo33212222o.
+....bao3owo222owoo322ooooo.
+....bao3ooc222ooco3obabccco
+.....bo32c22222c2oobbabccco
+......bo333ooo233oooooooooo
+.......boo333333oooo33333o.
+........bboooooobbo322233o.
+..........bbbbbbbooo22233o.
+...............booccoo233o.
+..............bo23ooabo33o.
+.........booboo21123obcoo..
+.......bbocco22111123occo..
+......boooocboA1111333oo...
+.....bo322ocaB21123333oo...
+....oo22223obbo123333oo....
+...o22222223obc3333oob.....
+..bo21222233occ33ooooob....
+.oboo2222333occooo3333ob...
+.obaac223333oco33332222ob..
+boooocc333ooooo333322222ob.
+bo333occooo33333333332223ob
+bo3233ooooooooooooo332223ob
+bo332333ooocbbbbbbocco223oT
+.o332223ocoooooooo2ocbo23ob
+.o33322oaco222222222obbo3ob
+.co333obao32222111112oco3ob
+..bo33obc3222222222223ccob.
+...bo3cco3322222222233ocob.
+....bocco3333333333333oo...
+......ocoo3333333333ooob...
+.......ooooooooooooobbb....
+..........cccPcccbbb.......
diff --git a/parts_pl_src/body/pl_neon_c.txt b/parts_pl_src/body/pl_neon_c.txt
new file mode 100644
index 0000000..7506004
--- /dev/null
+++ b/parts_pl_src/body/pl_neon_c.txt
@@ -0,0 +1,63 @@
+# pl_neon_c: from pixellab_src/pl_neon_c/base.png (variant of pl_neon) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 34)
+# head_top at (31, 10)
+# back at (31, 42)
+# tail at (44, 51)
+....................aaaaabaaba..
+...................aooooooooob..
+..................ao33333333ob..
+.................ao31222233obb..
+................ao321222333ob...
+................ao21222233ob....
+...............^o21222333ob.....
+..............ao21122233obb.....
+.............ao211222333ob......
+............ao212222233ob.......
+...........ao211222233obb.......
+...........o3212222333bb........
+..........ao112222333ob.........
+.........ao212222233obb.........
+........ao211222233oba..........
+.......ao2112223233ob...........
+.......ao112222233obb...........
+......ao2122223333ob............
+.....ao2122232233oba............
+.....a2122223333oc..............
+....ao122223333ooa..............
+...ao21223333oocbaaaaaaaaaaaaaa.
+..ao2122233333ooooooooooooooooba
+.ao322222222222222211111112233ob
+.a3333222222222222222121112233ob
+ao333333322o32223oo2222222223ob.
+aoooooooo3owo222owoo22222223ob..
+aaaaaaaao3ooc222ooco2222233obb..
+........bo2b22222b2o3222233ob...
+.........bo33ooo233o322233oa....
+..........ao3333A3o332233ob.....
+..........aboooooo332233ocb.....
+............bbbac3222233oc......
+...............ao212233ob.......
+.........c....ao2112333ob.......
+........bobo.ao2112233ob........
+.......coaoo.ao112233coc........
+.......cca32ao2122333ob.........
+........bo12oo1B233oob..........
+........boooo112233oo...........
+.........bbbo12233ooobb.........
+.......cbooo21233oao3oobb.......
+......boo3oo12233ao33333ob......
+.....bo333o11233obo333333ob.....
+....boa23o21233oaao3332233ob....
+...co2a23o2233obaooo3332233oc...
+...co2223o233o223ooo3o22223ob...
+...bo322o333oc2223ooooaa223oT...
+...bo323oab3o23223oooaaa223ob...
+...bca3cocoob23322a3222a233ob...
+....oa3oaoocb22322a22232o33oc...
+....bobobbb2222333222313boob....
+.....boooooo222233333o3boaoc....
+......cccccbo33323333ocoaoc.....
+............bo3322222ocaob......
+.............cbbooooocbbb.......
+................Pcccc...........
diff --git a/parts_pl_src/body/pl_neon_d.txt b/parts_pl_src/body/pl_neon_d.txt
new file mode 100644
index 0000000..15d111f
--- /dev/null
+++ b/parts_pl_src/body/pl_neon_d.txt
@@ -0,0 +1,47 @@
+# pl_neon_d: from pixellab_src/pl_neon_d/base.png (variant of pl_neon) (pixellab_library.py extract)
+# pivot at (30, 59)
+# aura at (31, 41)
+# head_top at (31, 19)
+# back at (31, 42)
+# tail at (46, 51)
+.............bbb^bbbb...........
+..........bbooooooooob..........
+.........booo22222222oob........
+.......bbo2222221111122ob.......
+......bbo21222222a111122ob......
+......bo211222222aa221122ob.....
+.....bo32122222222a2221123b.....
+.....bo32222222222c22221aaob....
+....bo32222222223322222aa12ob...
+....bo3o2222oo22333322aa122ob...
+....boow222owo2233333c22212ob...
+....bo3o2223oo23oo33c3222123ob..
+....bo3b2222ba33oboo33222123ob..
+.....bo33oo2233ob.bo33222223ob..
+.....bo3333333obb.bo33222223ob..
+......booooooob...bo33222223ob..
+.......bbaabbb....bo32221223ob..
+........bbbb.....bo3c2221223ob..
+................bo332aa11233ob..
+.........bbbbbbbo33221aaaa3ob...
+......bboooooooo33c2211222cob...
+....bboo33a333o3311a112223ob....
+...boo22222a3o32A111a22233o.....
+..bo2211222ao222B1122a233oob....
+..o32111223co211112223c3o33ob...
+.boaaaa2233o2111122233coo333ob..
+.o32112c33oo2221222333ooc3222ob.
+bo3211223oo2222222333ooc332223o.
+bo3211223oo222222233oooo332222ob
+bo3221223co222222333obboccaa22ob
+bo32221ac23o32222333ooo3222a23ob
+bo3322a11222oooooooo3322112223ob
+bo332222112222a22222c211122233oT
+.bo33c32222111a11111aa11222233o.
+.bo33c32222211a111111a22223333o.
+..bo3c3333222222222222223333ao..
+...boca33333332222222c23333aob..
+....bocaa333333333333c33333ob...
+.....boo3aaa333333333c333oob....
+.......booooo33aaaaaooooobb.....
+.........bbbbooPooccbb..........
diff --git a/parts_pl_src/body/pl_nudibranch.txt b/parts_pl_src/body/pl_nudibranch.txt
new file mode 100644
index 0000000..a578298
--- /dev/null
+++ b/parts_pl_src/body/pl_nudibranch.txt
@@ -0,0 +1,35 @@
+# pl_nudibranch: from pixellab_src/pl_nudibranch/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 47)
+# head_top at (23, 39) (from part/probe)
+# back at (40, 38) (from part/probe)
+# tail at (50, 45) (from part/probe)
+............................oooo........
+....oo.......oo.........oooooabo.oo.....
+...o12o.....o12o........o1aoaaoooaao....
+..o111o....o111ooo.......oboabaobaaco...
+..o222o..ooo222oacoooo.oooocboaobbbobo..
+..o2332oobao333oaooaabo11123ooaocboobbo.
+...ooo2ooaoaoo3oaobaobo11111Bobobocbboo.
+.....bo2oao^ao2obaaoaocooo111obbooboo...
+....ooo2oco33o1oocobaooaaco11233obo.....
+....oao2o3111o1o33obabaoabo11a1233ocoo..
+....obo331111o2o233obaoaoco11111223cbo..
+..oobo23211111331223ocoaooco11a11a33bo..
+.oabo2111111111111223obooaao11111223obo.
+.oabo21111111111111233obaobbo1111a23obTo
+..oo222111112221212223obaobbo11122233cbo
+.obo3332111233333222A33occooo11222223co.
+oaboooo21113ooooo322223obocbo222a2223oco
+oboaowoc111cowooao32223oocbaoo2222233oco
+.ooaoooc111cooocao32223obaobbo2222233oco
+obo1oobc111coobb1o32223ooobooo2122333co.
+obooabb31113bba1o322223obobbo22223233co.
+.o223331111133oo3222233coaobo2233333occo
+.o2aa111111111112222233oboboo333c333occo
+.o3222o222oo11aaa22233ocbobo3323333ocoo.
+..o3222ooo222222222333obocco333333occo..
+...o32222222222222333ocobco333333obco...
+....o332222222233333occoabo33ooooooo....
+.....oo33333333333oocbcooooooooo........
+.......oooooooooooo.Poo.................
diff --git a/parts_pl_src/body/pl_nudibranch_b.txt b/parts_pl_src/body/pl_nudibranch_b.txt
new file mode 100644
index 0000000..e032e19
--- /dev/null
+++ b/parts_pl_src/body/pl_nudibranch_b.txt
@@ -0,0 +1,40 @@
+# pl_nudibranch_b: from pixellab_src/pl_nudibranch_b/base.png (variant of pl_nudibranch) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 45)
+# head_top at (23, 30)
+# back at (40, 38)
+# tail at (53, 45)
+.................oo.......oo................
+................oabo.oooooabo...............
+................obbcobacobbbco..............
+.....oo....o^.oooc333bbc33333ooo.oo.........
+....o12o...cco12o3o11bbc21112oabcbao........
+...o111o..oco111obac11111oo11obbcbbo........
+...o222o.ooco222obbc1111oaao12bbc33coo......
+...o333ooab3o33332211111obbo11122123bbo.....
+....ooo2obc21ooo3o11cab11cc211111112bbbo....
+.....bo2o321111o2o11cbb21111111111123cco....
+....obbo2311111o2321cbb2111111oo111223co....
+....ocbo2311111o232112211oo11Baao112oo3ooo..
+...ooo3o2211111232111111caao1cbbo112baoccbo.
+..oab3213111111111111111cbbo22cc3112bbo3cco.
+..obb21111111111111111122oo2222221123o33co..
+..oc22111111111111111112222222222oo223333oo.
+.oo322111111111111111112222oo222oaao22333cbo
+oab32333111111113333211122oabo12obbo22oo3cbo
+obb33ooo31111123oooo3A1122obbo112oo22cabocT.
+oo33oowoo111113ocwooo312222oo21122222cbboo..
+oacoaowoo11111cowwooao22222222222oo222oo3o..
+obcoaoooo11111coooocao222222cc22caao23333oo.
+.o3o1ooco11111cooocc1o22222obao2cbbo2333cco.
+ob33oabb3111113obbb1o322222obbo22oo23333cco.
+ob323ooo21111123oooo32211222oo22222233c3oo..
+.o32233211111112333322111122322222323caco...
+..o2aa11111111111aaa22111122o222bb333cbco...
+..o33211o111oo111a2223211122o323bbo33occo...
+...o33211oooo111122233211123o333cb3333oo....
+...oo3222222222222333321122oo333333333o.....
+..o13o33222222222233o111123o333oo3333oo.....
+..o333oo33333333333o211222ooooooo3333oo.....
+..oooooooooooooooooo221233o.....ooooo.......
+...................ooPoooo..................
diff --git a/parts_pl_src/body/pl_nudibranch_c.txt b/parts_pl_src/body/pl_nudibranch_c.txt
new file mode 100644
index 0000000..2acf383
--- /dev/null
+++ b/parts_pl_src/body/pl_nudibranch_c.txt
@@ -0,0 +1,39 @@
+# pl_nudibranch_c: from pixellab_src/pl_nudibranch_c/base.png (variant of pl_nudibranch) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (30, 46)
+# head_top at (23, 32)
+# back at (40, 38)
+# tail at (47, 45)
+.......................oooo...........................
+..................oo..ooabo...........................
+.................oabo.oaabo...........................
+................oaabooaaboo.oooo......................
+................oabcooabbooobaabo.....................
+..............o^oabcbaaobbaaabbbo.....................
+.............oaboabccbbobbbbacooo.....................
+...oo......oooabobbcoocooobbocoooooo..................
+..o12o....o12obaobbo22ccccooocbaaaabo.................
+.o112o...o112occcoo2222cbbcc3ocbbccbo.................
+.o223o...o222obooabo1111bbbc33ooccoo..................
+..oo32o..o333obaacbbooo11bbbb22oBcaao.................
+.....o2.ocoo3oboabooaabo11bbb12ccocbbo................
+.....o2o211o2o3obbbaoabo11bbb111ccobo.................
+.....o32111o2o233baoacco111bbb11bbooboo...............
+....o3311113231333boaooo111bbb11bbcocbo...............
+...o21111111111123obobabo111bb111bc3obo...............
+...o111111111111133obaobo111bbb11bb33obo..............
+..o2111111221311123obaooo211bbb11bbb3obT..............
+..o33211123333321233ooAo2211bbb12bbb23o...............
+..oooo1113ooooo32223obcco211bbb12bbb23oo..............
+..oowo111owoobao3223oobabo11bbb12bbc23oo......oo......
+.ooooo111oooob1o2223oboboo22bbb12bbc233o....ooabooo...
+.o3ob31113ooa1o32223ooboo222bbb22bc3333oo..obobooabo..
+o31oo111113boo321233obao3222bbc22oo22331booobbbbbooo..
+o1a11111111111111233obbo3322ccc2cc311o31b11oooooccobo.
+o222o222oo11aa112233b3333332cc33co1112o3c222c11boooooo
+.o222ooo22222222333oo32213occc33oo2112o3c333c33c33b33o
+.oo22222222223333oo113o1112occ33cc32222ooooooooooooooo
+o1oo332222223333oo1o111b123oo333cc333323o.............
+o223oo333333333o3111b222223oooooooo33333o.............
+.ooooooooooooooo3223c33333oo.......ooooo..............
+................oooooooooP............................
diff --git a/parts_pl_src/body/pl_nutcracker.txt b/parts_pl_src/body/pl_nutcracker.txt
new file mode 100644
index 0000000..6ad2930
--- /dev/null
+++ b/parts_pl_src/body/pl_nutcracker.txt
@@ -0,0 +1,43 @@
+# pl_nutcracker: from pixellab_src/pl_nutcracker/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 42)
+# head_top at (34, 26) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (40, 54) (from part/probe)
+..........oooooooooooo..........
+........oo211111112223oo........
+.......o2111111111^22233o.......
+.......o3222222222333333o.......
+........oooo3333333ooooo........
+.........o33222yy22333o.........
+.........ooo3333333oooo.........
+......ooooo3333333333ooooo......
+.....ozyyyyoooooooooobbbbco.....
+....oo111yyyyyyyyyyyybzzzzoo....
+...o1oyyooooooccccoooooozzo1o...
+..o11oyoc2aa3zzzzzz2aa3cozo11o..
+..o22oyczw3o1zz11zzw3o1zczo22o..
+.oo2boyczwo31zz11zzwo31zczob2oo.
+.oyzooycz2wwzcobboczww2zczoozyo.
+oyyyo21ooocc111Bo111ccooo11oyyyo
+o2yyoo211111112bb211111112ooyy2o
+o2222ozo222222oooo222122ozo2222o
+.o222ozzoowooobAbbooowoozzo222o.
+..oooobzoooowobwwbowoooozcoooo..
+.ozyzobbzzzzzzzzzzzzzzzbccozyzo.
+.oyaboobbbbcoooooooocccccoobayo.
+.oba3o311122bba22abb223333o3abo.
+.o332332112222baab122233o33233o.
+.o322co211aa22233112aa33oo2223o.
+.o33aaco212222233112223ocaa333o.
+..obaoyzoo3333oyyo333oozycab3o..
+..obcycyzo3333oyyo333ozycycboo..
+...ocyycb32222a33a2223ozyycbo...
+....oyzzo2222a3333a2233ozzzo....
+.....ooooobbboooooobbbooToo.....
+.........o1222o..o1222o.........
+.........o1112o..o1112o.........
+.........oo33oo..oo33oo.........
+.........oo33oo..oo33oo.........
+........o33o3oo..oo3o33o........
+........oooooP....oooooo........
diff --git a/parts_pl_src/body/pl_nutcracker_b.txt b/parts_pl_src/body/pl_nutcracker_b.txt
new file mode 100644
index 0000000..16455a0
--- /dev/null
+++ b/parts_pl_src/body/pl_nutcracker_b.txt
@@ -0,0 +1,55 @@
+# pl_nutcracker_b: from pixellab_src/pl_nutcracker_b/base.png (variant of pl_nutcracker) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 38)
+# head_top at (34, 12)
+# back at (31, 39)
+# tail at (41, 54)
+...............oooooooo^ooo...............
+.............oo211111112223oo.............
+............o2111111111222233o............
+............o3222222222333333o............
+.............oooo3333333ooooo.............
+..............o33222yy22333o..............
+............ooooo3333333oooooo............
+...........ozyyo3333333333obbbo...........
+..........ozxyyzoooooooooobzzzbo..........
+..........oxxybbbbbbbbbbbbbbzzbo..........
+..........oxyywwozzzzzzzzwo1zzbo..........
+..........oxyywoozzzzzzzzoo1zzbo..........
+..........oxyyyyyzzcccczzzzzzzbo..........
+.........oyyy1111111yyy111111zbbo.........
+........ozy1112222222222222211zbbo........
+.......oyyy112w12w12122w12w1221zbbo.......
+.......oyy112ow1ow1o1oow1ow1o211zboo......
+......ooyy12oow1oooooooooow1oo221bbo......
+.....o1oy11oooooooooooooooooooo21bboo.....
+....o11oy1oooooooooooooooooooooo1bbo2o....
+...o111oy1oooooooobbbbbboooooooo1bbo22o...
+...o111oy1oooooocbaaaaabbcoooooo1bbo22o...
+..o2112oyy1ooow1baaaaaaabbw1ooo2zbbo222o..
+..o3212oby12ocw1bw1aaaaw1bw1oo11zbbo222o..
+.oyy3222oby11cw1bw1bbbbw1cw1o11zbbo22233o.
+.oyxz3333oby111111111111111111zbbo2233bbo.
+.oyxzzbo33obyyyyyyyyyAyyyyyyybbbo333byzbo.
+.oyzzzbo222obbbbbbbbBbbbbbbbbboo33obyyybo.
+ozyzzzbo2112oooooooooooooooooo3333obyyybbo
+ozabbcco21111222222222222222222333occaabbo
+oaab333o21111111122222222222222333o3233bbo
+o332223o21111111111112222222222333o321233o
+o212223o22111111111111112222222333o321223o
+o212233oo211111111111111222222233oo331223o
+o22aaccoo221111111111111222222233ooccab23o
+obaaczzoo222111111111111222222333ooyycbbco
+obaczzzzooo222111111111222223333ooyyyycbco
+obyyzczzo.oo2222222222222233333o.oybcyzzco
+oyyyzcboo..oooooooooooooooooooo..oobcyzzzo
+oozczzoo...o222233333333333333o...ooyycboo
+.oooooo....o2112333oooo2222223o....oooooo.
+...........o2112333o..o2111223o...........
+...........obaabbbco..obaaabbcT...........
+...........obaabbbco..obaaabbco...........
+...........o2112223o..o2111223o...........
+...........o2ooo223o..o211ooo3o...........
+...........o3333oooo..oooo333oo...........
+..........o333333ooo..ooo333333o..........
+..........oooooooP......oooooooo..........
diff --git a/parts_pl_src/body/pl_nutcracker_c.txt b/parts_pl_src/body/pl_nutcracker_c.txt
new file mode 100644
index 0000000..11f60be
--- /dev/null
+++ b/parts_pl_src/body/pl_nutcracker_c.txt
@@ -0,0 +1,63 @@
+# pl_nutcracker_c: from pixellab_src/pl_nutcracker_c/base.png (variant of pl_nutcracker) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 34)
+# head_top at (34, 4)
+# back at (31, 39)
+# tail at (43, 54)
+........oooooooo^ooo........
+......oo211111112223oo......
+.....o2111111111222233o.....
+.....o3222222222333333o.....
+......oooo3333333ooooo......
+.......o33222zz22333o.......
+.......ooo3333333oooo.......
+.......oo3333333333oo.......
+.......oyoooooooooozo.......
+.......oyyzzzzzzzzzzo.......
+.......oyyyyyyyyyyyzo.......
+.......oyoooyyyzooozo.......
+.......oocccoyyocccoo.......
+......oozaaacyycaaazoo......
+.....oyzywowcyycwowzzyo.....
+.....oycyyzzcyyczzyzczo.....
+.....oycyyyzcyyczyyzczo.....
+.....oyczyyzcyyczyzcczo.....
+......oo2zyccyycoyc2oo......
+.......o1zy2ccco2yc2o.......
+.......o1z21122112c2o.......
+.......o1211cccc1a22o.......
+.......o1112oooo2112o.......
+.......o112ozzzzo212o.......
+.......o11czz22zzc12o.......
+.......o112z2112z212o.......
+.......o212111111212o.......
+.......oo2111111122oo.......
+....ooo33o11211122oooooo....
+...o21133oo221122oooo333o...
+..o21111333o2A22oooo23333o..
+..o111111ac3o22oobb223333o..
+..o1111112aa2oobcc2223333o..
+..o111111222c22a222223333o..
+.o211o11aa222aa212aa23o333o.
+.o111o11aa222B3112aa23o333o.
+.oa11o2112222331122223o3bco.
+.oa12o2112222331122223o3bco.
+o2112o21aa22233112aa23o3333o
+o2112o21aa22233112aa23o3333o
+oaa12o2112222331122223o33bco
+oaa12o2112222331122223o33bco
+o2112o3222222oo2233333o3333o
+o2223oo33333ozzo33333oo3333o
+oaaacoo33333ozzo33333oocbbbo
+occcoo3222222oo2222223oooooo
+oyyyzo112222a33a222223ozzzzo
+oyyyco31222a3333a22223oczzzo
+ozyczooobbbboooobbbbooozzzzo
+.oyzo..o1222o..o2222o..ozzo.
+..ooo..o1112o..o1112o..ooT..
+.......o1112o..o1112o.......
+.......oo33oo..oo33oo.......
+.......oo33oo..oo33oo.......
+.......oo33oo..oo33oo.......
+......o33o3oo..oo3o33o......
+......oooooP....oooooo......
diff --git a/parts_pl_src/body/pl_nutcracker_d.txt b/parts_pl_src/body/pl_nutcracker_d.txt
new file mode 100644
index 0000000..5de7c50
--- /dev/null
+++ b/parts_pl_src/body/pl_nutcracker_d.txt
@@ -0,0 +1,49 @@
+# pl_nutcracker_d: from pixellab_src/pl_nutcracker_d/base.png (variant of pl_nutcracker) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 40)
+# head_top at (34, 18)
+# back at (31, 39)
+# tail at (43, 54)
+............oooooooo^ooo............
+..........oo211111112223oo..........
+.........o2211111111222233o.........
+.........o2111111111222333o.........
+.........oo222222222333333o.........
+..........oooo3333333ooooo..........
+...........o33222zz22333o...........
+...........ooo3333333oooo...........
+..........ooo3333333333ooo..........
+.........ozxyoooooooooozzzo.........
+........ozy1yyzzzzzzzzzyyzzo........
+.......oz11yyyyyyyyyyyyyyyzzo.......
+.......oy1yyyyoyyyyyyoyyyyzzo.......
+......ozyyyyyyoyyyyyyoyyyyyzzo......
+......oyyyaaayyyz11zyyyaabyzzo......
+......oyyaaaabyyyzzzyyaaaabzzo......
+......oyyaaaabyyyyyyyyaaaabzzo......
+......oyyyaaayyyyyyyoyyaaayzzo......
+......ozyyyyyyyyooooyyyyyyyzzo......
+.....oozzyyyyyyyyyyyyyyyyyzzooo.....
+....ooooozzyyyyyyyyyyyyyzzzooooo....
+...o3o322oozzzzzzBzzzzzzzooo33o3o...
+..oaco21132333333A333333333333obbo..
+..oao311131111131222322222o3333obo..
+.o13o2112111112212222322222o333o33o.
+.o1o32112111112122222322222o3333o2o.
+o11ob21121111121222223222222333co22o
+ob3oaaccb11111312222232222abbcbbo32o
+oaooaaccbaabbbaaabbaaabbbaabbcbbooao
+obcoccccbaabbbaaabbaaabbbaaccbccocco
+occoccaacccaaacccaacccaaabaccbccocco
+oyyo33cccccaaacccaacccaaabaccb33oyyo
+ozyzo32233333ccccccccc22233o333ozyzo
+.oooo3223222123222222322233o333oooo.
+....oo322o22223222222322233333oo....
+.....o332o22223322222o2333o333o.....
+......o33oo333oo3333o33333o33T......
+.......oooo3333o3333o33333ooo.......
+..........oooooooooooooooo..........
+...........o1222o..o2222o...........
+...........oo33oo..oo33oo...........
+..........o33o3oo..oo3o33o..........
+..........oooooP....oooooo..........
diff --git a/parts_pl_src/body/pl_nymph.txt b/parts_pl_src/body/pl_nymph.txt
new file mode 100644
index 0000000..018f340
--- /dev/null
+++ b/parts_pl_src/body/pl_nymph.txt
@@ -0,0 +1,46 @@
+# pl_nymph: from pixellab_src/pl_nymph/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 41)
+# head_top at (28, 30) (from part/probe)
+# back at (36, 30) (from part/probe)
+# tail at (48, 40) (from part/probe)
+....................ooo.................
+....................o1o.................
+..............oo...o21o......ooo........
+.............o3o...o11o.....o31o........
+.............o1oo..o12o....o313o........
+.............o13o.oo23oooooo11o.........
+.......oo....o13ooo3ooobbcoo13o....oo...
+.......ooo...o13obb322222bboo3o..oo3o...
+.......o1o..oooooobab1111aab3ooooo33o...
+.......o13oooco1^oaaaa11B1aaa23oo33o....
+.......oo13oco112o1aaaooo11aa13bo3oo....
+.......o1o3oo112oo111o111o1aa13bcoo.....
+.....oo112oao112o211o11221oaaa23booooooo
+...oo31221oaooooo11o1122221ooc22bcoo333o
+...o112221ba1112b11o12222221oo33bcooooo.
+.oo122221oaaaaaaaao1222222221oo3acooo...
+oo1222221obaaaaaao122222222221oobooo....
+o122222222ooooooo11222222222221oooooooo.
+o1222213oo333333ooo1222222222221oo3oo33o
+o32221oo3332222333oo122222222221oo3oTooo
+.o311ooooo211112ooooA11222222211o33oooo.
+..ooooo1w1o1111o1w1oooo11222211oo3ooo...
+......owwoo111o1wwoooboo31111ooco3oo....
+......owooo111owwoooobcooooooocoooo.....
+.....oowzoo111owwzccobcoccccoco32oo.....
+.....ob3wo11111owwaaoaooccoooo3311o.....
+....oobzo3zzzzz33oooaaocco311o33113o....
+....o1oazzooooo3zzzbaoooo33111ooo11o....
+....o13oaoo3222oooobbo31o31o11o.o31o....
+...o2133oao11123oooao311o2ooo1o..o13o...
+...o11oooo311123baao33o12oooo1o..o13o...
+...o11o..oo311ooooooooo1oo..o1o..o13o...
+...o12o...oooooocccooo31o..o21o..oaco...
+..ocaco...o33o.ooooo..33o..o11o..o22o...
+..o213o...o33o.......o13o..ocaco.o2oo...
+...o2o....oc3o.......o13o...o33o..oo....
+...oo....oc3co.......oobco..oooo........
+.........o33o.........o23o...ooo........
+.........ooo..........oooo..............
+.......................Po...............
diff --git a/parts_pl_src/body/pl_nymph_b.txt b/parts_pl_src/body/pl_nymph_b.txt
new file mode 100644
index 0000000..d4f88d7
--- /dev/null
+++ b/parts_pl_src/body/pl_nymph_b.txt
@@ -0,0 +1,53 @@
+# pl_nymph_b: from pixellab_src/pl_nymph_b/base.png (variant of pl_nymph) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (32, 38)
+# head_top at (28, 17)
+# back at (36, 30)
+# tail at (52, 40)
+.....................ooo..................
+.....................o2o..................
+...............oo...o22o......ooo.........
+..............o3o...o12o.....o32o.........
+..............o2o^..o23o....o323o.........
+..............o13o.oo33oooooo22o..........
+........oo....o23ooo3ooobbcoo23o....oo....
+........ooo...o23obb333332aboo3o..oo3o....
+........o2o..oooooobab2222aab3ooooo33o....
+........o13oooco22oaaaa2222aaa33oo33o.....
+........oo23oco123o2aaaooo22aa23bo3oo.....
+........o1o3oo112oo222o222o2aa23bcoo......
+........o23oao122o322o22332oaaa23booooooo.
+......oo122oao222o32o2233332ooc22bcoo333o.
+....oo32332oaooooo22o23333332oo33bcooooo..
+....o223332ba2222b22o233333332oo3acooo....
+..oo233332oaaaaaaaao2333333333ooobcoo.....
+.oo2333332obaaaaaao233333B33332ooocooooo..
+.o233333333ooooooo11333333333332ooo3oo33o.
+.o2333323oo333333ooo2333333333332oo3ooooo.
+.o33332oo3333333333oo233333333332o33oooo..
+..o322ooooo322223ooooo22333333322o3oo33o..
+...ooooo1w1o1112o1w1oooo22333322oo3o333o..
+...o333owwoo111o1wwoooboo32222ooco333233o.
+...o222owooo111owwoooobcoooooooo33332233o.
+..o222oowyco111owwyccAacoccccco3322222333o
+..o122oaowo22222owwaaoabocccco33222222233o
+.o2122obzoooooooooooozzbooooo332222222233T
+.o1222bbzzzzxxzzzzozzzbbo333322222222o233o
+.o1222ozzzzzzzzbbzzzbbbbo322222222222o333o
+o21222ozzbbzzzzbbzzzbbbbo3222222221122o33o
+o21222obzbbzbbzzzzzzzabo33222222321222o33o
+o212222obzzzbbzzzbbzbbbo322222223o1222o33o
+o3212223ocbbzzzzzzbbboo3222222223o1222o33o
+o32122223ooobbbbbbooo333222222223o2222o33o
+oo2212222333oooooo333322222222223o2223o3o.
+.o2221222222333333332222222222223o223o33o.
+..o2221222222222222222222222222223o2o33oo.
+...o2222222222222222222222222222233o33oo..
+....o333222222222222222222222223333333o...
+.....o333333222222222222222223333333oo....
+......oooo33333333333333322223o333oo3o....
+......o333ooo3333333333o322223oooo333o....
+......o223333ooooooooooo222223o.o3333o....
+......o2o3333o.........o222223o..oooo.....
+......ooooooo...........o22o23o...........
+........................Pooooo............
diff --git a/parts_pl_src/body/pl_nymph_c.txt b/parts_pl_src/body/pl_nymph_c.txt
new file mode 100644
index 0000000..0be4cf9
--- /dev/null
+++ b/parts_pl_src/body/pl_nymph_c.txt
@@ -0,0 +1,41 @@
+# pl_nymph_c: from pixellab_src/pl_nymph_c/base.png (variant of pl_nymph) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (33, 43)
+# head_top at (28, 26)
+# back at (36, 30)
+# tail at (49, 40)
+.....................ooo.........................
+...............o^...o12o.........................
+...............o1o.o212o....oo...................
+...............o1o.o123o...o13o..................
+..............o11ooo22ooooo233o..................
+..........oo..o23ocbooocBbo333o..................
+.........o1o.oooo222ab222abooooooooo.............
+.........o23obaaa2222ab322aa33co212o.............
+.........o33baaaaa3222ab222ab3bco33o.............
+........ooooooo22aa322ab322bb33booo..............
+......oo2111122o22ab22bb3333o33bc3oooo...........
+....oo2111111122o2abb33b3333o33bc3co23o..........
+...o2111111111122o3bb33o3333o333o33o33o..........
+...o21111111111223o3333o33333333o33booo..........
+..o211111111111222o33333o3333o33o33bo............
+..o2111111111222222o3333o3333o333o33oT...........
+.o321111112222222223o333o3332o333o33oo...........
+.ooo211112ooo2222223o333o3332o333o33oo...........
+o.w.o1112o.w2oo22233oA22o222ooooooooo2o..........
+owwoo211o.wwooo22233ooooooooocccco33321oo........
+owooo222owwoooo22233occccccccoooooo33221oooooo...
+owzco222owwzcbo2223occccoooocooo3ooo3222111111ooo
+.owbo2222owwbo22233occcco333oo3333oo33222111333oo
+.ooo222222ooo22233ooooco3332oooo32ooo33333333oo..
+..o33333322222333o3333oooo321ocoo22ooo33ooooo....
+...ooooo3333333ooo33323ocoo313o..o2ooooo.........
+...o333oooooooocccooo21ooooo22o..o2oo............
+...o33oo..ooooooooooo212oooo31o..o23o............
+...o33o...o3oo......o212ocoo31o..obco............
+..ocbco...o33o.....o212ooo.o32o..o33o............
+..o33o....o33o.....o12oo...ooaco.oooo............
+..oooo...oc3co....oba2o.....o33o..oo.............
+.........o33o....oo12co.....o33o.................
+.........ooo.....o223o.......oo..................
+.................oooP............................
diff --git a/parts_pl_src/body/pl_nymph_d.txt b/parts_pl_src/body/pl_nymph_d.txt
new file mode 100644
index 0000000..57d7b7f
--- /dev/null
+++ b/parts_pl_src/body/pl_nymph_d.txt
@@ -0,0 +1,57 @@
+# pl_nymph_d: from pixellab_src/pl_nymph_d/base.png (variant of pl_nymph) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (32, 33)
+# head_top at (28, 14)
+# back at (36, 30)
+# tail at (44, 40)
+......................ooo...................
+......................o2o...................
+.....................o21o...................
+...............ooo...o11o.......ooo.........
+...............o3o...o12o......o32o.........
+...............o2o^..o22o.....o323o.........
+...............o13o..o33ooooooo22o..........
+........oo.....o23ooo3ooobbccoo23o.....oo...
+........ooo....o23obb333333abcoo3o...oo3o...
+........o1o...oooooobab2222aaab3oooooo33o...
+........o13ooobao11oaaaa22222aaa33ooo33o....
+........oo23obao123o2aaa2oooo3aa23bo33oo....
+........o1o3oao112oo2222o3113oaa22bbo3oo....
+.......o113obao112o3222o223332oaa23cboo.....
+.....oo1332oaao222o222o22333332oc333booooooo
+...oo123332oaaooooo223o233333332oo33bcoo333o
+...o1333332oaa2222b2boo2333333332oo3bcoo3oo.
+.oo23333332oaaaaaaaabo233333333332oobcooo...
+oo233333332oaaaaaaaao12333333333332oocoo....
+o1333333333oooooooooo123333333333332oooo....
+o133333333oo333333333oo23333333333332o3oooo.
+o13333332o3332222222222o33B3333333332o3oo33o
+.o233333o333111111111123o223333333322o3ooooo
+..o2223oo3311111111111133o3223333322o33oooo.
+...oooooo3oo1111111111Aoooooo22222oob33oo...
+.......ooowoo11111111owoo1oocooooo33b3oo....
+.......oo1woo11111111owoow1occc33333c3o.....
+.......oowooo11111111oooowwoccc33333c3o.....
+.......o3wobb11111111ocbbwwoccc3333cco......
+.......oa1wb1111111111bbww22acc3333co.......
+.......oa12111111o1111111112acc33oooo.......
+........oa11111ooo111111112aao33ooT.........
+.........ob1111111111111122boooooo..........
+..........ob2111111111122ccooooo............
+...........ooo3222222b3ccoooooo.............
+..............oooooooooo333oo...............
+.............oo33333333333333o..............
+............o333322222223o2223o.............
+...........o32331111111133o2113o............
+...........o22o21111111123o3112o............
+..........o323o211111111223o1113o...........
+..........o123o211111111223o3112o...........
+..........o13oo3111111112233o212o...........
+..........o33oo3311111122223oo22o...........
+...........oo.o3o31111222122o.oo............
+..............o33oo333332112o...............
+..............o333oooooo2112o...............
+..............o333o....oo222o...............
+..............o333o.....o222o...............
+..............o133o.....o122o...............
+...............ooo.......Poo................
diff --git a/parts_pl_src/body/pl_obsidian.txt b/parts_pl_src/body/pl_obsidian.txt
new file mode 100644
index 0000000..ac8945c
--- /dev/null
+++ b/parts_pl_src/body/pl_obsidian.txt
@@ -0,0 +1,34 @@
+# pl_obsidian: from pixellab_src/pl_obsidian/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 47)
+# head_top at (26, 38) (from part/probe)
+# back at (37, 40) (from part/probe)
+# tail at (46, 45) (from part/probe)
+...............ooo......................
+..............o11o......................
+.........ooo.o112o..ooo.................
+.........o1ooc122ooo11o.................
+........o123o1c32oo112o.................
+.......oocccb3^cc3c122o.ooo.............
+.....oo21a1122333aac32oo11o.............
+...oo22111111111b2aac3aocBoooooo........
+..o21111a1111222122aa33ac3oo.o11oo......
+.o111111111111111122bb3ab3co.oo111oo....
+.o1111a11211111112111bb2aa3acooo1133o...
+.o11111121112ooo22111a112ab2b3coo3123o..
+.o211111111oocx2c112111a1233ba32o2T23o..
+.o21111122ocoa11c111221111a11a222o333o..
+o311111123c1aa1c311A22111111a111222o3o..
+o2311311112cccc212o22221222111123112oo..
+o2111111111111113oab33221112212331111o..
+.ooooooooooooooo2aac333211112223321112o.
+.o33221111112222cc33cc321111123co32112o.
+...oo3333333333333c3bc332111113ooo3223o.
+.....oooocccccccc33c33c33321122oo3333o..
+......o33oooooo33cc333cco221222o3333ooo.
+....oooo3333o.ooooooooooo22222oc331333ao
+...oc3333333o...........o2222ooooocaoooo
+...ooac3oacoo.........oo33222o....oo....
+....ooooooo..........oac312222o.........
+.....................ooooacoaco.........
+........................Poo.oo..........
diff --git a/parts_pl_src/body/pl_obsidian_b.txt b/parts_pl_src/body/pl_obsidian_b.txt
new file mode 100644
index 0000000..d64d8e1
--- /dev/null
+++ b/parts_pl_src/body/pl_obsidian_b.txt
@@ -0,0 +1,45 @@
+# pl_obsidian_b: from pixellab_src/pl_obsidian_b/base.png (variant of pl_obsidian) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 42)
+# head_top at (26, 22)
+# back at (37, 40)
+# tail at (54, 45)
+................^oo...........................
+...............ow1o..ooo......................
+...........o..oww3o.o1wo......................
+..........oooow133oo1w3o..ooo.................
+.......ooo3bbbb333oo133ooow1o.................
+......o212bb22222223cc3oo113ooooo.............
+.....o112bb2222111122333bbb3oo1wo.............
+....o1122b22211113222233bbbb3333o.............
+....o2222222111ooo32222333bb33cc3oooo.........
+...obo22222233ooczc2222322bbb22bb311o.........
+...ob22112222ocobwc22223322bb21bb333o.........
+...o2321322223zbb1322222322bbb21bb2bo.........
+..o3222222222233332222223222bb22bb11bo........
+..o1333333322222222222223222bb222b11b3o.......
+.o113ocooooo2211122222223322bb222b21b3o.......
+.o11cccoooooo1111122222233222b222b222b3o......
+o111ccccoooooo111112222223222b222b222b2o..oo..
+o11occccooooooo1111122222322222222222b2o..o1o.
+o11occccooooooo111112222232B222222222223ooo3o.
+o11occcobbobbbo1111122223322222222222233oo332o
+o11occcaacaaabo111112A233222222222222233c33b2o
+o11ocbaabaaaabo1111122333222222222222333c3bb3o
+o31ocbaaaaaaaco111132333222222222222333332b23o
+.o31ocbaaaaboo111133333322222222222233333223T.
+..o31ooooooo11113333333312222222222233233333o.
+...o331111111133333333311222222332233223333o..
+....o333333333333333331132221123322332233oo...
+.....oo333333333333331133222111333333223o.....
+.....o3o33333333333111133222111333333223o.....
+.....o3o33333333111111133222212333333223o.....
+.....o33o3311111111111333222212333333333o.....
+.....o333o33111111111333332222333o333333o.....
+......o333o333333333333333322233ooo33333o.....
+......oo333ooo333333333333333333ooc32333bo....
+.....ob333333ooooooooooooo33333o.ooob3oooo....
+.....ooob333oo..........o232223o....oo........
+.......ooooo...........ob1313313o.............
+.......................oooob3ob3o.............
+..........................Po..oo..............
diff --git a/parts_pl_src/body/pl_obsidian_c.txt b/parts_pl_src/body/pl_obsidian_c.txt
new file mode 100644
index 0000000..9aba3ca
--- /dev/null
+++ b/parts_pl_src/body/pl_obsidian_c.txt
@@ -0,0 +1,58 @@
+# pl_obsidian_c: from pixellab_src/pl_obsidian_c/base.png (variant of pl_obsidian) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 36)
+# head_top at (26, 10)
+# back at (37, 40)
+# tail at (54, 45)
+................ooo..........................
+...............^1wo..........................
+...........oo.oow3o..........................
+.........oowooow33o..ooo.....................
+.........o13ooaw33ooo1wo.....................
+........ooc33c3cc3oo1w3o.....................
+......oo3a3a233333ac133o.....................
+....oo322a2222223a3ac33o.....................
+...o3322222222222a3aac3ooooo.................
+..o31222222221112223aa3bowwo.................
+.o21122222211www12223aac333o.................
+oo31222a2211w233333222a3c3o..................
+ooo2222222ww2occo33222a2aco..................
+oob222222222oocwcc222222a3oooo...............
+ooa21112222ccocwac2223222c31wo...............
+oo211w12233ccoawac2123322c333o...............
+oo111112223c1aa1c32123322a33o................
+o33111312223cccc322o33322ocoo................
+o3222222222222222ooac32222co.................
+ooooooooooooooooo3ac3322aa3ooo...............
+.oo32222222222223cc332222aa11o...............
+..oo333333333333333332222aa33o...............
+....ooooooccccccc33322222aacoo...............
+..........oobbbbb3322222223coo...............
+...........o222223222222223c1wo..............
+..........o322221222222222ac33o..............
+..........o311111222222222acco...............
+.........o3111111222A222222ccoooo............
+.........o3111111222223222223c12o............
+.........o3111111122232232223a33o........oo..
+........oo11111111223211232a2aaboooo.....o2o.
+........oo1111111123221122B2223ac31o....oo2o.
+........oo1111111133221122322222cc3o.ooo1322o
+........oo11111111232221123322222233o1oo3213o
+........o3211111111o2221123332222332cc3c3123o
+........o3o11111112o3222222o3223222322222233o
+........o3o21111122o3222222o333221123222333T.
+........o23o222222223322222o33322112333332co.
+........o223o222222c3322222o333221112o222oo..
+........o2233oa222c3c322222oab3221112o22oo...
+........o22333ooocccc322222oab3322222ooo.....
+........o223333o.oooo322122oooo3222233o......
+........o22333o.....o322122o3oo3333333o......
+........o22333o.....o322223o3o.oo333333o.....
+........o2233o......o322223o3o..oo33323o.....
+.......oo2233o......o32223o33o...o33323o.....
+.....oo333333o......o32223o33o.oo332223o.....
+....oac313333o.....oo33223ooo.occ333323o.....
+....ooooacooo.....oo322223o...ooooacoaco.....
+......oooo.......oac312313o......ooo.oo......
+.................ooooacoaco..................
+....................ooP.oo...................
diff --git a/parts_pl_src/body/pl_obsidian_d.txt b/parts_pl_src/body/pl_obsidian_d.txt
new file mode 100644
index 0000000..3f18618
--- /dev/null
+++ b/parts_pl_src/body/pl_obsidian_d.txt
@@ -0,0 +1,34 @@
+# pl_obsidian_d: from pixellab_src/pl_obsidian_d/base.png (variant of pl_obsidian) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 47)
+# head_top at (26, 34)
+# back at (37, 40)
+# tail at (49, 45)
+...............ooo......................
+..............^aao......................
+.........ooo.oaaco..ooo.................
+.........o2o32bbc33oaao.................
+.......o31222233223aaco.................
+.....o2231211222223abco.ooo.............
+.....o21211221111222222cabo.............
+...o2212111222222222322ccBoooooo........
+..o22112112222222212232333oabo23oo......
+.o222212122211112222223223bbc33323oo....
+.o2122212221112222113332222222233213o...
+.o21221222112ooo322222322112212223222o..
+.o312212212oocy2c22222232211222122332T..
+.322222222ocoaw1c22223332222222222332o..
+o322222223c1bawc322A22322222222222233o..
+o3322312223cccc3222233322223322222112o..
+o3222222222222222223333222223223222123..
+.o332oo2222222222323333222122333322223o.
+..o33332223223233333333222112333332223o.
+...oo333323333333333333322212233332323o.
+.....ooo33333333333333332221223o333323o.
+......o3o33o3333333333333222223o333323o.
+....oo333333oo333333333o3322233o332333ao
+...oc3333333o.ooo33ooooo332223ooooc3oooo
+...ooac3333oo....oo...o2322223o...oo....
+....ooooooo..........oac312323o.........
+.....................oooob33b3o.........
+........................Pooooo..........
diff --git a/parts_pl_src/body/pl_onigiri.txt b/parts_pl_src/body/pl_onigiri.txt
new file mode 100644
index 0000000..1155577
--- /dev/null
+++ b/parts_pl_src/body/pl_onigiri.txt
@@ -0,0 +1,40 @@
+# pl_onigiri: from pixellab_src/pl_onigiri/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 44)
+# head_top at (31, 32) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (44, 53) (from part/probe)
+................oooo................
+..............oo2123oo..............
+.............o21112223o.............
+............o3131221123o............
+...........o313122222223o...........
+..........o211122^2221223o..........
+..........o33112212223123o..........
+.........o3122222222222233o.........
+........o312222222222222223o........
+.......o2122oo3222222oo32323o.......
+.......o3312woo223223woo2233o.......
+......o32222owo222222owo22333o......
+......o32222oo322B232oo322223o......
+....oo3222aaooo222222oooaa3333oo....
+...oco33222a222222222222a22333oco...
+...ocoo33322222oooooo22222333ooco...
+...ocaoo33322222oabo2222333oooaco...
+...occaaoo3323222A22232333oaaacco...
+..occccbaaoo333323223333ooabbcccco..
+..obcccbbccaooo333333oooaacbbcccbo..
+.oocbcccbbccaaaoo3oooaabccbcccccooo.
+o23occbcccbbcccaaooaaabbbbbcccbco32o
+o23oocbbccbbbccccaaoocbbbcccbbooo32o
+oaao3oocbbcbbbbbcccaaoocccbbcoo3oaao
+.ooo333occbcccbbcbcccaaoobcoo333ooo.
+...o3333oocbbcccbbcccccaboo33333o...
+....o33oococcbccccbccccccbooo3To....
+.....ooocccooccbccccccccccccooo.....
+.......ooocccoocccccccccccoo........
+..........oooooooooooooooo..........
+...........o33o......o33o...........
+..........o223o......o322o..........
+..........obb3o......o3bbo..........
+...........ooP........ooo...........
diff --git a/parts_pl_src/body/pl_onigiri_b.txt b/parts_pl_src/body/pl_onigiri_b.txt
new file mode 100644
index 0000000..9fa4f08
--- /dev/null
+++ b/parts_pl_src/body/pl_onigiri_b.txt
@@ -0,0 +1,42 @@
+# pl_onigiri_b: from pixellab_src/pl_onigiri_b/base.png (variant of pl_onigiri) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 42)
+# head_top at (31, 25)
+# back at (31, 39)
+# tail at (44, 53)
+............ooooo^oooooo............
+..........oo222222222222ooo.........
+........oo22222122222222233o........
+.......o22211212222222222223o.......
+......o2211112222222222222233o......
+.....o221111222222222222222223o.....
+....o22211222222222222222222233o....
+....o221222222222222222222222233o...
+...o2222222222222222222222222223o...
+...o22222222oo3222222oo3222222233o..
+..o222222222woo222222woo222222233o..
+..o222222222owo222222owo2222222233o.
+..o222222222oo3222222oo32222222233o.
+.o3322222aaaooo222222oooaaa2222233o.
+.o332222aaaa22222B222222aaaa222233o.
+.o332222aaaa222oooooo222aaaa222233o.
+.o3322222aa22222obbo22222aa2222333o.
+.oo332222222222222A222222222222333o.
+ocboo322222222222222222222222233ooco
+occbbooo222222222222222222223ooobcco
+occcbabboooo22222222222222ooobbbccco
+.occcccbaaaaoooooooooooooobbbbcccco.
+.ooooccccbbbbbbaaaaaabbbbbbcccccooo.
+o2o33ooocccbbbbbbbbbbbbbbccooooo3o2o
+o2o33333oooocccccccccbboooo333333o2o
+oaao33332222ooooooooooo223323333oaao
+.ooo3333322222222222222222333333ooo.
+....o33333322222222222222333333o....
+.....o333333322222222223333333T.....
+......o3333333333333333333333o......
+.......ooo33333333333333333oo.......
+..........oooo33333333ooooo.........
+...........o33oooooooo33o...........
+..........o223o......o322o..........
+..........obb3o......o3bbo..........
+...........ooP........ooo...........
diff --git a/parts_pl_src/body/pl_onigiri_c.txt b/parts_pl_src/body/pl_onigiri_c.txt
new file mode 100644
index 0000000..584ee07
--- /dev/null
+++ b/parts_pl_src/body/pl_onigiri_c.txt
@@ -0,0 +1,50 @@
+# pl_onigiri_c: from pixellab_src/pl_onigiri_c/base.png (variant of pl_onigiri) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 41)
+# head_top at (31, 17)
+# back at (31, 39)
+# tail at (45, 53)
+................o^o.................
+...............o2223o...............
+..............o211233o..............
+..............o212223o..............
+.............o21222233o.............
+.............o21222223o.............
+............o2112222233o............
+............o21a2222233o............
+...........o22122222a233o...........
+...........o212222222223o...........
+..........o22222a22222233o..........
+..........o21122222222223o..........
+.........o2222222222222233o.........
+.........o21a2222222a22233o.........
+........o221a22222222222233o........
+........o2a2222222222222233o........
+.......o22122222222222222333o.......
+.......o212222222222222223a3o.......
+......o2212222222222222222333o......
+......o2222o22o222222o22o2333o......
+......o22222oo22222222oo22233o......
+.....o322222222222222222222233o.....
+.....o3222aaa2222B22222aaa2233o.....
+....oo32222aa2222oo2222aa22233oo....
+...oco3322222222oA2o2222222333oco...
+...ocoo3332222222222222222333ooco...
+...ocaoo3332222222222222333oooaco...
+...occaaoo3323222222232333oaaacco...
+..occccbaaoo333323223333ooabbcccco..
+..obcccbbccaooo333333oooaabbbcccbo..
+.oocbcccbbccaaaoo3oooaabccbcccccooo.
+o23occbcccbbcccaaooaaabbbbbcccbco32o
+o23oocbbccbbbccccaaoocbbbcccbbooo32o
+oaao3oocbbcbbbbbcccaaoocccbbcoo3oaao
+.ooo333occbcccbbcbcccaaoobcoo333ooo.
+...o3333oocbbcccbbcccccaboo33333o...
+....o33oococcbccccbccccccbooo33T....
+.....ooocccooccbccccccccccccooo.....
+.......ooocccoocccccccccccoo........
+..........oooooooooooooooo..........
+...........o33o......o33o...........
+..........o223o......o322o..........
+..........obb3o......o3bbo..........
+...........ooP........ooo...........
diff --git a/parts_pl_src/body/pl_onigiri_d.txt b/parts_pl_src/body/pl_onigiri_d.txt
new file mode 100644
index 0000000..2258e06
--- /dev/null
+++ b/parts_pl_src/body/pl_onigiri_d.txt
@@ -0,0 +1,42 @@
+# pl_onigiri_d: from pixellab_src/pl_onigiri_d/base.png (variant of pl_onigiri) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 40)
+# head_top at (31, 25)
+# back at (31, 39)
+# tail at (45, 53)
+................oooooo^ooooooo................
+..........oooooo22222222222222oooooo..........
+......oooo1112222222cccccc2222222222oooo......
+....oo211122222222caaaaaaaab222222222223oo....
+..oo1111222222222caaaaaaaaaab2222222222222oo..
+.o21122222222222caaaaaaaaaaabc22222222222223o.
+o211122222222222caaaaaaaaaacbc222222222222223o
+o212222222222222ccbaaaaaaacbcc322222222222222o
+o2122222222222223ccbbbbbbcccc3322222222222222o
+o211222222222222223ccccccccc32222222222222223o
+o22112222222222222233333332222222222222222223o
+o22221122222222222222222222222222222222222333o
+o32222211112222222222222222222222222222223333o
+o3322222221111111222222222222222222222333333oo
+o223322222222222111111B1111111112233333333333o
+o322233222222222222223A3333333333333333333333o
+o32222233322222222222233333333333333333333333o
+.oo22222223333332222223333333333333333333333o.
+..oooo22222222233333333333333333333333333ooo..
+.....ooooo222222222222222233333333333oooo.....
+.......ocoooo333333333333333333333oooco.......
+.......obcccoooooooooooooooooooooocccbo.......
+......oocbcccbbcccccoo3oooabbccbcccccooo......
+.....o23occbcccbbcccaaooaaabbbbbcccbco32o.....
+.....o23oocbbccbbbccccaaoocbbbcccbbooo32o.....
+.....oaao3oocbbcbbbbbcccaaoocccbbcoo3oaao.....
+......ooo333occbcccbbcbcccaaoobcoo333ooo......
+........o3333oocbbcccbbcccccaboo33333o........
+.........o33oococcbccccbccccccbooo33T.........
+..........ooocccooccbccccccccccccooo..........
+............ooocccoocccccccccccoo.............
+...............oooooooooooooooo...............
+................o33o......o33o................
+...............o223o......o322o...............
+...............obb3o......o3bbo...............
+................ooP........ooo................
diff --git a/parts_pl_src/body/pl_origami.txt b/parts_pl_src/body/pl_origami.txt
new file mode 100644
index 0000000..aca74b6
--- /dev/null
+++ b/parts_pl_src/body/pl_origami.txt
@@ -0,0 +1,45 @@
+# pl_origami: from pixellab_src/pl_origami/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (33, 40)
+# head_top at (22, 32) (from part/probe)
+# back at (35, 35) (from part/probe)
+# tail at (41, 52) (from part/probe)
+................................ooo.......
+..............................oo313o......
+............................oo32213o......
+..........................oo3112113o......
+.........................o311121113o......
+.......................oo311121113o.......
+.....oo..............oo31111211112o.......
+....o1oo............o3111112111122o.......
+....o133oo...oo...oo11111112111o2o....ooo.
+....o11o33o.obwo.o3111111121111o2o..oo111o
+....o112o33^owwwo11111111211113o2o.oo33oo.
+....o111oo113abwo1111111211111o22oo3333o..
+....o1oo11132ocao1111111211111o22o33333o..
+....oo1113o2b3oao1111112B1111322o33333o...
+..oo1112o2c2b23oo111oo211111122o333333o...
+.o11113222222233o12o12o1111122o3333333o...
+o12333222222ooo32o3oo12o11113o3333333o....
+.oooooooooooooo22oo3o122o113o33333333o....
+......o311o333o222o3o1A22ooo33333333o.....
+.......o11oo33o322oo322223o33333333o......
+.......o11oo33o3222o1222oo333333333o......
+........o1o3333o222o222o3333333333o.......
+........o3o3o33o22o332o33333333333o.......
+........o3o3oo3o23o3o333333333333o........
+.........oo3o3oo33o1133333ooooooo.........
+..........o33o333ooooooooo33333o..........
+..........o333oooo133333o333333o..........
+..........o3333ooo133333o333333o..........
+..........o333oooo13333oooo3333o....oo....
+...........ooo.ooo133oo323ooooo...ooao....
+................oo3oo.o322occaT..ocbco....
+................oooo...o22oocbaoobaco.....
+................o3o....o12o.ocbaabco......
+................o3o....o12o..ocacco.......
+..............oo3co....o12o...oooo........
+.............o33c3o...o1bo................
+............oooooo...o1b2o................
+....................o112oo................
+....................Pooo..................
diff --git a/parts_pl_src/body/pl_origami_b.txt b/parts_pl_src/body/pl_origami_b.txt
new file mode 100644
index 0000000..ed83ece
--- /dev/null
+++ b/parts_pl_src/body/pl_origami_b.txt
@@ -0,0 +1,46 @@
+# pl_origami_b: from pixellab_src/pl_origami_b/base.png (variant of pl_origami) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (22, 23)
+# back at (35, 35)
+# tail at (48, 52)
+...............ooooooooooooo...........
+.............oo22ccc222332bboo.........
+...........^o22bbc222222322bb2oo.......
+..........o2221bb11222222332bb22o......
+.........o2211bb1111222222322bb22o.....
+........o2211bbb1111222222222bbb2o.....
+.......o22111bb111122222222222bb22o....
+.......o22111bc111222222222222bb22o....
+......o22111bbc2222222222222332bb22o...
+......o22112boo2222222222222232bb22o...
+......o22222obao222222222222232cb223o..
+.....o3222oooaaao22222222222232cb223o..
+.....o33oo113abao22222222222232cb233o..
+.....ooo11132ocao22222222222333cc333o..
+....oo2113o2b3obo2222222B223333cc3333o.
+..oo1223o2c2b23oo22222222333333co32233o
+.o112232222222333333333333333332222223o
+o1333322223333333333333333332222222223o
+.ooooooooooooooooooo3A2223332222222223o
+....o323333ccc332222222222332222222223o
+....o322222bb2222222222222223222222bcco
+....o322222bb222222222222222322ccbbbc3o
+....occ2222bb3222222222222223bbbbbb233o
+....ocbbbccbbc22222222bbbbcccbbcc2223o.
+.....o2cbbbbbbbbbbbbbbbbbbcc322222233o.
+.....o32222bbbbbbbbbbb22222232222233o..
+......o3222bbb2222222222222332222333o..
+......o33222bb222222222222333223333o...
+.......o3332ccc2222222222333333333o....
+........o3333cc22222222333333333oo..oo.
+.........o333cc333333333333o33oo..ooao.
+..........oo33cc3333333333ooooo..obbbT.
+............oooccc333333oooobbaoobabo..
+...............oooooooooo2o.obbaabbo...
+................o3o....o12o..obabco....
+..............oo3co....o12o...oooo.....
+.............o33c3o...o2bo.............
+............oooooo...o2b2o.............
+....................o123oo.............
+....................Pooo...............
diff --git a/parts_pl_src/body/pl_ouija.txt b/parts_pl_src/body/pl_ouija.txt
new file mode 100644
index 0000000..08da5e2
--- /dev/null
+++ b/parts_pl_src/body/pl_ouija.txt
@@ -0,0 +1,36 @@
+# pl_ouija: from pixellab_src/pl_ouija/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 45)
+# head_top at (31, 34) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (43, 51) (from part/probe)
+......oooo..........oooo......
+....oo3223oo......oo2223oo....
+...o31122223oo..oo22222223o...
+..o312222c2223^o322a2222223o..
+.o31c2c2c2c22222222a222cc223o.
+.o122c222c2222222222c22c2222o.
+.o1222c22223oooooo3333332222o.
+o2222b2223oo222222oo2222a2223o
+o23aa2333o2222B11222o222aab23o
+o2222222o222231111223o2222223o
+o2222223o222211111222o3222223o
+o22aa22o222313332132bco33cc33o
+o322a22o223131333313bbo32aa23o
+o32aa22o223133331313bbo222223o
+o322c22o223133A33313bbo22c223o
+.o3c3c3o223122332213aao2cyc3o.
+.o32222o22231222213aaco22223o.
+.o322223o222311113aaco322233o.
+..o33333oc2bb3333aacco33333o..
+...o32a23ocbbbbbaacco3c223o...
+...o322a23oocbbaacoo3b2c23T...
+....o322a233oooooo3322c23o....
+.....o322222333333333323o.....
+.....oo3222222222222223oo.....
+.....o3o3222o2222o2223o3o.....
+.....o23o3222oooo2223o33o.....
+.....o23oo3322332233oo32o.....
+.....o2o..oo332233oo..o2o.....
+....o22o....o3333o....o22o....
+....o23o.....oPoo.....o32o....
diff --git a/parts_pl_src/body/pl_ouija_b.txt b/parts_pl_src/body/pl_ouija_b.txt
new file mode 100644
index 0000000..a0766e9
--- /dev/null
+++ b/parts_pl_src/body/pl_ouija_b.txt
@@ -0,0 +1,52 @@
+# pl_ouija_b: from pixellab_src/pl_ouija_b/base.png (variant of pl_ouija) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 37)
+# head_top at (31, 15)
+# back at (31, 39)
+# tail at (49, 51)
+...................ooo^oooo...................
+.................oo22222222ooo................
+............ooooo221112222222oooooo...........
+..........oo22233212222222222332222o..........
+........oo22111233122222222223112223oo........
+.......o222122222322222222223322222233o.......
+......o22112222223222222222232222222233o......
+.....o221222222b22322222222232a222222233o.....
+....o221b2cb2bb2b2322222222322a2222222233o....
+...o22122bc2222b22333333333322a222cbb2223oo...
+...o22222bc2222c223ooooooooo322b22cc222233o...
+..oo3222223b222233oo22222222oo3322222222333o..
+..oo23322ab22223oo22w211112222o32222a223333o..
+..o333333cc2223o222w11111111223o3222a233333o..
+.o3211baa33333o22w21111111111223o222bbb33333o.
+.o22122222223oo22111111111111222o32332222333o.
+.o21222222222o222111111111111222co3222222233o.
+o221222222223c22oooo1111111ooooaco32222222333o
+o22222caa223oc2o2223o11112o2222oaco22aa222333o
+o2222222a223o22oww3332111o2w333oaco22aa222333o
+o22222caa223o2ow333w3o112o113331oao2222222333o
+o3222222b223o2o133333o112o233331oao2222222333o
+o332222cc323o2o133322o1A2o233331oao22b2222333o
+.o3222cb2b23o2ow12221o112ow2231woao2byb23333o.
+.o3332222222o32owwwwo2B222owww1oao3222223333o.
+.oo3122222333ob2oooo2222222ooooabo322222233oo.
+.o32222233222ocaaaa222222222aaabo33322222333o.
+.o322222222222ocaaabo22223oaaabco32233222333o.
+.o33332222a2222ocaaa2oooooaaabco3b2222333333o.
+.o333212222a2223ooaaaaaaaaabboo3b2bc22223333o.
+..o332222222a22223oocaaaaaboo332cccc2222333o..
+..o3322222222a222333ooooooo333222b222222333o..
+..o333222c222222232233333332232222222a23333o..
+...o332aaaa222222322222222222232222aaab333o...
+...o3333aa22222232222222222222322222ab3333o...
+....o333bb2222223222o22222o222332222bb333o....
+.....o333322222332222ooooo22223322233333T.....
+......o33333333332222222222222333333333o......
+.......oo3333333332222222222333333333oo.......
+.........oo333o33333333333333333333oo.........
+...........oooo3333333333333333oooo...........
+............o33ooo3333333333ooo33o............
+............o33o..oooooooooo..o33o............
+............o2o................o2o............
+...........o22o................o22o...........
+...........o22P................o22o...........
diff --git a/parts_pl_src/body/pl_ouija_c.txt b/parts_pl_src/body/pl_ouija_c.txt
new file mode 100644
index 0000000..ee61784
--- /dev/null
+++ b/parts_pl_src/body/pl_ouija_c.txt
@@ -0,0 +1,49 @@
+# pl_ouija_c: from pixellab_src/pl_ouija_c/base.png (variant of pl_ouija) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (31, 18)
+# back at (31, 39)
+# tail at (46, 51)
+...............^oo..............
+..............o31o..............
+.............o3123o.............
+.............o12223o............
+............o112222o............
+...........o31222223o...........
+...........o122cc222o...........
+..........o112b22a223o..........
+..........o122b222222o..........
+.........o11222a222223o.........
+.........o12222a222222o.........
+........o11c2222a222a23o........
+........o122c2222222a22o........
+.......o1222c222222ca223o.......
+.......o1cc2c222222c2223o.......
+......o122ccc222222c222b3o......
+......o122c2222222222bbb2o......
+.....o2222c2222222222b2223o.....
+.....o1222223oooooo3222222o.....
+....o11a223oo221112oo222a22o....
+....o122a2o222211o222o22a22o....
+...o32222o2w223Bw11w13o2a223o...
+...o22223o2212w1o1122ao322a3o...
+..o32aa2o2223w33o1w32aco2b223o..
+..o22a22o22233w3A1313aao22223o..
+..o22a22o222311oooo13aao222223o.
+.o22aaa2o22211o133213aao22cc23o.
+.o222222o222woo112213aao22c222o.
+o322bb22o2222o311313aabo2ac2223o
+o32c22c23oaaa131113aabo322c2a23o
+o32cccc22oca1333331abco222caa23o
+o32222c223ooaaaaaaaabo32222a223o
+.o32aa22223oocaaabboo222b22223o.
+.o33222bbc223oooooo322b22c2233T.
+..o3322b22b22222222222b222233o..
+...o332b2222a222222b222a2233o...
+....o332a22cb22a2b2b2222233o....
+.....oo322a2b22a2b22aa223oo.....
+......oo3322b22a2b222233oo......
+......o2oo33222a2b2223oo3o......
+......o2o.oo332222333o.o2o......
+.....o12o..ooo33333oo..o22o.....
+.....o23o.....oPooo....o32o.....
diff --git a/parts_pl_src/body/pl_ouroboros.txt b/parts_pl_src/body/pl_ouroboros.txt
new file mode 100644
index 0000000..911ef2d
--- /dev/null
+++ b/parts_pl_src/body/pl_ouroboros.txt
@@ -0,0 +1,48 @@
+# pl_ouroboros: from pixellab_src/pl_ouroboros/base.png (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 42)
+# head_top at (32, 22) (from part/probe)
+# back at (29, 30) (from part/probe)
+# tail at (49, 49)
+..............o....o....o.............
+.............o1o..o1o..o1o............
+.............o12oo212oo21o............
+...........o.o11232^23211o.o..........
+..........o1oo21a32123a12ooyo.........
+...........o113212312212311o..........
+........oooo312111313111212ooo........
+.........c31233111222111332y3aoo......
+......ooo32o123o2112112o321o112ao.....
+.....oaa322oo331o22122o133o21112o.....
+......c31y13223woo111oow321321111o....
+....oo321222oo32B22122w23oobo22112....
+...oab2111223oo211111112oobbbbo211o...
+....c3121333ocoo2o111o2ocbaababo211o..
+..oo3121122ocbcoo22222oobaabaaaco11o..
+.oab31y233obbbbcoaoboaocbbbaaabab211o.
+.oco121223oobbco.ob23ooobbaaacaabo21o.
+..o322113obbcco..o2oo...occbbaaaobo1o.
+.oc211233oaaco..oao......obbaaacabo21o
+obo12112obbbo.o.a2o.......obbbbaabo21o
+oc321112oaabo.baao........obbaaaaco22o
+.o311123bbbo..oooc.........occccbbbo1o
+oo222112oabo...co.....o....obaaaaabo1o
+oc321122oaco......oAooao...obaaaabco1o
+oo221113cabo....oo11111obo.obbbcbbbo2o
+.o322122caao....1112111y2oocbaaaaabo2o
+.oc331112obbo..11221312212ccbaaaaao22o
+.oc322122baaco1121233323233babcbbbo22.
+.oc3211112caco12133ooo3333caaaaaabo2o.
+..o3331121cbbbc233o...oo33bbaaaaao22o.
+..oc22321123bbbc3o....o22baabcbcbo22T.
+..oco32112113bbbbooooo22oaaaaaaboo2o..
+...oo233311111222o21212bbbaaaaabo3o...
+....oo3223211112y11212caaacbaabboo....
+.....ooo22231121212133oaaaabccco3o....
+.....oocoo223222122obbobaaabbbo32o....
+.....o3ocbooooooooobbbbcobbbbo321o....
+.....o23oobbbbbcbbbobbbbbcbbo3312o....
+.....o223oocobbcbbbbobbbbboooo222o....
+....o1212o..oobbcbbbbccooooo.o2121o...
+....owoao.....ooooooooooo.....oaowo...
+.....ooP.......................ooo....
diff --git a/parts_pl_src/body/pl_ouroboros_b.txt b/parts_pl_src/body/pl_ouroboros_b.txt
new file mode 100644
index 0000000..bb2417f
--- /dev/null
+++ b/parts_pl_src/body/pl_ouroboros_b.txt
@@ -0,0 +1,48 @@
+# pl_ouroboros_b: from pixellab_src/pl_ouroboros_b/base.png (variant of pl_ouroboros) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 42)
+# head_top at (32, 19)
+# back at (29, 30)
+# tail at (49, 49)
+..............o....^....o.............
+.............o1o..o1o..o1o............
+.............o12oo212oo21o............
+...........o.o11232123211o.o..........
+..........o1oo21a32123a12ooyo.........
+...........o113212313212311o..........
+........oooo312111313111212ooo........
+........oco12331112221113321obo.......
+......oocbbo123o2112112o321oabcoo.....
+.....o22caaco331o22122o133oaab22o.....
+.....o21caao133woo111oow321oa212co....
+....ocbc1cacoo32B32123w23ooac11ccco...
+...ocaaa11cc33o211111113o3c3111aaao...
+...ocaaa12233ooo2o111o2ooo3311baaaco..
+..ocaaaac223ocooo22222oooco322baaaco..
+.o2cccccc23occcooaoboaooobbo32cccccbo.
+.o22ccc223oaacco.ob23oooobba332221222o
+.o2211113oabbco..o2oo...ocbao32111122o
+occaa1123oaabo..oao......obabo2111cc2o
+occaaa123abbo.o2a2o.......obao211baaco
+occaaac2oaabo.aaao........obao21caaaco
+occaaac2oabo..oooc.........obo21ccaaco
+occccc12oabo...co.....o....obo211ccaco
+o3ccc112oaao......oAooco...obo2111ccco
+o33211122aao....oocc2cccoo.ob2211112co
+.o3311112cao...o2baa1aab2oobb2211bc22o
+.o23aabbc2bbo.o21bac1aac2cob21caaaa22o
+.occaaaac23acoba13cc3cc33cob21caaaac2o
+.occaaaac12acocc233ooo333ob211caaacco.
+..occaac11122ooc33o...ooo32211caaacco.
+..o3cacc1111c22ooo....o322211113ccc3T.
+..o3ccc211caa1222ooooo2221bb1112ccco..
+...oc3322caaac11222222211baaac2233o...
+....o333caaaac1111bc11111baaaac333o...
+.....o33ccabac111baab1111baaacc33o....
+.....oo3cccbcc21caaaac22bacbbbc3oo....
+.....o3o3ccbc322baaaacc22ccbccco2o....
+.....o23oocc3333cccccc3333cccoo31o....
+.....o123ooo33333ccccc33333coo321o....
+....o1212o..oo3333ccc3333ooo.o3121o...
+....owoao.....ooooooooooo.....oaowo...
+.....ooP.......................ooo....
diff --git a/parts_pl_src/body/pl_ouroboros_c.txt b/parts_pl_src/body/pl_ouroboros_c.txt
new file mode 100644
index 0000000..dec59b0
--- /dev/null
+++ b/parts_pl_src/body/pl_ouroboros_c.txt
@@ -0,0 +1,48 @@
+# pl_ouroboros_c: from pixellab_src/pl_ouroboros_c/base.png (variant of pl_ouroboros) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 42)
+# head_top at (32, 19)
+# back at (29, 30)
+# tail at (48, 49)
+..............o....^....o.............
+.............o1o..o1o..o1o............
+.............o12oo212oo21o............
+...........o.o11232123211o.o..........
+..........o1oo21b32123b12oo1o.........
+...........o113212312212311o..........
+........oooo312111313111212ooo........
+........ob3123311122211133213boo......
+......ooo223123o2112112o3213112bo.....
+.....obb2113o331o22122o133o21112oo....
+.....oc211131231oo111oo132131111oo....
+....oo211121oo32B22122123oo111oobbo...
+...ob211112223o211111112o2221ocabbo...
+...oc2111222333o2o111o2o33222oaaabboo.
+..oo211122223333o22222o33333obaaabbbo.
+.ob21111222233oooaoboaoo333obbbaaabbo.
+.oc2111123333o...ob23o..o3occbbbaabbbo
+.o2211112233o....o2oo....occccbbaboooo
+.o221122223o....oao......occccbboo222o
+oc211122233o..o2a2o.......occcoo22112o
+oc211113333o..baao........occo2211112o
+oo2112ooocoo..oooc........ooo32211112o
+o321oobbbcco...co..........o322211112o
+o32ocaabbcco......oAooo....o322221122o
+o3ocbbabbcco....oobbbboo...o322211112o
+.occbbaabbco...obbaaaaaooo.o222211112o
+.occcbaaaboooccbbbbbaaco1bo2221111122o
+.occcbbabo33obbabbcccbc211o222111112o.
+.occccbao322oabbaccoocc22o3221111122o.
+..occcco212oaaaaccoooocco22211111122o.
+..occco221obbaaboo...ooo22111111122T..
+..occco211obbbbco2oooo2211111112123o..
+...oco322ocbbbco322222211111111222o...
+....oo333occbbco121111111111112222o...
+.....oo33occcco211111111111212223o....
+.....o3o3occcco2111111111122222o3o....
+.....o33ooccccco23112111222233o21o....
+.....o233occccco3333222222233o311o....
+.....o223oooccco333332222233oo222o....
+....o1212o..ooccoo3333222ooo.o2121o...
+....o1oao.....ooooooooooo.....oao1o...
+.....ooP.......................ooo....
diff --git a/parts_pl_src/body/pl_ouroboros_d.txt b/parts_pl_src/body/pl_ouroboros_d.txt
new file mode 100644
index 0000000..90d6f4d
--- /dev/null
+++ b/parts_pl_src/body/pl_ouroboros_d.txt
@@ -0,0 +1,48 @@
+# pl_ouroboros_d: from pixellab_src/pl_ouroboros_d/base.png (variant of pl_ouroboros) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 41)
+# head_top at (32, 19)
+# back at (29, 30)
+# tail at (48, 49)
+..............o....^....o.............
+.............o1o..o1o..o1o............
+.............o12oo212oo21o............
+...........o.o1122212o211o.o..........
+..........o1oo21b22123b12oo1o.........
+........oo.o123212313212311o.oo.......
+........o2oo312111313111212oo1o.......
+.......oo22o233111222111332o21oo......
+.....oo2o22o123o2112112o321o1oo2oo....
+....o2223o1oo331o22122o133o21o1222o...
+....o2221o12o23woo211oow32o22o1122o...
+...oo2211oo1oo32B32123w23oo2o2211oo...
+..o23o1112o22oo212111213oo2o2221o22o..
+..o223o1222o2oco2o211o2oco2o222o2122o.
+.o22213o2222oooco22222ocooo332o22122o.
+.o222122o322oo2ooaoboaoo12oooo2221122o
+.oo211222oooo2222ob2oo11122o332222122o
+.ooo222233o3322111ooo111122oo332221oo.
+o222ooo333o3322111111111122oooooooo32o
+o221122ooocoo3211111111112oooo3221112o
+o22112223oco2oo221111112oo2ooo3222212o
+.ooooooooboo222oooooooooo22oocoooooooo
+o32222222oooo322211A112222oooo332222oo
+o322112o33ooooo221111122oo3ooo3322122o
+o3221oo323oo322ooooooooo223oooooo1122o
+o3ooo211233o332221111122233o3322ooo22o
+.ob32211222oo33221111122333o2221122oo.
+.ob3222112o3o333ooooooo333oo22111223o.
+.ob333211o222o33222222233322o2111223o.
+..ob332oo1122oo332222233oo211o111233o.
+...o33o322112oooo333333ooo2112o2223T..
+...obo322221o2222oooooo222o1222o22bo..
+....ob332223o1122o2222o221oo2223o3o...
+....oo33323o22211o1111o1222o3233obo...
+.....ob333o322222o1111o22223o333bo....
+.....oob33o33222o322222o2223o33b3o....
+.....o3oobo33333o322222o2333obo33o....
+.....o23ooob3333o333333o3333boo32o....
+.....o223o.obb33o333333obbbboo322o....
+....o1212o..oobbobbbbbbobooo.o3121o...
+....owoao.....ooooooooooo.....oaowo...
+.....ooP.......................ooo....
diff --git a/parts_pl_src/body/pl_outlet.txt b/parts_pl_src/body/pl_outlet.txt
new file mode 100644
index 0000000..df3a902
--- /dev/null
+++ b/parts_pl_src/body/pl_outlet.txt
@@ -0,0 +1,39 @@
+# pl_outlet: from pixellab_src/pl_outlet/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 44)
+# head_top at (31, 32) (from part/probe)
+# back at (30, 37) (from part/probe)
+# tail at (47, 52)
+...............ccccc...............
+..........oooobaaoaaboooo..........
+.........o21113baaabo1112o.........
+.......o31111123bbbo2111113o.......
+......o3111111123^3211111113.......
+......o111112222222222211111o......
+.....o21112211111111111221112o.....
+.....o21121111111111111112112o.....
+.....o21211111111111111111212o.....
+.....o2221123311B111123311222o.....
+.....o22211ooo1111111ooo11222o.....
+.....o23112oow2111112oow21132o.....
+.....o23112oow2111112oow21132o.....
+....oo23112oow2111112oow21132oo....
+...o2o23211ooo1111111coo11232o2o...
+..o12o232111c311111111c311232o21o..
+.o122o23221111111A11111112232o221o.
+.o12oo23222111113331111122232oo21o.
+o122oo23222221133333112222232oo221o
+o22o.o2232222233333o322222322o.o22o
+o22o.o32322222obbbbbo22222323o.o22o
+o223oo323222222caaac222222323oo322o
+o222oo33232222223332222223233oo222o
+o323o.o332332222222222233233o.oo23o
+.ooo..oo3322333333333332233oo..ooT.
+.......oo33322222222223333oo.......
+........ooo3333333333333ooo........
+..........ooooooooooooooo..........
+..........o3oo.......o3oo..........
+.........oo33o.......o33oo.........
+........oo333o.......o3333o........
+........o3333o.......o3333o........
+.........oooP.........oooo.........
diff --git a/parts_pl_src/body/pl_outlet_b.txt b/parts_pl_src/body/pl_outlet_b.txt
new file mode 100644
index 0000000..e17e9cd
--- /dev/null
+++ b/parts_pl_src/body/pl_outlet_b.txt
@@ -0,0 +1,46 @@
+# pl_outlet_b: from pixellab_src/pl_outlet_b/base.png (variant of pl_outlet) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 40)
+# head_top at (31, 21)
+# back at (30, 37)
+# tail at (47, 52)
+....................cc^ccc....................
+...................caaaaaac...................
+................ooocaaaaabcooo................
+............oooo111ccbbbbc1112ooooo...........
+.........oooab2111111cccc1111122111oo.........
+........oaa1122111111111111111221111bo........
+.......oaa111221111111111111111221111bo.......
+......oab11112111111111111111111211111bo......
+.....oaa111112111111111111111111211111bo......
+.....oa11111121111111111111111111111112bo.....
+....oa2111111111111111111111111111111122o.....
+....oa2111111123332111111112333211111122bo....
+....oa2111111231113111111113111331111122bo....
+...oa2211111231www1311111131www1321111222ao...
+...oa221111131wwoow31111123wwoow131111222ao...
+...ob222111131wwoow31111123wwoow131111222bo...
+...ob322111131wwoow31B11123wwoow131111222bo...
+...oc333211131wwoow31111123wwoow131112333bo...
+...oa3222211131www131111113wwwww311222233bo...
+..ooa22222221231113111A111131113212222222bco..
+..ooa222222221233311111111113332122222223bco..
+.o1oa222222222111111111111111111222222223bc1o.
+.o1ob322232222222211133331112222222232233bc1o.
+o12ob3333322222222223cccc3222222222233333c321o
+o223cb33322222222223cccccc32222222222333bb322o
+o223obb3322222222223bbbbbb32222222222333bb322o
+o223ocb3332222322222oaaaao2222222222233bbo322o
+o223oob333222232222223oo322222232222233boo333o
+oo2ooobb3332233222222222222222232223333booo3oo
+.ooo.obbb33333332222222222222233333333boo.ooo.
+......ocbb333333322222222222233333333bbo......
+.......ocbb333333333333333333333333bbbT.......
+........ocbbb3b333333333333333b333bbbo........
+.........oobbbcbb333333333333bbbbbboo.........
+...........oooobbbbbbbbbbbbbbbboooo...........
+...............oooooooooooooooo...............
+..............ooooo........ooooo..............
+.............oo333o........o333oo.............
+.............o3333o........o3333o.............
+..............oooP..........oooo..............
diff --git a/parts_pl_src/body/pl_outlet_c.txt b/parts_pl_src/body/pl_outlet_c.txt
new file mode 100644
index 0000000..143a45c
--- /dev/null
+++ b/parts_pl_src/body/pl_outlet_c.txt
@@ -0,0 +1,64 @@
+# pl_outlet_c: from pixellab_src/pl_outlet_c/base.png (variant of pl_outlet) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 31)
+# head_top at (31, 3)
+# back at (30, 37)
+# tail at (43, 52)
+.......ooooooooo^oooooooooo.......
+......o11111111111111111112o......
+.....o1133333333333333333312o.....
+.....o133cc333333333333cc332o.....
+.....o13cabo2222222222oabo32o.....
+.....o13cbbo2222222222cbbo32o.....
+.....o133oo222222222222oo332o.....
+.....o1332222222222222222332o.....
+.....o1332222222222222222332o.....
+.....o1332222222222222222332o.....
+.....o1332222222222222222332o.....
+.....o1332222222222222222332o.....
+.....o1332222333333332222332o.....
+.....o133222311111113o222332o.....
+.....o1332223113111113222332o.....
+.....o1332223113111113222332o.....
+.....o1332223113111113222332o.....
+.....o1332223111113113222332o.....
+.....o1332223111113113222332o.....
+.....o1332223111113113222332o.....
+.....o1332223211111123222332o.....
+.....o1332223222222223222332o.....
+.....o1332222333333332222332o.....
+.....o1332222222222222222332o.....
+.....o1332222222222222222332o.....
+.....o1332222222222222222332o.....
+.....o1332222222222222222332o.....
+.....o133223o32222223o322332o.....
+.....o13322ooo22A222ooo22332o.....
+.....o23323oow322223oow32332o.....
+.....o23323oow322223oow32332o.....
+.....o23322ooo222222coo22332o.....
+.....o233222c32222222c322332o.....
+.....o2332222222222222222332o.....
+.....o233222222B222222222332o.....
+.....o2332222222222222222332o.....
+.....o2333222222332222223332o.....
+....oo233332222oooo222233332oo....
+...o3o23333322oooooo22333332o3o...
+..o13o23333333obbbbo33333332o31o..
+.o133o233333332caaao33333332o331o.
+.o13oo2333333333ooo333333332oo31o.
+o123oo2333333333333333333332oo321o
+o32o.o2333333333333333333332o.o23o
+o33o.o2333333333333333333332o.o33o
+o333oo2333333333333333333332o3333o
+o333oo2333333333333333333332oo333o
+o33ooo233cc333333333333cc332oo333o
+.ooo.o23cabc3333333333oabo32o.ooo.
+.....o23cbbc3333333333cbbo32T.....
+.....o233oo333333333333oo332o.....
+.....o2133333333333333333312o.....
+......o32222222222222222223o......
+.......oooooooooooooooooooo.......
+.........ooooo......ooooo.........
+........o3333o......o3333o........
+........o3333o......o3333o........
+.........oooP........oooo.........
diff --git a/parts_pl_src/body/pl_outlet_d.txt b/parts_pl_src/body/pl_outlet_d.txt
new file mode 100644
index 0000000..24b543d
--- /dev/null
+++ b/parts_pl_src/body/pl_outlet_d.txt
@@ -0,0 +1,39 @@
+# pl_outlet_d: from pixellab_src/pl_outlet_d/base.png (variant of pl_outlet) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 43)
+# head_top at (31, 28)
+# back at (30, 37)
+# tail at (47, 52)
+..............bbb^bbbb.............
+...........bbbaaaaaaaabb...........
+..........baaacccccoccaabb.........
+........bbaac321111122ccaab........
+.......baacc221111111122caab.......
+......baac322122222222112caab......
+......bac32122222222222212caab.....
+.....bac3212222222222222212cab.....
+.....bac22222222222222222212cab....
+....bac322223322B222233322213ab....
+...baac32223ww3222222www32213bab...
+...bac32223wwoo322223oow32222cab...
+...bac32223wwoo322223oow32222cab...
+...bac32223wwoo322223oow32222cab...
+...bac322223ww3222222ww322222cab...
+..obac32222233222A22233222222cabo..
+.o1bao32222222223332222222223cab1o.
+.o13bc3322222222ooc2222222223ob31o.
+o123bbo32222222ooooo222222223bb321o
+o32obbo32222222ooooo22222223obbo23o
+o33o.bbo3222222caaac2222223obb.o33o
+o333o.bbc322222caaac2222233obbo333o
+o333o.bbo3322222ooo2222233obb.o333o
+o33oo..bboo33222222222333obb..oo33o
+.ooo....bbbo33322222333ocbb....ooT.
+.........bbbco3333333cobbb.........
+..........obbbccooooobbbb..........
+..........oobbbbbbbbbbboo..........
+..........oooo.bbbbb.oooo..........
+.........oo33o.......o33oo.........
+........oo333o.......o333oo........
+........o3333o.......o3333o........
+.........oooP.........oooo.........
diff --git a/parts_pl_src/body/pl_owl.txt b/parts_pl_src/body/pl_owl.txt
index a6e41f4..01ebd6a 100644
--- a/parts_pl_src/body/pl_owl.txt
+++ b/parts_pl_src/body/pl_owl.txt
@@ -1,9 +1,9 @@
# pl_owl: from pixellab_src/pl_owl/base.png (pixellab_library.py extract)
# pivot at (30, 60)
# aura at (31, 39)
-# head_top at (32, 26) (from part)
-# back at (31, 34) (from part)
-# tail at (44, 52) (from part)
+# head_top at (32, 26) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (44, 52) (from part/probe)
...ooooo..................ooooo...
..o21122oo...............o21112o..
.o21222122o.............o2122222o.
diff --git a/parts_pl_src/body/pl_owl_b.txt b/parts_pl_src/body/pl_owl_b.txt
new file mode 100644
index 0000000..e3be570
--- /dev/null
+++ b/parts_pl_src/body/pl_owl_b.txt
@@ -0,0 +1,49 @@
+# pl_owl_b: from pixellab_src/pl_owl_b/base.png (variant of pl_owl) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 39)
+# head_top at (32, 18)
+# back at (31, 34)
+# tail at (45, 52)
+................o^ooo..............
+....ooo......ooo32222ooo......ooo..
+...o332oo..oo22222222222oo.ooo222o.
+...o33322oo322222222112222o332222o.
+...o3bc32232222222222121123333cb3o.
+...o3bbc322222222222222122233ccb3o.
+...o3bcc332222212222222222223cc3o..
+...oo3c3222222221222222222222333o..
+....oo3222222222222222222222223o...
+....o33222oooo322222222ooo22223o...
+...o33222ocbbco3222223obcco22223o..
+...o3322oca11abo32222oa1acco2223o..
+...o322oca1oooabo222oaoo1aco3223o..
+...o322ob1owoooao222oowoo1bo3223o..
+...o322ob1oooooao222ooooo1bo3222o..
+...o322ob1oooooao222ooooo1bo3223o..
+...o3322ob1oooaoB2oooaoo1bo32223o..
+...o33b22obaaao32b11ooaabo322223o..
+...o332b22oooo22oo11o2ooo322b223o..
+....o322b2222222oco1o222222b223o...
+....o3322bbb22222ocoo222bbb2223o...
+....oo33322222222Aoo2222222233oo...
+...oo33333222222222222222233333o...
+...o3223333333322222223333333333o..
+..o322223333333333333333333333332o.
+..o222223333333333333333333333332o.
+..o2222233333333333333333333223322o
+.o322223333333bb33333bbb3333222o22o
+.o32222o3333bbbbbb3bbbbbb333222o22o
+.o33222o3333bbabbbbbbbbabb33222o23o
+.o33333o333cbbbabbbbbbbbab33322o33o
+.o3333o3333cbbbbbbbbbbbbbb33333o3o.
+..o33oo3333cbbbbbbbbbbbbbc33333o3o.
+.oooo333333ccbbbbbbbbbbbcc33333oo..
+oo3oo3333333ccbbbbbbbbbbc33333T....
+o33co33333333cccbbbbbbccc33333o....
+o3c3oo3333333ccccccccccc33333o.....
+.oo333oo3333333ccccccc333333o......
+..ooooooo33oooo33333333ooooo.......
+.........oocccco33333occcoco.......
+.........oacbacaoooooccaoaoo.......
+.........oooaooco....oooooo........
+............oP.....................
diff --git a/parts_pl_src/body/pl_owl_c.txt b/parts_pl_src/body/pl_owl_c.txt
new file mode 100644
index 0000000..3832813
--- /dev/null
+++ b/parts_pl_src/body/pl_owl_c.txt
@@ -0,0 +1,64 @@
+# pl_owl_c: from pixellab_src/pl_owl_c/base.png (variant of pl_owl) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 26)
+# head_top at (32, 8)
+# back at (31, 34)
+# tail at (36, 52)
+..oooo................oooo..
+.o2112oo.............o2112..
+o2122222o...........o22222o.
+o2333312o..........o222333o.
+o33oo3222o.........o223oo33o
+o3o33o3213o333^3ooo223o33o3o
+oo3o3oo33322o22bo2223o33o3oo
+o3o3oooo33322o2b32233o3o3o3o
+o33o3o22ooo322o2223ooo33o3o.
+.o333o2obbbo322223obboo333..
+..ooo2oba1abo3223oa1ab2ooo..
+....oobao1oobo22oo1ooaoo....
+...o3ob1ooooao11ooooo1oo....
+...o3ob1ooooao11ooooo1oo....
+...o33ob1ooao12ooaoo1b3o....
+...o323ooooo3oo1ooooo3co....
+...o32b221111ocoo111132o....
+....o22bbb1111oco111bc2o....
+....o3222211112o1111122o....
+....ooo2221111121111123o....
+....o33o22222222222223oo....
+...o22223o21122222112o22o...
+..o322223o21111111112o22o...
+..o222223o221A1111122o222o..
+..o222233o22222222222o322o..
+.o3222333o3b322c223b2oo23o..
+o3232333o22b222bc22b22o32o..
+o3323333o222b22bo2b222o23o..
+o323333o22222222222222o3o...
+o3333o222222222222222o33o...
+oooooo222222222222222o3o....
+.o222oo222222B222222ooo.....
+..oooooo222232222222o.......
+.......o32223ooo222o........
+........ooooo...ooo.........
+.........obo....obo.........
+.........obo....obo.........
+.........o1o....oao.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........o1o....o1o.........
+.........oao....oao.........
+.........oao....oaT.........
+.........oao....oao.........
+.........oao....oao.........
+.........oao....oao.........
+.........oao....oaoo........
+......ooobao....oabooo......
+.....oaccacao..oacaccao.....
+.....oboaoobo..obooaobo.....
+......ooo.oP....o..o.o......
diff --git a/parts_pl_src/body/pl_owl_d.txt b/parts_pl_src/body/pl_owl_d.txt
new file mode 100644
index 0000000..5bac5a9
--- /dev/null
+++ b/parts_pl_src/body/pl_owl_d.txt
@@ -0,0 +1,48 @@
+# pl_owl_d: from pixellab_src/pl_owl_d/base.png (variant of pl_owl) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 39)
+# head_top at (32, 20)
+# back at (31, 34)
+# tail at (45, 52)
+....ooooo.................ooooo...
+..oo111bbo.....oo^oo....oo11112o..
+.o2222211bo..oo22212o..oob122221o.
+.o23333211booo3322212ooobb133331o.
+o223333321bo113332212322oc3333331o
+o233ooo332bo1113322123211oc3oo332o
+o233o3oo3cc111123221132112oo2o332o
+o233oo2occ1111123221132112bo2o332o
+o3233oo22211111232212321122bo3333o
+.o2233o22133331232212323332bo332o.
+..o22o2213oooo323221233ooo32bo2o..
+...o3o213oa11aoo32212oo1bo33boo...
+....o321oa1oooaboooooaoo1ao3bo....
+....o321o1oaoooao222ooaoo1o31o....
+....o321o1oooooao221ooooo1o31o....
+....o321o1oooooaB111ooooo1o31o....
+....o3213o1oooao21oooaoo1co31o....
+....o33213oaaao32o11ooaabo311o....
+.....o33213ooo11oo11o2oooo31o.....
+....oooo32111331oco1o2233111o.....
+...o2211oo33113oAocoo233112o1o....
+..o3211122o3313o11oo23o31oo21o....
+..o2111222booo3o333333oooob221o...
+.o21112222bo21ooooooooo11ob221o...
+.o21112222bo3111122222112ob222oo..
+.obbbb222bbo33311111111233ob22bo..
+.oooobbbbbo211333211123312obbbbo..
+..o22ooooo3311111333333112ooooo...
+.o1112322o3332211111111133o2231o..
+.o11123ooo3333332111112323ooo31o..
+.o1112311oo322233333333223oo231o..
+.o1113111o2ooo2222233222oooo223o..
+.o33311ooo112boooooooooob21o223o..
+.oo32211o3112bo33322112ob21o33T...
+o3ooo22oo1122bo32222112ob211oo....
+o33oooo22112boo32222112oob21o.....
+.oo22oo222bbboocb22211boocbbo.....
+..o22ocbbbboo3oocb221bo33ocbo.....
+...oooooooo3333oocbbbo3333oo......
+.........o3322o2oooooo32o2oo......
+.........ooo2oooo....oooooo.......
+............oP....................
diff --git a/parts_pl_src/body/pl_pangolin.txt b/parts_pl_src/body/pl_pangolin.txt
new file mode 100644
index 0000000..bbfe90f
--- /dev/null
+++ b/parts_pl_src/body/pl_pangolin.txt
@@ -0,0 +1,41 @@
+# pl_pangolin: from pixellab_src/pl_pangolin/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (33, 44)
+# head_top at (33, 29) (from part/probe)
+# back at (38, 38) (from part/probe)
+# tail at (50, 41) (from part/probe)
+.....................ooo..................
+.................oo.oaabo.oooo............
+................oaaoa11yboaaabo...........
+...............oy11bo1^1bo11yao...........
+............ooob1111o2113o1112ooooo.......
+...........oaooao1113o333o2113c3aabo......
+...........a3a11bo133o3oobo333o32abc......
+.........oooo1111o33ooo11ybo33o3223o......
+........oaoyao111oooyabo112oooo3223o......
+........obo11bo33oo111bo112o23bo333ooo....
+........o3o123o3oao111ao12o3223o333obbo...
+.......oao1o33ao11bo123o33o3223oo3o33bc...
+.......bo112o11b113o33oooooB22oo23o333o...
+.......oo113o11o333oo3o323oo32o322co33o...
+.....oooao3oo3ooooo32oo322bo3oo322o3o3o...
+.....o2o2233ao312oo322o3223ooo3323o32ooT..
+.....co22212o212oobo3bo333oo3o333o332b3oo.
+.....o211111112ocboo3o333ooo33ooo3332o3bo.
+.....o111111122obbo3o3A3o22o333o3o33o33bo.
+....o1111112223obo33o333332b33bo33oo333oo.
+....o111112oo333o3o3bo3b332o33bo33oo33oo..
+....o11112oo1o33o33oo33322o33oo33bo3o3oo..
+....o11113oo1333oooooooooooooo333o333o3oo.
+....o111113bo22bocco333co3bbbcooo333o33bo.
+...o11111222yyboobco333bbo33bbc3oooo333oo.
+.3oo111222oo33ooccco3223bo333bo3b3oo33o3..
+.1yoaa223ooyoooooooo22223obbb3c3b33ooo33b.
+oyoobb3ooo1yoooo...o21123oooc3c33bbco3o3o.
+1o..ooo..o1o33bo...o21123o3oo3c33bbobo3o3o
+yo.......oyo33bo...o2112bo3o.oo333bobbo33o
+oo......o3oo33o....o1112o33o..o3333oooooo.
+.......o3o3o33o...o32122ooo..o33333o......
+......oyoyoyooo..o233233o...oyo1oyoo......
+.......oooooo...o1o1bo1oo....oooooo.......
+.................oooPooo..................
diff --git a/parts_pl_src/body/pl_pangolin_b.txt b/parts_pl_src/body/pl_pangolin_b.txt
new file mode 100644
index 0000000..7048c09
--- /dev/null
+++ b/parts_pl_src/body/pl_pangolin_b.txt
@@ -0,0 +1,43 @@
+# pl_pangolin_b: from pixellab_src/pl_pangolin_b/base.png (variant of pl_pangolin) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (34, 44)
+# head_top at (33, 24)
+# back at (38, 38)
+# tail at (53, 41)
+.....................o^o...oo...............
+....................oaabo.oaao..............
+.................oooa112ooa1aco.............
+................oaaoc111oo111co.oooo........
+...............oy11co1113o1113oo1aabo.......
+............oooo21113o113o3113o111bbo.......
+...........ocyaoo1113o3ooco333o1111co.......
+...........cc113co123o311aco33o22112o.......
+...........oo111bo33ooo1112ooooo2133o.......
+.........oobbo111ooo2aco112o11aco333ooooo...
+........oao11oo12oo111co11o3111bo33oo22aao..
+........obo112o3cao111ao22o31112o33o2222bo..
+........c3o233oo12co11ooooo3111oo11o3322co..
+.......oao12311o11oo33oooooo312o3113oo22oo..
+.......oo112o11o22ooo3o3111Bo3oo311bo233oo..
+.......oo112o11oooo32oo3111aooo3311o31o3oo..
+.......o2oooo2o22oo322o3211oo33331o331booo..
+......oo2111ao212oco22c3223o313ooo3331o33oT.
+......o21111o212ooco22o333oo312o3o3333o333ao
+.....o111111112occoooo333323322b3oo3oo333bao
+.....o111111122occo3b33A332b322o311oo33333co
+....o1111112222oco233333oooo33o31111ao333co.
+....o111112oo222o3b3oooo333ooo331111aco33o..
+....o11112oo1o22ooooooco3111oo331111aco3oo..
+....o11112oo1322occo33co3111ac331111co33oo..
+....o111222bo22cocco22bo3111ac33333oo333co..
+...o11bo222222cocoo21bbo3111co333ooo3333co..
+.ooo11oo222obbo1oo322bo11223oo111oo33333oo..
+o1yoaa223ooyoo3oo3232o11113oo2111ao33oooo...
+oyoocc2ooo1yo3o1oyyco311113o3111zao333oo....
+1o..ooo3oo1oo3333ooo33213oo33311bco333co....
+yo...oo33oyoo3b333323323ooo333ooooo333co....
+oo....oo3ooo3ooooo223ooo111o33333ooo3cco....
+.......ocoo333oo33223oo211ao33333oooooo.....
+........ooo3o33oo33aoo332acoo333cooo........
+...........ooccooooooo33oooooo3coo..........
+.............ooooooooPooooooooooo...........
diff --git a/parts_pl_src/body/pl_pangolin_c.txt b/parts_pl_src/body/pl_pangolin_c.txt
new file mode 100644
index 0000000..4e196bb
--- /dev/null
+++ b/parts_pl_src/body/pl_pangolin_c.txt
@@ -0,0 +1,35 @@
+# pl_pangolin_c: from pixellab_src/pl_pangolin_c/base.png (variant of pl_pangolin) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (33, 47)
+# head_top at (33, 32)
+# back at (38, 38)
+# tail at (48, 41)
+.........................oo^oooooo.....................
+......................ooo112133111oo...................
+.....................o11a21223a32222o..................
+..................ooo2111a31211a22122o.................
+.................o11131112a2122222122o.................
+................oo11331121aa2222c2222o2o...............
+...............o21123122211a2122B2232o22o..............
+...............o21221113122a3122c22oo3222o.............
+..............o21321122o222c3333a3322c223o.............
+.............o212311222o122cc222aa322cc333T............
+............o2212332223o122oc322aa3222c332o............
+...........o211221233321ooooc332cc3322co2oo............
+...........o21221123o222o222a332cc3232c3o32o...........
+..........o2131122333333o222a333c33333c3332o...........
+..........o21122oo333o2o3333c333c3333333332o...........
+.........o22212oo1o33oo2o33Ac333c3333222o333o..........
+........oaa2223oo1333ooo3333333332b322112o333o.........
+......oo11aa23333333oooooo212o2332b32a222o333o.........
+.....o11112ac333333ooccco2a12oo22bo222322o3332o........
+...oo111333cc333oooobccco21312o22co222233o33333o.......
+.oo111133oocooooooooo22co22122oc3co2a2233o33b333oo.....
+o2113333ooooooo2ooocoo22o322aaoccco22223occ2233333oooo.
+o23333ooo.....o2o3obo.ooo32222oooooaaaa3ooccc333333333o
+.ooooo........o333obo...o3222booo.oo3oa3ooooocc33ccooo.
+.............o3333oo....o32a2oooo..o3333o....ooooooo...
+............o333333o...o33222ooo..o33333o..............
+...........oxoxoxcoo..o3b3233o...oxo1oxoo..............
+............oooooo...o1o1bo1co....oooooo...............
+......................oooooPo..........................
diff --git a/parts_pl_src/body/pl_pebble.txt b/parts_pl_src/body/pl_pebble.txt
index 858f937..9cfbc38 100644
--- a/parts_pl_src/body/pl_pebble.txt
+++ b/parts_pl_src/body/pl_pebble.txt
@@ -1,8 +1,8 @@
# pl_pebble: from pixellab_src/pl_pebble/base.png (pixellab_library.py extract)
# pivot at (26, 60)
# aura at (31, 40)
-# head_top at (31, 25) (from part)
-# back at (31, 30) (from part)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 30) (from part/probe)
# tail at (48, 49)
..............oooooooooo..............
...........ooooo111111ooooo...........
diff --git a/parts_pl_src/body/pl_pebble_b.txt b/parts_pl_src/body/pl_pebble_b.txt
new file mode 100644
index 0000000..7f1182a
--- /dev/null
+++ b/parts_pl_src/body/pl_pebble_b.txt
@@ -0,0 +1,64 @@
+# pl_pebble_b: from pixellab_src/pl_pebble_b/base.png (variant of pl_pebble) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 35)
+# head_top at (31, 3)
+# back at (31, 30)
+# tail at (48, 49)
+.................o^oo.................
+................o211o.................
+...............o21112o................
+..............o2211122oo..............
+.............oo21111122oo.............
+.............o2211111222o.............
+............o221111112222o............
+...........o22211111112222o...........
+..........o2222111111122222o..........
+.........o22221111111112222bo.........
+.........o1122111222211222bbo.........
+........o3312112222222112bbbo.........
+........o3331122222222213bbb3o........
+........o3332122222222213b333o........
+........o3332222222222213b333oo.......
+.......o33331222222222213b3333o.......
+.......ob333122222222221b333333o......
+.......ob33312222222222a1333333o......
+.......o33331222222222aa1333333o......
+......o333331222222222a21333333o......
+.....o3333331222222222a213333333o.....
+.....occc331222222222a221333333bo.....
+.....o33c331222222222a22133333bbo.....
+.....o33cc31222222222a22233333b3o.....
+....o3333c322222222aa22221333b333o....
+....o3333c32222222aa222221333b333oo...
+...occ3333b2222222a322222133b333cco...
+...occc333b222222aB222222a33b33ccco...
+..occcac33b22222aa2222222a33b3cacco...
+..occcaac3c22222a22222222a33ccaaccoo..
+..oocccaaccc332a222222222accaaacccoo..
+..o3occcaaaacccc22222223ccaaacccco2o..
+.o333occcaaaaaac222A22ccaaaacccco21o..
+.o33333occcccaacccccccaaaacccco22111o.
+.oc3323ooccccaaaaaaaaaaaccccooo21112o.
+.oc3322o23ooocccaaaaaacccooo32o21122o.
+o3cc322o211oooccccccccccooo112o21222o.
+o33cc22o2wwowooooccccoooowoww2o212222o
+o333b22o2wwooo2oooooooo2oooww2o212222o
+o333b223o1wooo1o333333o1ooow1o221222bo
+o333b222oo1ooo1o222222o1ooo1o222122bbo
+o333c32223oooo3222222223oooo22221bb33o
+.o33cccc222222222222222222222aaaa3b33o
+.o33bc33c2222222oooooo22222aa22a2333o.
+.obb33c33c22222o311113o2222a222b333oo.
+..o333cc33c222o22222222o22a222bb333o..
+..oo333cc33cc2222222222222a222b333oT..
+...oo333c333c3222222222222a23bb33oo...
+....o3333c333c222222222aaaa33b33oo....
+.....oo333c333c3222222a33a33b33oo.....
+......oo33c333cc333333b33aa333oo......
+.......ooooo333c33333b33aaooooo.......
+.......oo33ooo33b333b333ooo33oo.......
+......oo33333ooob333b3ooo33322oo......
+......oo2322333oooooooo3332232oo......
+......o3o12o233o......o332o21o3o......
+......ooo333oooo......oooo333ooo......
+........oooooP..........oooooo........
diff --git a/parts_pl_src/body/pl_pebble_c.txt b/parts_pl_src/body/pl_pebble_c.txt
new file mode 100644
index 0000000..efaf0c1
--- /dev/null
+++ b/parts_pl_src/body/pl_pebble_c.txt
@@ -0,0 +1,49 @@
+# pl_pebble_c: from pixellab_src/pl_pebble_c/base.png (variant of pl_pebble) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 40)
+# head_top at (31, 18)
+# back at (31, 30)
+# tail at (51, 49)
+.................ooo^ooooo................
+...............oo111111111oo..............
+.............oo1111111111111oo............
+...........oo11111111111111111o...........
+..........o21111111111111111111o..........
+.........o2111111111111111111111o.........
+........o111111111111111111111111oo.......
+......oo11111111111111111112211111oo......
+......oc111111111111111111113311113o......
+.....occ111111111111111111111111113co.....
+.....obab1111111111111111111111111bbbo....
+....obbaab11111111111111111111111caabo....
+...oobbaaac111111111B11111111111caabbco...
+...o3obbaaacb11111111111111111cbaaabb3o...
+..o333obbaaaacb1111111111111cbaaaabbo33o..
+..o3323obbbaaaacc111111111cbaaaabbbo333o..
+..o33223oobbbaaaacccccccccaaaaabbo33233o..
+.o3322223oobbbbaaaaaaaaaaaabbbbbo3322233o.
+.o3222222oooobbbbaaaaaaabbbbbbooo3222233o.
+.o3222222o23ooobbbbbbbbbbbbooo32o2222233o.
+o33222222o211ooooobbbbbbooooo112o22222233o
+o33222222o2wwowoooooooooooowoww2o22222233o
+o33222222o2wwooo2o333A33o2oooww2o22222233o
+o332223222oo1ooo1o222222o1ooo1oo222223233o
+o33222222222oooo3222222223oooo22222223233o
+o3332222222222222222222222222222222232233o
+o333222222222222222ooooo22222222222322233o
+o33322222222222222o11111o2222222222222333o
+o3332222222222222o32222132222222222222333o
+o3333222222222222322222222222222222223333o
+.o33332222222222222222222222222222223333o.
+.o33332222222222222222222222222222233333T.
+..o333oo2222222222222222222222222333333o..
+...o333o333222222222222222222233333333o...
+....o33333333332222222222222333333333o....
+.....oo3333333333333333333333333333oo.....
+.......ooo3333333333333333333333ooo.......
+.........oooo3333333333333333oooo.........
+.........o333oooooooooooooooo333o.........
+........o32333333o......o33333322o........
+........o22112233o......o33221122o........
+........oo222233oo......oo332222oo........
+..........oooooP..........oooooo..........
diff --git a/parts_pl_src/body/pl_pebble_d.txt b/parts_pl_src/body/pl_pebble_d.txt
new file mode 100644
index 0000000..8fa5100
--- /dev/null
+++ b/parts_pl_src/body/pl_pebble_d.txt
@@ -0,0 +1,48 @@
+# pl_pebble_d: from pixellab_src/pl_pebble_d/base.png (variant of pl_pebble) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 40)
+# head_top at (31, 19)
+# back at (31, 30)
+# tail at (52, 49)
+..................ooo^ooooo.................
+.................o111111113o................
+..............oooo111111131ooo..............
+.............oo11o111111131o13o.............
+............oo111o111111113o113o............
+........oo.o31111o111111113o1133oooo........
+.......ocooo111111o33333333111333ooco.......
+......ooacoo111111oooooooo3111333obcoo......
+.....o32caoo111111o111111o321333ooac33o.....
+....o3111cao31111o111111113o3333oac2133o....
+...o311113aco1111o111111113o333ooab11133o...
+..oo111111ccoo113o111B11113o333oac111133oo..
+..o11111113cco333o111111113o33oca31111133o..
+..o11111133ccooooo311111313ooooca33111113o..
+..o11111333ao33113oo33333oo3333oca3311133o..
+.ooo311333aco3311133ooooo3311133oc333113ooo.
+.o13oo333aco33111111113111111113oca3333o33o.
+oa111oo33co3331111111131111111133oca3oo333co
+ocaa133occoc31111111113111111113oooco333acco
+.ooca33acoooocca1111113111111acooooca33acbo.
+..oocccco3o23oocc11111311111aoo32o3occccooo.
+.oo2ooooo3o211oooccc11A11cccoo112o3ooooo3oo.
+.oo23333o3o2wwowooooc131cooowoww2o2o333333o.
+oooo233oo2o2wwooo2ooocccoo2oooww2o2oo323oooo
+oaaoo33oo23o1wooo1o2oooo3o1ooow1o32oo33ooaao
+o31aco3oo22oo1ooo1o222222o1ooo1o322oo3ooa33o
+o313cooozo223oooo3222222223oooo322ozoooa133o
+.o13cozozoo3222222222222222222223oo2ozoc13o.
+.o13cozo331o3222222oooooo2222223o133ozoc13o.
+.o1cbooo3331oo3222o311113o2223oo1133ooooa3o.
+.oaao33o333311o33o32222223o33o113333o22obaT.
+.ooo3333o333331oooooooooooooo313333o2323ooo.
+.o3333o3o333333o131111111133o333333o3o2333o.
+..o333oooo33333o333331111113o33333oooo233o..
+..oo333o.oo3333o333333333313o3333oo.o333oo..
+...ooooo..o33ooo333333333333oo33oo..ooooo...
+..........oooo3ooo333333333ooooooo..........
+.........oo22333ooo3333333oo33322oo.........
+.........oo2322333oooooooo3332232oo.........
+.........o3o12o233o......o332o11o3o.........
+.........ooo333oooo......oooo333ooo.........
+...........oooooP..........oooooo...........
diff --git a/parts_pl_src/body/pl_pegasus.txt b/parts_pl_src/body/pl_pegasus.txt
new file mode 100644
index 0000000..ed3cf68
--- /dev/null
+++ b/parts_pl_src/body/pl_pegasus.txt
@@ -0,0 +1,48 @@
+# pl_pegasus: from pixellab_src/pl_pegasus/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 39)
+# head_top at (25, 21) (from part/probe)
+# back at (38, 35) (from part/probe)
+# tail at (47, 53)
+.....oo...ooo....oo................
+....o32oooo11oo.o22o...............
+...o111111^1111o223o...............
+..o11ww11ww11132233o...............
+.o11ww1www111132333o...............
+o11ww1www1111322333o...............
+.o1111w111111323333o...............
+o1111111111112233331o..............
+o113111113113223331wo..............
+o1o3111133322222331w1o.............
+o1o3111332oooo222311wo.............
+.o.o311322o33o3222211o.............
+..oo23332ooo3oo222311o.............
+..o322222owco1oo2231oo.............
+..oc11112ocbcwo22231o....oooo......
+..o211112ob1bo2222311o..o1111o.....
+..o1111222owo2223231o..B11ww11o....
+.o112122222221233231oooo11111w1o...
+.o222322333333o3223322223111111o...
+.o32222333oooo332222211123o111w1o..
+..o33333ooo33332A211111122o11111o..
+...ooooo..o3332211111112222o1111o..
+..........o2222111111222222o1111o..
+.........o22ab2212122222222o1111o..
+.........o2aaaa221122233222o1111o..
+..........o2aab221123333222o11113oo
+..........o3ba22311233o3322o111111o
+..........o333333112oo3o3322o1111o.
+..........o333ooo213o333oo322oooo..
+...........o33o.o22o.o33o.o32o.....
+...........o23o.o22o.o33o.o32o.....
+...........o23o.o23o.3333.o32o.....
+...........o33o.o23o31133333233....
+..........33333oo33o1111231w3w1o...
+.........31w31133333311131wwww11T..
+.........1www13w3w111333311ww111o..
+........3wwww11wwww13333o123331o...
+........o131131wwww113oo.o2223o....
+.........o223313ww113....ooooo.....
+.........o2223o223311o.............
+.........oooooo2223o3..............
+..............oooPo................
diff --git a/parts_pl_src/body/pl_pegasus_b.txt b/parts_pl_src/body/pl_pegasus_b.txt
new file mode 100644
index 0000000..8f6a842
--- /dev/null
+++ b/parts_pl_src/body/pl_pegasus_b.txt
@@ -0,0 +1,50 @@
+# pl_pegasus_b: from pixellab_src/pl_pegasus_b/base.png (variant of pl_pegasus) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 39)
+# head_top at (25, 17)
+# back at (38, 35)
+# tail at (48, 53)
+..........^33........................
+.....33333111333.oo..................
+....31111ww11111322o.................
+...31wwwwwwww113222o.................
+..31wwwwwww111322323o................
+.31wwwwwww11113233231o...............
+.3wwwwwww1111322332311o..............
+o1w11ww111111322332311o..............
+o1w111w1111123233331111o.............
+o1131111131132223331ww1o.............
+o1131111323322222311wwwo.............
+o313311322oooo2222311w1o.............
+.o3o311322o33o2222311w1o.............
+..oo22332ooo3oo222311w1o.............
+..oo22222owco1oo22311w1o..oooooo.....
+..oc22222oobowo222311w1o.o111111o....
+..o222222ob2bo222231111oo111wwww1o...
+..o2222222owo22223111132231111ww11o..
+.o122122222222222311113B2231111ww1o..
+.o222322222222233111132222231111ww1o.
+.o2222222222223311113222aa223111ww1o.
+..o22222333333231133222aaac223111w1o.
+...ooooo222222233A22222aaac223111w1o.
+....o2222222222222222222cc222311111o.
+...o222222222222aa2222222222223111o..
+...o22222222222aaac222222222c23111o..
+...o222222222222cc222222222ccc3111o..
+...o2b222222222222222222222ccc3111o..
+...o3bc222bc2222222222223222c2o111o..
+....oc222bbcc22222223222322222o111o..
+.....o3222bc223222223222322222oo111o.
+......oo222222322b22322o3222b22o1111o
+.......ooo222232bbc23332o222bb2ooooo.
+.......o33oooo322bc23222oo22222o.....
+.......o22222o32222232211o22233w3....
+......3w32222o322223311131132ww13....
+.....11ww13113w3223ww313111wwwww1T...
+.....o11www1131w33ww133131wwww111o...
+......o1www131wwwwww113331w11w113....
+.....o11w11131wwwwww1ooo3113111o3....
+.....o11131131w1ww111o..o333131o.....
+......o3331331131w131o...oooooo......
+.......ooooooo333113o................
+.............oooooPo.................
diff --git a/parts_pl_src/body/pl_pegasus_c.txt b/parts_pl_src/body/pl_pegasus_c.txt
new file mode 100644
index 0000000..b34fe03
--- /dev/null
+++ b/parts_pl_src/body/pl_pegasus_c.txt
@@ -0,0 +1,50 @@
+# pl_pegasus_c: from pixellab_src/pl_pegasus_c/base.png (variant of pl_pegasus) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 38)
+# head_top at (25, 18)
+# back at (38, 35)
+# tail at (46, 53)
+.....oo...oo....oo................
+....o32oo^11oo.o22o...............
+...o1111111111o223o...............
+..o111111111132233o...............
+.o1111111111132333o...............
+o11111111111322333o...............
+.o1111111111323333o...............
+o111111111113233331o..............
+o113b11111122223311o..............
+o1o3bb11322222223111o.............
+o1oobb1322ooo2223111o.............
+.oocbb332oooco323111o.............
+..ocbab22o1oaoo23311o.............
+..ocaab22oooao22331oo.............
+..obaab22ocb1o23331o....ooooo.....
+..oaab222ooo22232311o..o11111o....
+.oaab22222222232231o..o1111111o...
+.obb332222223332231ooo33311111o...
+.obbb222oooo3331233221B1231111o...
+..obb33o..o33321222111111231111o..
+...oooo...o32221111111111131111o..
+..........o22211A1111111122o111o..
+.........o2aa22111112221122o111o..
+.........o2aaa2222222232222o111o..
+.........o2aab2222222333222o1113oo
+..........o3a32222333333222o11111o
+..........oo322322333ooo3223o111o.
+..........o3333322ooo33oo322oooo..
+..........o33ooo22o..o33oo32o.....
+..........o33o..32o...o33oo22o....
+..........o33o..o2o...o33oo222o...
+..........o33o..o2o....o3o.o22o...
+..........o33o..o22o...o3o.o22o...
+..........o33o..o22o...o3o.o22o...
+..........o23o..o22o..o33o.o22o...
+..........o23o..o22o..o33o.o22o...
+..........o23o..o22o..o33o.o22T...
+.........o223o.o222o.o333o.o22o...
+.........o223o.o222oo333o..o22o...
+.........o333o.o222oo333o.o333o...
+........o3333o.o222ooooo..o333o...
+........o333o.o2223o......oooo....
+........ooooo.o2223o..............
+..............ooPoo...............
diff --git a/parts_pl_src/body/pl_pegasus_d.txt b/parts_pl_src/body/pl_pegasus_d.txt
new file mode 100644
index 0000000..d471545
--- /dev/null
+++ b/parts_pl_src/body/pl_pegasus_d.txt
@@ -0,0 +1,56 @@
+# pl_pegasus_d: from pixellab_src/pl_pegasus_d/base.png (variant of pl_pegasus) (pixellab_library.py extract)
+# pivot at (32, 58)
+# aura at (32, 32)
+# head_top at (25, 9)
+# back at (38, 35)
+# tail at (44, 53)
+............^oooooooo..................
+.......oo.oo111111111ooo......ooo......
+......o33oo1111www111111o....o222o.....
+......o333oo111111w111111o..o22223o....
+.....o233311w1111111111111oo222223o....
+.....o331111111ww111111111o2222323o....
+.....o2wwww1111www1111111132223323o....
+....o11www11wwwww11111111322233333o....
+...o11www11wwwww1111w1111322233333o....
+...o1ww111wwwww1111ww1111322333323o....
+..o11ww111www111111w11333322333323o....
+..o1111111www111111111332222233233o....
+..o1111211ww11112111133222222222331o...
+..o1111311111111211133322222222331w1o..
+..o111331111111321133222222222333111o..
+.o231333111111132133222222222223311w1o.
+.o231323111111333332222222222223331w1o.
+.o2233223111113322222ooooo222222331111o
+o222ooo2331111322222ooooooo22222331111o
+o22oocoo23311132222ooccc22ooo222333111o
+o2oo2cooo223333222oooccww22oo222333111o
+o2o2wwooo222333222oooooww12oo222333111o
+o2o2wwooo222222222ooooowwc2oo222333111o
+o2o2coooo222222222oAoooooc2oo22233311o.
+o2o2coooo222222222ooooooocwoo22233311o.
+o2owboooo222222222ocoooocbwoo2223331o..
+o22wbwobo222222222ocboowbBw322223331o..
+o32owbbbo222222222obbbbbbww322223311o..
+.o22wwbc22222222222cbbbbww222223331o...
+.o3aa22222222222222222222aaa223331o....
+.ooaa22223222232222222222aaa233331o....
+..o322222222222222222222222233331o.....
+...o32222222222222222222222333ooo......
+....o332222222222222222223333oooo......
+.....oo333222222222222333333o1111o.....
+.......oo3333333333333333ooo111wwo.....
+.........oooo3333333333333333111w1o....
+............o333333333333322231111o....
+............o333333333222222223111o....
+............o322222222222222223111o....
+............o332222222222222223111o....
+............o233223222322232223111oo...
+............o2233332223333322231111o...
+............o2233o32223ooo32223oooo....
+...........o1w233o32223o3oo32w1T.......
+...........o1ww11o1www1o1oo1ww1o.......
+...........o1ww11o1www1o3oo1111o.......
+...........o33333o33333oooo3333o.......
+...........o3333oo33333o..ooooo........
+............oooo.ooPooo................
diff --git a/parts_pl_src/body/pl_pelican.txt b/parts_pl_src/body/pl_pelican.txt
new file mode 100644
index 0000000..fb6b3c7
--- /dev/null
+++ b/parts_pl_src/body/pl_pelican.txt
@@ -0,0 +1,48 @@
+# pl_pelican: from pixellab_src/pl_pelican/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 40)
+# head_top at (34, 22) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (43, 49) (from part/probe)
+...............oooo.oooo..............
+..............o212oo2123o.............
+..............o223o2223oooo...........
+..............o223223^33333o..........
+.............oo2232222223ooo..........
+............o22322211122333o..........
+...........o3211211111122333o.........
+...........o2111111111122233o.........
+..........o3321111112oo2222oo.........
+..........ooo321332ooo2222233o........
+..........oo1o2233o11o3222233o........
+..........oowo222oo111o22222oo........
+..........oo1oo32o1o11o222233o........
+..........oooo223ooo11o222333o........
+...........oo22223oo1o323333o.........
+..........oo222o22233obab33oo.........
+........oo222222223333obb33o..........
+......oo222222223oBoo3o333o...........
+....oo2222222223occco3oooo............
+..oo22222222222occccooo3o3oooo........
+.o222222222222occccco322o21122o.......
+o111111111122occbbbA322o2111112o......
+o21111111123occbbbbo222o21111112oooo..
+.o2222222oooocbbbbbo222o2111112a2233o.
+..ooooooocooobbbaabo112o221112223b33o.
+.....obb3ooocbbaaabo1122o2222aa223333o
+.....ooocooobbbaaabo1112o3222223bb333o
+......oocoocbbbaaabo21122o32222333oooo
+......o33oocbbaaabbo222222o333bb333o..
+.......oooocbbaaabco2222222ooo33333o..
+.........ooocbbbbbo2222223333oToooo...
+...........oocbbboo22o3222o33o........
+...........ooooooo333o2222o3oo........
+............o33333333o3333ooo.........
+.............o3oooooooooooo...........
+..............o33o....o22o............
+..........oooo333o....o22o............
+.........o22233333o.oo2222oo..........
+.........oo13o223ooo12322322o.........
+..........oooo13o..o22o22o32o.........
+.............ooo...oooo33oooo.........
+......................Poo.............
diff --git a/parts_pl_src/body/pl_pelican_b.txt b/parts_pl_src/body/pl_pelican_b.txt
new file mode 100644
index 0000000..5d8abbf
--- /dev/null
+++ b/parts_pl_src/body/pl_pelican_b.txt
@@ -0,0 +1,55 @@
+# pl_pelican_b: from pixellab_src/pl_pelican_b/base.png (variant of pl_pelican) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (33, 37)
+# head_top at (34, 12)
+# back at (31, 36)
+# tail at (47, 49)
+.......................^o.ooo..........
+......................o2oo113o.........
+.....................o13o223ooo........
+....................oo22223333o........
+...................o2222222233oo.......
+..................o211211112233o.......
+.................o2111111111233o.......
+.................o21111112332233o......
+................o3o21112oo322233o......
+................o31o223o11o22223o......
+................o31o22oo11o222233o.....
+................o31o33o1o11222233o.....
+................ooo222ooo12222333o.....
+.............ooo2222o22333ba22333o.....
+..........ooo2222222222223oab333oo.....
+......oooo1111122222223oooobb333o......
+..oooo111111111222233ooccco33333o......
+oo21112111111222oooooccccco33333o......
+o221112111222oooooccccccco33333o.......
+o222222222ooo..occcccbbbco3333o........
+.oo333oooo.....occccbbbco3323o.........
+...ooo........obbbcbaabo3322o..........
+.............obbbbbaaabo322oo..........
+............obbabbaaaabo322o...........
+............obaabaaaBabo223o...........
+...........obaaaaaaaaaAo223o...........
+...........obaaaaaaaabbo222ooooo.......
+...........obaaaaaaabbbo22o21112oo.....
+...........obbaaaaabbbo22o2111112oo....
+...........oobbbbbbbbco22o21111112o....
+..........o13ocbbbbbco222o2111112aao...
+..........o233ooooooo2112o3211122a22o..
+..........obb3233333211122o3222aa2223o.
+...........o33211111111112o332aa222b3o.
+...........o3o2211111111122oo332233333o
+............oo32111111112223oo33b33333o
+.............oo322222222223333o33333oo.
+..............oo322222222332333oooooT..
+...............o33333333332223333ooo...
+...............o3o3333333222233oooo....
+................o3o333333322ooo........
+................oo33ooooo3333o.........
+................oo33o....o33o..........
+.............ooo3332o....o22o..........
+............o22223223oooo3222oo........
+............o323o2233oo22322222o.......
+.............ooo223oooo23o22o22o.......
+...............oooo...oooo22ooo........
+.........................Poo...........
diff --git a/parts_pl_src/body/pl_pelican_c.txt b/parts_pl_src/body/pl_pelican_c.txt
new file mode 100644
index 0000000..0b3de35
--- /dev/null
+++ b/parts_pl_src/body/pl_pelican_c.txt
@@ -0,0 +1,50 @@
+# pl_pelican_c: from pixellab_src/pl_pelican_c/base.png (variant of pl_pelican) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 39)
+# head_top at (34, 17)
+# back at (31, 36)
+# tail at (48, 49)
+.................ooo^o...............
+................o21113o..............
+............oooo211123ooo............
+...........o112o111222212o...........
+...........o11221112211112o..........
+.........oo311211122111123oo.........
+........o2111121122111222222o........
+.......o211111211211112221112o.......
+.......o2112111121111111221112o......
+.......o2222111111112211122112o......
+.......o22332112112333111121223o.....
+.......o22oo321232ooo2212222223o.....
+......o223o1o3223o11o3222112223o.....
+......o22o11o332oo111o2211122333o....
+.....oo23oo1oo33o1o11o2211132333o....
+....o22333ooo223ooo11o32233223322o...
+....o112333o22223oo1o3332222332122o..
+...o2111332222o222333cac3333321112o..
+...o211oo2222222233o32222111221112o..
+..o232o2222222223Bo3222221111221233o.
+..o21o22222223ooo322221111222222233o.
+.o22o2222223oo3322211111133o3322223o.
+.o22o2222ooo333222A11111o21123o2233o.
+.o223oooo222332211221112311112o22223o
+ob23322112223211111221123211112o2223o
+o22322111122211111122222322111c3o233o
+oc3322111a1111111aa11222332221c2o333o
+o3332221111111111aa111223o22cc22ao3o.
+oc3322a211122111111111223o32222a2o3o.
+.co32221111221111111ac223oo2b2222o3o.
+.oo3322aa11221111111a22223o332b2co3o.
+..o3322cc22222221aa22222223oo322coo..
+...o3322222222222cc2222222333oooo3T..
+...oo3322232232222222322233233333o...
+....o333223322322222332223323333o....
+.....o3333332233222233333322333o.....
+......oo3333322333333333333333o......
+........ooo3333333333333333ooo.......
+.........oooooo3333oo333ooo..........
+........o333333ooooooooo3oo..........
+........oo13o233ooo33333323o.........
+.........oooo12o..o13o12o32o.........
+............ooo...oooo33oooo.........
+.....................Poo.............
diff --git a/parts_pl_src/body/pl_pelican_d.txt b/parts_pl_src/body/pl_pelican_d.txt
new file mode 100644
index 0000000..c7fd1b1
--- /dev/null
+++ b/parts_pl_src/body/pl_pelican_d.txt
@@ -0,0 +1,51 @@
+# pl_pelican_d: from pixellab_src/pl_pelican_d/base.png (variant of pl_pelican) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (33, 38)
+# head_top at (34, 16)
+# back at (31, 36)
+# tail at (48, 49)
+..............oo^o..............
+............oo1112o.............
+..........oo211112o.............
+......oo.o311112223oooo.........
+.....o22oo2111222232222oo.......
+.....o2123211222232111112o......
+.....o2113211222321111112o......
+....oo2113211222111111222o......
+...o122113211232111112223o......
+...o1111112232111111222222o.....
+...o22211122111111111221112o....
+..o3223211111222211111111112o...
+.o2112oo221132ooo321122222223o..
+.o332oo1o3223o11o322222222233o..
+..o32o11o332oo111o2222222333o...
+.o222o1oo333o1o11o222221113o....
+o2112o1oo322ooo11o2223311123o...
+o222223o22222oo1o22221133223o...
+o33222o21122222ooaa222113333o...
+oo311o111122233o2aa222212333o...
+.o322o1112222Boo2222223223oo....
+.o322o1122ooo3321222223333o.....
+.o3332oooo33332A1133223o33o.....
+..o33313333211222123323ooo......
+...ooo12322211232223ooo33o......
+..o22o22o2111223333o333212o..ooo
+.o312oooo3112333oooo3221112oo21o
+.o1123ocoo313oooo333o211111o112o
+o11123obbboooccco22232111112o12o
+oa12o2obabbbbbbbo212322121a2o22o
+o222o1obaaaaaaabo1113o21a222o23o
+.o23o1obaaaaaabbo1112o22222b223o
+.oco21obbaaaabbbo11112o22b2c23o.
+..oo321obbbbbbbo2111123ooco333T.
+...o3311occccoo221221223o3333o..
+....o3312oooo22211222233o33oo...
+....ooo21333323211133233oooo....
+.....o332333333332233333o.......
+......o333oooooo3333333o........
+.......ooo33oooooooo3oo.........
+......o33333o.ooo3333oo.........
+.....o13o223o.o22322322o........
+.....oooo12oo.o23o12o31o........
+........ooo...oooo33oooo........
+.................Poo............
diff --git a/parts_pl_src/body/pl_penguin.txt b/parts_pl_src/body/pl_penguin.txt
new file mode 100644
index 0000000..2f9beba
--- /dev/null
+++ b/parts_pl_src/body/pl_penguin.txt
@@ -0,0 +1,49 @@
+# pl_penguin: from pixellab_src/pl_penguin/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 41)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (47, 48) (from part/probe)
+....................oo......................
+...................o22o.oo..................
+...............ooooo322o32o.................
+...............o32223222223oo...............
+..............o33322222212112o..............
+.............o3332222^22221123o.............
+...........oo333222222222122123oo...........
+...........o33333222222212212122o...........
+...........o333oooo222222oooo223o...........
+..........o333oo333o2222o3333o222o..........
+..........aocooo3333o22o333333o23a..........
+..........o3cooooo33333333ooo3o23o..........
+.........oo3ooowwoo333333oowwo3o2oo.........
+.........o33ooowowo333333owowo3o23o.........
+.........o33ooow33o3oooo3oo3wo3o22o.........
+........oo3cooow22ooozzooo22wo3o33oo........
+........o33coooowwocyzx1zowwo3oo322o........
+........o333cooooooooBboooooooo3223o........
+.......o3333cccoooooooooooooocb32223o.......
+.....oo333333occcoooooooooobbbo222222oo.....
+....oo322c3333occcccoooocbbbbo32223211oo....
+...oo322cc33333ocaabbbbbaaabo3212233221oo...
+..oo3323oc333322ooaabbbaaaoo2211223oc221oo..
+..o3323cocc3322222oaaAaaao222212223oc3222o..
+.o3333coooc33232222oaaaao3221111223ooc3233o.
+.oc3cccooc3333222222oooo22221212233ooc3c3co.
+.o3ccccooc3332322222222222221122223cocccc3o.
+.occccoooc3332222222222222222222323coocccco.
+occcooo3occ33322222222222222222323ccooooccco
+oooo..o3ccc33332323222222222323333ccoo..oooo
+......o3occ33333232332232323333333ccoT......
+.......o3ooc33333333233232333333cccoo.......
+.......o3oocc33c333333333333333cccooo.......
+........o3occcccc333333333c33cccoooo........
+........oo3ooocccc33333333ccccccoooo........
+.........oo3oocoocccccccccccooooooo.........
+..........ooooooocococoocooooooooo..........
+...........oooooooooooooooooooooo...........
+..........oooccooooooooooooooccooo..........
+.........oobbbbbbboooooooocbbbbzzoo.........
+.........ozzbzzbbzzbo..ocbbbbzzoz1o.........
+.........ooo3xbozxzo....obzzoz13ooo.........
+............ooo.ooP......ooo.ooo............
diff --git a/parts_pl_src/body/pl_penguin_b.txt b/parts_pl_src/body/pl_penguin_b.txt
new file mode 100644
index 0000000..4faf4c6
--- /dev/null
+++ b/parts_pl_src/body/pl_penguin_b.txt
@@ -0,0 +1,48 @@
+# pl_penguin_b: from pixellab_src/pl_penguin_b/base.png (variant of pl_penguin) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 41)
+# head_top at (31, 19)
+# back at (31, 35)
+# tail at (52, 48)
+..................oo^oooo.................
+................oo3322222oo...............
+..............oo32222221122o..............
+.............o33222222222112o.............
+............o3322222222222211o............
+...........o332222222222222212o...........
+..........o33222222222222222222o..........
+..........o322ooo22222222ooo222o..........
+.........o332owwoo222222oowwo22o..........
+.........o332owowo222222owowo22o..........
+.........o332owooo222222oo3wo222o.........
+.........o332ow23o2oooo2o22wo222o.........
+.........o332oowwoozyyyoowwwo222o.........
+.........o3332oooozzyyy1oooo2223o.........
+..........o332222obcccczo222223o..........
+..........o3332222oczzzo2222233o..........
+..........oo3332222oBoo2222333ooo.........
+.........o33o3332222222222333o32oo........
+.......oo3333oo333333333333oo32222o.......
+......o33223333ooo333333ooo33222222o......
+.....o322222333333oooooo333322222211o.....
+....o33222222223333333332222222222221o....
+...oc322223222222222A2222222212232222ao...
+..occa2222322222222222222222212232222aao..
+.o3caa223o3222222222222222222212o322aaa2o.
+.o32aaac3o32222222222222222222122ocaaaa2o.
+o3222acco332222222222222222222222occaa222o
+o32222co33322222222222222222222223occ2222o
+o322333o33322222222222222222222223oo33222o
+o33333oo33332222222222222222222223ooo3333T
+o333oo.o33332222222222222222222233o..oo33o
+.ooo...oo3332222222222222222222233o....oo.
+........o333322222222222222222233o........
+........o333332222222222222223333o........
+.........o3333322222222222233333o.........
+..........oo3333332222223333333o..........
+...........ooo33333333333333oooo..........
+..........ooccooo33333333oooccoo..........
+.........obbbbbbboooooooocbbbbzzo.........
+........ozzbzzbbzzbo..ocbbbbzzoz1o........
+........ooo3xbozxzo....obzzoz13ooo........
+...........ooo.ooP......ooo.ooo...........
diff --git a/parts_pl_src/body/pl_penguin_c.txt b/parts_pl_src/body/pl_penguin_c.txt
new file mode 100644
index 0000000..a0de04d
--- /dev/null
+++ b/parts_pl_src/body/pl_penguin_c.txt
@@ -0,0 +1,52 @@
+# pl_penguin_c: from pixellab_src/pl_penguin_c/base.png (variant of pl_penguin) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 39)
+# head_top at (31, 16)
+# back at (31, 35)
+# tail at (52, 48)
+........................oo...................
+....................o^.o2o...................
+...............ooo..2oo22o.ooo...............
+...............o22oo23322oo21o...............
+...........ooooo3222232222212ooo.............
+...........o3o33322222222221111oooo..........
+........oooo3322322222222111111322o..........
+........o33333322322222221221122222o.........
+........oo3323222232222222212122222o.........
+........oo3322222233122122222222112o.........
+.......o3333322oooo321222oooo2212222o........
+.......oo33322oo333o2222o3333o222212o........
+.....ooo33332ooo3333o22o333333o222122o.......
+.....occcc222ooooo33333333ooo33o22112o.......
+......ooccc2ooowwoo333333oowwo3o22122oo......
+....oo333222ooowowo333333owowo3o222122oo.....
+....o333b222ooow3oo3oooo3oo3wo3o2222222......
+...o333322223oow22ooozzooo22wo3o2211122o.....
+...oo333222aa33owwocyzx1zowwo3oaa222122o.....
+....oo3332aaaa33ooooobbooooo33aaaa222222o....
+....o33332aaaa2233333Bo33332222aaa2212222o...
+..oo33333c2aa2222233333322222222a2222223oo...
+..o333bccc222222222232222222222222222221o....
+.o33233c333322222222222222222212232222222oo..
+o3322ccc33332232222222A221221213222223221oo..
+ooo22cocc323332222222222222223233322233322o..
+.o223o33322223223223222232232233222223o3222o.
+.o223o33222223333233222233232222222222o3222o.
+o32coo33322222223332322233322222222112ob3211o
+oo2co3332222222222222222222222222221222oc221o
+oo3cocc32333222222222222222222222122222oc323o
+ooooocc33c33222222222222222222222222223oc33oo
+.ooooocccc33232222222222222222223222323ooo3o.
+.oo.oocccccc233222232222222223123222333o.oT..
+....oooccccc3332223332233222231233333o3o.....
+.....oococcc3333233333333233333233333ooo.....
+.....oooocccccc32c3333333233c33333cc3o.......
+.....oooocooccc33c3c3333333ccc33c3co3o.......
+........oooocccc33ccc333c33ccccccccooo.......
+........oooooocccccccccccccccccccoo..........
+..........ooooccccoccccccccoccooco...........
+..........oooboooooocooooooooobooo...........
+.........oobbbbbbbooo..oooobbbbzzoo..........
+.........ozzbzzbbzzbo..ocbbbbzzoz1o..........
+.........ooobxbozxzo....obzzoz1booo..........
+............ooo.ooo......Poo.ooo.............
diff --git a/parts_pl_src/body/pl_phoenix.txt b/parts_pl_src/body/pl_phoenix.txt
new file mode 100644
index 0000000..bb91a32
--- /dev/null
+++ b/parts_pl_src/body/pl_phoenix.txt
@@ -0,0 +1,48 @@
+# pl_phoenix: from pixellab_src/pl_phoenix/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (29, 41)
+# head_top at (30, 25) (from part/probe)
+# back at (30, 42) (from part/probe)
+# tail at (40, 47) (from part/probe)
+........oo............
+...oo..obo.oo.........
+...oboobboobo.........
+...obbozbozbo.........
+...ozzczozzoooo.......
+....ozboozo1zco.......
+...oo1o22^aooo........
+..o21111123oo.........
+.oa1b11111a3oo........
+.oo1111ooo223oo.......
+..c111oacao13o........
+.ocz22oobwa123o.......
+.o1oz22bzw112o........
+o1zzzz21111333o.......
+ozzooo311b33oo........
+.oooo333333oo.........
+.....ooooooo..........
+.....oooooo...........
+.....o333o............
+....o322oo............
+...o22z2o.............
+...o1z13o........oo...
+..o11113A.......o11o..
+..o1z1123B.....o112o..
+.o11z11133oo..o1122oo.
+o11bc111123oooo222oo1o
+1bab11a1c2o1133oooo13o
+o11z1b1bao111123oo13o.
+o11zbb111o1111223o3To.
+o1b1c1a1bo3111z2b3oo..
+.oa1a1a1abo21z22o3o...
+.oabc1ababoo21o23o3o..
+..obbcabcbcoo33oo3ooo.
+..oocbbcbcccoo33bo33o.
+....oocccccbbcooooo33o
+.....oooooocbbco...oo.
+......occo.obcoo......
+.......co...oco.......
+......obo...obo.......
+....oocco...ozo.......
+...obozooo.ozco.......
+.....oo...Poooao......
diff --git a/parts_pl_src/body/pl_phoenix_b.txt b/parts_pl_src/body/pl_phoenix_b.txt
new file mode 100644
index 0000000..183c8f8
--- /dev/null
+++ b/parts_pl_src/body/pl_phoenix_b.txt
@@ -0,0 +1,51 @@
+# pl_phoenix_b: from pixellab_src/pl_phoenix_b/base.png (variant of pl_phoenix) (pixellab_library.py extract)
+# pivot at (31, 61)
+# aura at (30, 41)
+# head_top at (30, 17)
+# back at (30, 42)
+# tail at (42, 47)
+.............^o..............
+........oo..obo.oo...........
+........oboobboobo...........
+........obbzzbozbo...........
+........obzzzozzoooo.........
+.........ozz2233zzbo.........
+........o3222233ooo..........
+.......o222222233o...........
+......o1a222a111a3o..........
+......oo2222ooo2223o.........
+.....oaow22owoao223o.........
+.....owooz2ooowo223o.........
+.....owo1oz3bbw2223o.........
+......o1zzzb2222233o.........
+......ozzoo3222b33o..........
+.......oooo333333oo..........
+..........oooooooo...........
+..........oooooooo...........
+..........o3333oo............
+.........o32223oo............
+.........o31123oo............
+.....oooo322223ooo......oo...
+....o11a1111322233o....o22o..
+...o11a111111212223oo.o213o..
+..o11a111111aA1222333o3233oo.
+.o111111111aaB11233333o33o22o
+.obb111a111111b12331133oo323o
+.obbb11a1111bbbbb3111133o33o.
+o1bbbb11111bbb1bb31112233ooo.
+o111bbb11bbbb111bo2222z3zoo..
+oa111bbbbbbb11111o322233oT...
+oacca1bbbbb11ccc1o32233zo3o..
+obccca11b111ccccaco333z3oooo.
+ooaacca1111cccacccoooz3o3o3o.
+.obaaccc1acccaaaccaoooo3oo33o
+.obbaacccccbaaabaaaabbooo.oo.
+..obbaabccaaaabbaaaabbbo.....
+...obabbbbbabbbbbabbbbo......
+....ooobbbbbbbbbbbbbbo.......
+.......oooooooooobbbo........
+..........oco....ozo.........
+.........oozo....ozo.........
+........ozzzco..ozzo.........
+.......ooooooo.ozzoz.........
+..............Pooooo.........
diff --git a/parts_pl_src/body/pl_phoenix_c.txt b/parts_pl_src/body/pl_phoenix_c.txt
new file mode 100644
index 0000000..613d98d
--- /dev/null
+++ b/parts_pl_src/body/pl_phoenix_c.txt
@@ -0,0 +1,48 @@
+# pl_phoenix_c: from pixellab_src/pl_phoenix_c/base.png (variant of pl_phoenix) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 40)
+# head_top at (30, 19)
+# back at (30, 42)
+# tail at (41, 47)
+..........o^............
+.....oo..obo.oo.........
+.....oboobboobo.........
+.....obboyboybo.........
+.....oyycyoyyoooo.......
+......oybooyo1yco.......
+.....oo1o22ooooo........
+....o21111123oo.........
+...o1111111113oo........
+...o11111111123oo.......
+...ooo11o11oo13o........
+...o1z211oo11123o.......
+...o1oz21111112o........
+..o1zzzz21111333o.......
+..ozzooo311b33oooooo....
+...oooo333333oobyboo....
+.....ccooooccbbcccco....
+.ooocyycbccbccbccoo.....
+.occccccycbyccc22oo.....
+..oo11cbbccbc122222o....
+oo1111cbc1ccc1112oo.....
+.221111c111A112222ooo...
+o112111111111212222o1o..
+o1212111111B12112oo12o..
+oo212121211212212o122oo.
+.o232121212312o22o22oo1o
+.o2o2211o22oo22oooooo13o
+..oco213o22ooo112ooo13o.
+..oao313aooo1111223o3oT.
+..o1bo23abbo3111z2b3oo..
+...oa1o3a1aoo21z22o3o...
+...oabc1ababoo21o2oo3o..
+....obbcabcbcoo33oooooo.
+....oocbbcbcccoo33bo33o.
+......oocccccbbcooooo33o
+.......oooooocbbco...oo.
+........occo.obcoo......
+.........co...oco.......
+........obo...obo.......
+......oocco...ozo.......
+.....obozooo.ozco.......
+.......oo...Poooao......
diff --git a/parts_pl_src/body/pl_phoenix_d.txt b/parts_pl_src/body/pl_phoenix_d.txt
new file mode 100644
index 0000000..82d212d
--- /dev/null
+++ b/parts_pl_src/body/pl_phoenix_d.txt
@@ -0,0 +1,58 @@
+# pl_phoenix_d: from pixellab_src/pl_phoenix_d/base.png (variant of pl_phoenix) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 33)
+# head_top at (30, 11)
+# back at (30, 42)
+# tail at (42, 47)
+...............ooo..........
+.......ooo....obbo..ooo.....
+.......ooo...^cbbo..ooo.....
+.......obbooobbbboooboo.....
+.......obbboozzbboobboo.....
+.......ozbboozzbbozzboo.....
+.......ozzzzczzozzzzoooooo..
+........ozzzczzozzzzoobbco..
+........oozzcooozzoozzzbco..
+.......oo3ooo333oooozzzoo...
+.....oo1112222222223oooo....
+....o311122222222222333o....
+...oo1122222222222222333o...
+...o22222222222222222233o...
+..o112222bb222221111a2333o..
+..o111222bb222211111a22333o.
+..oo1112222222111ooo222333o.
+.ooooo122222221ooo11o22233o.
+.ooccoo2222222oocc11co2233o.
+.o1cwoo2222222owoccwwo22333o
+.o1ccoo2222222oooccww222333o
+.owccoo2222222oooccww222333o
+.owzzcc2222222occzzww222333o
+.o2wzzc2o2o222ozzzbw2222333o
+o2222222222222A22222222333o.
+obbb22222222222222bbb22333o.
+obbb22222222222222bbb23333o.
+.ob222222oo22222222222333o..
+.oo222222222222222222333o...
+..oo3222222222222233333o....
+....o3332222223333333oo.....
+.....ooo3333333333ooo.oo....
+........oooooooooo...o22o...
+..........oaaB333o..o223o...
+.........ooa1aa33ooo3333oo..
+........oo1111a2223o333oo2o.
+.......oo11111122222oooo33o.
+......o1o11111122o222oo33o..
+......o2o11111112o2223o3oT..
+.....o23111111112o22223oo...
+.....o331111111133o222zo....
+.....o33o111111a33o22z3o....
+.....ooooa1111aa323o333oo...
+......ooooaaaaa32223ooo3o...
+........o3oaaac32223ooo33o..
+........o33ooooo2223o..oo...
+.........o333ooo2233o.......
+..........oo3o..o333o.......
+...........oco...ozo........
+.........oozco...ozo........
+........obbzoo..ozco........
+........oooP....oooo........
diff --git a/parts_pl_src/body/pl_pinefinch.txt b/parts_pl_src/body/pl_pinefinch.txt
new file mode 100644
index 0000000..6696bdf
--- /dev/null
+++ b/parts_pl_src/body/pl_pinefinch.txt
@@ -0,0 +1,46 @@
+# pl_pinefinch: from pixellab_src/pl_pinefinch/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (30, 24) (from part/probe)
+# back at (40, 34) (from part/probe)
+# tail at (45, 46) (from part/probe)
+..............oooo...............
+.............o2113o..............
+...........oo111133o.............
+..........o1111^13ooo............
+.........o21111133333o...........
+.......o11111111113333o..........
+......o1111111111111333o.........
+.....o111111111111111333.........
+.....oo21111111132111133o........
+....o2o322111oooo22111333o.......
+....o1ocz221o12o1o21111333o......
+....ooayyc22o11o1o21111333o......
+....oa1yzc22ooo31obab113333o.....
+...oa1yyczc2oooo1obaa1133B3o.....
+..oa1yyyycc23o11ocaaaa33333o.....
+.oa1yyzcccco23oobaaaab333333o....
+.o1yzcooooo22baaaaabboooo333o....
+oyzooocccoo2baaaaabb31111oo3o....
+oooo222ooo222cbbbbc31111112oo....
+..o112122222222233o1111111133o...
+..o1oo1111221112Ao11111113213o...
+..oo3o11112o11122o111111313o33o..
+..o323o122o3o113oo11113211o2o3o..
+...3223oo33233oo3oo1131o1oo22o3o.
+...o12333222332223o3211oo22122oo.
+...o3oo111113o22233oooo33o2112T2o
+....o33o1111o3o133o3o33223oo113oo
+....o323o11oo333oo33oo332223ooo3o
+.....o223oo22223333333oo33333333o
+......o2o33o2233o33333333oooooooo
+.......o3333oooo333333333ooo33o..
+........oo33o33333ccc33oooooo33o.
+..........oo33333ozzco....ooo332o
+..........ocoooooooco.......ooo3o
+..........oco.....oco..........oo
+.......oooocooo...ozo............
+......oyzcycccooooocooo..........
+......oooycooooozzcccco..........
+........oooo...oyooyooo..........
+...............oPoooo............
diff --git a/parts_pl_src/body/pl_pinefinch_b.txt b/parts_pl_src/body/pl_pinefinch_b.txt
new file mode 100644
index 0000000..6e7a425
--- /dev/null
+++ b/parts_pl_src/body/pl_pinefinch_b.txt
@@ -0,0 +1,57 @@
+# pl_pinefinch_b: from pixellab_src/pl_pinefinch_b/base.png (variant of pl_pinefinch) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 35)
+# head_top at (30, 11)
+# back at (40, 34)
+# tail at (49, 46)
+....................ooo...............
+..................^o113o..............
+................oo111133o.............
+..............oo11111133oo............
+.............o211111113333o...........
+............o11111111113333o..........
+...........o1111111111111333o.........
+..........o111111111111111333o........
+.........o11111111111111113333o.......
+.........o31111111111321111333o.......
+.........oooo31111oooo321111333o......
+......ooooyyyb311o11o1o31111333o......
+....ooy11yyyyyb13ow1o1o31111133o......
+...oy11yyybbyyb33oooo1o311111333o.....
+..oy1yyyyyybbybb3ooo3woaaa111333o.....
+.oy1yyyyyyyyyybb3oooowoaaa111333o.....
+.o1yyyyyyyyyybbbo2ooooaaaaa113333o....
+oyyyyyyyyybbbbbbo222aaaaaaa113333o....
+oyyyyybbboooooobo2aaaaaaaaa113333o....
+oyyyboooozyyybbo32aaaaaaaaa133333o....
+oyybobbbbbbbbbo331aaaaaaaa13333333o...
+oyboooooobbboo33311aaaaaa113333333o...
+obo...o33ooo3333111111112333333333o...
+.oo...o3333333311111111333oooo3333o...
+......o13333331111111133oo11B1oo33o...
+......o1133311111111A33o1111111133o...
+.....o1111111111111133o11111111133o...
+.....o112111111111113o111111111113o...
+.....o113111112111113o1111111313113o..
+.....o1oo111113o11123o1111113113333o..
+.....oo33o111oo3oo11oo11113o111oo33o..
+.....o3113ooo33133oo33o1131o31o33o33o.
+......3113333311333333o3311ooo3113o3o.
+......o11o1111113o11333oooo33o2113133o
+......o1oo11111133o1133oo33111o311333o
+.......o33o11111o3o113o3o332111oo1133o
+.......o323o111o3333oo333oo331113ooo3T
+.......o3223ooo332233333333oo33333333o
+........o32o333o2233o33333333ooo33333o
+.........oo33333oooo3333333333ooooooo.
+..........o333333333333333333ooo333o..
+...........oo33333333bbb3333ooo3oo33o.
+.............oo33333ozzb3ooo..oooo332o
+.............ocoooooozzbo.........oo3o
+.............oco.....obo............oo
+.............obo.....obo..............
+..........oooobooo...ozo..............
+.........oyzbybbbooooobooo............
+.........oooybooooozzbbbco............
+...........oooo...oyooyooo............
+..................Pooooo..............
diff --git a/parts_pl_src/body/pl_pinefinch_c.txt b/parts_pl_src/body/pl_pinefinch_c.txt
new file mode 100644
index 0000000..edc30f0
--- /dev/null
+++ b/parts_pl_src/body/pl_pinefinch_c.txt
@@ -0,0 +1,51 @@
+# pl_pinefinch_c: from pixellab_src/pl_pinefinch_c/base.png (variant of pl_pinefinch) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 39)
+# head_top at (30, 16)
+# back at (40, 34)
+# tail at (48, 46)
+.................^ooo................
+................o322o................
+...............o3112ooo..............
+.............oo21122333o.............
+............o321122333oo.............
+..........oo222222222333oo...........
+.........o3111112222223333o..........
+........o21111111112222233o..........
+.......o3222111111222222333o.........
+.......ooo222111ooooo2222333o........
+......obbco2222ocbbcco222233o........
+.....obbobcoooobbccbcco222333o.......
+.....obcwcbbbbbbwocbccob22333o.......
+.....obco3bbbbbooo3bccoa223333o......
+.....obc3oooocbooo3bccoaa23333o......
+.....ocobxxccocbo3bcccoaa23333o......
+.....ooy1yyyccocbbcccoaaab3333o......
+.....oyyyyyyccoooooooaaaab33333o.....
+....ocxycccccc333aaaaaaab33B3333o....
+....ocycooccc3322bbaaabb333333333o...
+...o3ooo33333322222bbb33333333333o...
+..o3222223333222222222331112333333o..
+..o22222222222122222223111112233333o.
+.o2221121222111212A2232111112223333o.
+o322221112111111122223211122223o3333o
+o3221111111111111122232212212333o333o
+o3222111111111111122233211322332o333o
+o32221111111111111122o33223332222o33o
+.o22221111111111131322o3333223222o33o
+.o322311111111111333223o3322223333o3.
+.o3223311211111113222233o333223222oT.
+..o3223133111311132222233o333322223o.
+...o3223323113313322223333oo3332223o.
+...o333222233333332223333333oooooooo.
+....o333222233322223233333333333oo...
+.....o3333232222233233333333333o.....
+......o3333332323333333333333oo......
+.......oo333333333333333333oo........
+.........oooo33333333333ooo..........
+............oooooooooooo.............
+.........oooocooo...oco..............
+........oyzcycccooooocooo............
+........oooycooooozzcccco............
+..........oooo...oyooyooo............
+.................oPoooo..............
diff --git a/parts_pl_src/body/pl_pipe.txt b/parts_pl_src/body/pl_pipe.txt
new file mode 100644
index 0000000..837a5cb
--- /dev/null
+++ b/parts_pl_src/body/pl_pipe.txt
@@ -0,0 +1,48 @@
+# pl_pipe: from pixellab_src/pl_pipe/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 22) (from part/probe)
+# back at (32, 37) (from part/probe)
+# tail at (47, 53) (from part/probe)
+....................ooooo3..........
+..................oo11111oo.........
+............oooooo211oooo21o........
+...........o1o22o^11oooo3oo1o.......
+..........oo32o21o1oooooo3o2o.......
+.........o21c211o1oooooooo3o1o......
+........o1112o1o2ooooooooo3o1o......
+........oo11211o1ooaooooooo1oo......
+........o1o1o11o1oc1oob1ooo1oo......
+........o111o11o1o1y1oa1ooo1oo......
+.......3o111o22o2o11oo1o22o1oo......
+.......o2o22oa2o2ooooooooo2o2o......
+.......o2o22o222o2o22o222o1o2o......
+......o22o2co222o22o212221ooo.......
+......oc2oo2oo222o23o11111o3o.......
+......occ2o22oo222o22o1212oo........
+......o2c22o2ooooooo3o1222o.........
+.....2o22122o322222ooo2o2o..........
+.....o3o21122oooooBo.ooo2o..........
+.....oo1oo22222222o....o2o..........
+.....o2o21o2oooooo3o...o2o..........
+.....2o222aa1222222o...o1o..........
+......ooo1aa1111122o...o2o..........
+.......o2oooooo2oAo.....o...........
+.......o22222222222o................
+........o21a11111a1oo...............
+........o2b112aooaa1o...............
+........oob1oa11ao111ooooooo........
+.....ooooobo21111ao11oo33322ooooo...
+...oo2223oo221111aaa11oooo3o32o13o..
+..oo1o33o3o3o21111ao11oo1aoooo1oo2o.
+.oo11ooooooo2oc111ao1oooo11o1oo113o.
+o111oa111o1o22bboooao1ooo31o11o11o2o
+o11oaa11o1oo2221111a11oooo11o11o11oo
+o21o111a11o2o222111122o3oo21o11o1Too
+o2oo11ao1co22o22b2122ooooo2bo11o2ooo
+oooo222o22o32co22222co3ooocco22o22oo
+o3oo222322occ22oooooo33ooocco22o22o.
+.oo3o222oc3o3222232oo333o3co22o2oo..
+..o3oo22o3c3o2222ooooo33oc2ooo2o2o..
+ooooooooooo33oooooooooooooooooooooob
+.......ooooooooooPoooooooooo........
diff --git a/parts_pl_src/body/pl_pipe_b.txt b/parts_pl_src/body/pl_pipe_b.txt
new file mode 100644
index 0000000..647dc2c
--- /dev/null
+++ b/parts_pl_src/body/pl_pipe_b.txt
@@ -0,0 +1,48 @@
+# pl_pipe_b: from pixellab_src/pl_pipe_b/base.png (variant of pl_pipe) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (31, 43)
+# head_top at (31, 21)
+# back at (32, 37)
+# tail at (51, 53)
+.......................ooooo..............
+.....................oo21222oo............
+...............ooooo^312oooo32o...........
+..............o2o322222ooooooo2o..........
+.............oo33c21o2oooooo3o2o..........
+............o22c321o1oooooooo3o2o.........
+...........o111321o3ooooooooo3o2o.........
+...........o112322o2oocooooooo2oo.........
+...........o122o22o2o31ooc1ooo2oo.........
+...........o222o22o2o1z1oc1ooo2oo.........
+..........oo222o33o3o11oo1o33o2oo.........
+..........o3o33oc3o3ooooooooo3o2o.........
+..........o3o33o333o3o33o333o2o2o.........
+.........o33o3co333o33o312131ooo..........
+.........o333333o333o33o21121o3o..........
+.........o3323333o333o33o2313oo...........
+.........o33223cc3ooooooo3o3oo............
+.........o322223c33333o.ooo3o.............
+.........o32222333333Bo...o3o.............
+........ooooooooooooooooo.o3o.............
+........o222c11111333333o.o2o.............
+........oo32c1123333ooooooooooooo.........
+.......oooo3c11333oo2233332112222oooo3....
+....oooo331oo3133oo2222222122222221ooo....
+...obbaao332o333o212A2222122ooooo221obo...
+..obbbbbao311o3o111c1112122ooooooo222obo..
+.obbccobaao31oo311c1111122ooooooooo22obao.
+obbcoboobao321o322c222212oooooooooo221oao.
+obcooboobaao31o32c3223122ooooooooooo21obo.
+obcooboobbbo323o32222312oooooooooooo22obbo
+obcocbcbobbo323o32222322oooooooooooo22ocbo
+obcobcbcobbo323oc3333o22oooooooooooo22ocbo
+obcobcccobboo33o33333o22ooooooooooo322occo
+obcooccoobcoo33o33c33o22ooooooooooo322occo
+obcobcboobcoo3oo333o3o22oooooooooo3322ocT.
+obcbcobbobcoo3ooo33o33o22oooooooo3322occo.
+.obcooobbcooo3oooo3o33o22ooooooo33322occo.
+.obbcoobbcoo3oooooooo3oo22oooo333222occo..
+..obbbbbcoo3ooooooooo33o2222ooo3222occo...
+...obbbcoo33ooo33oooooooo322222222oooo....
+....ooooooooooooooooooooooo22222oo........
+...........................Poooo..........
diff --git a/parts_pl_src/body/pl_pipe_c.txt b/parts_pl_src/body/pl_pipe_c.txt
new file mode 100644
index 0000000..c47e263
--- /dev/null
+++ b/parts_pl_src/body/pl_pipe_c.txt
@@ -0,0 +1,48 @@
+# pl_pipe_c: from pixellab_src/pl_pipe_c/base.png (variant of pl_pipe) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 43)
+# head_top at (31, 21)
+# back at (33, 35)
+# tail at (50, 53)
+......................ooooo............
+....................oo11111oo..........
+..............ooooo^211oooo11o.........
+.............o1bc11112oooo3331o........
+............o11aa11o1oooooo331o........
+...........o111aa1o1oooooooo331o.......
+..........o1111cbo2ooooooooo331o.......
+.........o11111bbo1oobooooooo31o.......
+.........o111112co1oc1ooo1ooo31o.......
+........ob111112bo1o1z1ob1ooo31o.......
+........oac11122oo2o11oo1o22o31o.......
+.......o2aaa1222oo23oooooooo3o1o.......
+.......o22aabc222o32o22o222o3o1o.......
+.......o211cbbbcooo22o22112o32o........
+.......o2111222oo..o22oo2121o2o........
+.......o2111222o....o223o211oo.........
+.......o2111122o.....Boooo22o..........
+.......o2211122o..........22o..........
+.......o22111122o.........o2o..........
+.......o221aaabcoo........o2o..........
+.......o22caaa122o........o2o..........
+........obcc111122o.ooooooooooo........
+........oc211111122oo222222bc21oo......
+........o2221111oo12o222222b11111oo....
+.........o22212o111A2o2222bb1111111o...
+.........o2222o111aacco333bb2211ooo1o..
+.......oooo22o211aa1111o33b3222o1111o..
+....oobb222o2o22aa111111o3b322o211111o.
+...o111bb123oo22b21111111oob22o211111o.
+..o1111obc233o2bc21111111o.oo2o2aaaaco.
+.o1111133b3333oo222111111o...oob11111bo
+o21aaao33b333ooooooooooo12o..oo2211112o
+o2b111ooooooooooo221111122ooooo2ooo112o
+o22111bc111bc111ca21111122o211cb111o12o
+o3221aa1111aa1111aa1111222o2111aa111o2T
+o332aa11111aa1111oac22222222111aaa112oo
+o333bc11111aa11111bbc2222o221111aa122oo
+.o32bc22222bb222222bb2223o222222bb222o.
+.oo2bb22222bb222222bb22oo2222222bb22oo.
+...oob22222bb22222bbboo222222222bb2o...
+....ooooo222cc222ooooooooo22222bboo....
+.........oooooooooP.......ooooooo......
diff --git a/parts_pl_src/body/pl_pitcher.txt b/parts_pl_src/body/pl_pitcher.txt
new file mode 100644
index 0000000..2dc118a
--- /dev/null
+++ b/parts_pl_src/body/pl_pitcher.txt
@@ -0,0 +1,44 @@
+# pl_pitcher: from pixellab_src/pl_pitcher/base.png (pixellab_library.py extract)
+# pivot at (25, 59)
+# aura at (32, 41)
+# head_top at (32, 24) (from part/probe)
+# back at (31, 40) (from part/probe)
+# tail at (43, 50) (from part/probe)
+...........333333333..........
+.........oo12122222233........
+........o122222^222222o.......
+........o2222233322222o.......
+........o2222222222233o.......
+.........oo222222223ooo.......
+..........oooooooooo..........
+..........o111112232..........
+.....ooooco111112232ccooo.....
+..occbaaabco2112233ocbbbbcoo..
+.obbbbbcbccco22233occcbbbbbbo.
+obaaaoocccoooooooooooccooaabbo
+obaaaaoooooooo22ooooooooaaabbo
+ocbaaaaabooooo33ooooobaaaabbbo
+.ocbbaaaaaaaaaaaaaaaaaaaabbbo.
+.ocbbbbaaaaaaaaaaaaaaabbbbbbo.
+..coobcbbbbaaaaaaabbbbcbbooc..
+..c..oooboobbbbbbbboboooo..c..
+..o..o32b23oooBoooooboo2o..o..
+....o212b222222A2222a2222o....
+....o211b21122222222a2222o....
+...o21111111111111111122c2o...
+...ob1111111111111111112cco...
+..o2bb11133311111133311ac22o..
+..o221113212311113212311222o..
+..oc211131o13111131o13112abo..
+..ocb11131o13111131o13112b2o..
+..o221113212311113212312232o..
+..o22111133311111133311223To..
+...o22a1111111111111112233o...
+...o32b211111111111112c233o...
+....ocb2221111111112223c3o....
+.....o333222222a2222333co.....
+......oo333c333b33c333oo......
+......o3oo33c33c3c33oo3o......
+...ooo122oooooooooooo331ooo...
+..o22212co..........oc21222o..
+..ooooooP............ooooooo..
diff --git a/parts_pl_src/body/pl_pitcher_b.txt b/parts_pl_src/body/pl_pitcher_b.txt
new file mode 100644
index 0000000..2219530
--- /dev/null
+++ b/parts_pl_src/body/pl_pitcher_b.txt
@@ -0,0 +1,38 @@
+# pl_pitcher_b: from pixellab_src/pl_pitcher_b/base.png (variant of pl_pitcher) (pixellab_library.py extract)
+# pivot at (25, 59)
+# aura at (31, 43)
+# head_top at (32, 28)
+# back at (31, 40)
+# tail at (46, 50)
+..........oooooo^ooooo..........
+......oooobbaaacaaaaaaoooo......
+...occaaaaccccccccccccccaaooo...
+..oaaaoocccoooooooooooccooaabo..
+.ocaaaaoooooooooooooooooobaabco.
+.ocbaaaaaooooooooooooooaaaabcco.
+.ooccaaaaaaaaaaaaaaaaaaaaabccco.
+..occccbaaaaaaaaaaaaaabbccccco..
+...cooccccccaaaaaaaccccccccoc...
+...co3ooocooccccccccoocoo33oc...
+...o33333a33oooooooo33boo33oo...
+..o332233a333333333333a333333o..
+..o322222a22233B333333a333333o..
+.o32211112222222222222222333c3o.
+.ob2211112222222222222222233c3o.
+o3ba11112233322A2222332222ac333o
+o3321111233233222223o232222333bo
+oc321112231o13222223223222233aco
+o3a22212232223222223223222233b3o
+o332222222222222222222222223333o
+o332222aaa2222222222222aa223333o
+o33c2222aa22o222222o222aa233c33o
+.oc3222222222oooooo22222223333T.
+.oc33322222222222222222223333co.
+..o3333a222222222222222c33333o..
+..oo33cb3322222222222333c3333o..
+...oo33333333333b33333333c3oo...
+.....ooo3333c333b33c33333oo.....
+.......ooooooc33c3c333ooo.......
+....ooo233oooooooooooo332ooo....
+...o22223co..........oc32222o...
+...ooooooP............ooooooo...
diff --git a/parts_pl_src/body/pl_pitcher_c.txt b/parts_pl_src/body/pl_pitcher_c.txt
new file mode 100644
index 0000000..d25901a
--- /dev/null
+++ b/parts_pl_src/body/pl_pitcher_c.txt
@@ -0,0 +1,61 @@
+# pl_pitcher_c: from pixellab_src/pl_pitcher_c/base.png (variant of pl_pitcher) (pixellab_library.py extract)
+# pivot at (26, 59)
+# aura at (32, 37)
+# head_top at (32, 5)
+# back at (31, 40)
+# tail at (43, 50)
+........oooo^oooo........
+......oo222222322o.......
+.....o233333333332o......
+.....o213333333322o......
+.....o331122222233o......
+......o3332222233o.......
+......o3333333333o.......
+.......o21222233o........
+.......o21222233o........
+.......o2212223co........
+........o21222co.........
+........o2122cco.........
+........o2122c3o.........
+........ob12cc3o.........
+........ob32c33o.........
+........o2acc33o.........
+........o21cc33o.........
+........o21cc33o.........
+........o212c33o.........
+........o21ccc3o.........
+........o2ac2c3o.........
+........oc1c23co.........
+........o21c23co.........
+........o2ac233o.........
+........o2a2c33o.........
+........o2a22c3o.........
+........o2122cco.........
+.......ob21223c3o........
+.......ob21222c3o........
+.......ob12222c3o........
+......o22a222ac33o.......
+......o22a222a333o.......
+.....o221a22Aa2333o......
+....o2212222222233co.....
+....o21a1122222233co.....
+...o21a1112B22222cc3o....
+..o21a111222222222cc3o...
+..o2a21122222222222c3o...
+.oaa111122232222222333o..
+.oaa111122o222o2222333o..
+o33a12222o3222o2223233co.
+o33112oooo3222oooo323aco.
+o3311222232222322222ab3o.
+oc322222322222222222b33o.
+occ22a22222222222222333o.
+o3322a22222oo2222223333T.
+.o33b3222232232222a333o..
+.o33c2c22222222222b333o..
+..occ33c22222222333c3o...
+...oc333b3333b333333co...
+....oo33c3333c33c33oo....
+....o3ooc3333c33coo3o....
+.ooo233ooooooooooo332ooo.
+o22223co.........oc32222o
+ooooooP...........ooooooo
diff --git a/parts_pl_src/body/pl_pitcher_d.txt b/parts_pl_src/body/pl_pitcher_d.txt
new file mode 100644
index 0000000..7b86717
--- /dev/null
+++ b/parts_pl_src/body/pl_pitcher_d.txt
@@ -0,0 +1,60 @@
+# pl_pitcher_d: from pixellab_src/pl_pitcher_d/base.png (variant of pl_pitcher) (pixellab_library.py extract)
+# pivot at (27, 59)
+# aura at (32, 34)
+# head_top at (32, 6)
+# back at (31, 40)
+# tail at (42, 50)
+.........333^333........
+.......o3133333333......
+......o13333333333o.....
+......o33333333333o.....
+......o33332333333o.....
+.......3ooooooooooo.....
+........o2122333........
+....oooco2222333cooo....
+..ocaaabco32333ocbaaco..
+.oaaabbccco333occcbaaao.
+obaaooccooooooooocooaabo
+obbaabboooo33oooobaaabbo
+.obaaaaaaaaaaaaaaaaabbo.
+.obbbbaaaaaaaaaaaabbbbo.
+..bobcbbbaaaaabbbcbbob..
+..boooboobbbbbboboooob..
+..oo33a33oooooo3ao3ooo..
+....o2a333333333a33o....
+....o22222333333333o....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222222233o.....
+.....o221222A22233o.....
+....o32212222222333o....
+....o22222222222333o....
+...o3221222222222333o...
+...o2211222222222333o...
+..o3211122222222223b3o..
+..o22111122B222222a33o..
+.o321111122222222223c3o.
+.o32113332222223332233o.
+o3221331332222332332333o
+o32213wow322223wow32333o
+o32223wow322223wow32333o
+o33223313322223313323b3o
+o332223332222223332233bo
+ob32222222222222222233bo
+.ob222222222222222a233o.
+.o3322222222222222a333T.
+.o33a22222222222223333o.
+.o33b33222223222333b33o.
+..ocb3333333a333333c3o..
+...o3333a333a333333co...
+....oo33c333b33c33oo....
+.....ooo3c33c3c3ooo.....
+...ooo33oooooooo33ooo...
+..o3233co......oc3323o..
+..oooooP........oooooo..
diff --git a/parts_pl_src/body/pl_pitohui.txt b/parts_pl_src/body/pl_pitohui.txt
new file mode 100644
index 0000000..73ffacb
--- /dev/null
+++ b/parts_pl_src/body/pl_pitohui.txt
@@ -0,0 +1,48 @@
+# pl_pitohui: from pixellab_src/pl_pitohui/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 42)
+# head_top at (31, 24) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (45, 51) (from part/probe)
+...................oo...................
+..................o22o..................
+..................o22o..................
+.................o2222o.................
+................o211123o................
+...............o211^1123o...............
+..............o2211111222o..............
+............o32221111112223o............
+...........o2222211111122222o...........
+..........o222221111111122222o..........
+.........o222211oooooooo112222o.........
+........o22211oo33333333oo11223o........
+.......o3321oo333333333332oo1233o.......
+......o3333o3333111111113322o3333o......
+......o333o333111111111113332o333o......
+.....o333o221111111B1111111333o333o.....
+.....o33oo21111111111111111123o333o.....
+....o333o2213331111111113333122o333o....
+....o33oo213bwo311111113wob3112oo33o....
+....o33o321baooa12ooo21aooab1122o33o....
+....o33o321bwacw1o212o1wbcwb1122o33o....
+...oo33oo212aww1o33233o1wwaa112oo33oo...
+..o12o33o2211111oo333oo11111122o33o21o..
+.o1112o33o22111112oAo211111122o33o2111o.
+.o11123o33o322111122221112223o33o22111o.
+.11112323oo33332222222222333ooo32321111.
+o1111321123oo23333333333333o33211231111o
+o111132111123o33222222233oo221111231111o
+o21123211111122oo32223oo222111111233112o
+o2212o21111111abbooooobbaa11111122o2122o
+.o222o221111aaaaabbbbbaaaaaa111122o222o.
+..o22o32211baaaaaaaaaaaaaaaab11223o22o..
+...oo.o222bbbaaaaaaaaaaaaabbbb222T.oo...
+......o222cbbbbbaaaaaaabbbbbbc322o......
+.......o22ccbbbbbbbbbbbbbbbbcc32o.......
+........o33ccccbbbbbbbbbccccc32o........
+.........oo3cccccccccccccccc3oo.........
+...........oooccccccccccccooo...........
+............oooooooooooooooo............
+...........o3ooo........ooo3o...........
+..........o323o..........o323o..........
+..........oooP............oooo..........
diff --git a/parts_pl_src/body/pl_pitohui_b.txt b/parts_pl_src/body/pl_pitohui_b.txt
new file mode 100644
index 0000000..e2193db
--- /dev/null
+++ b/parts_pl_src/body/pl_pitohui_b.txt
@@ -0,0 +1,55 @@
+# pl_pitohui_b: from pixellab_src/pl_pitohui_b/base.png (variant of pl_pitohui) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 36)
+# head_top at (31, 12)
+# back at (31, 34)
+# tail at (40, 51)
+.................^o..................
+................o22o.................
+................o22o.................
+...............o2222o................
+...............311123................
+..............o111112o...............
+.............o21111122o..............
+...........o322111111223o............
+..........o22221111112222o...........
+.........o2222111111112222o..........
+........o22221oooooooo11222o.........
+.......o22212o33333333oo1123o........
+......o3322oo33333333333o1233o.......
+.....o333oo33311111111333o3333o......
+.....o333o3331111111111333o333o......
+....o3333321111111111111133o333o.....
+....o33o31133311111111333113o33o.....
+...o333o213bao31111113aob312o333o....
+...o33o211caooa1oooo1aooac122o33o....
+...o33o211babcao3323oabcab122o33o....
+...o33o311baaa1o3323o1aaaa12oo33o....
+...oo33o2211111o3323o1111112o33ooo...
+..o12o3oo211111ooB23o111112o33o311o..
+.o1112o33o221112o32o2112223o3o32111o.
+.o11123ooo333222o3Ao2222333oo232111o.
+.111123222o33333o32o3333ooo211321111.
+o11112211122oo33o32o33ooo22111231111o
+o1111321111123ooo32ooo22211111231111o
+o211332111111122o33o2222111111233112o
+o2213o2111111aabboobbbaa1111122o3122o
+.o333o22111aaaaaboobaaaaab11122o333o.
+..o33o3221baaaaaaaaaaaaaaab1223o33o..
+...oo.o33cbbbbbaaaaaabbbbbbc33o.oo...
+......o33ocbbbbbbbbbbbbbbbco33o......
+.......o33ccccbbbbbbbbcccco3oo.......
+........oo3cccccccccccccccoo.........
+.........o3oocccccccccccooo..........
+.........o33oooooooooooo33o..........
+.........o1333o......o3331o..........
+.........o1113o......o3111T..........
+.........o1113o......o3111o..........
+.........o1113o......o3111o..........
+..........o313o......o313o...........
+..........o113o......o311o...........
+..........o113o......o311o...........
+..........o113o......o311o...........
+..........o33oo......oo33o...........
+.........o323oo......oo323o..........
+.........ooooo........Poooo..........
diff --git a/parts_pl_src/body/pl_pitohui_c.txt b/parts_pl_src/body/pl_pitohui_c.txt
new file mode 100644
index 0000000..519f092
--- /dev/null
+++ b/parts_pl_src/body/pl_pitohui_c.txt
@@ -0,0 +1,57 @@
+# pl_pitohui_c: from pixellab_src/pl_pitohui_c/base.png (variant of pl_pitohui) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 35)
+# head_top at (31, 11)
+# back at (31, 34)
+# tail at (49, 51)
+.....................oo....................
+..............oo....^yyo...oo..............
+.............ooyoo.oy1yo.ooyyo.............
+.............oz1yooy1yyzoyy11o.............
+........oooooozy1yzy1yyzy11yzoooo..........
+........oyyyyozyyyyyyyyyy1yyzzyyyo.........
+........oyx11yyyyyyyyyyyyyyyyyyxzo.........
+.....oooozyyy1yyyyyyyy1yyyyyyyyyzooo.......
+....oyyyyyyyyyy11yyyyy11yyyy1yyyyyyyo......
+....oyx1yyzzyyyyz1yyy1yyyyyyyyyyyy11yo.....
+....3zyyyyz11yyyyyyyyyyyyyyyyy1zyyyzzo.....
+...oozzyyyyy1yyyyyyyyyyy11yyyyzyyyyzoo.....
+..oyyyyyyyyyyyy1yyyyyyyyy1yyyyyyyyyyzzo....
+.oy11yyyyyy1yyyyyyyyyyyyyzyyyyyyyyyyyyyo...
+.ozzzyyyyyz1yyyyyyyyyyyyyyyyyyyyy1yyyyxyo..
+.oozyyyyyyzyyyyyyyyz1yyzyyyyyyyyyyyyyyzyyo.
+..oyyyzxyyyyyyyyyzzzz1zzzyyyyyyyyyyyyyzzo..
+.oyyyzy1yyyyyyyyzzozzzzoozyyzyyyyyyxyyzzo..
+oz1yyyzyyyyyyzzzzo3ozzo33ozyzzyyyyy1zyyzo..
+ozzzyyyyyyyzzzzoo333oo333oozzoyyyyzzyyyyyo.
+oozyyyyyyyyzooo333223322233ooozyzyyzyyyyyzo
+.ozyyyyyyyyzo3322111111122333ozzzyyyyyyyzzo
+.oyy1y1yyzzo322211111111122233ozzyyyyyyyoo.
+ozyyyyyyzzo32222211111112222233ozzyyyyyyzo.
+ozyyzyyyzo3323332211B11223333233ozyyyzzyyzo
+ozyzzyyyzo323bwo32222A223wob3223ozyyyzzzzzo
+ozzzzyyyzo32caooa23ooo32aooac223oyyy1xzzooo
+ozzzzzyyzo32bwacw2o212o2wbcwb223oyyyyyzzoo.
+ooozzzyyyo32bbbw2o33233o2wwbbb23oyyyzzzzzo.
+..ozzzzyyzo3bbb22oo333oo222bbb3ozyyyzzzzzo.
+..ozzzzzyyzo3222223ooo32222223ozyyyzzzzooo.
+..oozzczyyyzooo322233332223ooozyyyzzzooo...
+.o22ooozzyyyyyyoo3333333oooyyyyyyzzzoo32o..
+.o12333ozzzyyyyyyoooooooyyyyyzzzzzoz3321o..
+o212233ozzozzyyyyyyyyyyyyyzyzzzoozoo32212o.
+o2222332oooczzzyyyzyyyyyzzzzzozo3o2332222o.
+o2222332333ozzoozzzzzzzzooozo3oo222332222o.
+o32233322223oo33oozzzzzoo33oo333222333223o.
+o3333o322223333bbbooooobabb332222223o3333o.
+.o333o3322222baaaabbbbbaaaaaa2222333o333o..
+..o33oo32222baaaaaaaaaaaaaaaab22233oo33o...
+...oo..o322bbbaaaaaaaaaaaaabbbb223o..oT....
+.......o333cbbbbbaaaaaaabbbbbbc333o........
+........o33ccbbbbbbbbbbbbbbbbcc33o.........
+.........o33ccccbbbbbbbbbccccc33o..........
+..........oo3cccccccccccccccc3oo...........
+............oooccccccccccccooo.............
+.............oooooooooooooooo..............
+............o3ooo........ooo3o.............
+...........o323o..........o323o............
+...........oooo............Pooo............
diff --git a/parts_pl_src/body/pl_pitohui_d.txt b/parts_pl_src/body/pl_pitohui_d.txt
new file mode 100644
index 0000000..fd3e276
--- /dev/null
+++ b/parts_pl_src/body/pl_pitohui_d.txt
@@ -0,0 +1,49 @@
+# pl_pitohui_d: from pixellab_src/pl_pitohui_d/base.png (variant of pl_pitohui) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 39)
+# head_top at (31, 18)
+# back at (31, 34)
+# tail at (50, 51)
+...............ooooo^oooo.................
+..............o1111111111ooooo............
+............oo1111111111111111o...........
+..........oo1111111211111111112oo.........
+........oo11111111121111221111211o........
+.......o11111112211222112211111112o.......
+......o1111121222112222222211111111o......
+.....o11111111222333332232222111111o......
+....o21111111123333333333333211121112o....
+....o11112211333311111111333321111112o....
+...o2211122333322oooooooo2233322111222o...
+...o11111233322oooooooooooo22333112221o...
+..o3111123332oooo333333333ooo2333322212o..
+..o111123333oo3333333333333ooo333332111o..
+.o1111123333o3333222222223333o3333322112o.
+.o112223333o333221111111223333o333331122o.
+.o11222333o332221111B1111222333o33332222o.
+.o32223333o32222211111112222233o333322122o
+.o3223333o3323332211111223333233o33322222o
+.o3223333o323bwo322222223wob3223o33332222o
+o32222333o32baooa23ooo32aooab223o33332223o
+o22112333o32bwacw2o21Ao2wbcwb223o33322223o
+o32122233o322aww2o33233o2wwaa223o33312222o
+o322222333o322222oo333oo2222223o333222213o
+o3322122333o3222223ooo32222223o3332222223o
+o33221122333o3322223333222333o33322221223o
+o322222223223oo333333333333oo222322221333o
+o33222222222223oooooooooooo32222222222233o
+.o33222211222222233333333222221222222223o.
+.o332222122122222bbbbbbbb222122111222233o.
+.o3332222221222aaaaaaaaaaaa2222122223233o.
+..o3323222222aaaaaaaaaaaaaaaa22222223333o.
+..o333322222baaaaaaaaaaaaaaaab222232333o..
+..o33333223bbbaaaaaaaaaaaaabbbb22233333T..
+...o3333323cbbbbbaaaaaaabbbbbbc3333333o...
+....o333333ccbbbbbbbbbbbbbbbbcc333333o....
+.....o333333ccccbbbbbbbbbccccc333333o.....
+......o333333cccccccccccccccc33333oo......
+.......o3333oooccccccccccccooo333o........
+........oooo.ooooocccccoooooo.ooo.........
+............o3ooo.ooooo..ooo3o............
+...........o323o..........o323o...........
+...........oooP............oooo...........
diff --git a/parts_pl_src/body/pl_plaguecrow.txt b/parts_pl_src/body/pl_plaguecrow.txt
new file mode 100644
index 0000000..1f7bb39
--- /dev/null
+++ b/parts_pl_src/body/pl_plaguecrow.txt
@@ -0,0 +1,48 @@
+# pl_plaguecrow: from pixellab_src/pl_plaguecrow/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 39)
+# head_top at (30, 22) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (41, 52) (from part/probe)
+...............oooo..................
+.............oo2222oo................
+...........oo21122222oo..............
+..........o321111^23332oo............
+.........o231111123222222o...........
+........o22o2112232111222o...........
+........o21o22223111111222o..........
+.......o3211o23311132111222o.........
+.......ob3112o21113aa311222o.........
+.......o3311111111331111123o.........
+.......oooo111111ooooo1112oco........
+......o111bo1111o111bbo2ooaao........
+.....o3ooo1o331o3ooo1bbcaaaco........
+.....o3213o1c3o3o123o1bcabbco........
+.....o321oooobb3o313o1bocabooo.......
+.....o3o32o322o3o3B1o1bocoo3o2o......
+....o3o3ooo1122o3o11o1oo322o333oooo..
+..o322oobo122323b2oo2oo311o333222o...
+...ooo3oo2222233oooboo312o22113oo....
+..o3112o31223333o3333223321o12223oo..
+o31122oo122333ooo3A22o3113111ooooo...
+.o133oo322333ooo33ooo21o11o2122o.....
+...oo2o12233ooooooooo212211o3222ooooo
+...o22o1233ooo333o22o211o11oooo3o311o
+..o223o133oocbo31o311o112o22o33oo33o.
+..o2ooo23ooobb313oo32o222o222o3oooo..
+...o2oo23o22o31oxooo2oo22oo22oo3o....
+....ooo3o2o12o23o133occoo3oooooo3o...
+....occoo13213o33ob33bcco2oooooo3oo..
+....oacco21o1o1oooobbbbccbcoo33o3o...
+....oacao321o211111ooooooooooo33oo...
+....oaoaaoo22111121222333ooaao33oo...
+....oo.aaoooo22222223333oooaaoo3o....
+....o..co.o3oooooooo3233o.oaTo.oo....
+.......o...ooooo...ooo3o...ooo..o....
+............obo......ooo....o........
+............o3o......obo.............
+........o3obbboo....ob3o.............
+.......o3oo33ooo..o23oooo............
+.......ooo3ooo...ob2oo2oo............
+..........oo.....o3oooxo.............
+.................P....o..............
diff --git a/parts_pl_src/body/pl_plaguecrow_b.txt b/parts_pl_src/body/pl_plaguecrow_b.txt
new file mode 100644
index 0000000..8a8a067
--- /dev/null
+++ b/parts_pl_src/body/pl_plaguecrow_b.txt
@@ -0,0 +1,52 @@
+# pl_plaguecrow_b: from pixellab_src/pl_plaguecrow_b/base.png (variant of pl_plaguecrow) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 38)
+# head_top at (30, 15)
+# back at (31, 34)
+# tail at (43, 52)
+................oo^oo.................
+..............oo22222ooo..............
+............oo2211122222oo............
+...........o21211112221122o...........
+..........o2113111232111122o..........
+.........o211132223211111122o.........
+.........o2b1113232111bb11122o........
+........ooooo1123111oooo11112o........
+.......oo222bo11111o211bo11122o.......
+.......o2oooo3o111o3ooo1bo2oo2co......
+......o2obabcoo33o3oaabo1bbaabbo......
+......o2oabbboooo3oaabbo1bbabbco......
+......o2oabbboooo3oabbbo1bbbbooooo....
+......ooocabooxxoooaabco2cooo33o22ooo.
+..oooooo3ooooxxo2oo3ooo2oo22233o2222o.
+..o222o2ob2oxx2222oo32ooo112233o333oo.
+..ooo3o21oooxy22ooo1oooo112233o333oo..
+.o2112o2211oy23oco211111122333o22212oo
+o22222o22222o2ooo21111112333oo2222222o
+.oo2113oo3322o33211B112333oo322111oooo
+.o211222oo33333222222223oo321222111o..
+o22231112ooo33222222oooo222211132222o.
+oooo31122222oooooooo322222122113ooooo.
+..oo212221222222222A22112212o212o333o.
+..oo23oo21222111221232211322oo22o222o.
+.o3oooo32223111122123o222oo2o3ooo1122o
+.o323oo3o2oo11123o12o3o22o3oo32221112o
+.o323322oo2o2122oo22o33ooo33332221112o
+.o2233222222o22o32oo32322222233222122o
+.o2233222212ooo2213221112112223322222o
+..ob332211112222111111111111223cb2222o
+..ob332221111121111111111111223cb2223o
+...oc33221111111111111111112223obb22o.
+...oc33222111111111111111112223obbbco.
+....o333222211111111111112222333occo..
+.....o333222211111111111122233333oo...
+......o3333222222111122222233333oo....
+.......o33333222222222223333333T......
+........oo3333333333333333333oo.......
+.........oooo3333333333333oooo........
+...........oooooooooooooooco..........
+.........oooooooooooooo.oc3o..........
+........o32o22ooo.......o232o.........
+........oooo2ooo.......o2ooo2o........
+...........oo..........obooooo........
+.......................Po.............
diff --git a/parts_pl_src/body/pl_plaguecrow_c.txt b/parts_pl_src/body/pl_plaguecrow_c.txt
new file mode 100644
index 0000000..8d97097
--- /dev/null
+++ b/parts_pl_src/body/pl_plaguecrow_c.txt
@@ -0,0 +1,65 @@
+# pl_plaguecrow_c: from pixellab_src/pl_plaguecrow_c/base.png (variant of pl_plaguecrow) (pixellab_library.py extract)
+# pivot at (32, 61)
+# aura at (32, 32)
+# head_top at (30, 3)
+# back at (31, 34)
+# tail at (43, 52)
+.........o^oo.............
+........o2222o............
+......o3211223oo..........
+.....o2211132222o.........
+.....o23223211222o........
+....o2123311211222o.......
+....ob111111bc1122o.......
+...ooo2111ooo31122o.......
+..o2b3o21o3313o122o.......
+..o31o3oo3o2o1o223o.......
+..o32o11o3o1o1o223o.......
+..o3o1222o3113o233o.......
+...o122233ooo3233o........
+..o1223333o3c3333o........
+.o123ooooo3333333o........
+o123o..o3333332233o.......
+o23o...o333332222oo.......
+o3o....o33332222o22o......
+oo....oo333222oo3222o.....
+......o3o3333o222222o.....
+.....o222oooo2211112o.....
+.....o1123o2211111122o....
+.....o112oo2211111122o....
+....o111o33o21111b122o....
+....o111o333o2111bb22o....
+....o113o223o211baac22o...
+....o11o32113o22bacc22o...
+...o113o311122o2baacc2o...
+...o113o2111123o1caac2o...
+...o11oo2111A13o32ccc2o...
+...o13o22111b123o22122o...
+...o13o2111Bbb233o21122o..
+...o13o2111bacc23o22122o..
+..o113o2111baac23o22112o..
+..o11o32111bacc233o2112o..
+..o22o322111cc2333o2112o..
+..oc2o332211222333o21123o.
+..obooo33222233333o21123o.
+..obooo3333333333ooo2123o.
+..cboooo33ooo3333ooo21c3o.
+.ocboooo23oco333oooo21bco.
+.o12oooo23occo23oooo21bco.
+.o12oooo13occo23oooo2bacc.
+.o12oooo13obbo13oooo2baaco
+.o12oooo23obbo13oooo212aco
+.o22ooooo3obbo23oooo212cco
+.o22ooooobobboo3oooo21222o
+.o22oooooboooooboooo21222o
+..o2ooo.obo...obo..o2122o.
+...oo...o2o...o3o..o212T..
+....o...o2o...o3o..o22o...
+........o2o...o2o..o2o....
+........o2o...o2o..oo.....
+........o2o...o2o.........
+........o2o...o2o.........
+......oo2bo...o2o.........
+.....o22bbo..o2bo.........
+.....ooooo..o23bo.........
+............Pooo..........
diff --git a/parts_pl_src/body/pl_plaguecrow_d.txt b/parts_pl_src/body/pl_plaguecrow_d.txt
new file mode 100644
index 0000000..faa6638
--- /dev/null
+++ b/parts_pl_src/body/pl_plaguecrow_d.txt
@@ -0,0 +1,48 @@
+# pl_plaguecrow_d: from pixellab_src/pl_plaguecrow_d/base.png (variant of pl_plaguecrow) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 41)
+# head_top at (30, 19)
+# back at (31, 34)
+# tail at (48, 52)
+.................oo^o.......................
+...............oo2222oo.....................
+.............oo21111222oo...................
+............o221111122222oo.................
+...........o32ooooo12211122o................
+..........o3ooaaaaaoooo1122o................
+..........oaaaaaaaaaabbo1122o...............
+.........ooooaaaaaaoooobo1123o..............
+........o22ccoaaao1222cobo122o..............
+.......o2c112coao1c1123cob222o..............
+.......o211121oao2211221obo22o..............
+.......o211121obo2211121obo223o.............
+.......o211121oco2211121obo223ooo...........
+.......o2c223caaco32113cobo233o3oooo........
+........o333cbaaaoo111cobbo22oo21113o.......
+.......oooooobaaabboBoobbco33332223o........
+......o33obbbaaaaabbacbbcco3321111oo........
+....o3223ocboooooaaoaaacco3332221111o.......
+.....oo33ocoaaaaooaoaabco332221132211o......
+....331123ooaccoaocoabco32221o31113oo.......
+...o312222ooaccoaocoooo3322o11332221o.......
+...oo23o123obaoaoocooo321222o213o3221o......
+.....oo1231ooaaoooooA23211322o213o3221o.....
+....o3122312ooooo33o2232213222o22o33ooo.....
+...o2233o122oocco31o322o212o22222331o.......
+...o2331o22o3occ313oo22o222o321311331o......
+...ooo11o2o322o31o1ooo2oo22oo31211132o......
+.....o1oooo2o12o33o133oco22oo312111321o.....
+....o11oooo13213o23oc33co22oo3221112o1o.....
+....o12oooo21o1o1ooooccco22oco221112ooo.....
+....o12oooo321o211111oooo12ooo331311o.......
+....o13oooooo22111121222o22oooo313112o......
+...o223oooooooo2222222333oooooo311311o......
+...o23ooooooo3oooooooo3233ooooo322311T......
+..o233oooobooooooooooooo3ooooooo322332o.....
+..o23oooooboooocooooooooooobbooo3323321o....
+.o233oo..oo2ooo3oo.ooooocoobbobbo3223331o...
+o323oo...oo2occcoo.ooooc2oooo.ooooo333331oo.
+oooo.....o3oo33ooo..o33oooo........oo33333oo
+.........ooo2ooo...oc3oo3oo..........oooooo.
+............oo.....o3ooo1o..................
+...................P....o...................
diff --git a/parts_pl_src/body/pl_platypus.txt b/parts_pl_src/body/pl_platypus.txt
new file mode 100644
index 0000000..445da62
--- /dev/null
+++ b/parts_pl_src/body/pl_platypus.txt
@@ -0,0 +1,33 @@
+# pl_platypus: from pixellab_src/pl_platypus/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 46)
+# head_top at (29, 36) (from part/probe)
+# back at (37, 39) (from part/probe)
+# tail at (47, 46) (from part/probe)
+.............oooo.....................
+..........ooo1111oo..oooooo...........
+........oo311111^11oo333333oo.........
+......oo311111111111233222222oo.......
+.....o.o11111113331122322211223o......
+.....co22221112oo2311232B2111233o.....
+...ooobbbbb3123wo231122322211123o.....
+.ooccbbbbcbb323oo2311223222211233o....
+occbbbbbcbbbb33ocw311223222211223ooo..
+ocaabbbbbbbbbco333111223222221223333o.
+occaaaaaaaaaaacoo11b12232222222233o23o
+.occcaaaaaabcccco11112322222222233o32o
+..oacccccccc1acco11A22322222222233T33o
+...oooccccccw1oo221222322222222333ooo.
+......oo3333oo3322222322222222o333o...
+.......oo333333332233222222222o333o...
+........oo3333333oo32222322233o33oco..
+........o3ooooooo33322223o3333o33occo.
+........o3oo3333333o21123o333o333ooo..
+........o3oooo3333o211123o33oo33o.....
+........ooooooooo3o211123ooooo33o.....
+.......ocoooooo..oo311223occc33o......
+.......oacooooo...o322233ooacoo.......
+........oooooo....o33333o..oo.........
+.................occ3c33o.............
+.................oacoaco..............
+..................Poooo...............
diff --git a/parts_pl_src/body/pl_platypus_b.txt b/parts_pl_src/body/pl_platypus_b.txt
new file mode 100644
index 0000000..ada9c89
--- /dev/null
+++ b/parts_pl_src/body/pl_platypus_b.txt
@@ -0,0 +1,35 @@
+# pl_platypus_b: from pixellab_src/pl_platypus_b/base.png (variant of pl_platypus) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 45)
+# head_top at (29, 32)
+# back at (37, 39)
+# tail at (52, 46)
+............oooooo^...oooooooo............
+..........oo11111223oo3cccc333co..........
+.........o211111111113222ccc22ccoo........
+........o11111111111123222ccc22cc2o.......
+.......oo311111133311123222cc22cc22o......
+......owo3111112oo231113222ccc22cc22o.....
+......ooo3333113wo231112322ccc22cc223o....
+..ooooooaaaaa313oo23111132B2cc222c223o....
+.oaaaaaaaabaaa33oo2311113222cc222c2233o...
+oaaaaaaaaaaaaaa33331111232222222222223o...
+oaaaaabaaaaaaaaaa321a11232222222222223o...
+obbbaaaaaaaaaccaa311111232222222222233o...
+.occccccccccccaaa311111222222222221233oo..
+..obbaaaaaaaaaab31111A2322222222211223o1o.
+...oooccccccccc32111222322222222111223o12T
+......o3o33333322222233222222222111123o33o
+......o3ooo333332223332222222232111123o3o.
+......o3333ooooooooo222222222232111133oo..
+.......o3333333332222222222322o211113o....
+.......o3333332222223211122o22o211123o....
+........o333333222233211122o33o222223o....
+........ooo333332223o211122o33o332233o....
+........oooo33333333o311122o33oo33333o....
+.......ocooooo333333o311223ooo.oo3333o....
+.......oabooooooooooo322233o..occoc33o....
+........ooooo.......o33333o...oacoaoo.....
+...................obb3c33o....oooo.......
+...................oaboabo................
+....................Poooo.................
diff --git a/parts_pl_src/body/pl_platypus_d.txt b/parts_pl_src/body/pl_platypus_d.txt
new file mode 100644
index 0000000..ca44cf8
--- /dev/null
+++ b/parts_pl_src/body/pl_platypus_d.txt
@@ -0,0 +1,39 @@
+# pl_platypus_d: from pixellab_src/pl_platypus_d/base.png (variant of pl_platypus) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 44)
+# head_top at (29, 28)
+# back at (37, 39)
+# tail at (50, 46)
+...........o...o^o....................
+.........ooo.oo33o....................
+........o32oo3113o.oooo...............
+.....oo.o123311133o333o...............
+.....o3o31131113321133ooo.............
+.....o113111111311123o333oooo.........
+....o311311111111111333oo3333o........
+....oc3111111113cc111111o3213oo.......
+...obbb31111113bbbc111111321333o......
+..obbccc311113bcccbc111133221133o.....
+..obcwoc31111cbwo3bc113333221333o.....
+..obcooc31111ccoo3bc1111Bo3221133o....
+..ocbbbc33333ccoo3bc111333o2213333o...
+.o22ccc3aaaa33cbbbc31111333322223oo...
+o222222ababaab3ccc3111111333222323oo..
+o3322cbaaaaaaab3221111331333222333o3o.
+oo222accbbbbbccb11A21113333223333o323o
+.o222accccccccca111111123332222233o32o
+.o232aacccbbbcaa111113123322222223o33T
+.o3322aacbaabab111121332332222222oooo.
+..oo222baaaaab1111131233322322222oo...
+...o23322bbbb11113133233222322112oo...
+...o3o322221111213333332223321122obo..
+....o.o2233221231333311223o321133obbo.
+......o33o332223333311112oo331333ooo..
+.......oooo333333oo311112oooo233o.....
+........ooooo33oooo311132oooo333o.....
+.......obooooooo.oo313133obcc33o......
+.......oabooooo...o333333ooaboo.......
+........oooooo....o33333o..oo.........
+.................obb3c33o.............
+.................oaboabo..............
+..................Poooo...............
diff --git a/parts_pl_src/body/pl_plesio.txt b/parts_pl_src/body/pl_plesio.txt
new file mode 100644
index 0000000..282e750
--- /dev/null
+++ b/parts_pl_src/body/pl_plesio.txt
@@ -0,0 +1,44 @@
+# pl_plesio: from pixellab_src/pl_plesio/base.png (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (30, 44)
+# head_top at (21, 24) (from part/probe)
+# back at (34, 41) (from part/probe)
+# tail at (43, 51) (from part/probe)
+.......oooooo.............................
+.....oo111^23oo...........................
+....o2111122223o..........................
+...o221122222223o.........................
+...o222222oo2222o.........................
+...o22222owoo2223o........................
+..o2222222oo22222o........................
+..3o2o222222c3222o........................
+..o222222bbb113223o.......................
+...obbbbbw31113323o.......................
+...oo1111313333323o.......................
+.....ooooooo333323o.......................
+...........o333323o.......................
+...........o333223o.......................
+...........o333223o..............oo....oo.
+...........o33122o..............o23oooo21o
+...........o21122o..............o22232222o
+..........o311122o...............o222222o.
+..........o111223o..oooBoo.......o2223oo..
+.........o311122o.oo2bbac2oo....o2122o....
+.........o111122oobc221ba22coooo22223o....
+.........o111222oobAb211ba22ac21a2223o....
+........o1111222233bab222ab22b222a23o.....
+........o11112222222bb222bb22bb22233o.....
+........o111122222222c2222c222c22333......
+........o111112222222c2222b22222333o......
+........o11111222222222222222233333o......
+........o1111122222222333222233333o.......
+........o11111122222222223233333To........
+...oooo33o1111112222o22223o33333o.........
+.oo222222o3111111333o222223o333o..........
+o222222233o331113333o32222333oo...........
+.o333333333o333333333o22222333o...........
+..oooooooo..oo3333333o3222223333o.........
+..............ooooooooo33222222223o.......
+.......................oo3322222222o......
+.........................oo33333333o......
+...........................Pooooooo.......
diff --git a/parts_pl_src/body/pl_plesio_b.txt b/parts_pl_src/body/pl_plesio_b.txt
new file mode 100644
index 0000000..f5ef785
--- /dev/null
+++ b/parts_pl_src/body/pl_plesio_b.txt
@@ -0,0 +1,47 @@
+# pl_plesio_b: from pixellab_src/pl_plesio_b/base.png (variant of pl_plesio) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (28, 42)
+# head_top at (21, 20)
+# back at (34, 41)
+# tail at (44, 51)
+......oooo^oo.............................
+....oo11112223oo..........................
+...o211112222222o.........................
+..o22112222oo2222o........................
+.o22222222oooo2223o.......................
+.o22222222owo222223o......................
+o222222222ooo222222o......................
+oo22o222222222322223o.....................
+o222222222222c113222o.....................
+occccccccccccc113322o.....................
+.owoowcwccwcc1113322o.....................
+..owocccbbbb11113322o.....................
+.oowwcwcbw1111333222o.....................
+.o111111111333333222o.....................
+..o33333333333332222o.....................
+...oooooooo333332aaao.....................
+..........o333322ccco.....................
+..........o33312222o.............oo....oo.
+.........o311112222o............o23oooo21o
+.........o111112aaco............o22232222o
+........o31111222co..............o222222o.
+........o111112223o.oooBoo.......o2223oo..
+.......o311112222Aoo2bbac2oo....o2122o....
+.......o1111122223bb221ba22boooo22223o....
+.......o1111122223bab211ba22ac21a2223o....
+......o111111222222bab222ab22b222a23o.....
+......o1111112222222cc222bb22bb22233o.....
+......o11111122222222b2222c222b22333o.....
+......o11111112222222b2222b22222333o......
+......o1111111222222222222222233333o......
+.......o11111122222222333222233333o.......
+.......o3111111222222222232333333T........
+...oooo3o31111112222o22223o33333o.........
+.oo22222o33111111333o222223o333o..........
+o22222223o3331113333o32222333oo...........
+.o333333333o333333333o22222333o...........
+..oooooooo..oo3333333o3222223333o.........
+..............ooooooooo33222222223o.......
+.......................oo3322222222o......
+.........................oo33333333o......
+...........................Pooooooo.......
diff --git a/parts_pl_src/body/pl_plesio_c.txt b/parts_pl_src/body/pl_plesio_c.txt
new file mode 100644
index 0000000..6ac0ee0
--- /dev/null
+++ b/parts_pl_src/body/pl_plesio_c.txt
@@ -0,0 +1,53 @@
+# pl_plesio_c: from pixellab_src/pl_plesio_c/base.png (variant of pl_plesio) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (29, 42)
+# head_top at (21, 14)
+# back at (34, 41)
+# tail at (44, 51)
+.......ooo^oo.............................
+.....oo111223oo...........................
+....o2111122223o..........................
+...o221122222223o.........................
+...o222222oo2222o.........................
+...o22222o1oo222o.........................
+..o2222222oo22222o........................
+..3323222222c3222o........................
+..o222222ccc11322o........................
+...occccb13111332o........................
+...oo1111313333323o.......................
+.....ooooooo333323o.......................
+...........o333223o.......................
+...........o333223o.......................
+...........o331223o.......................
+...........o1112co........................
+...........ocaacco........................
+...........ocaaabo........................
+...........occccco........................
+...........o11223o........................
+...........o1122o.........................
+...........o1122o.........................
+..........o11122o.........................
+..........o1112co................oo....oo.
+..........oaaaaco...............o23oooo21o
+..........oaaacco...............o22232222o
+.........occc222o................o222222o.
+.........o111222o...oooBoo.......o2223oo..
+.........o1112223oAo2bbac2oo....o2122o....
+.........o1112223obc221ba22coooo22223o....
+.........o1112222obab211ba22ac21a2223o....
+........o1111222233bab222ab22b222a23o.....
+........o11112222222cc222bb22bb22233o.....
+........o111122222222c2222c222c22333......
+........o111112222222c2222b22222333o......
+........o11111222222222222222233333o......
+........o1111122222222333222233333o.......
+........o111111222222222232333333T........
+...oooo33o1111112222o22223o33333o.........
+.oo222222o3111111333o222223o333o..........
+o222222233o331113333o32222333oo...........
+.o333333333o333333333o22222333o...........
+..oooooooo..oo3333333o3222223333o.........
+..............ooooooooo33222222223o.......
+.......................oo3322222222o......
+.........................oo33333333o......
+...........................Pooooooo.......
diff --git a/parts_pl_src/body/pl_plesio_d.txt b/parts_pl_src/body/pl_plesio_d.txt
new file mode 100644
index 0000000..123afcd
--- /dev/null
+++ b/parts_pl_src/body/pl_plesio_d.txt
@@ -0,0 +1,48 @@
+# pl_plesio_d: from pixellab_src/pl_plesio_d/base.png (variant of pl_plesio) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (30, 42)
+# head_top at (21, 19)
+# back at (34, 41)
+# tail at (45, 51)
+..........^oo...............................
+.........oaao...............................
+.......ooaaboooo............................
+......o13acb2211o...........................
+.....o112a222133o...........................
+....o212222222112oo.........................
+....221222111122222o........................
+...o2222222222222221o.......................
+...o322322oo2222223oo.......................
+...o33322owoo2222122o.......................
+..o2222222oo222221122o......................
+..o32o222222b32222112o......................
+..o222222bbb113222211o......................
+...obbbbbw311133222211o.....................
+...oo11113133333322222o.....................
+.....oooooo33333322222o.....................
+..........o33333322232o.....................
+.........o33333332223oo.............oooooo..
+.........o33333332223o.............o11aaao..
+........o333311322233o............o1122bbao.
+.......o222111122223ooooo.........o1223bbcao
+........o21111222223o332oooo.....o21233ooobo
+.......o211111222233332B1111oo...o2123o...o.
+......o111111222233A33bcc1122o...o2223o.....
+......o111111222232bc32bac1cc2ooo32133o.....
+......o111111222232ba222cc22cc13221233o.....
+.....o1111111222222bcc222bb22b221a223o......
+.....o11311112222222bc2222b22b2222223o......
+.....o1331111222222222222222223222333o......
+......o33111122222222223332232322233o.......
+......o33111112222222233333232333333o.......
+.......o331111322222332222233233333o........
+......oo33311132322232211222333333T.........
+...oooo3o333311333223221112233333oo.........
+.oo21123o33333333332322211222o33o...........
+oac222233o3333333333333222222o3o............
+obab333333oo333333333o33222222oo............
+.ooooooooo..oo3333333o3332222211o...........
+..............ooooooooo33322222223o.........
+.......................oo33332222bao........
+.........................oo3333babbo........
+...........................Pooooooo.........
diff --git a/parts_pl_src/body/pl_plugpig.txt b/parts_pl_src/body/pl_plugpig.txt
new file mode 100644
index 0000000..0e2fab3
--- /dev/null
+++ b/parts_pl_src/body/pl_plugpig.txt
@@ -0,0 +1,45 @@
+# pl_plugpig: from pixellab_src/pl_plugpig/base.png (pixellab_library.py extract)
+# pivot at (40, 59)
+# aura at (31, 39)
+# head_top at (30, 25) (from part/probe)
+# back at (38, 27) (from part/probe)
+# tail at (47, 35) (from part/probe)
+....oooo................................
+...o1113o....oooooooooooooooo...........
+..o111113o.oo1111111111o11112o..........
+.o11ccc33oo21111111111o1111112o.........
+.o1cbccco321111111^11o111cco222o........
+.o1cbbco3111111111111o11cccco22oo.......
+.o33bbo1111111111111111cccBcc22oo.......
+..o33o111111111111111113ccbbc23o3o......
+...o3o1111111111111111113cbc23o333o.....
+....o111111111111111111113323o3233oo....
+....o1bb11111111bb111111123oo322333oooo.
+...o1111111111111111111112233322233o212o
+...o11oo11111111ooo11111112222222233332o
+..oo1o1oo111111o1ooo1111112222222233o33o
+..o11oooo111111ooooo111111222222223To3o.
+..o11oo3o111111ooo2o11111222222222333o..
+.o133ob13111111obb1311111222222222333o..
+.o13313ooooooo11112113311222222222333o..
+.o11cccbbbbbbbco222A13311222222222333o..
+.o1caaaaaaaabbbco22211112222222222333o..
+.o3abbbbbbbbacccooo222222222221132333o..
+3o331ob3oo13bccco3o3222222222111o3333o..
+o2333obo3333bccco2222222222221111o333o..
+..obccbbcccbbccco2222222222321111o333o..
+..oobbbbbbbbccco22222222222o31111o333o..
+..o3ooooooooooo3222222222222o1113o33o...
+..oao333333333332222222222223oaoao33o...
+...oo3222111111322222222222223ooo333o...
+.....o221111111113222222222233333333o...
+......o1111111111132222222233333333o....
+......o211111111111322222333333333o2....
+.......o31111111111122223333333333o.....
+........o3z111111111z3333333332233o.....
+........ooozzzzzzzzzz3333333322233o.....
+........o33oozzzzzzzzz33333o21122o......
+........o123ooo3zzzzzzz333oo21122o......
+........oao33ooooooooooooooo21123o......
+.........oooo..............o3o33o.......
+............................Pooo........
diff --git a/parts_pl_src/body/pl_plugpig_b.txt b/parts_pl_src/body/pl_plugpig_b.txt
new file mode 100644
index 0000000..abb49ce
--- /dev/null
+++ b/parts_pl_src/body/pl_plugpig_b.txt
@@ -0,0 +1,48 @@
+# pl_plugpig_b: from pixellab_src/pl_plugpig_b/base.png (variant of pl_plugpig) (pixellab_library.py extract)
+# pivot at (40, 59)
+# aura at (31, 38)
+# head_top at (30, 18)
+# back at (38, 27)
+# tail at (52, 35)
+...................ooo^oooooo..................
+................ooocccccc2222oo................
+........ooooo.oo2bbbbbbb22222bboooooo..........
+.......o21222o22bbbbbbb2222bbbo221112oo........
+......o11122o221bbbbbb22222bbo2111111bco.......
+.....o11222o2211bbbbbb222222222111111bbco......
+....o11133o222111bbb1112bb22222211111bbbco.....
+...o21123o22211111111112bb222233211111bbbco....
+..o21122obb21111111111122222222oo211111bb33o...
+..o2112oobb2111111111122222222B3o2211112223o...
+.o221bco2b22111111111222222222233o2111122223o..
+.o12bbco2222211111122222222222223o2111122223o..
+o212bbo222bb22211222bb22222222223o211bb22223oo.
+o212bbo22222222222222222222222223o21bbbb2223o3o
+o222b3o222oo22222222ooo2222222223o21bbbb222co3o
+o2223o222o1oo222222o1ooo2222222223o2bbbb222co3o
+.o233o222oooo222222ooooo2222222222o32bb222ccoo.
+.o333o222oo3o222222ooo2o2222222222o33322223oT..
+..o3o2233ob13222222obb1322222222223o3333333o3o.
+...oo223323ooooooo222222233222bbb223oo333oo33o.
+....o222cccbbbbbbbco222A233222bbb22233ooo3333o.
+....o22caaaaaaaabbbco222222222bbb2222233333cco.
+...oo23abbbbbbbbacccooo2222222222222222333ccco.
+...oo2332ob3oo23bccco3o2222222222222222333ccco.
+...oo3333obo3333bccco322222222222222222233ccco.
+...o1oobccbbcccbbccco2222222222222322bb2o3ccco.
+..o21o2obbbbbbbbccco22222222222222322bb22o3cco.
+..o21obbooooooooooo222222222bbb2222o22222o33o..
+..o22obb2222222222222222222bbbbb222o22223o33o..
+...obocbb222211111112222222bbbbb2223oboboo33o..
+...oooobb222111111111122222bbbbb22233ooo333o...
+......ocb221111111111112222bbbbb22333333333o...
+.......oc2z11111111111112222bbb22333333333o....
+........o3z111111111111112222223333333333o.....
+.........o3zz111111111111222333333333333o......
+.........oo3zz1111111111zz33333333bbb33o.......
+.........oboo3zzzzzzzzzzzz33333332bbb3o........
+.........o233ooozzzzzzzzzzz3333322bbb3o........
+.........o22333ooooozzzzzz333oo3222233o........
+.........obo233o...oooooooooo..o222233o........
+..........ooooo................obobo3o.........
+................................Poooo..........
diff --git a/parts_pl_src/body/pl_plugpig_c.txt b/parts_pl_src/body/pl_plugpig_c.txt
new file mode 100644
index 0000000..81d3373
--- /dev/null
+++ b/parts_pl_src/body/pl_plugpig_c.txt
@@ -0,0 +1,56 @@
+# pl_plugpig_c: from pixellab_src/pl_plugpig_c/base.png (variant of pl_plugpig) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 34)
+# head_top at (30, 13)
+# back at (38, 27)
+# tail at (51, 35)
+....oo...............oo...................
+....oo..............o22o..................
+...o32o.............o12o..................
+..o332o............^122o..................
+..o2c22o..ooooooooo1122o..................
+.o22a213oo2222222o212c22o.................
+.o2aac2o21111112o2123aa2o.................
+.o2acco211111112o223caa2o.................
+.o3aco2111111112222ocaa2oooooo............
+.o33o21111111112222ocac2o21aaaoo..........
+..o3o211111112222223cc33o211aaaaooo.......
+...o2221111122222222333o3221aaaaacco......
+..o22a2211222a22222223o332222baaaacco.....
+..o22o2222222oo222222222222222bbbbcc3o....
+.oo2ooo22222owoo22222222222222bbbbbcc3o...
+.o22ooo22222oooo22222222222222bbbbbbc3ooo.
+.o22o3o22222oo3o22222222222222bbbb2bcc3o2o
+o232coooooo2oc2322222222222B222bbb22cc3o3o
+o22ccaaaaaaoo22223222222222222222222233o3o
+o2caaaaaaaaaco22222222222222222222222333o.
+o3aaaaaaaacccoo2222222222222222222222333o.
+o3b2ocoo2acccoo2222222222222222222222233o.
+.occcocccaccco22222222222222222222222233o.
+.ooaaaaaacccc222222222222222222222222233o.
+..oooooooooo222222222A222222222221112233o.
+...o333222222222222222222222222221112233T.
+...o32111111122222222222222222322111223o..
+....o1111111113222221112222222322111223o..
+.....o211111111322221112322223322222223o..
+......o211111111z2321112o2233332222222o...
+.......ozzzzzzzzz3321122o33333o2222223o...
+........oozzzzzzzzo22222o333ooo3222223o...
+.........oooozzzzzo22222oooo33o3322223o...
+..........o33ooooo.33222oo33333o332233o...
+..........o3333o...o2222oo33333oo33333o...
+..........o2333o...o2222o.o3333o.o33333o..
+..........oo233o...o222o..o3333o..o3333o..
+...........o233o...o222o...o3333o..o3333o.
+...........o223o...o222o....o333o..o3333o.
+...........o223o...o222o....o333o...o333o.
+...........o223o...o223o....o333o...o333o.
+...........o223o...o22o.....o333o...o233o.
+...........o223o...o22o.....o33o....o23o..
+...........o223o...o22o.....o33o....o23o..
+...........o22o....o22o.....o33o....o23o..
+..........o222o....o22o....o333o....o23o..
+.........o2223o...o222o...o333o....o223o..
+.........oa323o..o2222o...occ3o....oa23o..
+.........ooooo...oaca2o...oooo.....oacao..
+..................ooPo..............ooo...
diff --git a/parts_pl_src/body/pl_plugpig_d.txt b/parts_pl_src/body/pl_plugpig_d.txt
new file mode 100644
index 0000000..424433c
--- /dev/null
+++ b/parts_pl_src/body/pl_plugpig_d.txt
@@ -0,0 +1,56 @@
+# pl_plugpig_d: from pixellab_src/pl_plugpig_d/base.png (variant of pl_plugpig) (pixellab_library.py extract)
+# pivot at (28, 58)
+# aura at (32, 33)
+# head_top at (30, 9)
+# back at (38, 27)
+# tail at (56, 35)
+.................ooooo^oooooooo..................
+...............oo22222222222233ooo...............
+.............oo3222222222222222233oo.............
+...........oo22222111111122222222233oo...........
+.........oo322211111111111222222222233oo.........
+........o3222111111111111112222222222333o........
+.......o322211111111111111112222222222333o.......
+......o32221111111111111111112222222222333o......
+.....o3222111111111111111111122222222222333o.....
+....o32221111111111111111111122222222222233o.....
+....o222211111111111111111112222222222222333o....
+...o22222111111111111111111122222222222222333o...
+...o22222211111111111111111222222222222222333o...
+..o2222222211111111111111122222222222222222333o..
+..o2222222221111111111111222222222222222222333o..
+.o222222222221111111111222222222222222222223333o.
+.o222222222222222222222222222222222222222223333o.
+o2222222oo222222222222222222ooo2222222222222333o.
+o22222oooooo22222222222222ooooBoo222222222223333o
+o2222oo3oooo2222222222222oooooo3oo22222222223333o
+o2222o3wwwooo22222222222owwwoooo1o22222222223333o
+o222o1owwwooo22222222222owwwoooo11o2222222223333o
+o222oaooooooo22222222222oooooooow1o2222222223333o
+o222owooooooo22222222222oooooooowwo2222222223333o
+o222owooooooo22222222222Aooooooowwo2222222223333o
+o2222woccooco22222222222oooooccowwo2222222223333o
+o22222wccbcwc22222222222obbccwcoww22222222223333T
+o322222wcccc2ooooooooo222cbbbbcww222222222233333o
+.o222222222oobaaaabbbco222ccccww222222222223333o.
+.o222222222oaaaaaaaabcco22222222222222222223333o.
+.o22222222obbbbbbbbbbacco2222222222222222233333o.
+..o222222obbccbbbbccbbcco322222222222222223333o..
+..o222222obbcccbbbccbbcco322222222222222233333o..
+...o22222obbccbbbbbcbbcco32222222222222233333o...
+...o322222obbbbbbbbbbbcco32222222222222333333o...
+....o322222ocbbbbbbbbcoo32222222222222333333o....
+.....o332222oooooooooo333222222222223333333o.....
+......o33322223333333332222222222223333333o......
+.......oo3332222222222222222222223333333oo.......
+.........oo333333333333333333333333333oo.........
+...........ooo3333333333333333333333oo2o.........
+..........o333ooooooooooooo3222333333o21o........
+.........o2233o3333333333o22222333333o33o........
+.........o2333o33zzzzzzz3o2222o33333oooo.........
+.........oaoaoo3332111111oaa22o3333o.............
+..........ooo..oo33zzzzzz2ocoo3333oo.............
+...............o23ooozzzzz3oo32223o..............
+...............o2333oooooooo22222o...............
+...............oaaa33o....oo2aaa3o...............
+................ooooP.......ooooo................
diff --git a/parts_pl_src/body/pl_polar.txt b/parts_pl_src/body/pl_polar.txt
new file mode 100644
index 0000000..4be78e5
--- /dev/null
+++ b/parts_pl_src/body/pl_polar.txt
@@ -0,0 +1,42 @@
+# pl_polar: from pixellab_src/pl_polar/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 43)
+# head_top at (26, 27) (from part/probe)
+# back at (38, 32) (from part/probe)
+# tail at (49, 47) (from part/probe)
+....ooo....ooooo...oooo..............
+...o112oooo11222ooo2111oo............
+..o23o32o2111^112o22oo11o............
+..o2ocoo111111111o2occo23o...........
+..o2cao221112111122ccac23o...........
+..o33o11o22o1111112oaco33oo..........
+...oo111ooo111111113o333o22o.........
+...o33111111111111113ooooB2co........
+...o3oo1111113ooo1111233o1223o.......
+...oa1o111111o11o21111233o2223o......
+..o31oo111111a1ooa11112333o11b3o.....
+..o3oo1111222ooo1o11112233o11223o....
+..oo1111112223ooo3111122co1111223oo..
+.oaaaao112222222111112222o11111b3o...
+obaaaaco222223o22b11b222c3o111113oo..
+oocccco2222222co22b223322co1111b3o...
+o2occo2222222cco22233323co111111bo...
+o22oo2222222ccco23333322o111111123o..
+o2222222222ccoo33A33b22co21111113co..
+.o2222222bcco333333b2233o2111112333o.
+..obbbbbbcoo33333b222cco321111122c3o.
+...ooooooo33333b2222cco322222122b333o
+.....o333333332221223o322b2ooo222333T
+......ob22b222b2122c3o332223c2c32333o
+.ooo.ooo222b221222oo323oooo2222333c3o
+oo12o3o2ob22212233o312oo113oo3222333o
+o23332o23oc22222oo3112o233o11o322333o
+o3cac33o23ob323co2211o3c3a3323o32333o
+oac333co123o3c3o22112o3a3c3a33o3333o.
+o223cc3o2123o33o11122o2c223c333333co.
+.o2cac3o1122oooo11123o22cc232333c33o.
+.o3caco222223oo211223o3caac2233ccco..
+..o3cco32o323oo3o2223o3caac223333o...
+...o33oaa3a3o.oa23o33oo3ccc233ooo....
+....oooooooo..ooa3a3o..o33333o.......
+................ooPo....ooooo........
diff --git a/parts_pl_src/body/pl_polar_b.txt b/parts_pl_src/body/pl_polar_b.txt
new file mode 100644
index 0000000..7eded15
--- /dev/null
+++ b/parts_pl_src/body/pl_polar_b.txt
@@ -0,0 +1,50 @@
+# pl_polar_b: from pixellab_src/pl_polar_b/base.png (variant of pl_polar) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (26, 17)
+# back at (38, 32)
+# tail at (52, 47)
+........oooo....^oooo....oooo..............
+.......o2222oooo22222oooo2222o.............
+......o22oo33o222222222o22oo22o............
+......o2occo2o222222222o2occo23o...........
+......o2ccbo2o22222222232ccbc23o...........
+......o33oo222o2222222222obbc33o...........
+.......o332222232222222222oo33oo...........
+.......oo32222222222222222233oo.oo.........
+.......o3ooo2222223ooo22222233o111o........
+.......oowwo222222owwo32222223o1111o.......
+......o3awoo222222owooa22222233o1111o......
+......o3ooo3222222ooowo22222233o11111o.....
+.....o223oooooo2223ooo322222233o11111o.....
+....oo2b2obabbbo222222222222233o11112o.....
+...o1o22oocccco2222222b222b223o111112o.....
+..o11o22o2occo2222222222b222B3o111111o.....
+..o11o22o22oo2222222222222223o1111111o.....
+..o11o32o22222222222222223333o111111o3o....
+.o1111o2o2222222222222233333o1111111o33o...
+.o1111o33o2222222222233333oo11111111o33o...
+.o11111o33o222222233333ooo111111111o322oo..
+..o11111oo3o33333333ooo1111111111oo32223o..
+..o1111111oooooooooo1111111111111o332223o..
+..o111111111111111111A11111111111o3222223o.
+...o111111111111111111111111112oo32222223o.
+...o11111111111111111111111111o3322222223o.
+....o11111111111111111111111oo332222222233o
+....o1111111111111111111111o33322222222233o
+.....oo111111111111111111ooo333223oooo2233o
+......oo11111111111111ooo3333o32o32222o333o
+......o3oo1111111111oo3333223o3o2222222333T
+...ooooo2ooo111111oo333322223ooo2222222333o
+.oo223oo2233oo11oo33332222223o22oo22222333o
+.o23333oo22333ooo33o2222222o233332o2222333o
+o2b3b333o2222333333o2222223ob3b3323o223333o
+o2b33333o222223o333o2222222ob3c3b33o223333o
+o232cc22o322223o333o222223o23233b33333333o.
+o22cbbc23o22223o333o222223o22cc2323333333o.
+.o2cbbc23o22223o333o222223o2cbbc22333333o..
+.o3cbbc2o222223oooo3222223o2cbbc22333333o..
+..o3cc22o333223oooo3222223o3cbbc223333oo...
+...o3333o3b32b3o..o3b22b33oo3cc3233ooo.....
+....ooooooooooo...oob33b3o..o3333oo........
+....................oPooo....oooo..........
diff --git a/parts_pl_src/body/pl_polar_d.txt b/parts_pl_src/body/pl_polar_d.txt
new file mode 100644
index 0000000..57af4af
--- /dev/null
+++ b/parts_pl_src/body/pl_polar_d.txt
@@ -0,0 +1,44 @@
+# pl_polar_d: from pixellab_src/pl_polar_d/base.png (variant of pl_polar) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 43)
+# head_top at (26, 23)
+# back at (38, 32)
+# tail at (49, 47)
+.............^o.......................
+.........ooo.11ooooo..................
+....oooo.311o11o111ooooo..............
+...o1122o111111111o11111o.............
+..o22o32211111111o22oo11o.............
+..o2obc2111111131o2obbc21o............
+..o2bb2131111131132ccac23o............
+..o33211313133311112acc33ooo..........
+...o31113333321111111333o333o.........
+..o11111113211111111133ooB3oo.........
+..o11oo1111113ooo11111333o111ooo......
+.o11a1o111111o11o31111133o21111o......
+.o311oo111111a1ooa11111133o2113o......
+..o2oo1111222ooo1o11113333o211111o....
+..oo1111112223ooo31111133o32111111o...
+.oaaaao112222222211111133o3321113o....
+oaaaaabo222223o2211111333o31221111o...
+oobccco2222222bo2111111333o11221111o..
+o2obbo2222222bbo21111313o33311221111o.
+o22oo2222222bbbo21111333o3311112113oo.
+o2222222222bboo31A311333o3211111211o..
+.o2222222abbo333132333oo322111112211o.
+..oaaaaaaboo3332333333o3321211111221o.
+...ooooooo33333333oooo32221211111221o.
+.....o3333o33333oo333332222222111121T.
+......ooooo333ooc33332322232221111233o
+..oo.oo33ccooccccc321232ooo2222111333o
+.o13o3o23bccccaaco2212oo113oo2231133o.
+o33333o22ocacaacc32112o333311o223133o.
+o3bab2o122ocaaaco3211o3b3a3311o23133o.
+oab222o1123ocaac32111o3a3b3a31o2333oo.
+o223cco21223occo22123o2c223b31o3333o..
+.o2bac3o2123occo21123o22bb2311o3333o..
+.o3caco222233ooo21223o3caab223o333o...
+..o3bbo323333oo332233o3baab223o33oo...
+...o33oaa3a3o.oa2bo33oo3bbb233ooo.....
+....oooooooo..ooa3a3o..o33333ooo......
+................ooPo....ooooo.........
diff --git a/parts_pl_src/body/pl_popcorn.txt b/parts_pl_src/body/pl_popcorn.txt
new file mode 100644
index 0000000..84d54a5
--- /dev/null
+++ b/parts_pl_src/body/pl_popcorn.txt
@@ -0,0 +1,43 @@
+# pl_popcorn: from pixellab_src/pl_popcorn/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 42)
+# head_top at (31, 27) (from part/probe)
+# back at (30, 32) (from part/probe)
+# tail at (48, 51)
+................oooooo..oo............
+..............oo2111133obao...........
+.............o31111111obabo...........
+.........ooo.o1111^112obbo............
+.......o3112o311111112oobooooo........
+......o11oo223211112222ooo2211oo......
+.....o11oabo23222333333232211113o.....
+....o211obabo33232111123321111113o....
+....o2112obco3332B111112322111122o....
+....o22223333332111111112322222223oo..
+....3333211113321111111222333332oobao.
+...o1231111112322111112222321113obabo.
+..o12321111112322222222222321112obbo..
+..3123111111223222222222223222223ooo..
+.o22232111122233333333322333o222323o..
+.o222322222223211111112333cbao223212o.
+.o22232222223111111111123obabo332211o.
+oaccc33o22231111111111112obbo22322112o
+obabc3oacoo31111111A111122oo221232222o
+.obb32obabo21cco11111ooo223o211233223o
+..oo122obbo2c1aoo111o1aoo23o2222o3333o
+..o21122ooo2ooooo111ooooo23o3223o333o.
+..o211122oo2obbbo111obbbo23o333ooo3oo.
+..o221222oo22ooo22222ooo223oooo333oo..
+..o2222233o2aa222bbb222aa33ooo33213o..
+...o332333o322222232222233oo3332112o..
+...o33333ooo32222222222333oo3322122o..
+....o3ooooooo333332223333ooo3322222T..
+.....oooobabooo33333333ooobao33223o...
+......o3obbbo33oooooooo3oobbbo333o....
+......o33oooo33333333333ooooo33oo.....
+.......ooooooo333333333oo33oooo.......
+.........bo33oo33333333oo33oc.........
+........o13c3ooo33333oo.o3o31o........
+........o33ooo..ooooo...ooocco........
+........ooooo............ooooo........
+.........ooP..............ooo.........
diff --git a/parts_pl_src/body/pl_popcorn_c.txt b/parts_pl_src/body/pl_popcorn_c.txt
new file mode 100644
index 0000000..8dae7ba
--- /dev/null
+++ b/parts_pl_src/body/pl_popcorn_c.txt
@@ -0,0 +1,57 @@
+# pl_popcorn_c: from pixellab_src/pl_popcorn_c/base.png (variant of pl_popcorn) (pixellab_library.py extract)
+# pivot at (40, 60)
+# aura at (32, 35)
+# head_top at (31, 10)
+# back at (30, 32)
+# tail at (49, 51)
+.....................ooo^ooo....oo.................
+...............oo...oo211111oo.obao................
+..............oabooo3111111113obbbo................
+..............ocbbo31111111113bbabo....oo..........
+............ooooooo2111111111obbbo....obao.........
+..........oo1112oo21111111112ocbbooooocbbo.........
+.........o1111122o321111111122oooo3222ooco.........
+........o1111111233221111122222ooo222111oo.........
+......oo11111oo11332222233333332322211111oo........
+......o11111oabo12332233211111333211111111oo.......
+.....o211111obabo23323311111112332111111111oo......
+.....o211111obabbo33332111111112322211111222o......
+.....o2221122obbbo33221111111111232222222222o......
+.....o32222233333333221111111111223333333223oooo...
+.....o333333311111332211111111122233222232ooocbao..
+.oo..o222331111111232221111112222232211123oobbabo..
+oaboo1122311111111232222222222222232211112oocbbo...
+ocbo111232111111112322222222222222322111123ooco....
+.oo1111231111111122332222222222222332111222oooo....
+.oo1111232111111222333333333333223332o22222322o....
+.o2111123221111222311111111113333333oao22223212o...
+.o2211223222222223111111111111233obbabo223332112o..
+.o322122322222223111111B111111123obbabo333222111o..
+.o3322233332222311111111111111111oobbo21332221112o.
+.oooo33333c33333111oo1111111ooo112ooo22112o222222o.
+.oaabbc33babco3111o1oo111A1o1bo1112oo211122o22223o.
+.obabbo13baabo1111oooo11111oooo11123o211122o33333o.
+..obbo112obbbo1111oooo11111oooo11123o221222o33333o.
+...oo11122occo1aaa1111111111111aaa23o332233o33ooo..
+...o2111222ooo1aaa1111111111111aaa23o33333ooo3occo.
+..oo21111223oo21ooooooooooooooooo133o3333oo33oocbao
+.oco21111223oo22ooooooooooooooooo233oooooo3333ocbbo
+ocbo21112223oo22ooooooooooooooooo233ooooo332123ooo.
+oabo222222233o222ooooobbbbbooooo3333oooo3322112o...
+obboo32222333oo22ooooaaaaaaaoooo333ooo333221112o...
+.oo.o3322333ooo322ooaaaaaaaaboo333oooo333211222o...
+....ooo33333oooo3222oaaaaaaao3333ooooo333221222o...
+.....ooooooobbooo3222ooooooo33333ooobbc3322222o....
+.....ocoooocabbooo32222222233333o3oobaao33333o.....
+....obboo3oabbbo33o33333333333oo33oobbboo333o......
+....oaboo3obcoo3333ooooooooooo33o33ooooooooo.......
+....oacoo33oo333333o333333332333o333ooooocT........
+....ooo.ooo333333ooo333332222233o33333ooocco.......
+..........oo33333ooo333333222233o33333ooocbo.......
+...........oo33ooccoo3333333333ooo33oo..oobo.......
+.............oooocbcoo33333333ooooooo.....oo.......
+..............o33occooo333333oooo333o..............
+.............o333ooo..oooooooo.oo3322o.............
+.............o333oo............oo3323o.............
+.............o333oo.............o333oo.............
+..............ooo................Pooo..............
diff --git a/parts_pl_src/body/pl_popcorn_d.txt b/parts_pl_src/body/pl_popcorn_d.txt
new file mode 100644
index 0000000..b0ebc67
--- /dev/null
+++ b/parts_pl_src/body/pl_popcorn_d.txt
@@ -0,0 +1,52 @@
+# pl_popcorn_d: from pixellab_src/pl_popcorn_d/base.png (variant of pl_popcorn) (pixellab_library.py extract)
+# pivot at (20, 59)
+# aura at (32, 37)
+# head_top at (31, 14)
+# back at (30, 32)
+# tail at (49, 51)
+...................oo^oooo..oo..............
+.................oo211111ooobao.............
+................oo11111111obabo.............
+...........oooo.o211111112obbo..............
+........ooo1123o3111111112ooboooooo.........
+.......o211oo12232111112222ooo22111oo.......
+......oo11obcc22322233333333o321111ooo......
+......o111oaboo232223333333232211111oo......
+.....o2111obaboo332311111123321111111oo.....
+.....o21112obboo3332111111123221111122o.....
+.....o22222ooooo33211111111123222222223oo...
+.....o3333211111332111111112223333332oobao..
+....o12311111111232211111122223211113obabo..
+...oo23311111111232222222222223211113obbco..
+...o123111111111232222222222223211112obbo...
+...o1231111111222322222222222232211223ooo...
+..o22232111112222333333333323333oo222322oo..
+..o222322222222231111111112333ocaco2232112o.
+..o222322222223o1111B11111123obabco3322111o.
+.oacoooooo2223111111111111112obboo213221112o
+.obacooooocoo31111111111111122oo22212321112o
+.obabooooacoo31111111111111122oo22211322222o
+..obbo1oobabo111ooo111111ooo222o22112332223o
+..ooo112oobbo13o1aoo11A1o1aoo22o22222o33333o
+.ooo111122ooo2oooooo1111ooooo22o22222o3333o.
+.o2o1111222oo2oobbbo1111obbbo22o2222ooo33oo.
+o22o2211223oo223ooo222222ooo223ooooo333oooo.
+o22o22222233o22ab222cccc222aa33oooo3331oo33o
+o22o23322333o322222223322222333oooo33212o33o
+o223o3322333oo3222222222222233oo33332112o33o
+o323o333333oooo322222222222333oo33321122o33o
+oo223o3ooooooooo332222222333ooooo3322222o3oo
+.oo333ooooobaboooo333333333ooobao333222o33o.
+.oo3333ooooabboooooooooooooooobbbo3333o33oo.
+..o3333oooobboooooo333333ooooobbbo333o333o..
+...o333ooooooooo222222222222oooooooooo333o..
+....o33oooooooo22222222222222oooooooo333o...
+.....ooooooooooo2222222222223ooooooooooT....
+.......oo33ooooo3322222222333oooo333oo......
+......o32233oooo3333333333333ooo32222o......
+......o11233oooo333333333333oooo32222oo.....
+.....o3112oooo..ooo333333ooo..oo3o2212o.....
+.....o3222ooo......oooooo......ooo2222o.....
+.....oo22oooo..................oooo3ooo.....
+......oooooo....................oooooo......
+......ooooP......................ooooo......
diff --git a/parts_pl_src/body/pl_psitta.txt b/parts_pl_src/body/pl_psitta.txt
new file mode 100644
index 0000000..3dd60cf
--- /dev/null
+++ b/parts_pl_src/body/pl_psitta.txt
@@ -0,0 +1,44 @@
+# pl_psitta: from pixellab_src/pl_psitta/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 42)
+# head_top at (28, 25) (from part/probe)
+# back at (36, 37) (from part/probe)
+# tail at (45, 47) (from part/probe)
+........ooooooooo................
+.....oo21111111123o..............
+....o11111111^11122o.............
+...o11111111122223a3o............
+...o31111111233233a3o............
+...oo221112oooo32333o............
+...oo22221o1o1o32333o............
+...oozzz22ooc1o3233bo............
+..cayyzzz2oca1o22b3ao............
+.c1yzyoyzz2ooo212233o............
+c11zzzzzzz22221aa233o............
+c1zzzzzzzzo21122233o.............
+cyzzzzooooz2222233oo.............
+cyzzzozzzzz222233o...............
+cyzzoooooo2233oooo..oBo..........
+.czo...o33333233ooooaao3o........
+.ozo...o22222233333bobooao.......
+..oo...o222232222b2b3ooaao.......
+......o1222211222222222obooo.....
+.....o211111111Aaa22b2b2oaaoo.ooo
+....o22111113211123222b2boboaob1o
+...o22o311131o21a2o223b33booob22o
+..3223o13333332222o233333b3b3b23o
+..3122o111o2122a3o3321123b3b2223o
+..o131o11o1322233o32111a333223T3.
+..o1o1oo1o1o13ooo331111b3o33333o.
+...o.o3o22o11o2233aaa1123o33233o.
+.....ob3o223o2233o1112233o3233o..
+.....o333o2222333o1a21233o233o...
+.....o3b33o222233o111223o33oo....
+......o3333oo33333aa2233ooo......
+.......o33333ooooo332333o........
+.......o33333o....o333333o.......
+.....oo232233o....oo33333o.......
+....o211o2233o...o2222223o.......
+.....ooo.oooo...o1o113123o.......
+.................oo11o11o........
+...................Po.oo.........
diff --git a/parts_pl_src/body/pl_psitta_b.txt b/parts_pl_src/body/pl_psitta_b.txt
new file mode 100644
index 0000000..caa6949
--- /dev/null
+++ b/parts_pl_src/body/pl_psitta_b.txt
@@ -0,0 +1,44 @@
+# pl_psitta_b: from pixellab_src/pl_psitta_b/base.png (variant of pl_psitta) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 42)
+# head_top at (28, 23)
+# back at (36, 37)
+# tail at (47, 47)
+........ooooo^ooo................
+.....oo31111111123o..............
+....o11111111111133o.............
+...o1111111111111333o............
+...o3111111123311133o............
+...oo121112oooo311333o...........
+...oo22221o1o1o311333o...........
+...oozzz22oob1o311133o...........
+..bayyzzz2oba1o211133o...........
+.b1yzyoyzz2ooo2111133o...........
+b11zzzzzzz22221111133o...........
+b1zzzzzzzzo2111111233o...........
+byzzzzooooz211111233obooo........
+byzzzozzzzz21111333o3ccaao.......
+byzzooozzz33333333o22Bccaaoo.....
+.bzo..oooooo33333332111caaoo.....
+.ozo.o32333332222111111caaoao....
+..oo.o23111111211111221coocao....
+....o311111111112111221cc3caao...
+....o3111111111A21113311c2caao.oo
+...oo11111111111o1113311c2ccaoo1o
+...oo1111111111o111aao11c23oao1ao
+..o3o111111111o211123o11133oao13o
+..o3o11111111o1111a3o333333cao23o
+..o3o1111111o1311233o111333cao33T
+..o1o3111111o1o13ooo1111133cac33o
+...ooo1111111o11o3211111133cao3o.
+....o331111111oo3o11111113ocaco..
+....o3o3311113333o11111123ocao...
+....o33o333333333o11111123ooo....
+....o333oo3333333o11111233o......
+.....o333ooooooooo33222333o......
+......oo33333o....o333333o.......
+.....oo333333o....oo33333o.......
+....o211o2333o...o2222223o.......
+.....ooo.oooo...o1o113123o.......
+.................oo11o11o........
+...................Po.oo.........
diff --git a/parts_pl_src/body/pl_psitta_c.txt b/parts_pl_src/body/pl_psitta_c.txt
new file mode 100644
index 0000000..0d16f1c
--- /dev/null
+++ b/parts_pl_src/body/pl_psitta_c.txt
@@ -0,0 +1,59 @@
+# pl_psitta_c: from pixellab_src/pl_psitta_c/base.png (variant of pl_psitta) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (29, 35)
+# head_top at (28, 8)
+# back at (36, 37)
+# tail at (46, 47)
+........ooooo^ooo.................
+.....oo21111111113o...............
+....o11111111111122o..............
+...o11111111122223b3o.............
+...o31111111233233a3o.............
+...oo221112oooo32333o.............
+...oo22221o1o1o32333o.............
+...oozzz22ooc1o3233bo.............
+..cayyzzz2oca1o22b3bo.............
+.c1yzyoyzz2ooo212233o.............
+c11zzzzzzz22221ab233o.............
+c1zzzzzzzzo21112233o..............
+cyzzzzooooz2222233oo..............
+cyzzzozzzzz222233o................
+cyzzoooooo2233333o................
+.czo....o33332333o................
+.ozo....o22222323o................
+..oo....o22222333o................
+.......o222221133o................
+.......o1111111333o...............
+......o11111111133occao...........
+.....o1111112111133obao...........
+....o11111111111111ooaoo..........
+...o1111111111111113ocoo..........
+...o1311111111211113occao.........
+...o131111111131111bo3caao........
+...oao11111111311aabo2ccao........
+...o1o11111111A31113o2bcco........
+...o3o11111111133333o2b3cao.......
+...oao111111111oaaaboB23cao.......
+...o1o111111111o1113o22bccoo......
+...o1oo11111122o1aabo22b3cbao...oo
+...o12o2111111o21123o33b3ccao..o1o
+...o22oo111112o1113o333333bcooo11o
+...o222o22112o11113o333333b3b2112o
+...o121oo2222o13133o11113332b2223o
+...o1o11o3222o1o11o1111a333322333.
+....o1o1oo2222oo1o21111a3o333333o.
+.....ooo33o22233ooaaa11a3o333322o.
+.......o333o33233o1112233o33223T..
+.......ooo33o3333o1c12233o2222o...
+.......obb333ooo3o1a11333o2ooo....
+.......o333333o.oo111133ooo.......
+.......obb333oo..oaaa333o.........
+........o3333o....o22333o.........
+........o3333o....o333333o........
+.........o3333o....o33323o........
+........oo3333o....o32223o........
+......oo333333o...oo11113o........
+.....o211o2333o..o2211113o........
+.....oooo.oooo..o1o112133o........
+.................oo11o11o.........
+...................Po.oo..........
diff --git a/parts_pl_src/body/pl_ptarmigan.txt b/parts_pl_src/body/pl_ptarmigan.txt
new file mode 100644
index 0000000..a751e06
--- /dev/null
+++ b/parts_pl_src/body/pl_ptarmigan.txt
@@ -0,0 +1,42 @@
+# pl_ptarmigan: from pixellab_src/pl_ptarmigan/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (30, 28) (from part/probe)
+# back at (33, 36) (from part/probe)
+# tail at (44, 45) (from part/probe)
+.............ooo.oo..............
+..........ooo111311o.............
+........oo111111113oo............
+.......o1111111^11113o...........
+......oa1111111aa11133o..........
+......oaa1111aaab111133o.........
+.....oobb111aab21111313o.........
+.....owcb111bbccc1111333o........
+....o12o22111c2o13111133o........
+....o1o3xz311ooo131113b33o.......
+...o33b113z31o3a11111133bo.......
+...o1131zzzb111131B1133c3o..ooo..
+...o11133cc311111111113333ooo22o.
+...o11111331111111113ccco3o32a2o.
+..o31111111111111113c2223co2223o.
+..o1111111111111111c222223oo233o.
+.o31a1111111111111c22222a33oo3oo.
+.o31a1111111111a11c2222222o3o332o
+..o1131111111111A2c322a223c33o32o
+..o323311111313122c32222b3o33o33o
+..o3222311311322222c322b3o33bT3o.
+..oo322233222222222cc33oo33333o..
+...o3222222222222222co3333b333o..
+....o2322222222223233oco33333bo..
+....o332322232232232333occcooo...
+.....o3323232232332333333333o....
+......o33332232322333333333o.....
+.......o333333333333333333o......
+.oo.....ooo3333333333333oo.......
+o111.....obboooooo3333oo.........
+o1111oooczboooc11oobboo...oo.....
+.o1111owbozo111ooyczbbbooo11o....
+..o1111oo1oo11111obobocc111co....
+...oo111111oo11111o1o1111ooo.....
+.....oooooo..o1111111oooo........
+..............ooPoooo............
diff --git a/parts_pl_src/body/pl_ptarmigan_b.txt b/parts_pl_src/body/pl_ptarmigan_b.txt
new file mode 100644
index 0000000..e92d576
--- /dev/null
+++ b/parts_pl_src/body/pl_ptarmigan_b.txt
@@ -0,0 +1,64 @@
+# pl_ptarmigan_b: from pixellab_src/pl_ptarmigan_b/base.png (variant of pl_ptarmigan) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 35)
+# head_top at (30, 7)
+# back at (33, 36)
+# tail at (46, 45)
+...........ooo........oo.........
+..........oaaao......oaco........
+.........oaacco.....oaaco........
+........oaacco.....oaacco........
+.......oaacoooo^oocaaaco.........
+.......oaoo111111aaaccco.........
+.......oo11111111aaccco..........
+.......o111111111a1c3o...........
+......oaa111111aaa1133o..........
+......o1aa111aaac11113o..........
+......o3caa11aac3311133o.........
+......o12o111132o131113o.........
+......o1oo1111ooo131113o.........
+......o1331z31o3a111133o.........
+......o13113z1111311133o.........
+......o13zzzzc111111333o.........
+.......o1cccc1111113333o.........
+........o1111111133333o..........
+.........o333333333333o..........
+..........oooo33333333o..........
+.............o33333333o..........
+.............o33331333o..........
+.............o33311133o..........
+.............o11111133o..........
+.............o11111133o..........
+............o11111113o...........
+............o11111113o...........
+...........o311111133o...........
+...........o111111133o...........
+..........o1111111133o...........
+.........o11111111133o...........
+........o3111111113333o..........
+.......o11111111A133333oo........
+......o11111111111B33333o...ooo..
+.....o1111111111111333333o.oo22o.
+....o3111111111111113ccco3o32a2o.
+...o2211111111111113c2223co2223o.
+...o231111111111111c222223oo233o.
+..o23caaaaaaaaaaccc22222a33oo3oo.
+..o23caaaaaaaaaaccc2222222o3o332o
+..o3c111ccccccccc1c322a223c33o32o
+..o3cc111111111111c32222b3o33o33o
+...occaaaaaaaaaaaccc322b3o33bo3T.
+...oo2caaaaaaaaaccccc33oo33333o..
+....o222ccccccccc222co3333b333o..
+....o2322222222223233oco33333bo..
+....o332322232232232333occcooo...
+.....o3323232232332333333333o....
+......o33332232322333333333o.....
+.......o333333333333333333o......
+.oo.....ooo3333333333333oo.......
+o111.....obboooooo3333oo.........
+o1111oooczboooc11oobboo...oo.....
+.o1111owbozo111oozczbbbooo11o....
+..o1111oo1oo11111obobocc111co....
+...oo111111oo11111o1o1111ooo.....
+.....oooooo..o1111111oooo........
+..............ooPoooo............
diff --git a/parts_pl_src/body/pl_ptarmigan_c.txt b/parts_pl_src/body/pl_ptarmigan_c.txt
new file mode 100644
index 0000000..fc6d306
--- /dev/null
+++ b/parts_pl_src/body/pl_ptarmigan_c.txt
@@ -0,0 +1,49 @@
+# pl_ptarmigan_c: from pixellab_src/pl_ptarmigan_c/base.png (variant of pl_ptarmigan) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (30, 19)
+# back at (33, 36)
+# tail at (49, 45)
+..................ooo.................
+.............oooo^222ooo..............
+...........oo22222222222oo............
+.........oo211222222221122oo..........
+........o2221122222222212222o.........
+.......o212112222222222211222o........
+.......22122222222222222222222o.......
+......32aa22222222aaa2222222222o......
+....oo22baa22222aaab222222332222o.....
+....o2222bab222aabb22222222222233o....
+....o222ccbb222bbccc22222222222333o...
+...o2223woo22222c2ow32222222222233o...
+..o21223wooyy322ooow32222222222333o...
+..o22222wbc11y32o3aw222222222222333o..
+..o2222222yyyyb22ww2222222322222233o..
+.o2212222233cc3222222222221222222333o.
+.o2112222223332222222211222222222233o.
+.o21112222222222222222112222222222333o
+o2221122222222222222B2222222322222333o
+o22212211222222222121222222223222233oo
+o222211112222122221122322222323222333o
+.322211111222122222222322222323222333o
+o22222221121112222A222322222223223333o
+o22212221221122221222233222222232333o.
+o22222222222122221222223222222233323o.
+.o2222222222222212222223222222233233o.
+.o2222222222222222222222323223233333o.
+.o2322222222222222222222232322333333T.
+..o32232222222222222232222332233333o..
+..o33332232222222222232222333333333o..
+...o333332222222322222222323333333o...
+...o333332322223332222323322333333o...
+....oo333332323332332233333333333o....
+.....o33333332333333333333333333o.....
+......oo3333333333333331113333oo......
+.....oo1113333333333311111113o........
+....o111111113333331111111112o........
+...o1111111111123oo1111111111o........
+..o11111111111112o111111111111o.......
+..o1111111111111o1111111111111o.......
+...oo11111111oooo1111111111111o.......
+.....oooooooo...oo11111111111o........
+.................oPoo.ooooooo.........
diff --git a/parts_pl_src/body/pl_ptero.txt b/parts_pl_src/body/pl_ptero.txt
new file mode 100644
index 0000000..c7f2fd5
--- /dev/null
+++ b/parts_pl_src/body/pl_ptero.txt
@@ -0,0 +1,48 @@
+# pl_ptero: from pixellab_src/pl_ptero/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (29, 43)
+# head_top at (30, 23) (from part/probe)
+# back at (34, 41) (from part/probe)
+# tail at (43, 53) (from part/probe)
+..................oooo...............
+................o2112o...............
+..............o111a23o...............
+............o21112223o...............
+...........o11111^23o................
+..........o1a1222223o................
+.........o11122ac23o.................
+........o2122222233o.................
+.......o2a222112233o.................
+......o12b2212oo3333o................
+......o222211oaao333o................
+......o11122o1o1o322o................
+......o11123ooo1o22bo................
+.....o1a12223c1o22b3o................
+....o1112222222a2o3o.................
+...oa11222222oooo23o.................
+...2112222oooz112oo..................
+..o11222oob3133oo3o..................
+.o11222oa113oocc33o..................
+o11223oa13ooccccbo...................
+o1223oz3o..occcb3o...................
+o233o.o....ocbab33oo.................
+o3o......oocaaa333223Bo..............
+.o......o33baa133211331c.....o.......
+.......o1313a333A3312o2o.....ao......
+......o12o33333333321o32o...o1o......
+......o2313a33333o333232o...o1o......
+......o3o23a333123oo32o32ooo12o......
+.......oo2133311133oo2o32o1123o......
+.......o3o1111111233o32321o33o.......
+.......o3o2111112233o32o221oco.......
+.......o3oo2211222333o2o221oo........
+.......o3coo222223323o1o2221o........
+......o3oco3o3333o323o3232221o.......
+......o3oco33o333o3133o2332221T......
+.....o33ccoo33oooo3333o2o33222o......
+...oo33oco..oo3o..o333o22o33222oo....
+.oo3333oo..o333o...o333oa33332222oc..
+...oooo..o23333o...o333oo33o3332223o.
+........ocoz2oo...o3333o.oo322233aaco
+.........o.oo.....oz3zo....oooooooo..
+...................P.o...............
diff --git a/parts_pl_src/body/pl_ptero_b.txt b/parts_pl_src/body/pl_ptero_b.txt
new file mode 100644
index 0000000..05f5330
--- /dev/null
+++ b/parts_pl_src/body/pl_ptero_b.txt
@@ -0,0 +1,49 @@
+# pl_ptero_b: from pixellab_src/pl_ptero_b/base.png (variant of pl_ptero) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 42)
+# head_top at (30, 19)
+# back at (34, 41)
+# tail at (48, 53)
+...................oooo...................
+...............oo^o1122o..................
+..............o11112222o..................
+............oo1122a223o...................
+...........o1122222233o...................
+.........o21a22aa2233o....................
+........o22222222223o.....................
+.......o2a22221123233o....................
+......o22a221123323223o...................
+......o2222212ooo33223o...................
+......o222222oowo332233o..................
+...ooo1112223oo2o322233o..................
+..o1111222222333222yy33o..................
+.o1222222222222222yyy33o..................
+o122o22222oooo3yyyyyyc3o..................
+o222222oooyyyyoyyyyy3o3o..................
+o3333ooyyyyyyyyyyyy3o333o.................
+.oooo3333333333yy3bo3322ao................
+.....oooooobbbbbb333322221o...............
+........o3bbbbb33333222222o...............
+.......o3333333332222212222o..............
+......o32y3333yyy22222112o2ao.............
+.....o32yyyyyyyyy222222112o2o.....o.......
+.....o3yyyyyyyyyyy223B2222o22o....bo......
+....o32yyyyyyyyyyA22o222223o2o...o1o......
+....ooayyyyyyyyyyaa2o322222o2o...o1o......
+...oooaaayyyyyyaaaa33o22222o2o..o12o......
+...o3yaaaayyyaaaayy33322222o22oo123o......
+...o3yyyaaaaaaayyyy33o22223o22o222co......
+...oocyyyyaaayyyyyycco22223o22o333o.......
+...oocccyyyyyyyyccccco2222o22223bo........
+...oo3cccyyyyyycccc33o3222o22321o.........
+....oo33ccyyycccc33b33oyoyo23322o.........
+....oob33cccccc333a3311ooo2233221o........
+....o3ob33ccc33333bo21112222o32221o.......
+....o1oob33333333bbo21122333o332222T......
+....o33oobbbbbbbbbbo32222333oa332221oo....
+.....o333oobbbbbbbbo3333333oaac3322221oo..
+......o3333oooooooooo333333occcaa3222223oo
+....o3223333o........o33333ooocaacbc33333o
+...oy3y33333o.......o222223o..ooooooooooo.
+...ooooooooo.......oy33y323o..............
+...................oPoooooo...............
diff --git a/parts_pl_src/body/pl_ptero_c.txt b/parts_pl_src/body/pl_ptero_c.txt
new file mode 100644
index 0000000..346846b
--- /dev/null
+++ b/parts_pl_src/body/pl_ptero_c.txt
@@ -0,0 +1,62 @@
+# pl_ptero_c: from pixellab_src/pl_ptero_c/base.png (variant of pl_ptero) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 36)
+# head_top at (30, 5)
+# back at (34, 41)
+# tail at (48, 53)
+...................^oooooo..................
+................ooo1111122o.................
+..............oo11112a2223o.................
+.............o31111122233o..................
+............o1a12222223oo...................
+...........o122222bc233o....................
+..........oa2222222233o.....................
+.........o2b222z1223c3o.....................
+.........o2222z2oo3333o.....................
+........o211222oaao3333o....................
+........o11123ooowo3222o....................
+.......o1a12223coc222a22o...................
+......o1112222222a22a222o...................
+.....oa12222222oooo23322o...................
+....o111222ooooa311oo3222o..................
+...o112223oaa3333oocco222o..................
+..o11223ooa2ooooccccco322o..................
+..o122oo3ooocccccaaaco322o..................
+.o122o.oo.3ccccaaaaaco322o..................
+.o22o.....occaaaaaaaco322o..................
+.o3o......oacaaaaaacco322o..................
+o2o.......oacaaaaaaco3223o..................
+o3o........ocaaaaacoc2223o..................
+oo.........occaaccocc222o...................
+o...........oocccocc1222o...................
+..............oooo111223o...................
+................o1112223o...................
+................o1132223o...................
+................o333223o....................
+................3333223o....................
+..............o3333123o.....................
+..............o33332A3o.....................
+..............o3333223o.....................
+.............o333322223o....................
+.............o3333222223o...................
+............o333312222222ooo.........o......
+...........o33333122221B2221oo.......ao.....
+...........o333331222212322111o.....o1o.....
+..........o21333312332223322221o....o2o.....
+..........o213333123o32123222221o..o12o.....
+..........oo13333113332222o222221oo223o.....
+.........o2o1111111133o3222o32222o222o......
+........o22o21111112333o322o32222233bo......
+........o233o21111223333o222o12222obo.......
+........o23oo22112223333o222o122232oo.......
+.......o223ooo3222223233o222o122232o........
+.......o223oo3o222233123o222o2222332o.......
+.......o3232o33o222o31233223o2222332o.......
+.......oo23oo333o22o3222o223o22233322T......
+........oo2o.o333ooo3333oz3zo333oc322o......
+.........oo...o333o.o333oooooo22oc3322oo....
+..............o333o..o333oo..o333occ3222oo..
+.............o3333o..o333o...o333oocc333aaoo
+............o2z2oo..o3333o..o3333o.oooooooo.
+............oooo....oz3zo...oz3zoo..........
+.....................P.o.....oooo...........
diff --git a/parts_pl_src/body/pl_ptero_d.txt b/parts_pl_src/body/pl_ptero_d.txt
new file mode 100644
index 0000000..f96a402
--- /dev/null
+++ b/parts_pl_src/body/pl_ptero_d.txt
@@ -0,0 +1,60 @@
+# pl_ptero_d: from pixellab_src/pl_ptero_d/base.png (variant of pl_ptero) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 31)
+# head_top at (30, 7)
+# back at (34, 41)
+# tail at (43, 53)
+.............oooo^oooooo...............
+..........ooo11111111122ooo............
+........oo21111111111111222oo..........
+.......o111111111111111112222o.........
+......o11111111111111111112222o........
+.....o1111111111111111111112222o.......
+....o111111111111111111111122222o......
+...o12111111111111111111111222222o.....
+...o22211111111111111111112222222o.....
+..o1221111111111111111111222222223o....
+..21221111111111111111112222222222o....
+.o122222111111111111111222222222223o...
+.o122222211111111111122222222222223o...
+o12222222222111111222222222222222233o..
+o12222222222222222222222222222222233o..
+o12222222222222222222222222222222233o..
+o2o2oo222222222222222oooo22o22222233o..
+o2ooooo2222222222222oooooo2o22222233o..
+o22occoo22222222222occooooo222222333o..
+o2ocwwoo2222222222ocwwooooo222222333o..
+o2ocwwoo2222222222oowwooooo222222333o..
+o2ocoooo2222222222oooooooco222222333o..
+.oocoooo2333333222oooooocco22222333o...
+.o2ccooc3111133322oooooo1co22222333o...
+.o2o1ccao111123322Acccc11o322223333o...
+.o22oaao11112333222ocaabo222223333o....
+..o222o1111333332222oooo22a2233333o....
+..o32o1111233333o222222222aa33333o.....
+...oo111222333oo222222222223333ooo.....
+...o11122222oo32222222222333333o.......
+..o1122222oo33222222233333333oo........
+.o112223oo333333333333333oooo..........
+.o12233oo.oooooooooooooooo.............
+.o223oo.....o33333333o.................
+.o3oo......o322223333Bo................
+..o.......o322222332213o.....o.........
+.........o3o33333333221o.....ao........
+.........o3o3333333o2213o...o1o........
+........o23233333233o222o...o1o........
+........o2o233333233o3223ooo13o........
+.......o23o2333322333o222o1133o........
+.......o23o2222222333o222oo33o.........
+.......o23o3222223333o222o1obo.........
+.......o33oo3222333333o23o1oo..........
+........o3o33333333323o3o321o..........
+.........oo233333o3223oo33221o.........
+..........o22o333o32233o332221T........
+..........o223oooo3223o2o33222o........
+...........o333o..o333o22333222oo......
+...........o333o...o333o223332222oo....
+..........o2223o...o223oo2233332222oo..
+.........oyoy23o..o3223o.oo3222333333oo
+.........oooooo...oy3yo....oooooooooo..
+...................P.o.................
diff --git a/parts_pl_src/body/pl_pumice.txt b/parts_pl_src/body/pl_pumice.txt
new file mode 100644
index 0000000..592f405
--- /dev/null
+++ b/parts_pl_src/body/pl_pumice.txt
@@ -0,0 +1,50 @@
+# pl_pumice: from pixellab_src/pl_pumice/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 39)
+# head_top at (32, 22) (from part/probe)
+# back at (31, 27) (from part/probe)
+# tail at (46, 50) (from part/probe)
+..................oooooooo..................
+...............ooo33222333ooo...............
+.............oo33222333123333oo.............
+...........oo3222223o3332223333oo...........
+..........o332333222o332222o32333o..........
+.........o332333322222^2222oo32333o.........
+........o3322133221222222222oo33333o........
+.......o332221122211222o322222233333o.......
+......o333222222222222o33222222233333o......
+......o332222oo3222222o33222oo2233333o......
+.....o33322oo11oo2222B2222oo11o33333o3o.....
+....o333323o1ww1o322222223o1ww1o333ooo3o....
+....o33o32o1wwoo1o3222222o1ooww1o33ooo3o....
+...o33o332o1wowooo3333332oowoow1o333o33oo...
+...o333o33o11ooooo3322233ooooo11o333333oo...
+...oo333333o1cooc33baaab33cooc1o3333333oo...
+..o33o333333o1cco3baaaaab3occ1o3333333o33o..
+.o3323o333333oo3obaaaaabbbo3oo3333333o3233o.
+.o3223o333333333oboobacoobo3333333333o3223o.
+o32222o333o333333ocbooobco33333333333o22233o
+o33223333ooo333333ocbbbco33333333o333333333o
+.o3333o333o33333333occco33333333ooo33o3333o.
+.oo3oo3o3133333333333A3333333333oo33o3oo3oo.
+o33oo33o332333333233333332333333o323o33oo33o
+o333333o3333333222222333222233333333o333333o
+o333333o3333322222221111122222233333o333333o
+o33333o333333222211111111122222233333o33333o
+oo333o33333322221111111111222222333333o333oo
+.oooo3333332222211111111111222222333333oooo.
+.o33oo3333o222221111111111222222233oo3oo33o.
+.o333o333ooo2222221111111222222223ooo3o333o.
+.o333oo333oo2222222111112222222233oo3oo333o.
+.o333oo333o33222222222222222oo3233333oo333o.
+.o33oo.o3333332222222222222ooo323333T.oo33o.
+..ooo...o333333332222222222oo3233ooo...ooo..
+.........o33333oo3222222233323333oo.........
+..........oo33333333333333333333oo..........
+............oooo333333333333oooo............
+.............occoooooooooooocco.............
+...........ooccccoooooooooocbbcoo...........
+..........occcbbccco....occcbbccco..........
+.........occoaboobco....occooabocco.........
+.........oooocoooco......ocoooboooo.........
+............oo...oP......oo...oo............
diff --git a/parts_pl_src/body/pl_pumice_b.txt b/parts_pl_src/body/pl_pumice_b.txt
new file mode 100644
index 0000000..9a70e2e
--- /dev/null
+++ b/parts_pl_src/body/pl_pumice_b.txt
@@ -0,0 +1,66 @@
+# pl_pumice_b: from pixellab_src/pl_pumice_b/base.png (variant of pl_pumice) (pixellab_library.py extract)
+# pivot at (30, 61)
+# aura at (32, 36)
+# head_top at (32, 2)
+# back at (31, 27)
+# tail at (47, 50)
+..............oo^o...............
+............oo2223oo.............
+..........oo11233222oo...........
+.........o223213312o33o..........
+........o22332121122o33o.........
+........o22222122322233o.........
+.......o22oo22223322oo33o........
+.......o2o11o322223o11o3o........
+.......o311ooo2222ooo11oo........
+.......o31oooo3113oooo1oo........
+.......o3oboo3aaab3oob33o........
+.......o33oo3aaaabb3oo33o........
+........o3333aoabob3333o.........
+........o3333oboobo3333o.........
+.........o3333obbo3333o..........
+..........o3333333333o...........
+...........ooo3333ooo............
+...........o33333333o............
+...........o33333333o............
+...........o3332233oo............
+...........o3222233oo............
+...........o32222233o............
+...........o32111233o............
+...........o31111133o............
+...........o31111133o............
+...........o311B1133o............
+...........o31111133o............
+...........o21111133o............
+...........o21111133o............
+...........o21111133oo...........
+.........ooo21111123o3oo.........
+.......oo33o21111123o333oo.......
+......o332bo111111233oc333o......
+.....o322aco111111233occ333o.....
+....o322bao31111A12233cco333o....
+....o322bao32111112233cco3333o...
+...o3322cac33211122233cco33o3o...
+..o33332caac332222233cbco3oo33o..
+..o323322cbaaaooooobbbco33oo33o..
+..oo212222occcabbbbccco333333oo..
+.o22o2222222oocccccoo3333333o33o.
+o322o222322222ooooo333333333o223o
+o322222332222222222223333333o233o
+.o23oo323222221111122233o33o333o.
+o3oo3o312222111111111133o33o3oo3o
+o3333o332221111111111113333o3333o
+o3333o333211111111111112333o3333o
+o333o33331111111111111122333o333o
+.ooo3333221111111111111223333ooT.
+.o3o333oo21111111111112223333o3o.
+.o33o33oo2221111111112223333o33o.
+.o33oo3o3332221111122222333oo33o.
+..oo..o3333322222222222333o..oo..
+.......o33333222222233333o.......
+........ooooo33333333oooo........
+..........ocoooooooooco..........
+........oocbcoo...oocbcoo........
+.......ocoaoobo...ocooaoco.......
+.......ooocooco....ooocooo.......
+.........oo..oP....o..oo.........
diff --git a/parts_pl_src/body/pl_pumice_c.txt b/parts_pl_src/body/pl_pumice_c.txt
new file mode 100644
index 0000000..eb66818
--- /dev/null
+++ b/parts_pl_src/body/pl_pumice_c.txt
@@ -0,0 +1,57 @@
+# pl_pumice_c: from pixellab_src/pl_pumice_c/base.png (variant of pl_pumice) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 36)
+# head_top at (32, 10)
+# back at (31, 27)
+# tail at (48, 50)
+....................oo^oo...................
+..................oo11132oo.................
+.................o21a12a223o................
+................o2232222333o................
+...............o323w32231w33o...............
+...............o333o3aa3o333o...............
+.............ooo3a23aooa3333ooo.............
+............o311oc333aa333co333oo...........
+..........oo2111233333333oo322333oo.........
+.........o2211111233333333222223333o........
+........o32aaa1111112222222bbb222333o.......
+.......o222aaa1111111111122bab2222333o......
+......o3221cc11111111111122ba222222bcco.....
+.....o322211111111a1111122222222222bacco....
+....o3222211111111a1111a22222222222bacc3o...
+...o322222211111111111aa222222222222bcc3o...
+...o222aa2222oo3111111222222oo32222223333o..
+..o3222aa222o11o31112B22222o11o3222223333o..
+..o3222c222o1ww1o322222223o1ww1o3222233333o.
+.o33222222o1wwoo1o3222222o1ooww1o222233333o.
+.o33222222o1wowooo3222223oowoow1o322233333o.
+.o3aa22222o11ooooo3211123ooooo11o3222333333o
+o333a222223o1cooc33aaaaa33cooc1o33223333333o
+o33332222223o1cco3aaaaaaa3occ1o33222a333333o
+o333322222223oo3oaaaaaaaaao3oo3222222c33aa3o
+o333332222222222oaoobacooao3222222222333ac3o
+o3aa33322a2222223ocaooAaco322222222233333c3o
+o3aa3332cac2222223ocaaaco3222222c2233333333o
+o3aa33332cc22222223occco3222222cac333333333o
+o33a333322222222222333332222222cac333333333o
+o333333333322222222222222222233ccc333333333o
+o333333333333321111111111111133333333333333o
+o333333333333221111111111111112333333333c33o
+.o3oo33333333111111111111111112233333333c3o.
+.o3oo3333333111111111111111111223333333333o.
+.o333333ac33111111111111111111222333333333o.
+..o33333aac3111111111111111112222333cc333o..
+...o33333ac321111111111111111222233aac333o..
+...o33333ccc22211111111111112222233aa333o...
+....o3cc333332221111111111122aa23333333o....
+.....ocac3333322222111111222aac3333333T.....
+......occ333333c222222222222bc3333333o......
+.......o3333333ac322222222333333333oo.......
+........oo333333c33333333333333333o.........
+..........ooo333333333333333333ooo..........
+.............ooo333333333333ooo.............
+...........oocccoooooooooooocccoo...........
+..........occcaaacco....occaaaccco..........
+.........occoaaooaco....ocaooaaocco.........
+.........oooocoooco......ocoooaoooo.........
+............oo...oP......oo...oo............
diff --git a/parts_pl_src/body/pl_pumice_d.txt b/parts_pl_src/body/pl_pumice_d.txt
new file mode 100644
index 0000000..60a6cba
--- /dev/null
+++ b/parts_pl_src/body/pl_pumice_d.txt
@@ -0,0 +1,59 @@
+# pl_pumice_d: from pixellab_src/pl_pumice_d/base.png (variant of pl_pumice) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 32)
+# head_top at (32, 8)
+# back at (31, 27)
+# tail at (44, 50)
+.....................oooo^oooo....................
+..................ooo221112222ooo.................
+................oo211113331112223oo...............
+..............oo1111113o33311122233o..............
+............oo111111113o3331111222233o............
+...........o31113331111o3331111oo31123o...........
+..........o31113333111111111111ooo31233oo.........
+.........o3311113331111111111111oo3122333o........
+........o33211111111111111333111111122233o........
+.......o3331111111111111113331111111222333o.......
+.......o33111111111111111333311111111222333o......
+......o332111111111111111o332111111112222333o.....
+.....o33321111111111111111111111111112222333o.....
+.....o33221111111111111111111111111112222oo33o....
+....oo33o21111111111111111111111111122223ooo3o....
+....oo3ooo1111111111111111111111111122223ooo3oo...
+....oo33o31113oooo11111111111111ooooo22233o33oo...
+...ooo332211oo1111o111111111111o1111o32233333oo...
+..o23o332223o1wwoooo1111111111ooooww1o323333o32o..
+.o2213o3222o1wwowooo3111B11111oowooww1o2333o3122o.
+.o2112o3222o1woowoooo11111111ooowooow1o2333o2112o.
+o32112o3222o1wooooooo11111111ooooooow1o2333o32123o
+o33223o3222o11cooooco22111133ocooooc11o3333o33233o
+.o3333o32223o1ccoooco2aaaaab3ocooocc1o333333o333o.
+.oo33oo322222o1cccco3aaaaAaab3occcc1o3333333o33oo.
+o33oo3o3222aaaoooo3obaaaaaabbboooooobaab3333o3o33o
+o33333o332aaaa22222oboobbbboobo22222aaaa3333o3333o
+o33333o332aaaa222223cbboooobcc322222aaaa3333o3333o
+o3333o33322aaa2222223cbbbbbbc3222222aaab3333o3333o
+o3333oo333222222222223cbbbbc3222222222333333o3333o
+.oooooo3333222222222223cccc32222222223333333ooooo.
+.o33ooo333332222222222233332222222233333333ooo33o.
+.o233o.o333332222222222222222222o333333333o.o332o.
+.o233o..o3333333222222222222222ooo3333333o..o332o.
+.o333o...oo33333332222222222333333333333o...o333o.
+.o33o......oo33333333333oooo3333333333oo.....o33o.
+..ooo........oo33333333333333333333ooo.......ooo..
+...............oooo3333333333333ooo...............
+...............o333ooooooooooooo33o...............
+..............o33333333333333333333o..............
+.............o323o33331111113333o322o.............
+............o2123o33311111111333o3212o............
+............o1123o33111111111133oo311T............
+............o113o3331111111111333o311o............
+............o223o3331111111111333o313o............
+............o333o333111111111133oo333o............
+............o33o.o33311111111333o.o33o............
+.............oo...o333311113333o...oo.............
+..................oooo333333oooo..................
+.................occccoooooocccco.................
+................occbbcco..ocbbbcco................
+................oooboooo..ococaooo................
+...................oP........oo...................
diff --git a/parts_pl_src/body/pl_pup.txt b/parts_pl_src/body/pl_pup.txt
new file mode 100644
index 0000000..a5df616
--- /dev/null
+++ b/parts_pl_src/body/pl_pup.txt
@@ -0,0 +1,35 @@
+# pl_pup: from pixellab_src/pl_pup/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 46)
+# head_top at (23, 34) (from part/probe)
+# back at (34, 41) (from part/probe)
+# tail at (49, 40) (from part/probe)
+.........oooooo..........................
+.......oo222222oo........................
+.....oo11112^2223oo......................
+....o32211122222222o.....................
+...o3222222112222122o..................oo
+...o3x2222xx222321122o.................oo
+..o3oo2222ooo223211233o................oo
+..o3wo22221o1o23211233o...............o1o
+..o3o32222oo1o232222333o..............T1o
+..o3111222bb12232223333B.............o13o
+.o322222222222322333333o......ooooooo133o
+o333oxxx222xxx323333333o..oooo2222222o3o.
+oo33oxxxxxxxxb323333333ooo222222222222o..
+oboooxxxxxxobbo3333333o2222222222222222o.
+.obbbbbbooo333o3333A3o22222222222222122o.
+..oooooooo33333o33333o222222222222221123o
+........ob3333cbo333o3211222222222321123o
+........oaaaaaabbooo32211222222233331233o
+........ocbaaabcc33322211222223333o3323o.
+........o2ccccc2222222222223333333o3333o.
+........o22222222222222223333333bboobb3o.
+.........oxxxx222222233333333bbboooobbbo.
+.........ooxxxx332222o333bbbboooo.oxxxbo.
+.........obobbbbo2222obbbbooo.....oobobo.
+........oxbboobbox2x3ooooo.........oooo..
+........ob3bboooobbxbo...................
+.........oooo..oxxxbbo...................
+...............ooxobo....................
+................oooP.....................
diff --git a/parts_pl_src/body/pl_pup_b.txt b/parts_pl_src/body/pl_pup_b.txt
new file mode 100644
index 0000000..b3ee3dd
--- /dev/null
+++ b/parts_pl_src/body/pl_pup_b.txt
@@ -0,0 +1,40 @@
+# pl_pup_b: from pixellab_src/pl_pup_b/base.png (variant of pl_pup) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 43)
+# head_top at (23, 27)
+# back at (34, 41)
+# tail at (54, 40)
+............o^.ooo...........................
+........oooo11o111ooo........................
+......ooo112122112112o.......................
+.....o1122222211222112o......................
+....oo2112222222222222oo.....................
+...o1121221122122122122oooooooo..............
+...o12222222222222331223o222211oo............
+...o32232222322223333333o2ac22111oo..........
+...o33233233323332222333o2ac2222111oo........
+..o23333333323332211113o2222222222111o.......
+..o232x3332x222232112113o2222cc2222212o......
+.o223oo2222ooo22321121133o22caac2222111o..oo.
+.o223wo2222wo1o2321123222o22caac2222221o..o1o
+o2323o32222oo1o2322222332o222cc222222211ooo2T
+o3333111222bb12232223223B2222222222222213o33o
+o3o3222222222223223232233o222222222cc222333o.
+.o333oxxx222xxx322313A233o222222222cac2233oo.
+.oo33oxxxxxxxxb322333233o222cc22222cc22233o..
+.oboooxxxxxxobbo33223333o222aac22222222233o..
+..obbbbbbooo333oo332233o3222aac22222222333o..
+...oooooob333babbo3333o33222ccc22222222333o..
+......o33cccaaab33oooo33222222222222223333o..
+......o3333333332233333222222222223223333o...
+.......o322222222222222222221223223223333o...
+.......o33222223122222221122222322333333o....
+........o3322222222222321113322333333333o....
+........o333223232222233322333333333oo33o....
+.........oo33333332223333333333333ooyyybo....
+..........ooo333333233333333333ooo.oobobo....
+.........oxbboo33o3333oo333oooo.....oooo.....
+.........ob3bboooob33bo.ooo..................
+..........oooo..oxxxbbo......................
+................ooxobo.......................
+.................oooP........................
diff --git a/parts_pl_src/body/pl_pup_c.txt b/parts_pl_src/body/pl_pup_c.txt
new file mode 100644
index 0000000..e09eb66
--- /dev/null
+++ b/parts_pl_src/body/pl_pup_c.txt
@@ -0,0 +1,54 @@
+# pl_pup_c: from pixellab_src/pl_pup_c/base.png (variant of pl_pup) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (31, 35)
+# head_top at (23, 12)
+# back at (34, 29)
+# tail at (52, 40)
+.........ooo^oo..............................
+.......oo222222oo............................
+.....oo1111222223o...........................
+....o3221112222222o..........................
+..oo322222211222212o.........................
+..oo3x2222xx22232112o........................
+.o3ooo2222ooo22321123o.......................
+.o3o1o22221o1o2321123o.......................
+o33oo32222oo1o23222233o......................
+o3o3111222bb1223222333o......................
+ooo2222222222232233333o......................
+o333oxxx222xxx32333333o......................
+oo33oxxxxxxxxb32333333o................ooo...
+oboooxxxxxxobbo3333333o................o2o...
+oobbbbbbooo333o333333o.................o2o...
+o3ooooooo333333o33333ooooooooooooooo..o12o...
+o33333oob333322co333ocabbbbbbbbbac22oo223o...
+.o3333oobb2222cbbooo3caBbbbbbbbbac222223o....
+.o333o.obaaaaaabbc333cabbbbbbbbbac22222o.....
+..ooo..ocaaaaabcc3332cabbbbbbbbbac222222o....
+.......o2cccccc2222222cabbbbbbbbac222222o....
+......o322222222222222cbaaaaaaaac2222222o....
+......o3222222222222222ccccccccc222211122o...
+......o3xx2222222111A22222222222222211122o...
+......o3xxx222222111222222222222222211123o...
+......o3xxx222222111222222222233222211123o...
+.......o3xxx2222222222222223333332222222oo...
+.......ooxxxx2222222322223333bbb32222223oo...
+........oobxx232222333333333ooooo3222223oT...
+........o3obbb32222o333333oooo333o322223o3o..
+........o33oob32222o33bboo...o3333o32223o3o..
+........o333ooo2223ooooo......o333oo3223ob3o.
+........o333o.o2223o..........o333o.o2223oxo.
+........o233o.o2223o...........o333o.o223ooxo
+........o223o.o2223o...........o333o.o223o.oo
+........o223o.o2223o...........o333o.o223o...
+........o223o.o2223o...........o333o.o223o...
+........o223o.o2223o...........o333o.o223o...
+........o223o.o2223o...........o333o.o223o...
+........o223o.o2223o..........o333o..o223o...
+........o223o.o2223o..........obbbo..o2xo....
+........o2x3o.o2223o.........obbbbo..oxxo....
+........oxx3o.o22x3o.........obobo..oxxxo....
+.......oxxbbo.oxxxo..........oooo...oxoxo....
+.......oxobo..obbxo.................oooo.....
+.......oooo..oxxxxo..........................
+.............oxoxxo..........................
+.............ooooP...........................
diff --git a/parts_pl_src/body/pl_pup_d.txt b/parts_pl_src/body/pl_pup_d.txt
new file mode 100644
index 0000000..ede278a
--- /dev/null
+++ b/parts_pl_src/body/pl_pup_d.txt
@@ -0,0 +1,39 @@
+# pl_pup_d: from pixellab_src/pl_pup_d/base.png (variant of pl_pup) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 43)
+# head_top at (23, 28)
+# back at (34, 41)
+# tail at (51, 40)
+..........ooo^oooooo......................
+........oo2111111222oo....................
+.....ooo22111111222222ooo.................
+....o33222111111222222333oo...............
+...o23312222222222222333223o..............
+..o2332222222222222223333223o.............
+.o333322222222222222223332233o............
+o33a3222yy222222yy22223o333333o...........
+o33o2222yy222222yy22222o33333co.........oo
+o3co22ooo32222222ooo222o33333co.........oo
+o3co2oo1oo222222o1ooo223o3333co.........oo
+o33o2ooooo222222ooooo222oa33a3o........o1o
+.ooo2ocoob222222cooco2223o3cco.........o1T
+...o22ccc32111123ccb2222Bo33o.........o13o
+...o222222yyyyyy2222222233oo...ooooooo133o
+...o3a22yy3333yyyy22Aa2233ooooo2222222o3o.
+...o3a2yy33333yyyyy2aa233oo222222222222o..
+....o2cyyoo3ooyyyyyc22333o22222222222222o.
+.....ocyyyoo3yyyyyyc3333o322222222222122o.
+......occyyooyyyyccc33oo32222222222221123o
+.......ooccccccccccooo3311222222222321123o
+.........oooooooooobb32211222222233331233o
+.........obcccccbb33222211222223333o3323o.
+.........o2bbbbb2222222222223333333o3333o.
+.........o22222222222222223333333ccoocc3o.
+..........oyyyy222222233333333cccooooccco.
+..........ooyyyy332222o333ccccoooo.oyyyco.
+..........ococccco2222occccooo.....oococo.
+.........oyccooccoy2y3ooooo.........oooo..
+.........oc3ccooooccyco...................
+..........oooo..oyyycco...................
+................ooyoco....................
+.................oooP.....................
diff --git a/parts_pl_src/body/pl_qilin.txt b/parts_pl_src/body/pl_qilin.txt
new file mode 100644
index 0000000..49496c2
--- /dev/null
+++ b/parts_pl_src/body/pl_qilin.txt
@@ -0,0 +1,46 @@
+# pl_qilin: from pixellab_src/pl_qilin/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 41)
+# head_top at (31, 22)
+# back at (35, 35) (from part/probe)
+# tail at (43, 40) (from part/probe)
+........o........................
+.......oao......^o...............
+.......obo.ooo.oao...............
+......oaboo111o1bo...............
+......obo1112ow1oco..............
+.....o1o2112o11bbo1o.............
+.....oo222oo11boo22o.............
+....oo22222bbbo3oooo..o..........
+....o2b22222bo33bao2o2o..........
+...o2212a3b222oaa3o222o..........
+...o322c31122oca3o222o...........
+.o.o2222oooo22ooo22oo..........o.
+.o.o222owcoo2221o1112o....oo..o1o
+.oo1122oo1o2121232222o...o12oo11o
+oo111222oo2112ooooo2B...o1121112.
+o111owoo2211221321oo....o121122o.
+.o311o222222ooc1oo......o23122o1o
+..o333oooooo33o3o...ooooo222o112o
+...ooo.o11133b3o..oo33b23o3o2222o
+.......o1113c3bo.ocb321b23o2T22o.
+.......o11ooab3oA3321b2a12o222o..
+......oa11o1212223223ab2223ooo...
+......o111a3122221b22222a3bo.....
+......o111o1222223ab222223bo.....
+......oc111c2221322223222a3o.....
+.......o111o22aa13223322223oo....
+.......oo111o2a3booooo222aoaao...
+........oo11o22a3o11o3o222boao...
+........o3ooo2222oooo3o33333o....
+........o33oo223cao.o33ooo3bo....
+........o233o322ao..o33o.o333o...
+........o22o.o223o.oc331oo2231o..
+........o223oo33o.oacb3ooo223o...
+.......ob22o.o23o.ocacooobb3o....
+......oacbbooo223o.oooooacaco....
+......ocaccoo2221o.....ocobco....
+.......ooooobb32o.......oooo.....
+..........oacacco................
+..........ococco.................
+...........oooP..................
diff --git a/parts_pl_src/body/pl_qilin_b.txt b/parts_pl_src/body/pl_qilin_b.txt
new file mode 100644
index 0000000..6e797fb
--- /dev/null
+++ b/parts_pl_src/body/pl_qilin_b.txt
@@ -0,0 +1,53 @@
+# pl_qilin_b: from pixellab_src/pl_qilin_b/base.png (variant of pl_qilin) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 38)
+# head_top at (31, 16)
+# back at (35, 34)
+# tail at (49, 40)
+...........oo........................
+.....o...oo11o.......................
+....o2ooo3313o..o^...................
+...o111113113o.o1o...................
+...o1111112211o113oooo...............
+.o.o311331113o2131o111o..............
+o1o3112a1a113o1331o331o..............
+o111222a1133o21331o33o...............
+o333113113ooo23313o11o...............
+.o11133133o332331oo111o..............
+.o3333333o3222323o3311o..............
+..oo333oo32a2223o31a11o..............
+..ooooo3a2222222o311211oo............
+.ooo333322ooo2223o311222o............
+.owo22222oowoo223o3113oo.............
+.ooo2222ooowwo223o3111o..............
+.oco2222ooocwo223o3311o..............
+..o11222coccw2223o3311oo.............
+.o11112222222a223o33311o.............
+.o111312222222233o32o33o....oooo.....
+.o211132222223333o32oBo....o2111oo...
+..o2222333333333ao33o.....o1121111o..
+...oooooo11133b33ooo......o1221111o..
+........o111332a3oo...ooooo33222211o.
+.......o11113222Acoooo333aao3331221o.
+.......o11112aa223333aa3a1aao333231o.
+......o3111122aa2223332aa2c2ao33231T.
+......o11111222222222222ac2223o3232o.
+......o1111122222222a22222223ao321o..
+......o1111122211222ac222222aa3o21o..
+......o111112222a12222222222c2ao311oo
+......o31111222aaa22222332222aco3311o
+.....o2o2111222a2b3333333322a23o333o.
+.....o23o2222322c23o33333322223aooo..
+.....o333o222322223o222oo33222aao....
+.....o2233o2232223ao22o33o3332222o...
+....o222333ooo222acooo333oo333322o...
+....o222333o.o22223o..o333oo33332o...
+....o2223oo..o2222o...o333o.o2222o...
+....o2223o...o2223o..oc333o.o2223o...
+....oo223o...o2223o.occcc3o.oaa23o...
+...oaac33o..o22223o.occcccooaca2o....
+...oaacco...ooo223o..ooooo.occcco....
+...occcco..oaaac2o.........occcco....
+....oooo...oaaacco..........oooo.....
+...........occccco...................
+............ooooP....................
diff --git a/parts_pl_src/body/pl_qilin_c.txt b/parts_pl_src/body/pl_qilin_c.txt
new file mode 100644
index 0000000..5641127
--- /dev/null
+++ b/parts_pl_src/body/pl_qilin_c.txt
@@ -0,0 +1,63 @@
+# pl_qilin_c: from pixellab_src/pl_qilin_c/base.png (variant of pl_qilin) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (30, 34)
+# head_top at (31, 5)
+# back at (35, 38)
+# tail at (46, 40)
+........o........................
+.......oao......^o...............
+.......obo.ooo.oao...............
+......oaboo111oybo...............
+......obo1112owyoco..............
+.....oyo1112oyybbo1o.............
+.....oo211ooyyboo12o.............
+....oo12221bbbo3oooo..o..........
+....o1c11111bo33cao2o2o..........
+...o1111b3c111oba3o122o..........
+...o311c31111oca3o222o...........
+.o.o2112oooo22ooo22oo............
+.o.o111owcoo2221o1112o...........
+.oo1111oo1o2121232222o...........
+oo111111oo2112ooooo2o............
+o111owoo2211221321oo.............
+.o311o222222ooo1ooo..............
+..o333ooooooooooo3o..............
+...ooo.....oooo333o..............
+...........oobo333o..............
+...........obbo133o..............
+..........obbco113o..............
+..........obbc112o...............
+..........oaao112o...............
+.........oaabo132o...............
+.........oabo113o................
+........oaaao113o................
+........oaabo133o................
+.......oabbo113o...............o.
+.......oaabo133o..........oo..o1o
+......oaaabo133A.........o12oo11o
+......obabo113o.........o1121112.
+.....oaaooo113o.........o121122o.
+.....oaaaao113o.........o13122o1o
+.....oaaaao212o.....Boooo232o112o
+....occaaoo1b12o..oo33c23o3o1122o
+....obabob11112o.occ311c23o2222T.
+....obaaab11a112o3321c2a12o222o..
+....obaaabo1111123113ac1123ooo...
+.....obaaoo1111111c11111b3co.....
+.....oboobb1111113ac111113co.....
+.....obbbbbo2111311123111b3o.....
+......obbbbo21aa12223321113oo....
+......oobbboo2a3cooooo221bobao...
+.......oooboo21b3o11o3o212cobo...
+........ooooo2112oooo3o33333o....
+........o33oo213cao.o33ooo3co....
+........o233o321bo..o33o.o333o...
+........o22o.o223o.oc331oo2231o..
+........o223oo33o.obcc3ooo223o...
+.......oc22o.o23o.ocbcooocc3o....
+......oacccooo113o.oooooacaco....
+......ocbccoo1121o.....ococco....
+.......ooooocc32o.......oooo.....
+..........oacacco................
+..........ococco.................
+...........oooP..................
diff --git a/parts_pl_src/body/pl_qilin_d.txt b/parts_pl_src/body/pl_qilin_d.txt
new file mode 100644
index 0000000..0feb0b6
--- /dev/null
+++ b/parts_pl_src/body/pl_qilin_d.txt
@@ -0,0 +1,48 @@
+# pl_qilin_d: from pixellab_src/pl_qilin_d/base.png (variant of pl_qilin) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (33, 39)
+# head_top at (31, 19)
+# back at (35, 35)
+# tail at (49, 40)
+.......o...................................
+......obo........o^........................
+......oco.oooo.ooyo........................
+.....oacoo1113oyyco........................
+.....oco111233y1ycoo.......................
+....oyo21222oyyccc33o......................
+....oo32223oyycco223o......................
+...oo223322cccc33oooo......................
+...o2b222222c3333bbo3o3..................o.
+..o221222b22222obbo3223............oo...o1o
+..o22222211222obb3o333o...........o11ooo11o
+..o32222oooo223ooo233o............o1131113.
+..o3222owooo2223111113o..........o11111133.
+.oo1122oooo32222222233o....oooo..o2311133o.
+oo111222ooo1223ooo333oo.ooo2222ooo33113331o
+o11111222222223332oooooo3311bbb11o33133111o
+o1112o2222222232222ooo3cc2222bbb11o33o1113o
+.o2222222223ooo322oo33Bcb22222bb112o322233o
+..o322oooooo333o33o33222223b2222222o33333o.
+...oooo222223333oo33b222222222222222o333o..
+......o2222233233322222bb222222222b2oooo...
+.....o22222232b22222A2bbbb22222222c2o......
+.....o212221222222222223b2223322222cT......
+.....o111111222232222322222332222223o......
+.....o111111222332222232222322222223o......
+.....o211111123322b2223322332222bb23o......
+.....o211111123322bbb233233o2222bc23o......
+......o2111112o2222bb23o333o22222223o......
+......oo211122o32222b23o333o2222222co......
+......o3o222222o2222223o332o33222b2co......
+......o33o22222o3222223o22o3o3222b33o......
+......o333oo2222o222b2oooo33oo3333333o.....
+.....o223333ooooo322b2co3333ooo333323o.....
+.....o222333o...o322223o3333o..oo3223o.....
+.....o22233o....o322223o3333o...o2223o.....
+....o22223o.....o32222occc33o...32223o.....
+...obco223o.....o32223oocc33o.obc3323o.....
+...ocobc33o....o222223oooooo..obcbc33o.....
+...ococcoo....ooc3o223o.......occcc3o......
+....oooo......obcobc33o........ooooo.......
+..............ocobcc3o.....................
+...............oooooP......................
diff --git a/parts_pl_src/body/pl_quail.txt b/parts_pl_src/body/pl_quail.txt
new file mode 100644
index 0000000..8dab3d2
--- /dev/null
+++ b/parts_pl_src/body/pl_quail.txt
@@ -0,0 +1,40 @@
+# pl_quail: from pixellab_src/pl_quail/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 45)
+# head_top at (30, 34) (from part/probe)
+# back at (39, 39) (from part/probe)
+# tail at (42, 52) (from part/probe)
+........ooo.................
+.......o223o................
+......o21233o...............
+......o2233o3...............
+......o3333o3...............
+.......o3ooc3...............
+.......o33o33oooo...........
+........o33o^2223oo.........
+.......o22332222233o........
+......o1122111122233o.......
+.....o211111112222233o......
+....o222111112222222co......
+....o22222222222222bcBo...o.
+...ob222222222222bbb33o..o1o
+...ooob2b222boobbb22333oo11o
+..o21obbbbbbowoo2222333o222o
+..oowo233222oo1o2222333o32o.
+..oco21233223ao222223333o32o
+.oob2233ooo22A2bb22333o3o33o
+o2o222ooo32222222232223cooo.
+o3o222223222222222c222323oo.
+.oo223222222222222c32323co..
+.oo331211121222222o3b3333o..
+..o3313111311322222o33cccooo
+...o2212121121322233ooooo32o
+...o3211311311132333333oT3o.
+....o22322211232333333o3oo..
+.....o322322232233333o3o....
+......o3222232322333oooo....
+........o323222233oo........
+.........oooooooooo.........
+.......o323o...3o3o.........
+.......3ooo...3o3oo.........
+................Pc..........
diff --git a/parts_pl_src/body/pl_quail_b.txt b/parts_pl_src/body/pl_quail_b.txt
new file mode 100644
index 0000000..f829082
--- /dev/null
+++ b/parts_pl_src/body/pl_quail_b.txt
@@ -0,0 +1,43 @@
+# pl_quail_b: from pixellab_src/pl_quail_b/base.png (variant of pl_quail) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 43)
+# head_top at (30, 25)
+# back at (39, 39)
+# tail at (45, 52)
+................ooo...............
+...............^112ooooo..........
+..............o1122o1111o.........
+.............o1122311122o.........
+............o2122311233oo.........
+............o112311133222o........
+...........oo1223123322333o.......
+...........oo12232333oo33o........
+.........oo2o1233333333oo.........
+........o2112333111222333o........
+.......o221111111112222333o.......
+......o22111111111222222333o......
+.....o2222211111222222223c3o......
+....oa22222222222222222aac33o.....
+....oaa22222222222222aaaa333o...o.
+...o22aooa2a222aooaaaa22B2333o.o1o
+...o22owoaaaaaaowoo2222222333oo21o
+..o322ooo233222oo1o22222223333o22o
+..o2222ao3233223ao222222223333o2o.
+..o22a222333oo222Aaa2222233333o32o
+.oo222222ooo222222222222322233o33o
+o2o22222222222222222222322222booo.
+o2o22222222222222222222c2222222oo.
+obo22221111111211222222c222222bo..
+obo322aa11111111112222232a22222o..
+.oo331ac11111111aa122222o333cccoo.
+..oo3111111aa111cc1132223oooooo3o.
+...o3111111a11111111132333333o3o..
+...o3321cc1111cc1111123333333oT...
+....o332c221111c211222333333o.....
+.....o3322222c2222222333333oo.....
+......oo322222222222233333o.......
+........oo3333222223333ooo........
+..........oooo33333ooooo..........
+.........o323oooooo332o...........
+.........3oooo....o3o3o...........
+...................Pcc............
diff --git a/parts_pl_src/body/pl_quail_c.txt b/parts_pl_src/body/pl_quail_c.txt
new file mode 100644
index 0000000..09d417a
--- /dev/null
+++ b/parts_pl_src/body/pl_quail_c.txt
@@ -0,0 +1,63 @@
+# pl_quail_c: from pixellab_src/pl_quail_c/base.png (variant of pl_quail) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 33)
+# head_top at (30, 5)
+# back at (39, 39)
+# tail at (36, 52)
+........oooo................
+.......o2233^...............
+......o212333o..............
+......o2233o3o..............
+......o3333o3o..............
+.......o3ooc3o..............
+.......o33oo3o..............
+........oo333o..............
+.........o333o..............
+.........o323o..............
+.........o223o..............
+.........o223o..............
+.........obb3o..............
+.........obbco..............
+.........o223o..............
+.........o223o..............
+........o22233ooo...........
+.......oo22232223oo.........
+......o222222222233o........
+......31122111122233o.......
+.....o211111112222233o......
+....o222111112222222co......
+....o22222222222222bc3o...o.
+...ob222222222222bbb33o..o1o
+...ooob2b222boobbb22333oo11o
+..o21obbbbbbowoo2222333o222o
+..oowo233222oo1o2222333o32o.
+..oco21233223ao222223333o32o
+.oob2233ooo2222bb22333o3o33o
+o2o222ooo3222A222232222cooo.
+o3o222223222222222c222323o..
+.oo222222222222222c32323co..
+.oo331211121222222o3b3333o..
+..o3312111311222222o33cccooo
+...o2212121121222233ooooo32o
+...o32113113111323333B3o33o.
+....o22222211232333333o3oo..
+.....o322322232233333o3o....
+......o3222232322333oooo....
+........oo23222233oo........
+........o3oooooo33o.........
+........o33o...o33o.........
+........o23o...o23o.........
+........o23o...o23o.........
+........o23o...o23o.........
+........o23o...o23o.........
+........o23o...o23o.........
+........o33o...o33o.........
+.........o3o....33T.........
+.........o2o....o3o.........
+.........o3o....o2o.........
+.........o2o....o2o.........
+.........o2o....o2o.........
+.........o2o....o2o.........
+.......o322o...o22o.........
+.......oooo....o3oo.........
+................Pc..........
diff --git a/parts_pl_src/body/pl_quail_d.txt b/parts_pl_src/body/pl_quail_d.txt
new file mode 100644
index 0000000..167fc3c
--- /dev/null
+++ b/parts_pl_src/body/pl_quail_d.txt
@@ -0,0 +1,45 @@
+# pl_quail_d: from pixellab_src/pl_quail_d/base.png (variant of pl_quail) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (32, 41)
+# head_top at (30, 25)
+# back at (39, 39)
+# tail at (43, 52)
+.................oo..........
+................oo1o.........
+................223o.........
+...............o2232o........
+..........oo^ooo3333o........
+........oo222223333o.........
+......oo222222222333o........
+.....o221112222222233o.......
+....o22112222222222233o......
+...o2211222222222222333o.....
+...o2211222222222222233o.....
+..o222222222222222222333o....
+..o222222222222222222233o....
+.o22222222222222222222333o...
+.o22222222222222222222333o...
+.o22222222222222222222333o...
+.o22222222222222222222333o...
+.o22222222222222222222333o...
+.o2222222222222222222B333o...
+.o22222222222222222223333o...
+.o32oo2222222oA222223333o....
+..o21o222222o1o222223333o..o.
+..o2oo233322ooo22223333o..o1o
+..oa223233o2222aa23333o3o321o
+...o323ooo222222233333333322o
+..o333333333333333222o33333o.
+.o22323333333332322223333333o
+.o23222233222222222222o33333o
+o2232221222222222o22221o33oo.
+o2332211212211322o22133o33o..
+o33332131122111322ooooo333...
+.ooo323111113111222333333T...
+....o2222111231122233333o....
+....oo32221222222233333o.....
+......o322222222233333o......
+.......oooo32233333ooo.......
+.........o3oooooo3o..........
+........323o....o2o..........
+........ooo....P3oo..........
diff --git a/parts_pl_src/body/pl_quetzal.txt b/parts_pl_src/body/pl_quetzal.txt
new file mode 100644
index 0000000..da53a96
--- /dev/null
+++ b/parts_pl_src/body/pl_quetzal.txt
@@ -0,0 +1,48 @@
+# pl_quetzal: from pixellab_src/pl_quetzal/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 42)
+# head_top at (28, 24) (from part/probe)
+# back at (32, 39) (from part/probe)
+# tail at (44, 44) (from part/probe)
+..............oo..oo.................
+............oo3o.o3o..ooo............
+........oo.ooo1oo23ooo33o............
+........o3o2o31o11oo1223o............
+.....oo.o3o1o12o12o1112o.............
+.....o3o32o3o2o^2o2112ooooo..........
+.....o23o33oooooo3223o32223o.........
+.....o23o3o2cc333o3o3211123o.........
+.....o333ocbab2223oo32113oo..........
+...oooo3o2babb22222ooooooooo.........
+...o33oo222b22122223o3211123o........
+....o33o1232211oo22booo212233o.......
+.....ooo212121ocao3o2ooooo33oo.......
+....o3ow11112owowo33ooo33oooo........
+...o33oo11111ooowo333oo3323o.........
+....ooo1111113cbo3333ooo3323o........
+.....o2311o1122333o23o33oo33o........
+.....o21111122oooo13o3333oooo........
+.....oo2oo33oo1112oooo323o...........
+......oo1oo111oooo333o323o...........
+........ocoooo33333B33o32o...........
+........oboo33222233oooo3o....ooooo..
+.......oaooo2333333oboo.oo..ooc3333o.
+.......oooo222211A33oo.....oo3333333o
+.........oo2222212233o....oboooooo33o
+.........o1111113223o....ooooooT.o33o
+.........o111111322oo...ocooooo..ooo.
+......oooo32222332oboooooooooo.......
+....oo333o211122333oooooo3oo3ooo.....
+..oo33333o22222233333oooo333o33oo....
+.oo333333o33333333333ooooo3222333o...
+.o332222ooo2222223333oooo22222233oo..
+.oc32111122ooooooooooo2211112o233co..
+obc321o1111111111111111111112bo33oo..
+oco33ob21111o11111o11111o1122bac33o..
+oo33cabo211oao111oao111obo22ocbc33o..
+o333cbco22obabo2obabo2obabc33oco33o..
+.o33oco333ocbco3ocbco3ocbco333o33o...
+.oo23o33333oco333oco333oco333322oo...
+..oo22223333o33333o33333o32222ooo....
+...ooooo222222222222222222ooooo......
+.......oooooooooooPooooooooo.........
diff --git a/parts_pl_src/body/pl_quetzal_b.txt b/parts_pl_src/body/pl_quetzal_b.txt
new file mode 100644
index 0000000..57ecae6
--- /dev/null
+++ b/parts_pl_src/body/pl_quetzal_b.txt
@@ -0,0 +1,49 @@
+# pl_quetzal_b: from pixellab_src/pl_quetzal_b/base.png (variant of pl_quetzal) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 43)
+# head_top at (28, 19)
+# back at (32, 39)
+# tail at (49, 44)
+................ooo..................
+...............^32o..................
+..............o322o..ooo.............
+..............o113ooo33o.............
+...........ooo212331113o.............
+..........oo3o22332122o..............
+..........o33o23332233oooo...........
+..........o33333333331123o...........
+.........oo2bb22233322233o...........
+........o2bbaa22222333333oo..........
+........o2babb211222332112o..........
+.......o222b221112222o333oo..........
+.......o1232211oo222bo33oo...........
+......oo212121ocao3333o223o..........
+......ow11112owowo3333o333o..........
+......oo11111ooowo3333o33o...........
+......o1111113cbo331333ooo...........
+.....o2311o1111333o1333oo............
+.....o21111111oooo1233coo............
+......o2oooooo1112oo333o.............
+.......o111111oooo3333co.............
+........oooooo33333B3co..............
+............o32222333oo.......ooooo..
+...........o2222232ocoo.....oob33b3o.
+...........o11111323oo.....ob333o323o
+..........o111112A233o....o3b33ooo33o
+.........o311111322oo....o33ccoo.o33T
+.........o22222232oboo..oc333oo..ooo.
+......oooo1111113223oooo3cb33o.......
+....oo333o1111113333cooo33oooooo.....
+..oo33333o211112333cc3b3333oo33oo....
+.oo333333o333333333333cc33o222333o...
+.o332222ooo22222233333coo21222233oo..
+.oc32111122ooooooooooo2211112o333co..
+obc321o1111111111111111111112bo33oo..
+oco33ob21111o11111o11111o1122bac33o..
+oo33cabo211oao111oao111obo22ocbc33o..
+o333cbco22obabo2obabo2obabc33oco33o..
+.o33oco333ocbco3ocbco3ocbco333o33o...
+.oo23o33333oco333oco333oco333322oo...
+..oo22223333o33333o33333o32222ooo....
+...ooooo222222222222222222ooooo......
+.......oooooooooooPooooooooo.........
diff --git a/parts_pl_src/body/pl_quetzal_c.txt b/parts_pl_src/body/pl_quetzal_c.txt
new file mode 100644
index 0000000..a11fb32
--- /dev/null
+++ b/parts_pl_src/body/pl_quetzal_c.txt
@@ -0,0 +1,48 @@
+# pl_quetzal_c: from pixellab_src/pl_quetzal_c/base.png (variant of pl_quetzal) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 42)
+# head_top at (28, 19)
+# back at (32, 39)
+# tail at (49, 44)
+..............o^..oo.................
+............oo3o.o3o..ooo............
+........oo.ooo1oo23ooo33o............
+........o3o2o31o11oo1223o............
+.....oo.o3o1o12o12o1112o.............
+.....o3o32o3o2o22o2112ooooo..........
+.....o23o33oooooo3223o32223o.........
+.....o23o3o2cc333o3o3211123o.........
+.....o333ocbab2223oo32113oo..........
+...oooo3o2babb22222ooooooooo.........
+...o33oo222b22122223o3211123o........
+....o33o1b32211oo223ooo212233o.......
+.....ooo2b21b1ocao333ooooo33oo.......
+....o3ow11bb1owowo333oo33oooo........
+...o33oo11111ooowo333oo3323o.........
+....ooo1111113cbobbb3oooo323o........
+....oo2311o11222bbac3o222oo3o........
+...o2oc222222222bbcco222112oo........
+..o322o32222222333co22222223o........
+..o2113oo33333333oo221122333o........
+..o223222oooooooo22B22112o33o........
+..o33211232222223212322123o3o.ooooo..
+..o23212321222123221332223ooooo3333o.
+..o3o222321222123A22333333oooo333333o
+..ooo22332123222333233o333oooooooo33o
+...oo323322233223o333o3ooo33oooo.o33T
+....oo33o223o3323oo33o333333ooo..ooo.
+.....oooo323oo333o3oo3322333oo.......
+....oo333o33o3o3o33333222333oooo.....
+..oo3o3233oo333oo2232222233oo33oo....
+.oo333o32233322223333222333o33333o...
+.o3322ooo333333333o332333oo323333oo..
+.oc321111oooooooooooooooo2212o333co..
+obc321o1111111111111111111112bo33oo..
+oco33ob21111o11111o11111o1122bac33o..
+oo33cabo211oao111oao111obo22ocbc33o..
+o333cbco22obabo2obabo2obabo33oco33o..
+.o33oco333ocbco3ocbco3ocbco333o33o...
+.oo23o33333oco333oco333oco333322oo...
+..oo22223333o33333o33333o32222ooo....
+...ooooo222222222222222222ooooo......
+.......oooooooooooPooooooooo.........
diff --git a/parts_pl_src/body/pl_quetzal_d.txt b/parts_pl_src/body/pl_quetzal_d.txt
new file mode 100644
index 0000000..86814e7
--- /dev/null
+++ b/parts_pl_src/body/pl_quetzal_d.txt
@@ -0,0 +1,59 @@
+# pl_quetzal_d: from pixellab_src/pl_quetzal_d/base.png (variant of pl_quetzal) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 35)
+# head_top at (28, 9)
+# back at (32, 39)
+# tail at (49, 44)
+................ooo....................
+...............^33o...ooo..............
+.............oo333o.oo33o..............
+.......ooo...o3223o.o333o..............
+.......o33o.o31112oo3223o...oooo.......
+.......o33o.o31112o31123o.oo333o.......
+.......o323oo31112311123oo22233o.......
+...ooo.o3223o32222311233311112oo.......
+...o33o33123oo222o333332111112o........
+...o323o3223oo33oo3333321111oooooo.....
+...o312o3333oooooooooo32222ooo2223oo...
+...o3123o3oo22bbb33333o3233211112333o..
+...oo223oo322aaaaa22223ooo3211112233o..
+....o333o222aaaaaaa222233o322222233oo..
+oooooo3o322aabaaaaa2222333oo322oooo....
+o3333oo33222aaaaaa222222233oooo3o3oo...
+oo333oo322222aaaa2222222223ooo321123o..
+.oooooo3212222bb222211222233ooo222223oo
+..oooo3321112222221111222233ooo3323333o
+..oooo3oo111222221112ooo22333oooooooooo
+.ooooo3ooo1111211111ooobo3333oo333oooo.
+ooo3oo3bwoo11111111owoobo3333oo322oo...
+oooooo3booo11111111oooobo3333ooo333oo..
+oooooo3wooo11111111oooowo3333o3ooo33o..
+....oo3wcoo11111111oooaw33333o333oooo..
+....oo33aa1111111112aaa33333oo333oooo..
+....oo2a1111o11o1111113aa233ooo22o.....
+....oo2a3111111111A1112bb23oooo22o.....
+....ooo2111111111111112222oo33o32o.....
+....o3oo2111111111112222oooo33oooo.....
+....ooooooo2222222222oooooooo3o........
+.........ooooooooooBo3oooooooo.........
+..........oo33333223333ooooo..ooooo....
+..........o3o32222233333o...ooo3333o...
+.........o2oo22222223o222o.oo3333333o..
+.........o2o222211132o3212oooooooo33o..
+........o12o2111111122o211oooooo.o33T..
+........o1oo2111111122oo11ooooo..ooo...
+......oooooo222222222booo1oooo.........
+....oo3333oo23111113223ooooooooo.......
+..oo3333oooo23322233223ooo33322oo......
+.oo3333oooooo33oooo3333ooo3222233o.....
+.o332222ooooo33ooooo333oo22222233oo....
+.oc3211112ooooooooooooo111112o233co....
+obc321o1111111111111111111112bo33oo....
+oco33ob21111o11111o11111o1122bac33o....
+oo33cabo211oao111oao111obo22ocbc33o....
+o333cbco22obabo2obabo2obabo33oco33o....
+.o33oco333ocbco3ocbco3ocbco333o33o.....
+.oo23o33333oco333oco333oco333322oo.....
+..oo22223333o33333o33333o32222ooo......
+...ooooo222222222222222222ooooo........
+.......ooooooooooooPoooooooo...........
diff --git a/parts_pl_src/body/pl_raccoon.txt b/parts_pl_src/body/pl_raccoon.txt
new file mode 100644
index 0000000..e3697e7
--- /dev/null
+++ b/parts_pl_src/body/pl_raccoon.txt
@@ -0,0 +1,43 @@
+# pl_raccoon: from pixellab_src/pl_raccoon/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 42)
+# head_top at (33, 26)
+# back at (36, 39) (from part/probe)
+# tail at (51, 51)
+..........oo.............oo..............
+..........o2oo.........oo22o.............
+.........o3323o.......^32222o............
+.........ooo323o......o23oo23o....ooo....
+.........ocoo233oooooo22ooco2o..ooaao....
+.........ocbooo222222o2obbco3o.obaabo....
+.........ocbo2222222223obbbc3ooboooo.....
+..........oo222222222223obbc3obo.........
+..........o2222o222222222obc3oo..oooooo..
+.........o322232o222222222o3oo..obbaaao..
+........oboo232o222222222223oocooooaao...
+........obaoo332222oooooo2oobbo....oo....
+........obbabo322ooaaaaabobooo.oooo......
+........obooaooooaabbbbabbo33oobobbo.....
+........obo1oaaaaaooooobbo3223o..oo......
+.......o3bo1obaabo1o12obbB22233o.........
+.......o3obobbaabooo1obbo222233o.........
+..oooo..o3obo1oobbboobbo322233o..........
+.o3322ooo33o1o113obbbAo222333oo....ooo...
+o33223aboo33o11112oooo22333ooo...oo333o..
+ob333aaooaoo3ooooo13333333oo....oc33333o.
+obb3bac33aaoo2111133333ooo.....obab32333o
+ob3bbbc3coo22oooooooooo233o...o32caa3233o
+.obbbboooo232o222222o22223o..oc3222baa33o
+..obboo22o33co11oooo2oo2233oocaa3222cab3o
+...ooo2ooo33o11o2222o2o2333oo2caac222cbbo
+.....ooo..ooo11o3o22c333o23o222baac233bbo
+...........o1111ooooccoo222o2222aaa333cbT
+...........o11111111oo32223o2c22cbbc33co.
+...........o211111111233333obb33cbbc33o..
+............o22111112o22233ob3333bbboo...
+...........o3o222222232223obb33c3coo.....
+...........o33oo2222o3o223oooooooo.......
+............oo33ooooo33c3co..............
+...........ooo223o...ooo33o..............
+...........oooooo....ooo22o..............
+.....................Poooo...............
diff --git a/parts_pl_src/body/pl_raccoon_b.txt b/parts_pl_src/body/pl_raccoon_b.txt
new file mode 100644
index 0000000..b3248cf
--- /dev/null
+++ b/parts_pl_src/body/pl_raccoon_b.txt
@@ -0,0 +1,48 @@
+# pl_raccoon_b: from pixellab_src/pl_raccoon_b/base.png (variant of pl_raccoon) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (33, 40)
+# head_top at (33, 23)
+# back at (36, 39)
+# tail at (51, 51)
+......oo..............oo................
+......o2oo..........oo22o...............
+.....o3323o........o3223o...............
+.....ooo323o.......o23o32o.....ooo......
+.....oboo223oooooo^23obo2o...ooaao......
+.....obcoo32222222o2ocbo2o..ocaaco......
+.....obco32222222222occb2o.ocoooo.......
+......oo2222222222223ocb2ooco...........
+......o22222o222222222ob3oco..oooooo....
+.....o3222232o2222222233ooo..occaaao....
+....ocoo2232o222222222233ocbooooaao.....
+....ocaoo23o2222oooooo2occoo....oo......
+....ocaaaoo222ooaaaaacocoo.ooooo........
+....ocaooaooooaaccccacco3oo.bccco.......
+...oocco1oaaaaaooooocco3223o..oo........
+..oyzoco1ocaaco1o12occoxo233o...........
+..oyyoccoccaacooo1occzyyyo33o...........
+.oyyy2occo1oocccoocczyyyyyo3o...........
+.ozyz222o11112occccoyyyyyzoo............
+..ozz3222111112oooozzyyyzzo.............
+...oooo22oooooo12223zBzzzo..............
+.....ooo3321112333A3oooooo........ooo...
+....oo33333333333333333333o.....oo222o..
+...o3o222222222233333333223o...obb2223o.
+...oo2211111111112332222222o..o32aa2223o
+..o2o21111111111111222322223ooob22aa223o
+.obo3111111111111112222o222acoab222aac3o
+.oco21111111111111112223o2aaco2ab222ac3o
+o2o321111111111111112222oaa223o2aa223cco
+o2o3211111111111111122223o2223o2aa223bco
+o3o3211111111111111122223o2222o22ab33bo.
+.oo3211111111111111122223o3223o2ccc33o..
+..o32111111111111112222233o33o333cccT...
+...o22111111111111122223333oo3333cco....
+....o2211111111111223222233oc3333oo.....
+....oo222111111122223222233oooooo.......
+....o3oo222222222223322223o.............
+....o333oo22222222oo322223o.............
+.....o3333oooooooo.o33333o..............
+.....o32233o........o3333o..............
+.....oooooo.........o2223o..............
+....................Poooo...............
diff --git a/parts_pl_src/body/pl_raccoon_c.txt b/parts_pl_src/body/pl_raccoon_c.txt
new file mode 100644
index 0000000..c6e3dc3
--- /dev/null
+++ b/parts_pl_src/body/pl_raccoon_c.txt
@@ -0,0 +1,64 @@
+# pl_raccoon_c: from pixellab_src/pl_raccoon_c/base.png (variant of pl_raccoon) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 35)
+# head_top at (33, 8)
+# back at (36, 39)
+# tail at (50, 51)
+........oo..........o..............
+.......o3o.........o2o.............
+......o33o........o22o.............
+......o23o.......o223o.............
+......o23o.......o233o.............
+.....o323o......^22o3o.............
+....oo323o......o2oo3o.............
+....obo23o.....o22ob33o............
+....obo23o.....o22ob33o............
+...o3bo23o....o22obb13o............
+...o3bo33o....o22obb13o............
+...o3bo32oooooo22obbb3o............
+...o3bo3222222o22oobb3o............
+...o3o33222222222oob33o............
+....o3322222222223ob23o............
+....o3222o222222223o23o............
+...o3222o2o2222222223o.............
+..ocao232o2222222222oo.............
+..ocaao322222ooooo2ooo.............
+..occcao222ooaaaaaco33o............
+..oco1aooooaacccacc323o............
+..oco1oaaaaaoo1obco2223o...........
+.o3ocooaaaaooo1oboo2223o...........
+.o33oco1oobccooco322233o...........
+..o33o1o113occco222233o............
+...o331o1112ooo223333o.............
+....o3oooooo1333333oo..............
+.....oo1111133333oocco.............
+.......ooooo33333oocco.............
+........o32222333oocaco............
+.......o3322222223ocaco............
+.......o33111122223ocaao...........
+......o3311111A2222ocaao...........
+......o231111122o222oaao...........
+.....o22o11111223o222oco...........
+.....o23o11111223o322occo..........
+....o22o1111112223oB22oco..........
+....o23o1111112223oo32oco..........
+...o22o111111122233oo22oo..........
+...o23o111111122233oo322o....ooo...
+..o223o1111111122333oo32o..oo333o..
+..o223o1111111122233oo322ooc32233o.
+..o23o11111111122233oo322o2aa32233o
+.o223o111111111222333oo22o21ca1233o
+.o223o111111111222233oo22o222caa33o
+oo23oo2211111112222333c322o222cac3o
+o2233o3211111111222333o322oc222ccco
+oo233oo31111111322233oo2223o2233cco
+oo2o3ooo3111113222233o3o223oc333cT.
+o33o3oo3o222223222223ooo23occc33o..
+oo3oo.o23oo222o222223oco23occcoo...
+.ooo..o2233oooo32223ocoo3occoo.....
+.......o233o..o32233oooooooo.......
+.......o333o...o3333o..............
+........o33o....o33o...............
+.......o323o....o22o...............
+......o3o33o...oo2oo...............
+......ooooo....ooPo................
diff --git a/parts_pl_src/body/pl_raccoon_d.txt b/parts_pl_src/body/pl_raccoon_d.txt
new file mode 100644
index 0000000..dc25458
--- /dev/null
+++ b/parts_pl_src/body/pl_raccoon_d.txt
@@ -0,0 +1,44 @@
+# pl_raccoon_d: from pixellab_src/pl_raccoon_d/base.png (variant of pl_raccoon) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 42)
+# head_top at (33, 26)
+# back at (36, 39)
+# tail at (51, 51)
+..........................oo..............
+...........oo............o22o.............
+..........o32oo.........o2222o............
+.........o3o323o.......^22oo23o...........
+.........o3oo323ooooooo22oooo2o...........
+.........o3ooo33222222o2occco3o...........
+.........o3co33222222222occco3o...........
+.........o3co222222222223occo3o...........
+..........oo22222222222222oco3o...........
+..........o2222222222222222o3oo...........
+.........o1122222221111222233o............
+........o211122222111111122233o...........
+........o222222222122221122222o...........
+.........oooo22223oooooo1122223o..........
+.........oo1o22223o1o1oo33222223o.........
+........o3o2ooooo3ooo1o332222223o.........
+1111....o33oo3311123332221B11233o.........
+....11111o21ooo1111211111222233o..........
+.........o21121111112222222333o...........
+.......111212222111122A23333oo.......oo...
+.....11..o222111222111o33ooo.......oo22o..
+....1....o1211112122211oo33o.....oo22223o.
+..11.....o221111111122311333o...o32222233o
+..........o2121112122o332333o...o22222233o
+...........o22111222o32223223o.o222222233o
+..........o3o221223o222223222o.o222222333o
+.........o223o222oo22223332223o3222222333o
+........o22233ooo1o32333o32223o2222223333o
+........o2223oo211o333oo332223o2222233333T
+........o233ooo2111ooo23222223o322333333o.
+........oo3o.o3o21111223222233o33333333o..
+.........oo..o33o22222o222223o3333333oo...
+.............o333oo222o222233oo3333oo.....
+..............o333ooooo33333o..oooo.......
+...............oo33o...o3333o.............
+..............oo333o....o222o.............
+..............ooooo....o3o22o.............
+.......................Poooo..............
diff --git a/parts_pl_src/body/pl_radio.txt b/parts_pl_src/body/pl_radio.txt
new file mode 100644
index 0000000..1aea7ed
--- /dev/null
+++ b/parts_pl_src/body/pl_radio.txt
@@ -0,0 +1,39 @@
+# pl_radio: from pixellab_src/pl_radio/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 45)
+# head_top at (31, 33) (from part/probe)
+# back at (30, 40) (from part/probe)
+# tail at (43, 52) (from part/probe)
+..........o1o.................
+..........oo1o................
+............o1oo..............
+.......ooo...o31o...ooo.......
+......ocabo....o1o.ocabo......
+.....ooooooooo^oooooooooo.....
+....o32111111111111111111o....
+...o3311oooo1111111ooo3111o...
+..o332ao2112o11111o21123b1o...
+..o332o311111o111o31111231o...
+..o332o3o1111o111o3o111231o...
+..o332o3oo112o111o3oo11231o...
+..o332o321123B111o32112331o...
+..o3321o3333o32223o3333o11oo..
+.obo3211oooo2111112oooo111obo.
+obao321111321ooooo21311111oabo
+obbo32o21321o212213o131111obao
+ocbo321o121o22A11213213111obbo
+occo321131o222132122o12111ocbo
+.oco321131o33133o212o12111occo
+..oo321131o311321o11o12111oco.
+..o3321131oo31322o12o12111oo..
+..o3321131o3321o3122o12111o...
+..o3321131o33o211222o13111o...
+..o33211232o33ooo33o122111T...
+..o332111232o33333o1131111o...
+..o332b311332ooooo113113a1o...
+...o3321121331111123111113o...
+...oo33a111113333311111a3oo...
+....oo333333333333333333oo....
+.....oooooooooooooooooooo.....
+......o33o..........o33o......
+.......oP............oo.......
diff --git a/parts_pl_src/body/pl_radio_b.txt b/parts_pl_src/body/pl_radio_b.txt
new file mode 100644
index 0000000..eb14f18
--- /dev/null
+++ b/parts_pl_src/body/pl_radio_b.txt
@@ -0,0 +1,63 @@
+# pl_radio_b: from pixellab_src/pl_radio_b/base.png (variant of pl_radio) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 35)
+# head_top at (31, 4)
+# back at (30, 40)
+# tail at (43, 52)
+.............o^oo.............
+............o2222o............
+...........o222222o...........
+..........o223o3322o..........
+.........o223oooo322o.........
+........o2233ooooo322o........
+.......o223oo2oo23o322o.......
+......o223ooo2332ooo222o......
+......o222oooo22oooo322o......
+.....o22322ooo22ooo32322o.....
+.....o223o23oo223o32o332o.....
+.....o233oo2o2oo2o22o332o.....
+....o223o.o222oo222ooo322o....
+....o223o.o222oo222o.o322o....
+...oo22oo..o2o..o2o..oo222o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o...o2o..o2o...o322o...
+...oo23o..o1oo..o2o...o322o...
+...oo23o..oo1o..o2o...o322o...
+...oo23o...o23..o2o...o322o...
+...ooo3ooo.o2o..o2o.ooo322o...
+...oooocaboo2o..o2oocabo22o...
+...oooooooooooooooooooooo2o...
+...oo32111111111111111112oo...
+...o3312oooo22A2222oooo212o...
+..o332ao2112o22222o21123b1o...
+..o332o311112o222o31111232o...
+..o332o3o1112o222o3o111232o...
+..o332o3oo112o222o3oo11232o...
+..o332o321123B222o32112332o...
+..o3322o3333o32223o3333o22oo..
+.oao3222oooo2111112oooo222oao.
+obao322222321ooooo21322222oaao
+obao32o32321ocaaacoo132222oaao
+ocao322o221o3111112o213222oaao
+occo322231occaaaaacco12222ocao
+.oco322231ocaaaccaaco12222occo
+..oo322231o311222311o12222oco.
+..o3322231ocaacbacaao12222oo..
+..o3322231occaacccaco12222o...
+..o3322231o333111113o13222o...
+..o33221232occbaaaao122222T...
+..o332222232occccco1132222o...
+..o332b322332ooooo113223a2o...
+...o3322232331111123222223o...
+...oo33a222223333322222a3oo...
+....oo333333333333333333oo....
+.....oooooooooooooooooooo.....
+......o33o..........o33o......
+.......oP............oo.......
diff --git a/parts_pl_src/body/pl_radio_d.txt b/parts_pl_src/body/pl_radio_d.txt
new file mode 100644
index 0000000..f1b83db
--- /dev/null
+++ b/parts_pl_src/body/pl_radio_d.txt
@@ -0,0 +1,64 @@
+# pl_radio_d: from pixellab_src/pl_radio_d/base.png (variant of pl_radio) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 37)
+# head_top at (31, 3)
+# back at (30, 40)
+# tail at (43, 52)
+.............o^oo.............
+...........oo2111oo...........
+..........o32222211o..........
+.........o3222oo3221o.........
+........o3222o..o3321o........
+.......o322oo....oo321o.......
+......o322o........o321o......
+.....o322o..........o321o.....
+.....o32o............o31o.....
+....o322o............o31o.....
+....o32o..............o31o....
+....o32o..............o32o....
+...o322o..............o322o...
+...o32o................o32o...
+...o32o................o32o...
+...o32o................o32o...
+...o32o................o32o...
+...o32o................o32o...
+...o32o................o32o...
+...o32o................o32o...
+...o32o...........o1o..o32o...
+...o32o..........o1o...o32o...
+...o32o........oo1o....o32o...
+...o32o.......o11o.....o32o...
+...o32oooo...o1oo...oooo32o...
+...o32ocbbo.o1o....ocbbo32o...
+...o32oooooooooooooooooo32o...
+...o3321111111111111111122o...
+...o3312222222222222222212o...
+...o32a2oooo2222222ooo32a1o...
+...o322o2112o22222o2112o22o...
+...o32o311112o222o311112o2o...
+...o32o3o1112o222o3o1112o2o...
+...o32o3oo112o222o3oo112o2o...
+...o32o321123o2A2o321123o2o...
+...o322o3333o22222o3333o22oo..
+..oo3222oooo2222222oooo222obo.
+.obo322222222B222222222222oabo
+obao32222223211111132222o2obao
+obbo32o222321ooooo21322o22obbo
+ocbo322o2321o212213o132222ocbo
+occo3222221o22211113213222occo
+.oco322231o222132122o12222oco.
+..oo322231o33133o212o12222oo..
+...o322231o311321o11o12222o...
+...o322231oo11322o12o12222o...
+...o322231o331333o12o12222o...
+...o322231o3321o3122o12222o...
+...o322231o33o111222o13222o...
+...o3222232o33ooo33o122222T...
+...o32222232o33333o1132222o...
+...o32b322332ooooo113223a2o...
+...o3322222331111123222223o...
+...oo33a222223333322222a3oo...
+....oo333333333333333333oo....
+.....oooooooooooooooooooo.....
+......o33o..........o33o......
+.......oP............oo.......
diff --git a/parts_pl_src/body/pl_ram.txt b/parts_pl_src/body/pl_ram.txt
new file mode 100644
index 0000000..d368a02
--- /dev/null
+++ b/parts_pl_src/body/pl_ram.txt
@@ -0,0 +1,46 @@
+# pl_ram: from pixellab_src/pl_ram/base.png (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (31, 41)
+# head_top at (31, 21)
+# back at (33, 31) (from part/probe)
+# tail at (45, 51) (from part/probe)
+.................oo^ooo.................
+................o211223o................
+............oooo21111223oooo............
+...........o2123211122233222o...........
+.........o3111223222223331222oo.........
+........o321111123222331222223o.........
+........o322221112333322123223o.........
+.......o323231112321223222233333o.......
+......o11123332232111223223332223o......
+.....o2112311233211122223322222233o.....
+.....o222221112321122B233112232223o.....
+...ooo3223211123322222233112223233ooo...
+..oaaao33322222333223233322222333oaaao..
+.oaaaaao23322233o333333o33223333oaaaaao.
+obacaabbo233333o3oooooo3o333333obbaacabo
+obbbobaabo3ooo333333333333ooo3obaabobbbo
+oboooobabo33oo222222222222oo33obaboooobo
+ooccooobao33o3oo21222212oo3o33oaboooccoo
+ocooooobao3o31wwooo33oooww13o3oaboooooco
+.occooooao3o31woo333333wow13o3oaoooocco.
+.ocaobobo33o33131o2A22o13132o33oboboaco.
+..occbbco33o3233322222233322o32ocbboco..
+...oooo332233a2222o22o2222a332233oooo...
+....o3321123o32222222222222o3222333o....
+.....o332223oo333oooooo333oo332333o.....
+......o3333322o3o222222o3o2233333o......
+......o33333222o33233322o21223333o......
+.......ooo33322332223223322333ooo.......
+........ooo333333222322323333ooo........
+.......o2aooo33333333333333oooa3o.......
+......o2aa33ooooo333333ooooo33aa2T......
+......o22233oooooooooooooooo33222o......
+.....o22223oooooo......oooooo32222o.....
+....o222223oooooo......oooooo322223o....
+....o222223oooooo......oooooo322223o....
+....o332223obcco........occbo322233o....
+....oac3333ooooo........ooooo3333cao....
+...oacoabbco................ocbbaocao...
+...oooabbooo................ooobbaooo...
+.....oooP......................oooo.....
diff --git a/parts_pl_src/body/pl_ram_b.txt b/parts_pl_src/body/pl_ram_b.txt
new file mode 100644
index 0000000..6c22f1a
--- /dev/null
+++ b/parts_pl_src/body/pl_ram_b.txt
@@ -0,0 +1,48 @@
+# pl_ram_b: from pixellab_src/pl_ram_b/base.png (variant of pl_ram) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 41)
+# head_top at (31, 19)
+# back at (33, 31)
+# tail at (52, 51)
+...................ooo^oooo...................
+..................o11111111o..................
+...............ooo1111111111oo................
+..............o11o3111111311ooooo.............
+.............o1111o311111113o3111o............
+............o111111o33333333o31112o...........
+...........oo1111111ooooooooo331111o..........
+..........o1o3111111o11111111o331111o.........
+.........o111o31111o1111111111o311111o........
+.........3311o33113o1311111131o3311111o.......
+........o333oooo33o113311111111o331121o.......
+.......o1o311111ooo311111111111oo33113o.......
+......o111o1111113o31111B131111oooo33o3o......
+......o11o11111133oo3333333333oo331oo333o.....
+.....o111o111111oo3oooooooooooo313111o33o.....
+.....o21o1111113o333333333333oo313111o33o.....
+.....oo3o111111oo222222222223oo3111111333o....
+....o13oo13131o33oo21222212oo3oo31111133o3o...
+...o1113o33111o21aaooo22oooaa12o331111ooo1o...
+...o31113o3333o21aoo322223aoa12oo31113o1111o..
+...ooo113oooooo23131o2222o13132oo3333oo1111o..
+..o111oo311133o3233322222233323ooooo33o33ooo..
+..o11113o11111oob222oo2Aooo22bo2o33333ooo311o.
+..o11133o13111o2o22o2222222o22o2o33333o31111o.
+.o113133o31111o22oo21oooo222oo32o33333o31113oo
+.o11313ooo1111o22o22o2111o33o3322o33ooo331111o
+.o31133oo1oo3o22222o333333o333332ooo3ooo32131o
+obb333coo111oo2322223322333333332o333oobo3111o
+obbbbbbboo111o332222322223233333o333oocbb333oo
+obbbbccbooo333o3222222222223332o3333oobccbccbo
+obbbbcoco.ooo33o222222222222332o33oo.ococbbbbo
+.ocbbcoo..o3o333o2322323222332o3oo3o..oocbbbo.
+..occco..o333oooo233232223233ooo3333o..occcT..
+...ooo...o11333ooo3323232333ooo33311o...ooo...
+........oo3113ooooo3332333oooooo31111o........
+.......o11o313ooooooo3333ooooooo311o13o.......
+.......o311ooooooooo.o33o.oooooooo3111o.......
+.......o331233obcco...ooo..occbo322333o.......
+.......obc3333ooooo........ooooo3333cbo.......
+......obcobccco................occcbocbo......
+......ooobccooo................oooccbooo......
+........oooP......................oooo........
diff --git a/parts_pl_src/body/pl_ram_c.txt b/parts_pl_src/body/pl_ram_c.txt
new file mode 100644
index 0000000..227af58
--- /dev/null
+++ b/parts_pl_src/body/pl_ram_c.txt
@@ -0,0 +1,51 @@
+# pl_ram_c: from pixellab_src/pl_ram_c/base.png (variant of pl_ram) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 38)
+# head_top at (31, 16)
+# back at (33, 31)
+# tail at (46, 51)
+....................o^ooo...................
+..................oo11123o..................
+.............ooooo21111223ooooo.............
+............o211232111122232211o............
+...........o21112221112222321112ooo.........
+........oooo21122122222223322122333oo.......
+.......o11132222111222223122222233333o......
+......o2111133211122333322122223333333o.....
+......o2111223311133212232222333222333o.....
+....oo32222231133332111223222333221233oo....
+...o112322231112332111222222333222122333o...
+..o21122322211112321122223332222222223322o..
+..o211223332111123222222233112223222233323o.
+..o222233332222223322222233122223223333333o.
+..o222231123222233332232333222223333323333o.
+..o322311122333333o3333B3o3322333333222333o.
+..o33331112223333o3oooooo3o33333322232223oo.
+.o111332222223ooo33333333333ooo32111322333o.
+o2111233222223oo3222222222233o3321111333333o
+o2112233322233oo22222222222333o321111233233o
+o212223113333o22oo21222212oo33o322112233333o
+o322232112333o21aaooo22oooaa13o332222233333o
+.o33332122233o21aoo322A33aoa13oo3322232333o.
+..o3332222233o23131o2222o13132oo3333322333o.
+.oo1133223333o22333222222333233333332211333o
+.o21112333112o2b2222o22o2222b3o322332222333o
+.o21122232112oo222222222222223o222233223333o
+.o232223321222oo333oooooo333oo2212233333333o
+.o33223332222333o3o222222o3o33212223223333o.
+..o33332233332222o33333333oo3322223222333oo.
+...o3332223321122332222233333332233222333o..
+...o3332233221222321222232222333322222333o..
+...oo333333322222322222232222233322223333o..
+....ooo333333222333222233222223333333333o...
+......ooo3333333333333333322233333333ooo....
+........oo3333oo33333333333333o3333oT.......
+........o3oooooo333333o333333ooooooo........
+.......o3333ooooo3333ooo3333ooo33333o.......
+......o322333oooooooo...ooooooo333223o......
+......o322223oooooo......oooooo222223o......
+......o332223occco........occco322233o......
+......obc3333ooooo........ooooo3333cbo......
+.....obcobccco................occcbocbo.....
+.....ooobccooo................oooccbooo.....
+.......oooP......................oooo.......
diff --git a/parts_pl_src/body/pl_ram_d.txt b/parts_pl_src/body/pl_ram_d.txt
new file mode 100644
index 0000000..7ebbf85
--- /dev/null
+++ b/parts_pl_src/body/pl_ram_d.txt
@@ -0,0 +1,50 @@
+# pl_ram_d: from pixellab_src/pl_ram_d/base.png (variant of pl_ram) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 39)
+# head_top at (31, 18)
+# back at (33, 31)
+# tail at (45, 51)
+....................3o..................
+...................^12o.................
+............oo....o1123o................
+...........oabo..311122o..ooo...........
+...........oaaco.311122o.obao...........
+...........obacco312223oobabo...........
+...........obbcco312223ooacco...........
+.........ooocbbco3122233oacco.oo........
+.....oooooacobbc333222333bccooabo.......
+.....oabbocc333211233322223coaabo.......
+.....obabbc311222112222222123accoooo....
+.....occbb31111322212222111223coaaco....
+......occa311112322222221122233aacco....
+.......oc23211223222222211222323cco.....
+......o32223222322222B2232223222coo.....
+...ooo3211223332222222222333322233ooo...
+..obbbo22222222222222222222222223obbbo..
+.obbaaao22222222o222222o22222223oaaabbo.
+ocbcbacco222222o3oooooo3o222222occabcbco
+occcocaaco22223333333333332222ocaacoccco
+ocoooocaco222o222222222222oo22ocacooooco
+ooccooocao22o3oo21222212oo3o22oacoooccoo
+ocooooocbo2o31wwooo3Aoooww13o2obcoooooco
+.occoooobo2o31woo333333wow13o2oboooocco.
+.ocbococo22o33131o2222o13132o22ococobco.
+..occccco22o3233322222233322o22occcoco..
+...oooo322223a2222o22o2222a322223oooo...
+.....o332222o32222222222222o2222333o....
+....o2133322oo333oooooo333oo2223312o....
+....o233113222o3o222222o3o2222333322o...
+....ooo31233222233333333222223311332o...
+.......o33311222222222222231233211oo....
+.......oooo21333222222233331133o33o.....
+......oo33o33o1233333333123o2o33ooo.....
+......o223oooo13o333333o22ooo3333T......
+......o22233oooooooooooooooo33222o......
+.....o22223oooooo......oooooo32222o.....
+....o222223oooooo......oooooo322223o....
+....o222223oooooo......oooooo322223o....
+....o332223occco........occbo322233o....
+....obc3333ooooo........ooooo3333cbo....
+...obcobccco................occcbocbo...
+...ooobccooo................oooccbooo...
+.....oooP......................oooo.....
diff --git a/parts_pl_src/body/pl_redpanda.txt b/parts_pl_src/body/pl_redpanda.txt
new file mode 100644
index 0000000..ee2b16d
--- /dev/null
+++ b/parts_pl_src/body/pl_redpanda.txt
@@ -0,0 +1,47 @@
+# pl_redpanda: from pixellab_src/pl_redpanda/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 38)
+# head_top at (33, 28) (from part/probe)
+# back at (33, 43) (from part/probe)
+# tail at (42, 52) (from part/probe)
+...ooooo..........................ooooo...
+oooaaaa1oooo..................oooo11aaaooo
+oaacccc11111oo..............oo11111ccccaao
+.oacccccca1111o............o11111ccccccao.
+.ooaccccccc1111o....ooo...o1111cccccccaoo.
+..oaccbbbccca111o..o22oo.o1111cccbbbccao..
+..oaccbbbbccca11aoo2222ooo11acccbbbbccao..
+..oaacbbbbcccc11aoo22222oo11ccccbbbbcaao..
+...ooabbbcaaacaaaoo222^2ocaccaaacbbbcoo...
+....oacbcccaaaca22o22222o22caaacccbcao....
+....oaaccaaaaac2211322221122aaaaacccao....
+....oaaaccaaa22211113221111122aacbcaao....
+.....ooaccaaa21111111111111112aaaccao.....
+......oaaccc2211111111111111122cccaao.....
+......oaaacc2111111111111111112ccaaao.....
+.......oaaa221111111111111111122aaao......
+........ooo2111oooo11111oooo1112ooo.......
+.........oo211ooooo11111ooooo112oo........
+........222111obo1o1A111o1obo111222.......
+........o22111oa2o1111111o2ao11122o.......
+.........o22112ca211222112ac21122o........
+..........o2211bb111121111bb1122o.........
+...........o222bb11ooooo11bb122o..........
+...........oo222b11111B111b222oo..........
+...........ooo222111111111222ooo..........
+..........o3boooooo11111oooooob3o.........
+.........ob3b3o3322ooooo2233o3b3bo........
+.........obb3bo3222222222233ob3bbo........
+.........obb33c3222222222223333bbo........
+........oo33333322222222222333333o........
+.......o22ooc33222222222222333coo.........
+......o2222oooo222222222222ooooo3.........
+......o222o112o222222222222o221T3.........
+......o222o112o222222222222o2211o.........
+......o2222o12o222222222222o211o..........
+......o2222o21o322222222222o212o..........
+.......o222oooo3o22222222o3oooo...........
+........ooooo.o33o222222o33o..............
+..............o3333ooooo333o..............
+...............3cc3o...o3cc3..............
+...............oooP.....oooo..............
diff --git a/parts_pl_src/body/pl_redpanda_b.txt b/parts_pl_src/body/pl_redpanda_b.txt
new file mode 100644
index 0000000..e449b37
--- /dev/null
+++ b/parts_pl_src/body/pl_redpanda_b.txt
@@ -0,0 +1,52 @@
+# pl_redpanda_b: from pixellab_src/pl_redpanda_b/base.png (variant of pl_redpanda) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 37)
+# head_top at (33, 18)
+# back at (33, 43)
+# tail at (49, 52)
+...ooooo..........................ooooo...
+oooaaaa1oooo..................oooo11aaaooo
+oaacccc11111oo..............oo11111ccccaao
+.oacccccca1111o.......^oo..o11111ccccccao.
+.oobccccccc1111o....oo333.o1111cccccccboo.
+..obcccccccca111o..o33333o1111ccccccccbo..
+..obccccccccca11a.o33333oo111cccccccccbo..
+..obbccccccccc11ao333333oo11cccccccccbbo..
+...oobccccaabcbaao33333333accbaacccccoo...
+....obcccccaabca33333333233cbaacccccbo....
+....obbccaaaaac3222333322223baaaacccbo....
+....obbbccbaa33222223322222233aacccbbo....
+.....oobccaab32222222222222223bbbccbo.....
+......obbccc3322211222221122223cccbbo.....
+......obbbc33222211222221122223ccbbbo.....
+.......obbb332222222222222222233bbbo......
+........ooo3322oooo22222oooo2223ooo.......
+.........oo332ooooo21122ooooo223oo........
+........o311a2oco1o11111o1oco2a113o.......
+.......oa11111aa3o2111112o3aa11111ao......
+.......o1111111aa311333113ba1111111o......
+......o111111111a111131111a111111111o.....
+......oaa111111aa11oAooo11a1111111aao.....
+......ob11a11111a111111111a11111a11ao.....
+.......oaa11111aa111111111aa11111aaao.....
+.......obaa1a1aa3331111133aaa1a1aaao......
+.......o3baaaaaa33333333333aaaaaaa3o......
+......o333aaaaa3333333333333ba3aa333o.....
+....oo2223333333322333B32233333333223oo...
+...occ2223333332222222222222333233222cco..
+...ocbc233322222222222222222222233222cco..
+...occbc333222222222222222222222333ccbco..
+..ooocccc3221222222222222222222223cccco...
+..oo2occc3322222222222222222212223ccc32o..
+.o3o2233o3332222222222222222212233o3322o..
+.o3o2212o3332222222222222221222333o2122o..
+.o3o223oo3333321222222222222223333oo322o..
+.o33o333o333332222222222222233333oo332T...
+.oo3oooooo3333332223222222233333oo.ooo....
+..o3333ooo3o3333333333333333333ooo........
+...oooooooo3o33333333333333333o3o.........
+.....oooooo33ooooo3333333ooooo33o.........
+...........o333333oooooooo33333o..........
+...........o32233o.......o33223o..........
+...........o21113o.......o31112o..........
+............ooooP.........ooooo...........
diff --git a/parts_pl_src/body/pl_redpanda_c.txt b/parts_pl_src/body/pl_redpanda_c.txt
new file mode 100644
index 0000000..4ee6b33
--- /dev/null
+++ b/parts_pl_src/body/pl_redpanda_c.txt
@@ -0,0 +1,43 @@
+# pl_redpanda_c: from pixellab_src/pl_redpanda_c/base.png (variant of pl_redpanda) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 41)
+# head_top at (33, 25)
+# back at (33, 43)
+# tail at (42, 52)
+....ooo.................ooo....
+...o111o.....ooo^o.....o111o...
+..o11111o..oo11111oo..o11111o..
+.o113b111oocc11111ccoo111bb11o.
+o11aabc1131cc11111cc1311cbaa11o
+o1aaabc3111cc11111cc1113cbaaa1o
+o1aaacc3111cc1111ccc1113ccaaa1o
+o31aacc11111c11111c11111ccba13o
+.o3bbc3111cc1c111c1cc1113cbb3o.
+..o333111113ca111ac311111333o..
+...oo311ooooo11111ooooo113oo...
+....o311oco1o11111o1oco113o....
+....o311obooo11111ooobo113o....
+....o3111cbb3111113bbc1113o....
+....o33aa1111111111111aa33o....
+....o33aaa11113331111aaa33o....
+.....o33111111ooo11111133o.....
+......o3331131Ao11311333o......
+.......oo33131ooo13133oo.......
+.........oo31o11Bo13oo.........
+.........o3331111133o..........
+........o333333333333o.........
+........o2223333333222o........
+.......o22222333332222o........
+......o2232222333222322o.......
+..oooo322322222222223322o......
+.o222o22o322222222222o22o......
+o3222o12o322222222222o31o......
+o3222o13o322222222222o311T.....
+o3222o12o322222222223o311o.....
+o3322o12o332222222233oo11o.....
+o3333oo2o333222222333oo1oo.....
+.o3333ooo333333333333ooo.......
+..ooooo.oo333ooooo332o.........
+.........o223o...o322o.........
+.........occ3o...o3co..........
+.........oooP.....ooo..........
diff --git a/parts_pl_src/body/pl_redpanda_d.txt b/parts_pl_src/body/pl_redpanda_d.txt
new file mode 100644
index 0000000..a0c5d00
--- /dev/null
+++ b/parts_pl_src/body/pl_redpanda_d.txt
@@ -0,0 +1,47 @@
+# pl_redpanda_d: from pixellab_src/pl_redpanda_d/base.png (variant of pl_redpanda) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 38)
+# head_top at (33, 24)
+# back at (33, 43)
+# tail at (45, 52)
+...ooooo..........................ooooo...
+oooaaaa1oooo..................oooo11aaaooo
+oaacccc11111oo..............oo11111ccccaao
+.oacccccca1111o............o11111ccccccao.
+.ooaccccccc1111o....oo^...o1111cccccccaoo.
+..oaccbbbccca111o..o32oooo1111cccbbbccao..
+..oaccbbbbccca11ooo322o222o1acccbbbbccao..
+..oaacbbbbcccc11o223222233ooocccbbbbcaao..
+...ooabbbcaabooo322222222222ooaacbbbcoo...
+....oacbccco222222222222222222ooccbcao....
+....oaaccaaoo3322222222222222222occcao....
+....oaaaccaoo22223222222232222oooccaao....
+.....ooacco222223323222323322222occao.....
+......oaao2222333233222o331322232oaao.....
+......oao22222331113323o11113222ooaao.....
+.......oao32233111111oo1111113222oao......
+........o3222311111111111111132222o.......
+........o22221ooooo11111ooooo13222o.......
+.......o223231oa33o1A111o33ao132322o......
+.......o332231oaaao11111oaaao132233o......
+........o322311ooo1133211ooo113223o.......
+........o322321bb111131111bb133223o.......
+........o322233bb111ooo111bb332223o.......
+........o3322333b11o11Bo11b3332233o.......
+........oo32223321111111112332233oo.......
+.........o32222233311111333322223o........
+.........o22222233333333333222222o........
+........o2223222223333333222222222o.......
+........o3332232222233322222322232o.......
+........o332223222222222222232233o........
+.......oo332233222222222322233233o........
+......ooo3333o323223222232223o3333o.......
+......o3o333oo323323222332323oo3ooT.......
+......o3o3ooao333333322333333oo3o.........
+......o3oo3o1o333o3333333o333oaoo.........
+......o3333o3o33o3o33333o3o33o3oo.........
+.......o3333oooo333ooooo333oooo...........
+........ooooo.obbbbo...obbbbo.............
+..............o3333o...o3333o.............
+...............3113o...o3113..............
+...............oooP.....oooo..............
diff --git a/parts_pl_src/body/pl_rhinobug.txt b/parts_pl_src/body/pl_rhinobug.txt
new file mode 100644
index 0000000..626375e
--- /dev/null
+++ b/parts_pl_src/body/pl_rhinobug.txt
@@ -0,0 +1,48 @@
+# pl_rhinobug: from pixellab_src/pl_rhinobug/base.png (pixellab_library.py extract)
+# pivot at (41, 60)
+# aura at (34, 39)
+# head_top at (35, 22) (from part/probe)
+# back at (43, 27) (from part/probe)
+# tail at (47, 47) (from part/probe)
+..................oooooooooo............
+................oo333oo33333oo..........
+...............o31113211111233oo........
+.............oo11113211^11113333o.......
+............o31111331111111113333o......
+...........oo111113111111111113333o.....
+...........o31111331111111111133333o....
+..........o311111321111111111333333o....
+....oo....o31111332111111111133B3ooo....
+..o311o..o3331113311111111113333o113o...
+.o31131o.o33o333333311111133333o13113o..
+oc3231oo.o331ooooooo33333333333oo2323ao.
+oaaooo2o.oo31o222223oo333333333o2oooaaco
+ocaccoo..o2312o1112223oo33333333ooccacco
+ooocco..o313122o1112223o333333311occcooo
+o32ooo.o311323o111112223o33333123oooo33o
+o3213ooo3211331111222222oo33313oooo3133o
+o321331ooo11111113ooo2223o33oo3oooo3133o
+.oc321oo1o111111o11ooo223oooooo2112323co
+.oc332oooo211112o1oobo223ooo3o3111223cco
+..oo33oooc211112oooocoA23oo3233222233oo.
+....oooo1c222222ooo113233oo32333333ooo..
+.......oo31111123bcco2233o333c3ooooooo..
+.......oc321112223bo2ac3oo333ccooooo3o..
+........oo322223o322cc33o3o333oooooo3o..
+........oo1oooo1oo3333oo333oooooo333oo..
+........o133222332ooooo333333oooo333o...
+.......o33o3333o12oo33333333333oo33oo...
+.......o1o.oooo23o33333333oo333oo3oT....
+........oo..oo13o33333323o33o33oooo.....
+...........o3oo3322222223o333o3oo33o....
+..........o223oo21111112oo3223ooo322o...
+.........o123oooo33333333oo222oooo321o..
+.........o333o...o21111133oo211ooo333o..
+..........o3ooo...o22222333oo22oooo3o...
+..........oo33oo...oooooooooo3ooo33oo...
+.........oooo333o..........oo33o33oooo..
+........o1123333o.........oooooo333311o.
+.......o2222333oo.........oo3322o333223o
+.......oooooooo...........oo32112ooooooo
+............................o2222o......
+.............................Pooo.......
diff --git a/parts_pl_src/body/pl_rhinobug_b.txt b/parts_pl_src/body/pl_rhinobug_b.txt
new file mode 100644
index 0000000..dfde02e
--- /dev/null
+++ b/parts_pl_src/body/pl_rhinobug_b.txt
@@ -0,0 +1,53 @@
+# pl_rhinobug_b: from pixellab_src/pl_rhinobug_b/base.png (variant of pl_rhinobug) (pixellab_library.py extract)
+# pivot at (41, 60)
+# aura at (34, 37)
+# head_top at (35, 14)
+# back at (43, 27)
+# tail at (54, 47)
+...................ooooo^oooo...............
+.................oo22bcaaccccoo.............
+...............oo111baabc111222oo...........
+..............o1111abaab111112223o..........
+.............o11111baab11111112222o.........
+............o11111abaa1111111112223o........
+...........o21111aaaa111111111122223o.......
+..........o211111abbb111111111222222o.......
+..........o2211ooccbb1111111112222223o......
+....oo...o322oo22ccooooo111112222222ooo.....
+..o311o..o32o1122oo11112o1112222222o112o....
+.o31131o.o3o1112232111122o22222222o12112o...
+oc3121oo.oo211122211122222o2222222oo1113bo..
+ocaooo2o.oooo11111113oo222o22222B1o2ooobaco.
+ocaccoo..o3o1o11111o1ooo222o2222111ooccacco.
+ooocco...o3ooo11112ooooo222o22211oooocccooo.
+o31ooo...o3bob22222ooo13222o2212oooooooo33o.
+o3112oooooaoo1111123cbo2222ooooooooooo2123o.
+o311231oooc3o2111222oo2ac23ooo22oooooo2123o.
+.oc3211o1ooo21oooo1o222c22oo212oo31122322co.
+.oc332o112o3222222213oooooo112oo32111223cco.
+..oo33o111coo3222232ooo1111112o332112233oo..
+....oo1111bboooooooo2bb1111112o33222333oo...
+.....o111aab111111111aaA111113o33c3333o33o..
+.....o111aa111111111aa11111123o33ccooo333co.
+.....o311ba111111111ab11111223oo3333oo3223co
+.....o331cb111111111ac1111223o3oooooooo1133o
+......o33cb211111111cc111233oo3333ooo3o1113o
+......ooocc311111111cc3333oo3333333333o1113o
+......o33oo333333333cc33oo3333233333oooaaboo
+......o323oooooooooooooooo222223333o21ooabco
+......o322bb3333333333bb22222223333o2121oaco
+.......o32bb1111111111ab22222223333o2oo13oco
+.......o322ba111111111ab222222333333oo1113cT
+........o32cc111111112bc222223333333o21123o.
+.........o22cc22211222cc2222233333oooo32oo..
+..........o22c22222222ccc222o22o3oo21ooo....
+...........oocc22222222cc22oo21oooo211o.....
+...........oooccc222222ccc3oo211ooo222o.....
+...........o2oooo2222222cccooo22oooo3o......
+...........oo33oooooooooooo.oo2ooo33oo......
+..........oooo333o..........oo33o33oooo.....
+.........o1122223o.........oooooo322211o....
+........o2222222oo.........oo2222o222223o...
+........oooooooo...........oo32112ooooooo...
+.............................o2222o.........
+..............................Pooo..........
diff --git a/parts_pl_src/body/pl_rhinobug_c.txt b/parts_pl_src/body/pl_rhinobug_c.txt
new file mode 100644
index 0000000..2f86b03
--- /dev/null
+++ b/parts_pl_src/body/pl_rhinobug_c.txt
@@ -0,0 +1,57 @@
+# pl_rhinobug_c: from pixellab_src/pl_rhinobug_c/base.png (variant of pl_rhinobug) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (33, 34)
+# head_top at (35, 10)
+# back at (43, 27)
+# tail at (52, 47)
+..................ooooo^oooo.............
+................oo222oo22222oo...........
+...............o21113211111222oo.........
+.............oo11113211111112223o........
+............o21111331111111112223o.......
+...........oo111113111111111112223o......
+...........o2111133111111111112222o......
+..........o211111321111111111222223o.....
+..........o211113321111111111222222o.....
+.........o3221113311111111112222233o.....
+.........o332o223322211111222222233o.....
+.........o3331oooooooo2222222222233o.....
+.........o3o31o2222222oo22222222233o.....
+.........oo2311o11122223o2222222233o.....
+.........o213112o1112222o2222222233o.....
+........o2113133111112222o222222333o.....
+........oo2113311112222223o22222333o.....
+.......oooo11111113ooo2223o2223B333o.....
+.......oo1o111111o11ooo222o33333333o.....
+.......oooo211112o1oooo222o33333333o.....
+.......ooob211112oooobo222o33oooo3o......
+.......oo1b222222ooo113222o3o3caaoo......
+.......ooo31111123cbboa22oooo3caaao......
+......ococ32111222222cc22ooo22caaaco.....
+......oacoo2222233332A2oo23o222cccco.....
+......oacoo1oooo132oooo2223o322cccco.....
+......ocoo233222322o33222233o3321123o....
+......o3o12o333311o2222222333oo32211o....
+.....o113oooooo12o32222122333ooo32112o...
+.....o1133ooo11oo232111123333o.o332223o..
+...o32333oo.o22333333222333ooo..o332223o.
+..oc1133o....oo322111333333oo....o3313ao.
+..o11233o.....o31111113333oo.....o3211ao.
+.o31123o......o33333333333o.......o31123o
+.o3123o.......o31111112333o.......o31113o
+.oaacco.......o31111111333oo......o31113o
+ocaacco.......o322222223333o......ocaaa3o
+occ111o.......o331111123223o......ocaaacT
+oc11122o.....o3233222233222o.....o1111aco
+o2113o2o.....o22oo32233o222o....o122111co
+o2113ooo....o1233ooooooo3212o...o23o1111o
+.o323oo....o212oo.......o211o....ooo112oo
+.o3o33o....o223o.........o212o.....o13oo.
+..oooo.....o333o.........o323o....o33oo..
+............o333o........o333o....ooo....
+............oo33o........o333o...........
+...........oo3333o.......o333o...........
+..........o112233o.......o3222o..........
+.........o222233oo.......o32112o.........
+.........oooooooo.........o2222o.........
+...........................Pooo..........
diff --git a/parts_pl_src/body/pl_roadrunner.txt b/parts_pl_src/body/pl_roadrunner.txt
new file mode 100644
index 0000000..e36cbfa
--- /dev/null
+++ b/parts_pl_src/body/pl_roadrunner.txt
@@ -0,0 +1,48 @@
+# pl_roadrunner: from pixellab_src/pl_roadrunner/base.png (pixellab_library.py extract)
+# pivot at (17, 60)
+# aura at (32, 38)
+# head_top at (23, 25) (from part/probe)
+# back at (41, 29) (from part/probe)
+# tail at (51, 52)
+...........oo......................ooo...
+..........o3o..ooo................o22o...
+......oo.o2o..o33o...............o222o...
+......oo.o2o.o33o...oo..........o2222o...
+.....o3oo32oo23c.ooo3o........ooo223o....
+.....o2oo223223oo333o........o2o2113oooo.
+.....o232231^332123o........o2bo223oo22o.
+....oo221z11331233o.........o2o3333o222o.
+....o2212213312bc3oooo......32o2b3o11co..
+....o2213223223321333o.....o2o22bo221co..
+....o32232323oo22333o......o1oB2o3323ooo.
+.....o323233oaao333o.......o2212ob23ooco.
+.....oo3333oaaa12233o......o21122b3occco.
+....obao3o2aboba12oo.......o1a1123o3oco..
+....o2a222ac11oc1133ooooooo21111oo22oo...
+....o1o1a1ao1o1b12ooo212a122212oo33o.....
+....ooo111aooo1b123o21aa1112222o3oo......
+....o1ooo2ao21oa12oo21123333oooooo.......
+.....acyyo2oaaa12oo21o111a11211b2ooo.....
+.....oy1yyaco223oo211A11111212211122oo...
+....oz1yyycbyooo2221o1111a11bbo322222o...
+...oy1yycoooooo32211o111111212233oooo....
+...o1yyco..o33c221112o1111bbo323333o.....
+..oyyyo....oo322a1a112o2b2212oooooo......
+.oyyyo......o32a212a123oo33o322o.........
+.o1yo........o3a22b22b333oooooo..........
+.oyo..........oo22222333333333o..........
+oyo...........o3ooob33oo332222o..........
+oo............o333oooooooo22222o.........
+..............o233oo.oobbbo2222ooooo.....
+..............o33oo...oooocoooobbbabo....
+.............oabo.........occo.ooooao....
+............oyco...........obc.....oao...
+...........oyco............oao.....ocbooT
+..........oybo.............oyoo.....obcao
+.........oybo...........oooaccbo....oyco.
+........oybo...........obaccbooo....oyyo.
+.......oyao............ooobco......ocabyo
+....oooyaco..............ooo......obacoao
+...obacacybo......................ooobo..
+...oooao.ooo.........................oo..
+.....oP..................................
diff --git a/parts_pl_src/body/pl_roadrunner_b.txt b/parts_pl_src/body/pl_roadrunner_b.txt
new file mode 100644
index 0000000..375456e
--- /dev/null
+++ b/parts_pl_src/body/pl_roadrunner_b.txt
@@ -0,0 +1,56 @@
+# pl_roadrunner_b: from pixellab_src/pl_roadrunner_b/base.png (variant of pl_roadrunner) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (31, 35)
+# head_top at (23, 10)
+# back at (41, 29)
+# tail at (40, 52)
+............o^.................................
+...........o3o..oooo...........................
+.......oo.o2o..o233o...........................
+.......oo.o2o.o323o...oo.......................
+......o3oo32ooo233.ooo3o.......................
+......o2oo2231223oo333o........................
+......o23223112332123o.........................
+.....oo2213113331233o..........................
+.....o22112133212333oooo.......................
+.....o22132232223321333o.................oooo..
+.....o32232323ooo32333o.................o222o..
+......o323233oaaao333o.................o2222o..
+......oo3333oaaaa11233o.............ooo22222o..
+.....obao3o2aaccbb112oo............o2oo1122o...
+.....o3a222aac111b111oo............o2o21123o...
+.....o1o111aoo1o1b1133o...........o2bo2213ooooo
+.....ooo111aoooo1b113oooooooo.....o2o2222o3222o
+.....o2ooo1aoo111b123o2222222oo..o1332b2oo1222o
+......acyyo2oaaaa123o2211111122oo21312b331123o.
+......oy1yyboa1113ooo2111111111Bo21112332213o..
+.....oy1yyybco2233o22211111111112o21122222ooo..
+....oy1yybbbbboooo2221111111111222o3122b2oocco.
+...oy1yycooooo222222111111ooooo2222o3223cccco..
+..oy1ybo22222222211111113311111oo222o33occcoo..
+.oy1yco12222222211111113311111111oo2o333cooo...
+.o1yo2211222211111111A2o1111111111111oooo......
+.oyo2211111111111111112o111111111b11122oo......
+oyoo2111111111111111112o111111111b33111a2oo....
+oo.oaa11111111111111aa2o311111a21223222222oo...
+...oaaa11111111111aaab22o311a1aao2223322222o...
+...o1aaa11111111aaaaa1123o33b211oo2233ooooo....
+...o11aaaa111aaaaaaa111b23o333322oo3333o.......
+...o2111aaaaaaaaaa11111bb23ooo3322ooooo........
+...oo1111aaaaaa111111bbbb22333ooooo33o.........
+....oba1111111111111bbbb22333333ooo3o..........
+....obbbb111111111bbbbb22333333333oo...........
+.....o3bbbb11bbbbbbbb2223333333333oo...........
+......o33bbbbbbbbbbb22333333333333o............
+.......o333b222bbb333333333111233o.............
+.......ooo3333333333333oo3111123o..............
+.........ooo333333333ooooo311333o..............
+............ooooooooooooo.o3333o...............
+.............occo..........occT................
+.............obco..........obbo................
+.............oyco..........oybo................
+.........oooocycoo.........oybo................
+........obaccybbbco.....ooooybbo...............
+........ooocaoooooo....ocycybcbco..............
+..........ooo..........oooybooooo..............
+.........................Poo...................
diff --git a/parts_pl_src/body/pl_roadrunner_c.txt b/parts_pl_src/body/pl_roadrunner_c.txt
new file mode 100644
index 0000000..0fdb95c
--- /dev/null
+++ b/parts_pl_src/body/pl_roadrunner_c.txt
@@ -0,0 +1,65 @@
+# pl_roadrunner_c: from pixellab_src/pl_roadrunner_c/base.png (variant of pl_roadrunner) (pixellab_library.py extract)
+# pivot at (17, 60)
+# aura at (32, 33)
+# head_top at (23, 2)
+# back at (41, 29)
+# tail at (51, 52)
+...........o^............................
+..........o3o..ooo.......................
+......oo.o2o..o333o......................
+......oo.o2o.o333o...oo..................
+.....o3oo32oo233ooooo3o..................
+.....o2oo223223ooo333o...................
+.....o23223123322123o....................
+....oo221z113311333o.....................
+....o22122133113333oooo..................
+....o22132232133222333o..................
+....o32232323oo223333o...................
+.....o323233oaao3333o....................
+.....oo3333oaaa122233o...................
+....obao3o2aoocaa12oo....................
+....o2a222ac111ca1133o...................
+....o1o1a1ao1o1oa12ooo...................
+....o1o111aooo1oa123o....................
+....o1ooo2ao111ca12oo..............ooo...
+.....acyyo2oaaa1133o..............o22o...
+.....oy1yyaco22233o..............o222o...
+....oz1yyycbyoooooo.............o2222o...
+...oy1yycooooooo2oo...........ooo223o....
+...o1yyco...oo222oo..........o2o2113oooo.
+..oyyyo......o222oo.........o2bo223oo22o.
+.oyyyo.......o222oo.........o2o3333o222o.
+.o1yo........o112o..........32o2b3o11co..
+.oyo.........o112o.........o2o22bo221co..
+oyo.........o211oo.........o1oB2o3323ooo.
+oo..........o112oo.........o2212ob23ooco.
+............o112o..........o21122b3occco.
+...........o1112o..........o1a1123o3oco..
+...........o1112o....Aooooo21111oo22oo...
+..........o21112o..oo212a122212oo33o.....
+..........o211122oo211aa1112222o3oo......
+..........o21111222111123333oooooo.......
+..........o2111112111o111a11211b2ooo.....
+..........o2111111111111111212211122oo...
+..........o211111111o1111a11bbo322222o...
+..........o221a11111o111111212233oooo....
+...........o211111112o1111bbo323333o.....
+............o211a1a112o2b2212oooooo......
+............o32a212a123oo33o322o.........
+.............o3a22b22b333oooooo..........
+..............oo22222333333333o..........
+..............o3ooob33oo332222o..........
+..............o333oooooooo22222o.........
+..............o233oo.oobbbo2222ooooo.....
+..............o33oo...oooocoooobbbabo....
+.............oabo.........occo.ooooao....
+............oyco...........obc.....oao...
+...........oyco............oao.....ocbooT
+..........oybo.............oyoo.....obcao
+.........oybo...........oooaccbo....oyco.
+........oybo...........obaccbooo....oyyo.
+.......oyao............ooobco......ocabyo
+....oooyaco..............ooo......obacoao
+...obacacybo......................ooobo..
+...oooao.ooo.........................oo..
+.....oP..................................
diff --git a/parts_pl_src/body/pl_roadrunner_d.txt b/parts_pl_src/body/pl_roadrunner_d.txt
new file mode 100644
index 0000000..d56669d
--- /dev/null
+++ b/parts_pl_src/body/pl_roadrunner_d.txt
@@ -0,0 +1,59 @@
+# pl_roadrunner_d: from pixellab_src/pl_roadrunner_d/base.png (variant of pl_roadrunner) (pixellab_library.py extract)
+# pivot at (17, 60)
+# aura at (32, 36)
+# head_top at (23, 9)
+# back at (41, 29)
+# tail at (51, 52)
+................ooo......................
+............^o..o3o......................
+............o3o.o33oo....................
+............o33oo333o....................
+............o333o3333o...................
+.............o33oo333o...................
+.............o333o333oo..................
+..............o33o3323o..................
+..............o333o3233o.................
+...............o33b3233o.................
+...............o33o3333o.................
+...........oo...ooo3333oooooooo..........
+..........oco.ooooo333oo3222233oo........
+......oo.o2o3oocco3ooo32222222233o.......
+......oo.o2o2o3co333oo22222cb22223o......
+.....o3oo32oo23c3oooco2222222222223o.....
+.....o2oo22c22coo333o222222222222233o....
+.....o2c22c1233212co22222222222222233o...
+....oo221311331233o222222222222222223o...
+....o2212213312cccoooo2222222222222233o..
+....o221322322cc21333o2222222322222233o..
+....oc22c2323oo22ccco222222232B22222233o.
+.....oc2c233oaaoccco2222222222222222233o.
+.....oocc33oaaa23333o222222222222232233o.
+....obaoco3abcba23oo2222222222222222233o.
+....o3a333ac11oc223o2222222222332222233o.
+....o1o2a2ao1o1b223o222222222222o322233o.
+....ooo222aooo1b223o2222222222223o32333o.
+....o1ooo3ao21oa223o2A222222222y33o2333o.
+.....acyyo3oaaa223o322222222222223o3333o.
+.....oy1yyaco33ooo322232222222222yo3333o.
+....o31yyycbyooo332222332222222223o3333o.
+...oy1yycoooo3333322222o322222a2233o333o.
+...o1yyco333333222222223o3332223333o33o..
+..oyyyo333332222222222223oo33323oooo33o..
+.oyyyo323332222222222222333ooo33o3333o...
+.o1yoo323322222222222222223333oo33333o...
+.oyo.o333322222222222322222333333333o....
+oyo...o33322222222222222y22333333333o....
+oo.....o333222222322222223333333333o.....
+........o333322222222223333333333ooo.....
+.........o3333333333333333oo3333obabo....
+..........oo333333333333333333oooooao....
+...........oooo33333333333oooo.....oao...
+...........oycoooooooooooo.oao.....ocbooT
+..........oybo.............oyoo.....obcao
+.........oybo...........oooaccbo....oyco.
+........oybo...........obaccbooo....oyyo.
+.......oyao............ooobco......ocabyo
+....oooyaco..............ooo......obacoao
+...obacacybo......................ooobo..
+...oooao.ooo.........................oo..
+.....oP..................................
diff --git a/parts_pl_src/body/pl_robodog.txt b/parts_pl_src/body/pl_robodog.txt
new file mode 100644
index 0000000..61a6035
--- /dev/null
+++ b/parts_pl_src/body/pl_robodog.txt
@@ -0,0 +1,45 @@
+# pl_robodog: from pixellab_src/pl_robodog/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 40)
+# head_top at (30, 25) (from part/probe)
+# back at (31, 43) (from part/probe)
+# tail at (44, 51) (from part/probe)
+...........oooooo...............
+........ooo222222oooooo.........
+..oooooo221111111122222oooo.....
+.o12oo22111111^112222223222o....
+.o2o2221111111112222222222ooo...
+o1o21111222211112222222oo2233o..
+o1o2o21111111112222122o2112233o.
+o2o2121111111111112233o2212333o.
+o2o12111111111122222333o2123333o
+.oo112211111111212231333o223333o
+..o1oooo111112211123o333co22333o
+..o1oo3o2111oooo2123333czo32233o
+..o1o31o2111oo3oo12333ozaao323o.
+..o1o33o2111o31oo12333ozczzooo..
+..o1oo132111o333o1233ocaayyao...
+..o11ooo2122oo13o12333caa1yao...
+..o1112222222ooo212333occaaoo...
+..o21211222211111123333occo3o...
+..o221oo1111112A12233333oo33o...
+..o222o3oooooo1222233333333ao...
+..o2o2o2o3oo3o23222333333332o...
+..o132o3o3oo2o2B2223333333oo....
+...o3321o2oo3o233223a333oo......
+....oooo2221123213232ooooo..o...
+......oooooooo22223ooo333o.o2o..
+.....o2o223332ooooooo22333o23o..
+.....o1o12ccco222333o22122o33o..
+.....o2o1ca1ac212233o321123oo...
+....o22o1cazaco111233o21233o....
+....oc2o1ocaco2111233o222133T...
+....ozco21ooo21111233o2123o3o...
+.....ozco211111122333occ2ccco...
+......oooo222223333ooozccooo....
+........o2oo333333oo3oozzcco....
+........o112ooooo3223oooooo.....
+.......o223233oo31123oo.........
+.......ozz33oo.o22323oo.........
+........oooo...ozz33oo..........
+................Pooo............
diff --git a/parts_pl_src/body/pl_robodog_b.txt b/parts_pl_src/body/pl_robodog_b.txt
new file mode 100644
index 0000000..d799005
--- /dev/null
+++ b/parts_pl_src/body/pl_robodog_b.txt
@@ -0,0 +1,48 @@
+# pl_robodog_b: from pixellab_src/pl_robodog_b/base.png (variant of pl_robodog) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 40)
+# head_top at (30, 19)
+# back at (31, 43)
+# tail at (49, 51)
+................ooo^ooooo..............
+..............oo111111113ooo...........
+............oo12222222211133oo.........
+...........o122222222222111333o........
+..........o22222222222222111333o.......
+.........o2222222222222222113333o......
+........o122222222222222222113333o.....
+.......o12222222222222222221113333o....
+......o3222222222222222222211113333o...
+......o2222222222222222222221113333o...
+.....o322222222222222222222211113o33o..
+.....o2222222222222222222222111occcoo..
+....oo22ooo2222222222222222211ocbabco..
+....o22o31o3222222ooo122222111obaaaboo.
+....o22o3w3322222o31oo1222211ocaaaaaco.
+....o22o3o3322222o3w3o1222211ocaa11aco.
+...o322o323322222o3o3o1222111ocba11aco.
+...o3222ooo222222o323o12221111ocb11c3o.
+...o31222222222222ooo1222211113occco3oo
+..oocoo1222222222222222221111133oooooco
+.o2occcooo222211111111111113333o2222ooo
+.o2occbbabooooooooooAoooooooooo3222223o
+.o2o11ccaaaa11aaaaaaaabbbbcccco2222221o
+.o3o111cc22aaaaaaaaaaabbcccccco2222223o
+..oo111ca22222222222Booo221133o3222213o
+.o2o111ca2222222222cab222211333o333oooo
+o223o11ca1222222222cbb2222113333oooo13o
+oc1aco1cca222222222cbbaabbbbcccco22213o
+ocaacc33ca112222222cbb2abccccc3o122213o
+oca223o3ccc112222222bb22cc33333oa11acco
+.o22213oooo331122211cc1ooooo333oaaaacco
+.o12213oo2oo333111113co22221o3o22221cco
+..o113oo2221oo3333333c3222221oo2222233T
+...ooo.o22223ooo33333o2222221oo1222233o
+.......o12223o3ooooooo2222221ooo122333o
+........o323oo33oo...o3222213ooo33333o.
+.........oooo3333o....o11113oo..ooooo..
+..........oo13333o....ooooooo3o........
+..........o222333o....oo113333o........
+..........oaac3oo.....o2222333o........
+...........oooo.......oaaa13oo.........
+.......................Poooo...........
diff --git a/parts_pl_src/body/pl_robodog_c.txt b/parts_pl_src/body/pl_robodog_c.txt
new file mode 100644
index 0000000..a45cae7
--- /dev/null
+++ b/parts_pl_src/body/pl_robodog_c.txt
@@ -0,0 +1,65 @@
+# pl_robodog_c: from pixellab_src/pl_robodog_c/base.png (variant of pl_robodog) (pixellab_library.py extract)
+# pivot at (34, 61)
+# aura at (32, 25)
+# head_top at (30, 3)
+# back at (30, 43)
+# tail at (38, 51)
+..................o^ooo..............
+...............ooo22222oooooo........
+.........oooooo2221111112222oooo.....
+........o12oo2211111111222223222o....
+........o2o22211111111222222222ooo...
+.......o1o211112222111222222o32233o..
+.......o2o2o2111111112222123o112333o.
+.......o3o212111111111112233o212333o.
+........oo1222111111121223333o223333o
+.........o1oooo11112211123333co22333o
+.........o1oo2o211oooo212333ozo32233o
+.........o1o3wo211oo2oo12333obbo323o.
+.........o1ooo2333o3w3o12333oczzooo..
+.......oooo1111223o333o12333cbxxao...
+....ooo111112223333o13o12333cb1xao...
+.ooo111112223333333ooo112333ocaaoo...
+o111133333333a3aoo33111223333oo33o...
+o13o233a33aooooo3333112223333333bo...
+o122233oooo2223333332222233333332o...
+.oooooo..o22c233333222222333333oo....
+..........o3c2333332223223b33oo......
+...........ooo33332223a3232oooo..o...
+.............ooooooo2A2233oo33o.o2o..
+............o2o22332ooooooo2333o23o..
+............o1o12cco222233o2212o33o..
+............o2o1c1ac212233o3222ooo...
+...........oo2o1obboo111233o2333oo...
+...........oaco22oo21111233o223o3o...
+............ozco21111122333oc2ccco...
+.............oooo222223333ooccooo....
+...............o3oo33333oo3oozcco....
+...............o233ooooo333ooooo.....
+...............o233o.ooo223o.........
+...............o233o..oo223o.........
+...............o123o...o123o.........
+...............o123o...o123o.........
+...............o123o...o123o.........
+...............o123o...o123o.........
+...............o123o...o123o.........
+...............o223o...o223o.........
+...............ozo2B...o323o.........
+...............ozo3o...ozo3o.........
+................o33o....o33o.........
+................o23o....o33o.........
+................o13o....o22o.........
+................o13o....o22o.........
+................o13o....o12o.........
+................o13o....o12o.........
+................o13o....o12T.........
+................o13o....o12o.........
+................o13o....o12o.........
+................o13o....o12o.........
+................o23o....o12o.........
+...............oo33o....o22o.........
+..............o1123o....o32o.........
+.............o22323o...o112o.........
+.............ozz33o...o2232o.........
+..............oooo....ozz3o..........
+.......................Poo...........
diff --git a/parts_pl_src/body/pl_robodog_d.txt b/parts_pl_src/body/pl_robodog_d.txt
new file mode 100644
index 0000000..b3e1ab1
--- /dev/null
+++ b/parts_pl_src/body/pl_robodog_d.txt
@@ -0,0 +1,44 @@
+# pl_robodog_d: from pixellab_src/pl_robodog_d/base.png (variant of pl_robodog) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (30, 23)
+# back at (31, 43)
+# tail at (44, 51)
+.......ooooo^oooooooo.........
+....oooaaac111cczzzccoooo.....
+..ooaaacc1111zbzzzz111zzzo....
+.oaaabc111111111z1112zz33oo...
+oaaacc311112zb2111112333221oo.
+oaaac1z111zcz13zcaao333221111o
+oaac21211o1zc1baabbb333111111o
+occ3111zoo1z11baabbb333311112o
+oz1zz111o11111ccabao33oo31122o
+o1oooo111b12211ccoo333oo311bzo
+o1oo3o2111oooo21zc333obo3z11zo
+o1o3132111oo3oo1zcc3oaoo3z11zo
+o1o3332111o313o12223ocbo3z111o
+ozo3132111o333o12333obbo33112o
+ob1ooo1122oo13o12333oaboo3322o
+o311111zc22ooo211333oaaoo33z2o
+o21211zzzz111111zz33obabo3333o
+oc21oo11111121A22o333ooooo333o
+oc21o3oooooo1222oooo333ocoo33o
+oao1o2o3oo3o122oabbo333occo33o
+oao1o3o3oo3o1B2oabaoo333ooo33o
+.oc311o2oo3o23cbabboccoo...oo.
+..oooozz111133caabbooooo..o...
+....oooooooozcczbooo33co.o3o..
+...ozo223332ooooo3o33ccco13o..
+..oz1o12bbbo2ccc33o31baco33o..
+.ob13o1ba1ab21z123o31zbc3oo...
+o1113o1bzzbbo1o1233o21133o....
+oz113ozobbbo211oz23ob11333T...
+ob133oc1ooo2112zzz3obz1132o...
+oc133ooc11111zzzcc3ocz213bo...
+.o33o.oocc222zccbooozo22zo....
+..oo..oboob22cccoo33oo2zzo....
+......o233ooooo32233ooooo.....
+.....o1zz333oo31113zo.........
+.....ozz33oo.ozz31zco.........
+......oooo...ozz3coo..........
+..............Pooo............
diff --git a/parts_pl_src/body/pl_rocket.txt b/parts_pl_src/body/pl_rocket.txt
new file mode 100644
index 0000000..19af491
--- /dev/null
+++ b/parts_pl_src/body/pl_rocket.txt
@@ -0,0 +1,46 @@
+# pl_rocket: from pixellab_src/pl_rocket/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 26) (from part/probe)
+# back at (31, 40) (from part/probe)
+# tail at (43, 48) (from part/probe)
+.............oo.............
+............oabo............
+...........oazbco...........
+...........ozzaco...........
+..........oaxaabco..........
+.........oaxx^abcbo.........
+.......oobaxaaabccboo.......
+......o3obazaaabccbo3o......
+......o1oooooooooooo1o......
+......o21111111111332o......
+......ooo1111111233ooo......
+......o22oooooooooo32o......
+......o21112222233332o......
+......o21ooo1112ooo32o......
+......o21ow3311o3wo32o......
+......o2owwwo11oww1o2o......
+......o2oww3o11o3w1o2o......
+......o21ooo11113oo32o......
+......oba1111111223bao......
+......oba1oo1B11oo3bbo......
+....ooo211oooooowo332ooo....
+..oox12o11o33A33oo33o321oo..
+.o21b22o1113aaa33233o33cz2o.
+.o122oooa111oooo2233ooo321o.
+oao2o.o2aa11111122332o.o2oao
+obbco.o22aaaa111223bbo.ocbbo
+obbo..oa2111aaaaaab32o..occo
+.oo...oca111111122332o...To.
+......o2baa111112233bo......
+......o221aaaaaaa2b32o......
+.....oao21111oo22233oao.....
+....oacoca12oaco22bbocao....
+...oxaco32bboybo2233ocbxo...
+...oaaco3222oybo3232ocbao...
+...oacccoo33oaco33oocccao...
+...obcco..oooacooo..occbo...
+...obco.....obco.....ocbo...
+....oo......occo......oo....
+............occo............
+.............Po.............
diff --git a/parts_pl_src/body/pl_rocket_b.txt b/parts_pl_src/body/pl_rocket_b.txt
new file mode 100644
index 0000000..1dc2830
--- /dev/null
+++ b/parts_pl_src/body/pl_rocket_b.txt
@@ -0,0 +1,44 @@
+# pl_rocket_b: from pixellab_src/pl_rocket_b/base.png (variant of pl_rocket) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 43)
+# head_top at (31, 23)
+# back at (31, 40)
+# tail at (48, 48)
+.................^o.................
+................oaco................
+...............oazbco...............
+..............oayaacco..............
+.............oayyaabcco.............
+..........ooocazaaabccbooo..........
+.........o21oooooooooooo33o.........
+.........o2211111111112233o.........
+.........oo32212222222333oo.........
+.........o2oooooooooooooo3o.........
+........o221112222223333333o........
+.......o22211ooo2222ooo33333o.......
+.......o22111o13322o31o33333o.......
+......o22211o111o22o111o33333o......
+......o22a11o113oooo311o33b33o......
+.....o233a3b2ooo2112o32233c333o.....
+.....o2aaaac22o112223o22aaccc3o.....
+....oo22acc222o22B223o223acc33oo....
+...o1o22c1c222o332233o223c3c33o3o...
+..o12o221112223o3333o322333333o32o..
+.o123oaa11122222ooAo32223333cco321o.
+.o23oo22aa12222222222222333b33oo32oo
+oacooo2211aaa2222222222233b333oooczo
+oaccoo2211122aaaaaaaaa22a33333ooccao
+oaco.o221112222222222222333333o.ocao
+.oo..obbba1222222222222233b33co..oT.
+.....o33222aa222222222223b3333o.....
+....o33322222aaaaaaaab22b333333o....
+....o3333oo22222222222223oo3333o....
+....o333oaco22222oo22223ocao333o....
+.....o3oyaco3222oaco2233ocbyo3o.....
+......ooxaco3333ozco3333ocbaoo......
+.......oaccc3333oaco3333cccao.......
+.......obccoo333obco333ooccbo.......
+.......obco..oooobcoooo..ocbo.......
+........oo......occo......oo........
+................occo................
+.................Po.................
diff --git a/parts_pl_src/body/pl_rocket_c.txt b/parts_pl_src/body/pl_rocket_c.txt
new file mode 100644
index 0000000..536c77a
--- /dev/null
+++ b/parts_pl_src/body/pl_rocket_c.txt
@@ -0,0 +1,60 @@
+# pl_rocket_c: from pixellab_src/pl_rocket_c/base.png (variant of pl_rocket) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 38)
+# head_top at (31, 7)
+# back at (31, 40)
+# tail at (44, 48)
+.............^o.............
+............o13o............
+............o13o............
+............o13o............
+............o12o............
+............o12o............
+............o12o............
+...........o1123o...........
+...........o1123o...........
+...........o1223o...........
+...........o1223o...........
+..........o112233o..........
+.........oc1122333o.........
+.........ox122233co.........
+.......oobx222233cboo.......
+......o3oba222233cbo3o......
+......o1oba222233cco2o......
+......o11oooooooooo22o......
+......o22111111112333o......
+......ooo2122222333ooo......
+......o33oooooooooo33o......
+......o321b333333cc33o......
+......o32cob3223bocc3o......
+......o3co1o3222o1oc3o......
+......o3co1o3222o1oc3o......
+......o32coo2222ooc33o......
+......o32112222233333o......
+......o32ooo2222ooo33o......
+......o32o13322o31o33o......
+......o3o111o22o111o3o......
+......o3o113o22o311o3o......
+......o32ooo2A223oo33o......
+......oba1122222333bao......
+......oba1oo2B22oo3bbo......
+....ooo321oooooo1o333ooo....
+..ooy13o21o33333oo33o331oo..
+.o31b33o2113aaa33333o33cz3o.
+.o133oooa112oooo3333ooo331o.
+oao3o.o3aa12222233333o.o3oao
+obbco.o33aaaa222333bbo.ocbbo
+obbo..oa3112aaaaaab33o..occo
+.oo...oca112222233333o...oT.
+......o3baa222223333bo......
+......o332aaaaaaa3b33o......
+.....oao32222oo33333oao.....
+....oacoca23oaco33bbocao....
+...oyaco33bbozbo3333ocbyo...
+...oaaco3333ozbo3333ocbao...
+...oacccoo33oaco33oocccao...
+...obcco..oooacooo..occbo...
+...obco.....obco.....ocbo...
+....oo......occo......oo....
+............occo............
+.............Po.............
diff --git a/parts_pl_src/body/pl_rocket_d.txt b/parts_pl_src/body/pl_rocket_d.txt
new file mode 100644
index 0000000..3d93cb2
--- /dev/null
+++ b/parts_pl_src/body/pl_rocket_d.txt
@@ -0,0 +1,46 @@
+# pl_rocket_d: from pixellab_src/pl_rocket_d/base.png (variant of pl_rocket) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 21)
+# back at (31, 40)
+# tail at (47, 48)
+................^o................
+...............oaao...............
+..............oayaco..............
+..............oyyaco..............
+.............oayaaaco.............
+............obayaaacco............
+...........ocazaaaaccbo...........
+...........oaaaaabcccbo...........
+.........oo2oooooooooo3oo.........
+........o3222122221233333o........
+.......o322112222222233333o.......
+.......o221122222222223333o.......
+......o32112222222222223332o......
+.....o322112ooo2222oo3233332o.....
+.....o322112ow3o22o3wo223332o.....
+....o322111owwwo22oww1o233332o....
+....o322111oww3o22o3w1o233332o....
+....o3221112ooo2222ooo2233332o....
+....o3221aa222222222222aa3333o....
+....o3221aa22oo2B22oo22aa3333o....
+....oo2211222oooooowo2222333oo....
+..oo13o211222o33A33oo222233o32oo..
+.o21c3o21122223bbb332222233o3ca2o.
+.o133ooa1122222oooo22222233oo331o.
+oao3oo3bbaaa222222222222bbccoo3oyo
+ozccoo32112bbbbbbbbbbbbb3333oocabo
+obco.ob211222222222222223333o.ocbo
+.oo..ocba12222222222222233cco..oT.
+.....o33bbb222222222222bcc33o.....
+......o332bbbbbbbbbbbbbc333o......
+......o332222222oo222233333o......
+......oo3333222oaco2233333oo......
+.....ozco333333oabo333333oczo.....
+.....oaccoo3333oxbo3333ooccao.....
+.....oacccooo33oaco33ooocccbo.....
+.....obcco...oooacooo...occbo.....
+.....obco......occo......ocbo.....
+......oo.......occo.......oo......
+...............occo...............
+................Po................
diff --git a/parts_pl_src/body/pl_roo.txt b/parts_pl_src/body/pl_roo.txt
new file mode 100644
index 0000000..54cd23b
--- /dev/null
+++ b/parts_pl_src/body/pl_roo.txt
@@ -0,0 +1,48 @@
+# pl_roo: from pixellab_src/pl_roo/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (29, 42)
+# head_top at (29, 28) (from part/probe)
+# back at (34, 37) (from part/probe)
+# tail at (46, 51)
+........o.......oo..............
+.......o3o.....o13o.............
+......o13o....o111o.............
+......o13o...o11a1o.............
+......313o...31aa1o.............
+.....o1113o.o11aa1o.............
+.....o1113o.31baa1o.............
+.....o1133oo11baa1o.............
+......o13ooo13ba1o..............
+......o3o3332^b1o...............
+.......321112b1o................
+......o11111133o................
+......o11113113o................
+......o11131313o................
+......o111ob313o................
+......o111oa113o................
+.....o1111111333o...............
+.....ooo113331333oo.............
+......o11oo1111311Bo............
+..ooo..ooo3111111aa2o...........
+.oaaboo.o33ccco11112o...........
+oazaabc.o3cazaa33112o...........
+oaaaabco33bzzaaao3112o..........
+oaaabcco3obaaAaaca212o..........
+.ccccccc3obaaaabca113o..........
+.ooccocc3ooccccccc333o..........
+...oooc33o.ooooccc33o...........
+......oooo111113oooo3o..........
+........o1111113333333o.........
+........o1111111311233o.........
+........o1111113111123o.........
+.......o11111113111123o.........
+.......o131111131111233o.....oT.
+.......o3331111321123333o....o3o
+........o33o1111333331133oooo13o
+.........o33ooooo33331111111131o
+...oooooo3333o...o333o11111111o.
+.o31311133333o...o333ooooooooo..
+.o131111ooooo...o3333o..........
+..oooooo.......o13131o..........
+...............o13131o..........
+................Poooo...........
diff --git a/parts_pl_src/body/pl_roo_b.txt b/parts_pl_src/body/pl_roo_b.txt
new file mode 100644
index 0000000..bd3ad9c
--- /dev/null
+++ b/parts_pl_src/body/pl_roo_b.txt
@@ -0,0 +1,58 @@
+# pl_roo_b: from pixellab_src/pl_roo_b/base.png (variant of pl_roo) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 38)
+# head_top at (29, 14)
+# back at (34, 37)
+# tail at (51, 51)
+...............o........oo...................
+..............o3o......o23o..................
+.............o23o.....o223o..................
+.............o23o....o22b1o..................
+.............323o....322a1o..................
+............o2223o..^22ba1o..................
+............o2223o..32cba1o..................
+............o2223o.o22cba1o..................
+.............3233o.o22cba2o..................
+.............o333ooo23cb3o...................
+..............o3222323c3o....................
+..............o222222c3o.....................
+..............o211222233o....................
+..............o212232233ooo..................
+..............o2223c3223o33oo................
+.............oo2223c3223o3333oo..............
+...........oo3o2223c3223o22233ccoooo.........
+........ooobco111222223o32222bcc2222oo.......
+......oo22bb2o1o112223o33222bbc2211223o......
+.....o3112bb2o13113ooo33322bab222111223o.....
+.....o1122bb22oo11o33333322bb222221122co.....
+....o21222bb1133ooo33331122bb2222222bbcco....
+....ob2223b1111333333111111cc222222bbb33o....
+....obb2231111111331111111113322222bb2333o...
+....o322o11111111311111111113333222222333o...
+....o333o111111113111111111113333333333223o..
+...o2333o111111113111111111113o32233332223o..
+...o2222o111111113111111111113o32222222223o..
+...o3222o3111111133111111B11333o2222222233o..
+..o332222o311113333331A11133333o32222232233o.
+..o123222o3333333113333333333333o3222322223oo
+.o21223333o333311111133333333333ooo33222233oo
+.o22222333o321111111113333223333o.o322222333o
+.o22222333oo2211111111113333333o..o322222333o
+.obabbc333oo321111111111333333o....ocabbbccco
+.obabbccco..o2111111111113333o.....ocbbbbccco
+.ocbbbbco...o3111111111113333o....o22222223o.
+.obabbbbo...o31111111111333333o...o22222223o.
+obbabbcbco..333111111113332233o..o223222223o.
+obbbbbcbco.o2233111111333222233o.o223222223o.
+obbbbbcocoo22223333333332222223o..o32222223o.
+.ocbbbcccoo22222o33333332222223o...o2233233o.
+..occccco.o222233oo333333222223oo...ooooooT..
+...ooooo..o2123333oooooo3222223o3oo...ooo....
+..........o2223333o....o3322233o333ooo33o....
+...........o233333o.....o33333333333333o.....
+............o333333o.....o333333o33333o......
+.........ooo2223333o.....o322233oooooo.......
+........o3223223333o.....o222223o............
+........o3232233333o....o2121312o............
+.........oooooooooo.....o2332322o............
+.........................Poooooo.............
diff --git a/parts_pl_src/body/pl_roo_c.txt b/parts_pl_src/body/pl_roo_c.txt
new file mode 100644
index 0000000..c32b753
--- /dev/null
+++ b/parts_pl_src/body/pl_roo_c.txt
@@ -0,0 +1,43 @@
+# pl_roo_c: from pixellab_src/pl_roo_c/base.png (variant of pl_roo) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 41)
+# head_top at (29, 24)
+# back at (34, 37)
+# tail at (46, 51)
+.....oooo..oo^oo..oooo..........
+....o2112oo22223oo2222o.........
+...o2122322222113222211o........
+...o2233222221222222221o........
+..o22b3221221222223ba222o.......
+..o2ab3221132222223baa22o.......
+..o2ab32222222222233aa22o.......
+..o32a3322222o222233aa22o.......
+...o323o22232o122233223oo.......
+....o33o22212o12223333oo........
+....ooa2211222aaa233oo..........
+.....oa11o1112aaa33oo...........
+.....o211111111133o.............
+......oo111111213oB.............
+..ooo...oooooooo333o............
+.oaaboo.o33ccco3222ao...........
+obacabc.o3caaab33222o...........
+oaacabco33baacAbo3223o..........
+ocaaccco3obaccabcb223o..........
+.ccccccc3obacaabcb223o..........
+.ooccocc3ooccccccc333o..........
+...oooc33o2ooooccc33o...........
+......oooo111113oooo3o..........
+........o2111113333333o.........
+........o1111111322333o.........
+........o1111113222233o.........
+.......o21111113222233o.........
+.......o231111132112333o.....oT.
+.......o3331111331133333o....o3o
+........o33o1111333331133oooo23o
+.........o33ooooo33331111222231o
+...oooooo3333o...o333o11111111o.
+.o32312233333o...o333ooooooooo..
+.o232222ooooo...o3333o..........
+..oooooo.......o23232o..........
+...............o23232o..........
+................Poooo...........
diff --git a/parts_pl_src/body/pl_roo_d.txt b/parts_pl_src/body/pl_roo_d.txt
new file mode 100644
index 0000000..0d17dfb
--- /dev/null
+++ b/parts_pl_src/body/pl_roo_d.txt
@@ -0,0 +1,45 @@
+# pl_roo_d: from pixellab_src/pl_roo_d/base.png (variant of pl_roo) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 42)
+# head_top at (29, 23)
+# back at (34, 37)
+# tail at (42, 51)
+........oooo.ooo......................
+....oooo2111^111o.....................
+..o11221111122111o....................
+..o123111111132111o...................
+.o13o111111112o1111o..................
+o1231111113312o3112o..................
+o123o11113o1322o212o..................
+o12ooo1113o1312oo22o..................
+o2o.o3111133112o.oo...................
+.o..o1111311122oo.....................
+....o33o113222o2oo....................
+...o11311o13oo2222o...................
+...o11ooo11o1221122o..................
+...o1111111o1111112o..................
+....oo1111o11111a122o.................
+......o1oo1111111B22o.................
+.......oo311113111222o................
+........o2111132111o2o................
+........o2311113111o2o................
+.......o12311113211o22o...............
+.......o123111A1211o22o...............
+......obbo11111o112o222o..............
+.....o11co1111cba1o2222o..............
+.....o11o2111o1abo21122o..............
+.....o21o123o11co211122o..............
+.....o2o211o121o1111112o..............
+......oo211o322o1111112o..............
+......o12111ooo211111222o.............
+......o123111112111122o2o.............
+......o22231111211122o222T............
+.......o222o11112222oo211o............
+.......3accoooooo222o11211oo..........
+........obco....ocaco1113a11ooo.......
+...oooooc232o....obcco1ccc21111oooooo.
+.o313aacc222o...oo232oocc111111111112o
+.o2312cooooo..ooaaac2o..ooooooooooooo.
+..ooooo......o23222co.................
+.............o23232o..................
+..............ooooP...................
diff --git a/parts_pl_src/body/pl_ropefist.txt b/parts_pl_src/body/pl_ropefist.txt
new file mode 100644
index 0000000..482fce6
--- /dev/null
+++ b/parts_pl_src/body/pl_ropefist.txt
@@ -0,0 +1,46 @@
+# pl_ropefist: from pixellab_src/pl_ropefist/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (31, 24) (from part/probe)
+# back at (36, 36) (from part/probe)
+# tail at (44, 50) (from part/probe)
+..............ooooo...............
+...........ooo21122ooo............
+.........o21o1211oa212oo..........
+........o21o2111^a212112o.........
+.......o312o121oaooo2o312o........
+......o312a3113oo212o3oo12o.......
+......o2aoaa22222o112o22o3o.......
+.....oooo32a121222o112o12obo......
+.....oo11122222112o212o223oo......
+.....ooo21232212ooo3213o233o......
+.....o31o32o22oow1oo222o33bo......
+.....o3owoooooowwooo323oob3o......
+.....o3ooo223boooo3o23bo3o3o......
+.....o3321111333333333bo3o3o......
+......o3o11o1122233o33oo3ooo......
+......o3222222ooo3o33Bo33oo.......
+.......ooooooo33oo333ocooco.......
+........o33333oo33bbo3ocbo........
+.........ooooooooooo33oooo........
+...........occoo33333ooocbo.......
+...........occooo333o33ocao.......
+..........oaco3oo3oo33oaccao......
+...........oo233Ao3233oaccao......
+............o21o32212ooocoa.......
+............o3o212133o...o........
+...........oao21223oo.............
+..........o2cc2133obo.............
+.......oooo12bo3o33boo.ooo........
+....ooo213o11obo223o3o3333ooo.....
+...o213o3oo212o3222o3bo3o3322To...
+..o22123oo3o223o223ooc3o33ooo33o..
+.o3123oo3oooo33ooo33ooooo32133oo..
+.o212o33o3212oo3112oo211aa33223oo.
+.o213o22o331112o31212o312213o333o.
+.ob2ao213o2111123311113o21213o33o.
+.o33ao3123o3221113o22213o33223o3o.
+..ob3o31123o3213213o32223obbb33o..
+oooo33o33223o3322223o33333o333oooo
+.ooooooo33333o3332333o3333ooooooo.
+.......oooooooooPoooooooooo.......
diff --git a/parts_pl_src/body/pl_ropefist_b.txt b/parts_pl_src/body/pl_ropefist_b.txt
new file mode 100644
index 0000000..396c7d7
--- /dev/null
+++ b/parts_pl_src/body/pl_ropefist_b.txt
@@ -0,0 +1,50 @@
+# pl_ropefist_b: from pixellab_src/pl_ropefist_b/base.png (variant of pl_ropefist) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 17)
+# back at (36, 36)
+# tail at (45, 50)
+...............o^.................
+..............o2o.................
+..............o2ooo...............
+.........oo..oo2222oo...o.........
+.........o2oo22212223ooo2oo.......
+.........o2o221212222o32oo........
+........o33o21a233323o322o........
+....ooo.22o221a33oooo33212oo......
+....oo2o23o11133o3222oo2112o......
+.....o222o22123o322222o32112o.....
+...ooo212o22133o3322212oo212o.....
+...o22212o32112ooo332112o2a22o....
+....oo2223o32123oooo32123oa22o....
+.....o3312o332223o3o3212co223o....
+....o3o3223o33223o23o221bo223ooo..
+...o333o3a23o333o223o222bo22322o..
+....o312ob333ooo2123o233oo233o....
+....o3112ooooo31223o2233o333oo....
+...ooo311221o221233o323o3333o.....
+.....o332211122233o33B3o33o3o.....
+......o3333b22333o3333o33booo.....
+......oo3333333oo3333oooooo.......
+......o.3ooo3oooo3oo3ooooo........
+........o..o3cooo3o33ooocbo.......
+...........ooco3oA33o33ocao.......
+...........bco2333oo333occbo......
+............o3123o3223ooccbo......
+............o21oa221a3oocob.......
+..........o3o3o21213boo..o........
+...........o2o22223oo.o...........
+..........o22b2333obo.............
+.......oooo22b33o33boo.oo..o......
+....ooo223o22obo323o333333o3o.....
+...o213o3oo222o3222o3bo3o3322oT...
+..o2a123oo3o223o233ooc3o33ooo33o..
+.o3223oo3oooo33ooo33ooooo32133oo..
+.o212o33o3212oo3112oo211aa33223oo.
+.o213o22o331212o31212o312213o333o.
+oob2ao223oa111123311113o21223o33oo
+.o33ao3223o321111ao22213o33223o3o.
+..ob3o32123o3a13223o32223obbb33o..
+oooo33o33223ob322223o33333o333oooo
+.ooooooo33333o3332333o3333ooooooo.
+.......oooooooooPoooooooooo.......
diff --git a/parts_pl_src/body/pl_ropefist_d.txt b/parts_pl_src/body/pl_ropefist_d.txt
new file mode 100644
index 0000000..13a3018
--- /dev/null
+++ b/parts_pl_src/body/pl_ropefist_d.txt
@@ -0,0 +1,57 @@
+# pl_ropefist_d: from pixellab_src/pl_ropefist_d/base.png (variant of pl_ropefist) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 36)
+# head_top at (31, 10)
+# back at (36, 36)
+# tail at (45, 50)
+..............oo^ooo..............
+...........ooobbaaaaooo...........
+.........ooabbbbbaaaabbo..........
+........obbbbaaabbaaabbbco........
+.......obbbbaaabbbbbbaabbao.......
+......obbbbaaaabbbbbbaaaabbo......
+.....oabbbaaaaabbbbbbaaaabbco.....
+....oaaaaabbbbbaaaaabaaaabbbbo....
+....obaaaabbbbbaaaaaabbaabbbao....
+....obaaaabbbbbaaaaabbbbbaaaco....
+...obbaaaabbbbbaaaaabbbbbaaacco...
+...oababbbaaaaabbbbabbbbbaaacco...
+..oaaabbbbaaaaabbbbaaaaabaaacco...
+..obaaccbbaaaaabbbbaaaaaaccaccco..
+..ocaaccccabbbbbbbbaaaaaccccabbo..
+..ocbacccbcccccaaabcaaaaccccabbo..
+..occcaaacoooooobbbccccaccccbbbo..
+...occacoo322233ooccccccaaccbbbo..
+...occbo2221121222oocccbaabbccco..
+...occo11122222112o3occbbbbcccco..
+....oboo21232212ooo33occbbbcccco..
+....oco1o32o22oow1oo23occccccco...
+.....ooowoooooowwooo223occbbbco...
+.....o3ooo223boooo3o223occbbbo....
+.....o33211113333333223occbcco....
+......o3o11o1122233o223ooocco.....
+......o3222222oooAo32B3o3ooo......
+.......ooooooo33oo33333o33o.......
+........o33333oo333333o322o.......
+.........ooooooo33333o3312o.......
+..............oo3333o33113o.......
+..............o3ooo3321113o.......
+.............oo3111111123o........
+............o211111111223o........
+...........o21111111133oo.........
+..........o21111212333o...........
+.........o211122333ooo............
+.........o2112333o333o............
+.......ooo21133oo3333ooooo........
+....ooo22o2123o33223o33333ooo.....
+...o21223o3223o32223ooo333322oT...
+..o22113oo3333o32233o3oo33ooo33o..
+.o3123oo3oooo3oooo33ooooo32133oo..
+.o212o33o3212oo3112oo211aa33223oo.
+.o213o22o331112o31212o312213o333o.
+.ob2ao213o2111123311113o21213o33o.
+.o33ao3123o3221113o22213o33223o3o.
+..ob3o31123o3213213o32223obbb33o..
+oooo33o33223o3322223o33333o333oooo
+.ooooooo33333o3332333o3333ooooooo.
+.......oooooooooPoooooooooo.......
diff --git a/parts_pl_src/body/pl_sandcastle.txt b/parts_pl_src/body/pl_sandcastle.txt
new file mode 100644
index 0000000..2ba3421
--- /dev/null
+++ b/parts_pl_src/body/pl_sandcastle.txt
@@ -0,0 +1,43 @@
+# pl_sandcastle: from pixellab_src/pl_sandcastle/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 42)
+# head_top at (31, 30) (from part/probe)
+# back at (28, 40) (from part/probe)
+# tail at (47, 52)
+...........ooooo...ooooo...........
+.....ooo..o2yyy1o.o2yyy1o..ooo.....
+....o111o.o33333o.o33333o.o111o....
+....o3233o333333333333333o3323o....
+...oo333333333333333333333333oo....
+..o111o33333333333333333333o111o...
+..o1y12o33oooo222^22oooo3331y13o...
+..o2133o3oyyy1o2112oyyy1o333133o...
+..o213333oy112o2222oy111o333133o...
+..o211333oy111o3333oy111o322333o...
+..o2211212y11122222y11113222333o...
+..o221yy1yyy111yyyy112112223333o...
+..o211yyy1yy11y1111y11111222333o...
+..o2221yyy1yy211112111111222233o...
+..o2211yy1333111211133311223322o...
+.o3211yyy3aa13111213aa131222233o...
+.o3211yy3a1oo1B1113a1oo132223323o..
+.o321y1y3aooo131113aooo132222223o..
+.o3211yy31oo21211A21o3213223ccc3o..
+.o3211yy221a13111113aa12323c1b1ao..
+.o133111y222211ccc11223322caa1b1ao.
+.o311333yy1111ccccc1111122c1a1b11o.
+o2231yyyy1111ccccccc11222cbb11b1abo
+o221333111111ccbbbcc11222cbba1babao
+o322111112212cbaaabc222233cababaabo
+o332222112212baaaaab222233ccbabbabo
+o33322211111211yyy11222233cbcbbabo.
+o3332222121122222222222333cbbcbcoo.
+o3333222222111111111122333333cc33T.
+.o333322222222222222222233333333o..
+..ooo333322222111122223333333ooo...
+.....ooo333333333333333333ooo......
+.......oooooooooooooooooooo........
+......o22233o........o32223o.......
+......o21223o........o32123o.......
+......o31123o........o32113o.......
+.......ooooo..........Poooo........
diff --git a/parts_pl_src/body/pl_sandcastle_b.txt b/parts_pl_src/body/pl_sandcastle_b.txt
new file mode 100644
index 0000000..c2c1856
--- /dev/null
+++ b/parts_pl_src/body/pl_sandcastle_b.txt
@@ -0,0 +1,64 @@
+# pl_sandcastle_b: from pixellab_src/pl_sandcastle_b/base.png (variant of pl_sandcastle) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 34)
+# head_top at (31, 3)
+# back at (28, 40)
+# tail at (42, 52)
+...........ooo^oooo..........
+.........oo21111222o.........
+........o21zz1111123o........
+.......o21zzzz1111223o.......
+......o22zzz1111111223o......
+.....o221zz111111112233o.....
+.....o22111111111222233o.....
+.....o22111111112222333o.....
+....oo22222222333333333oo....
+...o211zzz111112222222233o...
+...o2211z1111222222222233o...
+...ooooo3ooo3333oooo3oooo....
+...o2z3o3112o33o112o3o13o....
+...o213o3z12o33o122o3223o....
+...o21323z122223122oo323o....
+...o21111z11111122233223o....
+....o21zzzz1111222222233o....
+....o21zz221111122222233o....
+....o21z2a1111112aa32233o....
+....o21z2ao211111ao13233o....
+....o22z2oo211111ooa3233o....
+....o22z2112111131133233o....
+....o22z11111cc113332233o....
+....o22zz111cccc12222233o....
+....o221z11cccccc2222233o3o..
+....o221z11ccbbcc2222233o31o.
+....o221z112bbbb32222333o31o.
+....o221z111111112222333o11o.
+....o221z11111111222233obcco.
+....o22111z1111112223oo1ccco.
+....o22111211111122oob111co..
+....o221111111A1ooo1bcc11o...
+....o221111111oobb11bccc2o...
+....o221111ooo1bbc111ccoo....
+....o2211oob1a1bbcc11oo3o....
+....o2ooo1bbb111ccooo333o....
+...ooobba1bbbc11ooo33333o....
+..o11bbb111Bcooo33333333oo...
+.oc11bbb111oo33332222333o2o..
+.oc111ccooo3333312222333o22o.
+.oc111oo3333111112222333o32oo
+.ocoo3333311111111222333o3obo
+..o3o222z111111111222333ooaco
+...oo22zz11111111122233oob1co
+....221zz1111111112223oobcc1.
+...o3211z11111111222ooa1bcco.
+...o2221z111111122oobb111oo..
+...o2222z11111oooobbbbc11o...
+...o2222112ooob1111bbccooo...
+..o322222ooabbbc1111cco33T...
+..o32oooob111bbbc11ooo333o...
+.ooo2a1bbbb111ccooo333333o...
+o1bbb11bbbb11ooo333333333o...
+o1bbc11cccooo3333222233333o..
+o11cc11ooo3333222222233333o..
+o11cooo3333222222222333333o..
+.ooo3333322222222233333333o..
+....ooooooooooPooooooooooo...
diff --git a/parts_pl_src/body/pl_sandcastle_c.txt b/parts_pl_src/body/pl_sandcastle_c.txt
new file mode 100644
index 0000000..a74105d
--- /dev/null
+++ b/parts_pl_src/body/pl_sandcastle_c.txt
@@ -0,0 +1,46 @@
+# pl_sandcastle_c: from pixellab_src/pl_sandcastle_c/base.png (variant of pl_sandcastle) (pixellab_library.py extract)
+# pivot at (45, 59)
+# aura at (32, 43)
+# head_top at (31, 20)
+# back at (28, 40)
+# tail at (60, 52)
+..........................ooo^oooo..........................
+........................oo22222223ooooo.....................
+......................oo222222222233baao....................
+.....................o33bb22222223333baao...................
+....................o222bb332222233323bbo...................
+.................ooo22yy3333322233332333o...................
+................oaab22yyy2223333333223333o..................
+................oabb2yyyyyyyyyy2222233333o..................
+................obb22yy222yy22222222333333oo................
+................o222yyy22yyy2222bab2333333bao...............
+...............o22yyyy22y2222222bbb2333333bao...............
+...............o22yyyy22y222222222222333333bbo..............
+...............o22yyy22y222222222222233333333o..............
+..............o222y222yy2222322222222333333333o.............
+..............o22y2232y222222222222223333ba333o.............
+.............o32yy233y2333222222233322333bb333o.............
+.............o222233223aa13222223aa132333bc3333o............
+............oo22223323a1oo132223a1oo13233333333o............
+...........oaab2223223aooo132223aooo132233333233o...........
+..........oaaab22332231o331322231o33132223333333o...........
+..........oaab2223222331a1B222223aa1322222333333ooo.........
+.........oobb2222322222333222222233322222233333baaao........
+.........o3332223222233222222222222233222223333baaao........
+........o332222332223ooo333333A3333ooo3223233333baao........
+........o332322332223ooo11oooooo111ooo32223233333333o.......
+.......o3322223322323ooc12ccccccc13cco22223223333333o.......
+.......o32aa3332222223occcccccccccccc3222233223333333o......
+......o332bb33322222223cccaaaaaaaccc32222233323333333o......
+......o33333333222222123c1aaaaaaa1co22222233322333333o......
+.....o333333332222222222333333333331222222333322333333o.....
+.....o33ab333322223222221111111111222332222333323baa33o.....
+....o33aab333222223322222233333332222332222333333bbaa33oo...
+...o333bb33331222233222222222222222223ba2222333333bbb3333oT.
+.oo2113333332222233222aa22222222222233bb2223333333333333333o
+o322233333321y22333222baab2222y22a2233333222333333333333333o
+o333333oo21112233332222bb23331yy3b22333333222333333333ooooo.
+.oooooo321233333333222223333333333333333333222222ooooo......
+......o222333ooooo33333333oo3333333333ooo3332222223o........
+.......oooooo.....oooooooo..oooooooooo...ooo3333333o........
+...........................................Pooooooo.........
diff --git a/parts_pl_src/body/pl_sandcastle_d.txt b/parts_pl_src/body/pl_sandcastle_d.txt
new file mode 100644
index 0000000..06f42e6
--- /dev/null
+++ b/parts_pl_src/body/pl_sandcastle_d.txt
@@ -0,0 +1,58 @@
+# pl_sandcastle_d: from pixellab_src/pl_sandcastle_d/base.png (variant of pl_sandcastle) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 33)
+# head_top at (31, 12)
+# back at (28, 40)
+# tail at (45, 52)
+............oooooo....oooooo............
+.....oooo..o22yy11o..o2yyy11o...ooo.....
+....o1111o.o333333o..o333333o..o111o....
+....o2223ooo333333o^3o333333ooo3323o....
+....o22233o333333333333333333oo3323o....
+...oo33333333333333333333333333333ooo...
+..o1111o333333333333333333333333o1111o..
+..o1y112o33ooooo22222222ooooo3331y112o..
+..o21333o3oyyyy1o211122oyyyy1o3321333o..
+..o21333o3oy1112o222222oy1111o3321333o..
+..o2133333oy1112o222222oy1111o3321333o..
+..o2113333oy1111o333333oy1111o3323333o..
+..o22111211y11112222222y1111122223333o..
+..o2211yy1yyyy111yyyyyy11211122222233o..
+..o2111yyy1yyy11y11111yy1111112222233o..
+..o22221yyy11yy1111112111111112222233o..
+..o22221yyy11yy1111112111111112222233o..
+.o322111yy122221111211112222112233322o..
+.o32111yyy3aaa1211112112aaa1312222233o..
+.o32111yy2a1ooo12111112a1ooo1322223323o.
+.o321y11y2aoooo12111112aoooo1322222223o.
+.o32111yy2aoooo12111112aoooo1322222223o.
+.o32111yy21ooo2121111121ooo21322222223o.
+.o32111yy221aa1311111113aaa123223332233o
+.o1331111y2222211ccAc1112222222baab2233o
+.o311bbb1yy11111ccccccc11111222baaab233o
+o322bbbbby11111cccccccc1112222bbaaab233o
+o222bbbbb111111ccccccccc112222bbaab2233o
+o321bbbb1111111ccbbbbbcc1122222bbbb2233o
+o32221111111112cbbbbbbbc222223222222333o
+o33222221111112bbbbbbbbb222223322223333o
+o333222211111121B1yyy111222223332233333o
+o33322222121112222222222222233333333333o
+o33333222222211111111111122223333333333o
+.oo33332222222222222222222222333333333o.
+..o3333333222222111111222233333333oooo..
+....oo33333333333333333333333333ooo.....
+......ooooo333333333333333333ooo........
+..........o333322222222223333oo.........
+........oo22233222222222233223o.........
+.......o22122322111111122332222o........
+......o21122322yyyyyyyy122333222o.......
+......o21123o21yyyyyyyyy222o32222o......
+......o2123oo21yyyyyyyyy122oo3222T......
+......o3223oo22yyyyyyyy1222oo3333o......
+.......oooo.o22211111112222o.oooo.......
+............o22222222222223o............
+............o22223oooo32223o............
+............o21223o..o32213o............
+............o21123o..o32yy3o............
+............o33333o..o33333o............
+.............ooooP....ooooo.............
diff --git a/parts_pl_src/body/pl_scarab.txt b/parts_pl_src/body/pl_scarab.txt
new file mode 100644
index 0000000..4fa994d
--- /dev/null
+++ b/parts_pl_src/body/pl_scarab.txt
@@ -0,0 +1,48 @@
+# pl_scarab: from pixellab_src/pl_scarab/base.png (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (31, 40)
+# head_top at (31, 24) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (47, 49) (from part/probe)
+...............ooo..ooo...............
+..............o32o..o22o..............
+.............o321o..o123o.............
+............o231o....o132o............
+............o322o....o223o............
+...........ooooooo^oooooooo...........
+......ooooo222222cccb222222ooooo......
+..oooo322ccc1b11bccccb11cbaac222oooo..
+.o32222b32b2ba1111cc1111b1c22cc22223o.
+o22222c221c11a111baab111a1cc1b2c22232o
+o322222c122c11111111111111bb3acc22223o
+o32212111c12bb1b1aaaa1b1cccc111121123o
+o332o11111bb1112o1oa1b111111c11113233o
+.oo2o22112111a1131o1c1a11111132223ooo.
+...oo2223211111131111311111122322oo...
+.....ooo3222222311111232222222ooo.....
+......oooocaaa2222222222aaaaoooo......
+......oooczy1azcoooooocz1ayzcooo......
+....ooooocz1aayca3333acyaa1zcooooo....
+...o2ooo3acy11zc222222cz11yaa2ooo2o...
+..o323ooo22aaac221B1122caaa22ooo323o..
+..o23oo33o22222oooAooo222222o333o22o..
+..o23oo333oooooo211112oooooo333ooo2o..
+..o2oo323c3333oo322223o33333c333oo2o..
+..o2oo322a3oc333oo33oo333acaa233oo2o..
+..oo3o322a11b2c323ooo22c111ca233o3oo..
+...oooo32a1111c21332322c1113a233ooo...
+.....o332ab1c1b11cbbb21b1b11a233o.....
+....oo332aaca1b11111121b11cca233oo....
+...o23o33c2c21b13caac31b1222a23o32o...
+...o12o33c3caca13c11131bcac2c33o31T...
+..o133oo3c322211o11a1o112223c3oo331o..
+..o23ooooo3cbb31o2b11o12cab3ooooo31o..
+..o23o..oo333333o3a2oo233333oo..o31o..
+..o23o..o3o3c3o2o3223o333c3o3o..o32o..
+..o33o.o223o3ooc3o33o3coooo332o.o32o..
+..o33o.oo12ooo3c3oo3o3c3ooo321o.o32o..
+...oo..o123oo.oooooooooo.oo321o..oo...
+.......o222o..............o322o.......
+.......o3o2o..............o3o2o.......
+........o3oo..............oo2o........
+.........oP................oo.........
diff --git a/parts_pl_src/body/pl_scarab_b.txt b/parts_pl_src/body/pl_scarab_b.txt
new file mode 100644
index 0000000..99aa66d
--- /dev/null
+++ b/parts_pl_src/body/pl_scarab_b.txt
@@ -0,0 +1,64 @@
+# pl_scarab_b: from pixellab_src/pl_scarab_b/base.png (variant of pl_scarab) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 33)
+# head_top at (31, 8)
+# back at (31, 39)
+# tail at (47, 49)
+..............ooo..ooo..............
+.............o32o..o22o.............
+............o321o..o133o............
+...........o231o....o132o...........
+...........o322o....o223o...........
+...........o3oooo^ooooo3o...........
+..........ooo2222222222ooo..........
+.........o22211111b1122333oo........
+.......oo221ac111ca111cc1333o.......
+......o22211aac1cac11cac11233o......
+.....o2211111acccccccca1111233o.....
+....o2221111ccaaaaaaacc111bb333o....
+....o211bbbccaaaaaaaaaccaab1123o....
+...o22111bbcaaaaaaaaaaaccc111133o...
+..o2211111ccaaaaaaaaaaaac11111233o..
+..o2211111caaaaaaaaaaaaacc1111123o..
+.o2211111ccaaaaaaaaaaaaaccbbb11233o.
+.o2211bbaacaaaaaaaaaaaaabcbbbc1223o.
+.o2211bbbbcaaaaaaaaaaaaacc11111223o.
+o322111111ccaaaaaaaaaaaac1111112223o
+o322111111ccbbaaaaaaaabccb111112223o
+o32211111baccbbaaaaaabcccb111112223o
+o3322111bba1ccaaaaaabccc1bc11122223o
+o33321111111ccccbbbbcca111111122233o
+oo3322111111cabccccccaa11111122233oo
+.o3332211111cc111cb11ca11111222233o.
+.oo333222221c1111cb111a1122222333oo.
+..oo3332222111211cb1221122222333oo..
+...oo333332222221c2222222233333oo...
+....ooo3333333222222223333333ooo....
+.....oooooo3333333A33333ooooooo.....
+.....ooooobbbooooooooooobbooooo.....
+.....oooczyybbo333333czybyzcooo.....
+.....oooczy1bzcb3333bcz1byzcooo.....
+...ooooocz1bbycb3333bcybb1zcooooo...
+..o3ooo3bcy11zc222222cz11ybb2ooo3o..
+.o323ooo22bbbc221B1122cbbb22ooo323o.
+.o23oo33o22222ooooooo222222o333o32o.
+.o23oo333oooooo211112oooooo333ooo2o.
+.o2oo333c3333oo322223o33333c333oo2o.
+.o3oo332b3oc333oo33oo333bcbb233oo3o.
+.oo3o332b11c2c333ooo33c111cb233o3oo.
+..oooo32b1111c31333322c1113b233ooo..
+....o332bc1c1c11cccc21c1c11b233o....
+...oo332bbca1c11111121c11ccb233oo...
+..o23o33c2c21c13cbbc31c1222b33o32o..
+..o13o33c3cbcb13c11131ccbc2c33o31T..
+.o133oo3c322211o11b1o112223c3oo331o.
+.o23ooooo3ccc31o2c11o12cbc3ooooo31o.
+.o23o..oo333333o3b3oo333333oo..o31o.
+.o23o..o3o3c3o3o3333o333c3o3o..o32o.
+.o33o.o233o3ooc3o33o3coooo332o.o32o.
+.o33o.oo13ooo3c3oo3o3c3ooo321o.o33o.
+..oo..o133oo.oooooooooo.oo321o..oo..
+......o233o..............o322o......
+......o3o3o..............o3o2o......
+.......o3oo..............oo3o.......
+........oP................oo........
diff --git a/parts_pl_src/body/pl_scarab_c.txt b/parts_pl_src/body/pl_scarab_c.txt
new file mode 100644
index 0000000..dc0200f
--- /dev/null
+++ b/parts_pl_src/body/pl_scarab_c.txt
@@ -0,0 +1,61 @@
+# pl_scarab_c: from pixellab_src/pl_scarab_c/base.png (variant of pl_scarab) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 30)
+# head_top at (31, 11)
+# back at (31, 39)
+# tail at (38, 49)
+..............oo..ooo.............
+.............o3o..o22o............
+............o32o..o133o...........
+...........o3oo....o2o2o..........
+...........oo3o....o33oo..........
+..........oooooo^oooooooo.........
+.....ooooo22222bbbb22222ooooo.....
+.oooo3o3oboca11ccccc11bccooo2oooo.
+o3332c222c11a11baab111a1b1b2c2233o
+o32222c122b1111111111111b3abb2233o
+o3221211c12bb1baaaa1b1bbb11113123o
+o333o1111bb111o1oa1c11111b1111333o
+.oo3o2112111a121o1c2a111113222ooo.
+...oo22o2111112111121111132322oo..
+.....oo32222223111123222222ooo....
+.....oooobaaa222222222aaaoooo.....
+.....oooczy1azoooooobz1aycooo.....
+....oooocz1aayc3333abyaaycoooo....
+...o3oo3aby11zc22222cz11za2oo3o...
+..o22oooo2aaacoooooo2caaa3ooo22o..
+..oa2oo33oooooo11123oooooo3oo22o..
+..oa2oo33333ooo22223ooo3333oo22o..
+..o3aoo33333oooo33oo3a33323oo22o..
+..ooao3o2211o333ooo33a222233o2oo..
+...ooo3oo1122o122A222a2222o3ooo...
+...oooaaacb1111111111a122oa3ooo...
+...o3oo321bbbb1111111a1oob33o33o..
+..o22o3322111b11111oob1o1233o21o..
+..ob2o332221b11111oa1bb22233o21o..
+..ob2o332221b1111oa111b22233o21o..
+..o2aoo32222b111o1a1122a2233o21o..
+..o1ao33322b211o11a11223a23oo22o..
+..o13oo333a2222o111c1223aaooo22o..
+..o12oo333a332o1B111c22a3aooo22o..
+..o23o.oo3a333o22222o333ooo.o22o..
+..o23o..ooa333oo223333b3oo..o32o..
+..o33o...oc33obo333a33b3o...oo3o..
+..o33o....ooooaoo33boooo....oooo..
+...o3o....oooooooooooooo....ooo...
+....o.....o333o....oo33o.....o....
+..........o333o....o333o..........
+..........oa23o....o322o..........
+..........o3a3o....o322o..........
+..........o22oo....o321T..........
+..........o1b3o....oo11o..........
+..........o1b3o....o233o..........
+..........o2b3o....o223o..........
+..........oo2bo....oa23o..........
+...........o3ao....o3ao...........
+...........o33o....o3ao...........
+...........oooo....o33o...........
+..........o233o....o221o..........
+.........o2123o....o3112o.........
+.........o3333o....oo333o.........
+..........oooP......oooo..........
diff --git a/parts_pl_src/body/pl_scarab_d.txt b/parts_pl_src/body/pl_scarab_d.txt
new file mode 100644
index 0000000..90768f8
--- /dev/null
+++ b/parts_pl_src/body/pl_scarab_d.txt
@@ -0,0 +1,58 @@
+# pl_scarab_d: from pixellab_src/pl_scarab_d/base.png (variant of pl_scarab) (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (32, 33)
+# head_top at (31, 9)
+# back at (31, 39)
+# tail at (49, 49)
+...................oooo^ooooooo.................
+...............ooo1111111111313ooo..............
+............ooo21a1111111111321a11oo............
+..........oo11111a1111111111311a1111oo..........
+.........o3212111a2211111113121a111112o.........
+........o222211111a121111123111a1111112o........
+.......o2222211111ab21111111111ab1111122o.......
+......o222112121111ab111111111aabb1111222o......
+.....occ222112211111b111111111a22bb2122222o.....
+.....oaab222221111111b2111112a2222b122222bo.....
+....o22aabc2222b21111b222122a22222bb2222baao....
+....o32122ab222b211221222222a222221aa22bb223o...
+...o332221ab222b22222222222aa2222112abba2213o...
+..o33322222aaaba22222222222a2222222221ba22333o..
+..o333222b222aaa222222222baa2222222222b222333o..
+..o333323a22222ab22222222a1a2222222222b222333o..
+.o333333a2222222a2222222a11a2222222222b223333co.
+.o333333a22222222a22222a2222a2232222223c3333a3o.
+.o333333a33232222ab222222222a3222232333c3333a3o.
+.o3333333a33323322ab32222222ab332333333c3333c3o.
+..o333333a33333333aab3332233aa333333333333333o..
+..oo33332a3333333333a333333333a33333333ca333oo..
+.o33oo333a3333333333a3333333333a3333333aaooo33o.
+o13333oooo3333o33333acc33333333a33333ooooo33331o
+o33113333oooooo333333ac3A333333acoooooo33333313o
+o33211333333oooooooooooooooooooooooo33332223323o
+o33122321223ooocbbbbo333333obbbbbooo32222122323o
+o33322322133ooczy1bzco3333ocz1byzcoo33112222333o
+o33322322133oocz1bbycb3333bcybb1zcoo33122222233o
+.o3cc2322133o3bcy11zc222222cz11ybb2o333222b2233o
+.oac222b233o3o22bbbc221B1122cbbb22o3o33222o233o.
+.o33332b23o333o22222ooooooo222122o333o3122a333o.
+..o333a233o3333oooooo311113oooooo3333o3222a33o..
+..o333a233o333c3333oo332233o33333c333o32ca333o..
+..o33ca233o332b3oc333oo33oo333bcbb233o33a3333o..
+...ocac333o332b22c2c333ooo33c222cb233o33ao33o...
+...oa33333oo32b1111c32333322c1112b233o333ac3o...
+....o33333o332ac1c1c12cccc21c1c11b233o3333ao....
+.....o3333o332aaca1c12111121c11ccb233o3333ao....
+......o3333o33c2c22c23cabc31c2222b33o3333oo.....
+.......o333o33c3cbcb23c11131ccbc2c33o333oT......
+.......oooo3o3c322211o11a1o112223c3oo3ooo.......
+.......o2oo3ooo3ccc31o2c22o12cbc3ooo3oo1o.......
+.......o23ooooo333333o3b3oo333333ooooo32o.......
+.......o23oooo3o3c3o3o3333o333c3o3oooo32o.......
+.......o33o.o233o3ooc3o33o3coooo333o.o32o.......
+.......o33o.oo23ooo3c3oo3o3c3ooo321o.o33o.......
+........oo..o133oo.oooooooooo.oo321o..oo........
+............o233o..............o332o............
+............o3o3o..............o3o3o............
+.............o3oo..............oo3o.............
+..............oP................oo..............
diff --git a/parts_pl_src/body/pl_scorpion.txt b/parts_pl_src/body/pl_scorpion.txt
new file mode 100644
index 0000000..9da5dc3
--- /dev/null
+++ b/parts_pl_src/body/pl_scorpion.txt
@@ -0,0 +1,43 @@
+# pl_scorpion: from pixellab_src/pl_scorpion/base.png (pixellab_library.py extract)
+# pivot at (42, 60)
+# aura at (33, 45)
+# head_top at (31, 42) (from part/probe)
+# back at (41, 38) (from part/probe)
+# tail at (52, 50)
+...........................ooooo............
+........................aoo21122oo..........
+.......................obaab3222o3o.........
+.......................oa1aab333o2o.........
+......................oa1aaabo33323o........
+......................oaaaabboo3223o........
+......................oaaaabboo33333o.......
+......................oaaabbo.o3c33o........
+.......................occbbo..ooo33o.......
+.......................occbo..o22233o.......
+......................caaco...o12233o.......
+......................oooo....o33333o.......
+.............................oooo33o........
+......oooooo............oooooo12oooooo......
+....oo212222o........oocccbbbbbB222222o.....
+...o321baaaco.......obaa11aaacboobaab12oo...
+..o311aabooo......occ333333aaaacboobab11o...
+.o321baco........o32211122333aaa3c3oba212o..
+.o322baco......oobboo^oocc1113cab3cobb3123o.
+o3212baco....oo.oo3222223oo11a33b3coob3223o.
+o32123coooo.o12o32111112223ocac3booooo22223o
+o32223baaboo22o32111111A1233oac33oaaco22223o
+o322223bbbo2o3ooooo1111oooo3o3b33oba3222233o
+o3322223oo323o3o1wbo11obw1o23o333oo32222233o
+o3c322223oo3bo3o1o3o22o3o1o23o3c3o322222333o
+o33c32223ocooc31o2o2222o2o13ocoooo322223333o
+.o3333233o1223o322222222223oc3221o33223333T.
+..o33333oo222coooccooooccooocc222oo3333c3o..
+...3oooo3cc3ooo33owccccwo33ooooc33oo33c3oo..
+.....oooooooobc32ocabaabo23cbo3oo33oooo33o..
+...ooo33o3113cao32oaaaao22obc3113oo33ooobo..
+..oooo3co223occco32obbo22occco322ooc3oooo...
+...oooboo23ooooooo333333ooooooo32oooaoooo...
+.....oooo23oooooooooooooooooooo32oooo.o.....
+........oaooooooooooooooooooooooao..........
+........oao....................oao..........
+.........o......................P...........
diff --git a/parts_pl_src/body/pl_scorpion_b.txt b/parts_pl_src/body/pl_scorpion_b.txt
new file mode 100644
index 0000000..015bbd5
--- /dev/null
+++ b/parts_pl_src/body/pl_scorpion_b.txt
@@ -0,0 +1,43 @@
+# pl_scorpion_b: from pixellab_src/pl_scorpion_b/base.png (variant of pl_scorpion) (pixellab_library.py extract)
+# pivot at (42, 60)
+# aura at (33, 43)
+# head_top at (31, 39)
+# back at (41, 38)
+# tail at (49, 50)
+....................................ooooo........
+....................................obbaaoo......
+........oooooo......................oobaaaao.....
+......ooaaaabo.......................ooba222o....
+....ooaa1abboo...................o....ob22122o...
+...o222aabbo....................obo...ob222122o..
+..o32112bbo.....................obao..o3222112o..
+..o211223bo...o.................obabo.o32222223o.
+.o2212233oo..obo................obaaboo32222223o.
+.o2222233o..obbo................oba1aao322222223o
+o32222333ooocabo................obaaaabb22222233o
+o32222333ooaaabo................obbaaaa222222233o
+obaa2233baaaabbo.................obbaa22222333bbo
+obaaaab3baaabbo...........oooooo..obb3222aaaaabbo
+o33baab33aabbbo..........o33333bbBoo332aaaaaabb3o
+o322223333bbbo.........^bbbaaaa3bbbo333bbbbbb333o
+o332223333cco.........o333333bbb33boo33222333333o
+o3322233333o.........o211122233bb33coo3333333333o
+.o3322333oo.........oooooocc1133bc33cooo3333333o.
+..o3333oo33o......oo32222A3oo11a3c33coo3o33333o..
+..ooooo33312o....o32111112223o1a3c33co122oooooo..
+...o33332213oo..o3211111111233oa3cc3o12222333o...
+....o333322o11ooooooo1111oooo3o33ccoo12223333o...
+.....o3333o3111o3o1wbo11obw1o23o3oo11oo23333o....
+......ooooo3331o3o1o3o22o3o1o23oa22111o3333o.....
+........oo33333o31o2o2222o2o13oaa223333oooo......
+.........coooo33o322222222223obac333333ooT.......
+........ooo333oooooccooooccoooccc333ooo333o......
+.......oo32o33ooo33owccccwo33ooooooo33oo333o.....
+.......o223oooobc32obabaabo23cbo3oo3322oo33o.....
+.......o33o3113cao32oaaaao22obc3113oc32ooobo.....
+.......o3co223occco32obbo22occco322oc32oooo......
+.......oboo23ooooooo333333ooooooo32oooaoooo......
+.......oooo23oooooooooooooooooooo32oooo.o........
+..........oaooooooooooooooooooooooao.............
+..........oao....................oao.............
+...........o......................P..............
diff --git a/parts_pl_src/body/pl_scorpion_c.txt b/parts_pl_src/body/pl_scorpion_c.txt
new file mode 100644
index 0000000..2314e5a
--- /dev/null
+++ b/parts_pl_src/body/pl_scorpion_c.txt
@@ -0,0 +1,39 @@
+# pl_scorpion_c: from pixellab_src/pl_scorpion_c/base.png (variant of pl_scorpion) (pixellab_library.py extract)
+# pivot at (46, 60)
+# aura at (33, 45)
+# head_top at (31, 29)
+# back at (41, 38)
+# tail at (52, 50)
+.......................o......................
+......................^1ooooooo...............
+.................oooooo11o21133ooo............
+.................o2211211111111111ooooo.......
+................o3cc111111111111111112o.......
+...............ocaacc1111111111ccc1133ooo.....
+.....oooo.....o2caac1111111111ccacc11112o.....
+...oo211bo...o11ccc11111111111ccaacc112oo.....
+..o211aboo.oo321111111111111111ccccc11222o....
+.o211abo...o11111111111111111111ccc11111112o..
+.o21aao....oo2211111121111111111B1111112222o..
+o321cao...o3222112112211211211111111222223o...
+o322caooo.o22211221222112212111111111222222o..
+o322ccabo.o3312222222222222221211112cc223333o.
+o3222cabo.o322222222222222222221121cabc22333o.
+oo2222cboo3222222111111111222222122caacc2333o.
+oo322223oo3232222111111111222222222ccccc22333o
+.o3322333oo3322ooo211111Aoo222222222ccc22233oo
+..o333332133222o1bo1111obw1o2222222222222233o.
+..o333332233222o1332222o331o2222222322323333o.
+...o3333333332233322222o311o2222222323332333o.
+....oo33333332223222222223332222232333333333o.
+......ooooo322222222222222222222233333333ccT..
+........ooo332322222222222222323233333c33ooo..
+.......o212o3332222222222223232333oooocco33o..
+......o2223oo33232222222222323333o331ooc3332o.
+......o233o22o333232222323233333co3211oco3322o
+......o23oo23o33c22323232333333ccoo3213o.oo32o
+......obo.o23oo333o333333333333cccco323o..oobo
+......obo.ob3o.oo33o333333333o3cooooo23o...obo
+.......o..obo....oooo33333oooooo....obo....oo.
+..........oo........oooooo..........obo.......
+.....................................P........
diff --git a/parts_pl_src/body/pl_scorpion_d.txt b/parts_pl_src/body/pl_scorpion_d.txt
new file mode 100644
index 0000000..7333da2
--- /dev/null
+++ b/parts_pl_src/body/pl_scorpion_d.txt
@@ -0,0 +1,43 @@
+# pl_scorpion_d: from pixellab_src/pl_scorpion_d/base.png (variant of pl_scorpion) (pixellab_library.py extract)
+# pivot at (42, 60)
+# aura at (34, 45)
+# head_top at (31, 36)
+# back at (41, 38)
+# tail at (52, 50)
+...........................ooooo...............
+.........................oo21122oo.............
+.......................obaab3222a3o............
+.......................oa1aab333b2o............
+......................oa1aaabocc323o...........
+......................oaaaabboo3223o...........
+......................oaaaabboo33333o..........
+......................oaaabbo.o3c33o...........
+.......................occbbo..occc3o...ooooo..
+.......................occbo..o22223o..o11a12o.
+.......................aaco...o12223o.oc13b322o
+......................oooo....o33333o.o1coo2obo
+....................o^o......oooo33o..o23o.oobo
+......oooooo...ooooo21o.oooooo22ooooooo23o..oo.
+....oo212222o..o21o21133ooaaaaaB222222ooco.....
+...o2112aaabo..o212111aa222aacaoobaa212ooo.....
+..o2112aboooooob21111aa1112oabccaooba211oo.....
+.ob2223bo...o21a1111aa111133oaaccaaob321ao.....
+.obab23bo...o321a11aa1111abbooaaacaob32aa2o....
+o322b23bo.o32222aa1a211aa31112oaaccoo3ba22o....
+o322223ooooo1111221b212211223oocaoooo3b2223o...
+o32aa23aaboo1222122b2221A2223ooacoaac322223o...
+o3bb222bbbo33322112b2211ooo111occobb322aa23o...
+oc3222233ooo211o3122221bw1o221o3boo3222bbb3o...
+o33222a23oo3222o322222o3o1o233o3co32a2223cco...
+o3332b323oo33322322222232o223ooooo32ab22233o...
+.o333c333o1o32222222222222223o221o332b3333T....
+..o33c33oo1o32322oooooooo2233o222oo333c33o.....
+....oooo3cco32322owccccwo233oooc33oo33c3oo.....
+.....ooooooo3o322ocabaabo23obo2oo33oooo33o.....
+...ooo33o311oo3233oaaaao323ob3113oo33ooobo.....
+..oooo3co223oo3o333obbo333occo322ooc3oooo......
+...oooboo23ooo3o333233333oooooo32oooaoooo......
+.....oooo23ooooooo3o23o3ooooooo32oooo.o........
+........oaoooooooooo33ooooooooooao.............
+........oao........ooo.........oao.............
+.........o......................P..............
diff --git a/parts_pl_src/body/pl_seacucumber.txt b/parts_pl_src/body/pl_seacucumber.txt
new file mode 100644
index 0000000..bd82135
--- /dev/null
+++ b/parts_pl_src/body/pl_seacucumber.txt
@@ -0,0 +1,33 @@
+# pl_seacucumber: from pixellab_src/pl_seacucumber/base.png (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (31, 48)
+# head_top at (42, 36)
+# back at (35, 37) (from part/probe)
+# tail at (51, 53)
+...........ooo....ooo...................
+..........obaao..obabo..................
+..........obb22ooobaao........^.........
+....ooo..o3331113o3b22oBo...ooo.........
+....obaoo2111111133311112oooaao.........
+....ob22211111111111111111222bo.........
+....o3211111111111111111111123o.........
+....o21111111111111111111111122o........
+...o222ooo2111111111122123112222o.......
+..o3222oaa12111111112111113111122o......
+.oo3222obb3321111113222ooo231222ooo.....
+oao33222oo332222112o33oo1oo3122ooao.....
+obo3322233322222222oooaoo1o222oo32ooo...
+ooo333322222222222222oo213boooa3222abo..
+.oo3333333222oo2222A222333oab323o311boo.
+.ooo33333333oaa22222bb22oooba13oobao3ab.
+..ooo3333333obb33222222oaaobbooocoo32bo.
+..ooooo333333ooo333332oob32oooooccooooc.
+...ooooooo33333333333ob33oooooooccco32ao
+...oooooooooo33333333ca13ooooooocccooobT
+...ooo3oooooooooooo333oooooooocccco33o..
+....o23o33oooooooooooob33occocbbbooo2ao.
+....o23o333o3ooo3oooooaoo3ocbbbbo33ooo..
+.....ooo223o33o233ooooooa2ooooooo31ao...
+........oooo23o223o33oobboo2oo3oobobo...
+............ooooooooooooooa3ooaooooo....
+.........................Pbooobo........
diff --git a/parts_pl_src/body/pl_seacucumber_b.txt b/parts_pl_src/body/pl_seacucumber_b.txt
new file mode 100644
index 0000000..2a347ed
--- /dev/null
+++ b/parts_pl_src/body/pl_seacucumber_b.txt
@@ -0,0 +1,43 @@
+# pl_seacucumber_b: from pixellab_src/pl_seacucumber_b/base.png (variant of pl_seacucumber) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 45)
+# head_top at (42, 31)
+# back at (35, 37)
+# tail at (49, 53)
+......................o.......................
+.....................ooo......................
+.....................oao......................
+.....................oao......................
+............oo.......oao......................
+............oco......oao......................
+............oco......oao..........ooo.........
+............ocao.....oaao........occo.........
+.............oaao...ocaao.......^aco..........
+.............ocaco..ocaao......oaao...........
+..............oaboooocbaoooo..oabo............
+....ooo.......ocb3113cca2222oocaco............
+....ocaoo...oo221yy113332zzyy13co.............
+.....ocaco.o2111z111z11zzyy1yy133o.......ooo..
+......ocaao21111zyyyyyzyyB1111zy13o....oocco..
+.......oocao111z1yyyyy11zyyyy111112o.ooaaco...
+.......ooocac11111zzy1y222zyy1yy1222ocacoo....
+.......o32oca22111111y321113yzy113yy3oco......
+......o3323cc321111111o222113111o22o3oo.......
+.....o3322333322221111ooooo23112o2ooo2o.......
+.....o3322222222222211ooaooo3222oooao23o......
+ooooo333322222222222222o21o2222222o2a22o......
+ocaaaaaa32222222oo2222A22222oooooo2aa22coooo..
+.ooocccbb332222oaa22222aaooo111y1yoo222caaaaoo
+....ooocc333322occ322222o3z1zyyy1z11o23cccccco
+....ooooo3333333oo32223o1yzyyyyzy111yo33ooooo.
+....ooo33333333o333333o11yyyy1yyyz11yo33o.....
+....oooo333333obc3333o311yyyyyyyyyyz11o3o.....
+....ooooo3333ocaco33o31111zzyyyyyyyz11o3o.....
+....oooooo333oacoo33o31111111yyyyy1111ooo.....
+.....ooooooooacoo333o33111111111111113oT......
+.....oooooooocoo3333o33311111111111133oo......
+......oooooooooooo33oo333111111111133ooo......
+.......ooooooooooooooo33333333333333ooo.......
+........oooooooooooooooo3333333333oooo........
+..........ooooooooooooooooooooooooooo.........
+..............ooooooooPooooooooooo............
diff --git a/parts_pl_src/body/pl_seacucumber_c.txt b/parts_pl_src/body/pl_seacucumber_c.txt
new file mode 100644
index 0000000..4641c81
--- /dev/null
+++ b/parts_pl_src/body/pl_seacucumber_c.txt
@@ -0,0 +1,43 @@
+# pl_seacucumber_c: from pixellab_src/pl_seacucumber_c/base.png (variant of pl_seacucumber) (pixellab_library.py extract)
+# pivot at (30, 59)
+# aura at (35, 44)
+# head_top at (42, 25)
+# back at (35, 37)
+# tail at (51, 53)
+..................................oo......................
+.................................o22o..........oo.........
+.................................o212o..^oo...o22o........
+................................o3211o.o222o..o212o.......
+................................o3211o.o211oo.o212o.......
+..........................ooo....o311o.o3112oo3212o.......
+.........................o222o...o3322oo3113oo3213o.......
+.........................o3112oo..o322oo3223oo3223o.......
+.........................o32112o..oo22oo32oooo322o.oo.....
+.........................oo33112oo.oo2oo3o22oo33ooo22o....
+..........................oo33323oooo33o3o211o3ooo112o.oo.
+............................oo33o22ooooooo211oooo1113oo22o
+.............................ooo3111oooooo211ooo21123o212o
+..............................oo32211ooooo312ooo222oo2113o
+............................ooo.oB2222oooo322ooo233o22233o
+.......................ooooo211ooooo22oooo323oo22oo333ooo.
+.....................ooccc2o22112oooo23ooo33ooo33oo3oooo..
+.................oooo32aa22ooo2223ooo33ooo33oo33oooooo....
+................occ11caac11cooooo333oo3ooo3ooo3oooo211o...
+...............obc211caa111caooooo33oo33ooooo3oooo2222o...
+.............ooccc211ccc11caccooooo33o333oo3322oooooooo...
+............oc3cac211ccc11ccc222oAo32222322111123oooo.....
+............oc2cac22ccc222ccc222232222111111111223o.......
+...........oo22cc222ccc222cc222222222oo11111111oo3o.......
+..........oc322cc222occ222cc222222222aoo2111111oa3o.......
+..........oc322cc333ooo222oo3222222221ao2111112oa3o.......
+.........occ333cc333ooo222oo322222222222222222222ao.......
+.........occ333oo333ooo333ooo3322222a22222o22o2222o.......
+.......oo2coo33oo333ooo333ooo33333222222222oo22223o.......
+.....oo3c2ooo33ooo333ooo33ooo33333333222222222233o........
+..oooc12o33ooo3ooooo3ooo33ooooo333333333333333333T........
+.o2b3233oooooooooooo3oooooooooooo33333333333333ooo........
+o33b33o3oooooooooooooooooooooooooooo333333333oooo.........
+oooooooooooooooooooooooooooooooooooooooooooooooo..........
+.oooooooooooooooooooooooooooooooooooooooooooooo...........
+...............oooooooooooooooooo3oooooooooooo............
+.......................oooooPoooooooooooooo...............
diff --git a/parts_pl_src/body/pl_seacucumber_d.txt b/parts_pl_src/body/pl_seacucumber_d.txt
new file mode 100644
index 0000000..062b249
--- /dev/null
+++ b/parts_pl_src/body/pl_seacucumber_d.txt
@@ -0,0 +1,63 @@
+# pl_seacucumber_d: from pixellab_src/pl_seacucumber_d/base.png (variant of pl_seacucumber) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (31, 33)
+# head_top at (42, 10)
+# back at (35, 37)
+# tail at (42, 53)
+.........oo...oo..............
+........obaooobb..o...........
+........obbb3aa33oo.oo........
+......ooobo22o333aaobao.......
+.....ob333o2aooo33o3bbo.......
+....oooa3ooooooooo31ooo.......
+...ooo3ooooooooooo32o33.......
+...oba3ooooooooooo33oo3o^.....
+..occo3oooooooccoo33ooaao.....
+..oooo33aooocccoo33o33oco.....
+.....oba3ooccoooo33o33oo......
+.....obo333oo313oaao3bo.......
+.....oooob333o33o3aoobo.......
+.......oobaoobaoooboooo.......
+......o3obboobaooobbooo.......
+.....o323oo22oo212oo223o......
+..ooo322222112211111122o......
+.obao3221111111111111112o.....
+.oba332221111111111111122o....
+.oco33222ow1111111wo11222o....
+..oo33222oo1111111oo11222o....
+..oo33222oo1122211oo11222o....
+..oo332222223111211111222o....
+.ooo332aa22322111311aa222o....
+obao3322222o32222o1122223ooo..
+obao33222213ooooo111222331abo.
+obao3322221123331111222331aco.
+occo332222111111111122233cbco.
+.ooo332222111111111122233cco..
+.oo3332222111111111122233oo...
+.oo3332222111A11111122233o....
+ooo3332222111111111122233o....
+obo333bbb2111111111122233o....
+obo33caaab11111111112bb33o....
+oco33caaab1111111B11baac3o....
+.oo33caaab1111111111baac3o....
+.oo33ccaab1111111111baac3o....
+.oo33occc211111111112cc33o....
+.oo33333221111111111233333o...
+ooo33322221111111111222333o...
+obo333222221111111122222333o..
+oboo33222222111111222222332o..
+ocoo332222222111122222223o21o.
+.o3o3322bbb22222222222223o21o.
+.o33o32caaac222222222bb33o221o
+.o33o33caaab22222222baac3o221o
+.o33o33caaab22222222baacoo333o
+o333oo3ccaab22222222caacooo33o
+o333ooooccc2222222223ccooo.oo.
+o32oooo33333222222233oooo.....
+o32ooooo33333222233333ooT.....
+.oo.oooooo33333333333ooo......
+.....oooooo33333333oooo.......
+......oooooooooooooooo........
+......ooooooooooooo33o........
+......o333oooooooo3333o.......
+......ooooo......Pooooo.......
diff --git a/parts_pl_src/body/pl_seahorse.txt b/parts_pl_src/body/pl_seahorse.txt
new file mode 100644
index 0000000..ce45b6b
--- /dev/null
+++ b/parts_pl_src/body/pl_seahorse.txt
@@ -0,0 +1,48 @@
+# pl_seahorse: from pixellab_src/pl_seahorse/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (32, 23) (from part/probe)
+# back at (29, 36) (from part/probe)
+# tail at (39, 50) (from part/probe)
+...........o.............
+..........o3o.oo.........
+.........o13oo2o.........
+.......ooo133133ooo......
+.......o21111^3313o......
+.......o11111111333o.....
+......o21111o1112313o....
+......o21112ooo1123o.....
+.....o13113oaao31133o....
+.....oa322oaoa1323o22o...
+.....oo223oo3a132obb21o..
+......o113oo1a323ooa2o...
+.oo.oo11122333223oc21o...
+o31311233332223ooob3o....
+ooo122ooooo2ooooo3o1o....
+.oo2oo....oooooooo.o.....
+..oo.....ocoooooooo......
+........ooBccco33o.......
+.......occ33co223o..o....
+.....oocbbbba22233ocao...
+....o1o22aaaa213113obao..
+...o1obaa1133A331123oco..
+..o12baaaaaaa13o22113oao.
+..o1o22aaaaab12o321123oo.
+.o12oa111223311ooo11113o.
+.o12oaaccaaaa13oo3333221o
+.o1oobaaaaaab323o12oo323o
+.o2ooccbbbcc332232ooco3o.
+..oo.oo33222ac323ooooo3o.
+.....ocbbbabbbo33ooo..o..
+......occbbbb3c33ooo.....
+.......ooooobbbo332oT....
+.........occboocc32oo....
+..........oooo.ob312o....
+.........o22ooo.oc13oo...
+.........o13o3o.oc13o....
+........o13o.oo.oo3oo....
+........o22o.o.ob23o.....
+........o321ooob13oo.....
+.........o3221133oo......
+..........o33o33oo.......
+...........oPoooo........
diff --git a/parts_pl_src/body/pl_seahorse_b.txt b/parts_pl_src/body/pl_seahorse_b.txt
new file mode 100644
index 0000000..1b58383
--- /dev/null
+++ b/parts_pl_src/body/pl_seahorse_b.txt
@@ -0,0 +1,48 @@
+# pl_seahorse_b: from pixellab_src/pl_seahorse_b/base.png (variant of pl_seahorse) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (32, 21)
+# back at (29, 36)
+# tail at (39, 50)
+..........o.............
+.........o3o.oo.........
+........o13o^2o.........
+......ooo133133ooo......
+......o3211123313o......
+......o21111111333o.....
+.....o21111o1122313o....
+.....o21112ooo2223o.....
+....oa3113oaao32233o....
+....oa322oaoaa323o33o...
+....oo223oo3aa32obb31o..
+.....o123oo2a323ooa2o...
+....o11222333223oc21o...
+.ooo1233o22223ooob3o....
+o11123ooo33ooooo3o1o....
+o223oo..ooooooooo.o.....
+.ooo....ocoooooooo......
+.......ocBccco33o.......
+......obaabbc223o..o....
+....ooaaaaaabc233ocao...
+...ooaaaaaccac3223ocao..
+..ooaaaaaaccAb31223oco..
+.o2oaacccaaaabc22113oao.
+.ooaaacccaaaccco31123oo.
+o2oaaacccaaaccc3o11223o.
+o1occaaaaaaaaabco223221o
+o1occaaaaccaaabco13o323o
+o3oaaaaaaccaabbc33oco3o.
+.oobaaaaaaaaccbc3oooo3o.
+..oobaccaaabcccc33o..o..
+...obbccbbbcccc333o.....
+....occccccccc3333oT....
+.....occcccccocc32oo....
+......ooooooo.ob322o....
+........o22ooo.oc23oo...
+........o13o3o.oc23o....
+.......o13o.oo.oo3oo....
+.......o22o.o.oc23o.....
+.......o321oooc13oo.....
+........o3221133oo......
+.........o33o33oo.......
+..........oPoooo........
diff --git a/parts_pl_src/body/pl_seahorse_c.txt b/parts_pl_src/body/pl_seahorse_c.txt
new file mode 100644
index 0000000..b7c45f1
--- /dev/null
+++ b/parts_pl_src/body/pl_seahorse_c.txt
@@ -0,0 +1,64 @@
+# pl_seahorse_c: from pixellab_src/pl_seahorse_c/base.png (variant of pl_seahorse) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 33)
+# head_top at (32, 5)
+# back at (29, 36)
+# tail at (39, 50)
+...........o.............
+..........o3o.oo.........
+.........o13o^2o.........
+.......ooo133133ooo......
+.......o2111123313o......
+.......o11111111333o.....
+......o21111o1122313o....
+......o21112oo32223o.....
+.....o13113owwo32233o....
+.....ow322owow1323o33o...
+.....oo223oo3w132occ31o..
+......o123oo1w32233b2o...
+.oo.oo112223332233c21o...
+o31311233333223333c3o....
+ooo122ooooo2333oo3o3o....
+.oo2oo.....ooooo3ooo.....
+..oo........oo33333o.....
+.............o33333o.....
+.............oc3213o.....
+.............o332133o....
+............occ1133o.....
+............ocb1133o.....
+...........obaa113o......
+...........o111133o......
+...........oaa11333o.....
+..........o211113oo......
+.........oaaa1113o.......
+.........oaaa1133o.......
+.........o21111333o......
+........oaaa11113o.......
+........oaaa1A133o.......
+........o111111333o......
+........oaaab1113o.......
+.......ob2B2b2133o.......
+.......o2bbbb2133o..o....
+.....oo22b21b21133ocbo...
+....o1cbbb33b113113ocbo..
+...o2obbbbbbb1331113oco..
+..o13b13bc2b213o22113obo.
+..o1ob33bb3b213o331113oo.
+.o22obbbbbbbb11ooo11223o.
+.o12obabb21bb13oo3333221o
+.o1ooo33b33bb322o13oo323o
+.o3ooc33bbbbc32233ooco3o.
+..oo.ocbbbc2cc323ooooo3o.
+.....oc3cc33cc33333o..o..
+......o33cccc3c3323o.....
+.......oocccocco322oT....
+.........occcoocc223o....
+..........oooo.oc322o....
+.........o22ooo.oc23oo...
+.........o13o3o.oc23o....
+........o13o.oo.oo3oo....
+........o22o.o.oc23o.....
+........o321oooc13oo.....
+.........o3221133oo......
+..........o33o33oo.......
+...........oPoooo........
diff --git a/parts_pl_src/body/pl_seahorse_d.txt b/parts_pl_src/body/pl_seahorse_d.txt
new file mode 100644
index 0000000..26ce87c
--- /dev/null
+++ b/parts_pl_src/body/pl_seahorse_d.txt
@@ -0,0 +1,63 @@
+# pl_seahorse_d: from pixellab_src/pl_seahorse_d/base.png (variant of pl_seahorse) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 36)
+# head_top at (32, 16)
+# back at (29, 36)
+# tail at (40, 50)
+...........o.............
+...........o.............
+..........o1o............
+..........o1o............
+..........o1o............
+..........o1o............
+.........o12o............
+.......o.o12o..o.........
+......oo.o12o..o.........
+......o2oo12o.o2.........
+......o2oo12o.o2...o.....
+......o2oo12o.o2o.oo.....
+......o2oo12o^12o.oo.....
+......o2oo12oo12oo3o.....
+.......o1o12oo12oo3o.....
+.......o1312oo12o33o.....
+.......o21122122o3o......
+.......o2112222233o......
+.......o3212222333o......
+.......o3212333333o......
+.......o13331112333o.....
+......o21111o1122313o....
+......o21112ooo2223o.....
+.....o13113oaao32233o....
+.....oa322oaoa1323o33o...
+.....oo223oo3a132occ31o..
+......o123oo2a323ooc2o...
+.oo.oo12222333223oc21o...
+o31311233333223oooc3o....
+ooo233ooooo3ooooo3o1o....
+.oo2oo..oooooooooooo.....
+..oo..o2o33333oo112oo....
+.....o13o2B22Ao11111o....
+....o11o233322o111122o...
+....o2o1231112o221133o...
+....oo313111333o223311o..
+...o3o133333333oo33133o..
+..o1o11o31112333oo33323o.
+..o2o21321112333ooo3213o.
+.o12o3232113333333oo222o.
+.o12o2333332133233o13221o
+.o2oo2232112233233o3o323o
+.o3oo32322223332333ooo2o.
+..oo.o3333332232333o.o3o.
+.....o22322223333333o.o..
+......o2332233233123o....
+.......o333322o331233T...
+........oo3323o313o23o...
+..........oooo.o31223o...
+.........o22o3o.o3333o...
+.........o23o3o.o2113o...
+........o13o.oo.o3333o...
+........o32o.o.o212oo....
+........o321ooo2133o.....
+.........o32211323o......
+..........o33323oo.......
+...........oPoooo........
diff --git a/parts_pl_src/body/pl_seal.txt b/parts_pl_src/body/pl_seal.txt
index 56374bf..f93eb01 100644
--- a/parts_pl_src/body/pl_seal.txt
+++ b/parts_pl_src/body/pl_seal.txt
@@ -1,9 +1,9 @@
# pl_seal: from pixellab_src/pl_seal/base.png (pixellab_library.py extract)
# pivot at (34, 60)
# aura at (30, 45)
-# head_top at (26, 30) (from part)
-# back at (39, 39) (from part)
-# tail at (45, 54) (from part)
+# head_top at (26, 30) (from part/probe)
+# back at (39, 39) (from part/probe)
+# tail at (45, 54) (from part/probe)
...........ooooooo..................
.........oo1111112oo................
.......oo11111111123oo..............
diff --git a/parts_pl_src/body/pl_seal_b.txt b/parts_pl_src/body/pl_seal_b.txt
new file mode 100644
index 0000000..03d4b4d
--- /dev/null
+++ b/parts_pl_src/body/pl_seal_b.txt
@@ -0,0 +1,43 @@
+# pl_seal_b: from pixellab_src/pl_seal_b/base.png (variant of pl_seal) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 44)
+# head_top at (26, 25)
+# back at (39, 39)
+# tail at (52, 54)
+...............ooooooo.....................
+.............o^1111111ooo..................
+...........oo111111111133oo................
+..........o2111111111111333o...............
+.........o111111111111111333o..............
+........o11111111113111111333o.............
+........o11311111111111111333o.............
+.......o2o3111111113oo2111333co............
+.......o2wo11111113o22o22233cco............
+.......o2oo1111111owoowo223ac3o............
+......o22oo1111211oooow222ab333o...........
+......o11a21aaaa122aoa21122ac33o...........
+.....oaaa211bboa111221aaa22cc33o...........
+.....oaa11111b1111211aaaa2cc333o...........
+.....ooo21211b1112111ooo223cc33o...........
+.....o321111ooo111122111223Bcc33o..........
+......ooo22o211o2222oo1223333333co.........
+.....oo31oo11111ooo111o23333332ccco........
+......o231111111111113333333222ac3o........
+.....o21333111111113333332222222233o.......
+.....o11113333333331A1322222222232co.......
+....o211111111111111111222222222a23o.......
+....o2111111111111111112222222222233o......
+...o222111111111111111122222222222c3o......
+...o222111111111111111222223222222c3o......
+..o123211111111111111322222322222233o......
+..o12o111111111111111321222333222233ooo....
+..o22o1111111111111123212223o3222333o22o...
+..o22o31111111111111o2222223o322ac33o22o...
+..o323o1111111111111o2222223o32aac33o22o...
+..o333oo111111111111o3222223o32cc33oo33oT..
+...o333o112111111111o3322233o33cc33o33222oo
+..o12333o11111111111oo333333o33333o3333333o
+.o1122333o11111111111o322223o3333ooooooooo.
+o23333333ooo11111111o22212223333oo.........
+.oooooooo...ooooooooo223223333ooo..........
+....................oPoooooooo.............
diff --git a/parts_pl_src/body/pl_seal_c.txt b/parts_pl_src/body/pl_seal_c.txt
new file mode 100644
index 0000000..74903b9
--- /dev/null
+++ b/parts_pl_src/body/pl_seal_c.txt
@@ -0,0 +1,56 @@
+# pl_seal_c: from pixellab_src/pl_seal_c/base.png (variant of pl_seal) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 38)
+# head_top at (26, 11)
+# back at (35, 39)
+# tail at (49, 54)
+...........o^ooooo...................
+........ooo11111113oo................
+......oo1111111111133oo..............
+.....o31111111111111333o.............
+.....o11311113311111233o.............
+....o3o111111113oo212333o............
+....oowo1111112o32o22333o............
+....owoo111111owoowo233cco...........
+....owoo211122oooow223ac3o...........
+....owababb112oaoaw22ab33o...........
+...o221oooo11113322223acco...........
+...o2111oo11111113222acc3o...........
+..oo21212211213112ooocc33o...........
+.o.o2212oo21112132o2333cco...........
+...o222o32o2222322o23333o............
+..o.ooo3222oo2222o2o3333o............
+.o...oo322222oooo233o333o............
+.......oo322223323333333o............
+.........o333322223333co.............
+.........o322222223233co.............
+.........o222222212233co.............
+.........o111111112233o..............
+.........o1111111222a3o..............
+........o11111111222aco..............
+........o1111111122233o..............
+.......o11111111122a3o...............
+.......o11111111222aco...............
+.......o11111111A22aco...............
+.......o1111111122233B...............
+......o11111111122233o...............
+......o1111111112223co...............
+......o1111111112223co...............
+.....o11111111122223c3o..............
+.....o111111111222223c3o.............
+.....o11111111122222233co............
+.....o111111111222222333co...........
+.....o111111111222222233c3o..........
+.....o2111111111222222233cco.........
+.....o22111111112222222333c3o...o....
+....o23211111111223222233333o..o2o...
+....o2321111111122322233o3333.o22o...
+....o2321111111122322233o333co222o...
+....o2332111111123322333o3333o223o...
+....o2333211111223322333o3333o333ooT.
+...oo333o222222223o22333o3333o332223o
+.oo22o33o322222222o2233ooo333o333333o
+o3322o33oo32222222oo223333oooooooooo.
+o3333333ooo3222222oo32223333o........
+.ooooooo..oooooooooo333332233o.......
+....................Pooooooooo.......
diff --git a/parts_pl_src/body/pl_seal_d.txt b/parts_pl_src/body/pl_seal_d.txt
new file mode 100644
index 0000000..8c1006e
--- /dev/null
+++ b/parts_pl_src/body/pl_seal_d.txt
@@ -0,0 +1,45 @@
+# pl_seal_d: from pixellab_src/pl_seal_d/base.png (variant of pl_seal) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 44)
+# head_top at (26, 22)
+# back at (39, 39)
+# tail at (51, 54)
+............^o.........................
+...........o1o.........................
+..........o11o..oooo...................
+.......ooo1111oo1111ooo................
+.......o211111111111122oo..............
+.....o.o211111111222222ooo.............
+....o2o221111211222111111o.............
+....o211311113222111112222o............
+.....2213311333111112222222o...........
+....o2233311333111111111123o...........
+....o2o333133312oo111122113o...........
+....oowo3333312o22o212222212o..........
+....o1oo333331owoowo122bb222o..........
+....owao111211oooow112ab3o22o..........
+...o1o2cacc112oaoaw11ac33o222o.........
+...o211oooo1111o211122abbo222o.........
+...o1111oo1111111o112abb3o2o2o.........
+.ooo21212111212111ooobb33B2o3o.........
+o..o2212oo21111122o22o3bbo2ooo.........
+...o222oo2o2222222o22222222o...........
+..o.ooo3222oo2222o2o2222222o...........
+.o.o212222222oooo222o2212222o....oo....
+...o11121122222222A122211222o..ooaooooo
+..o1111111211111211112221122o.o1aacaaco
+..o1131111111111111112221122ooo1aaaaao.
+..o11311121111113111122231222o1111aaco.
+...o1311121111133111333221122o11111cco.
+...o1311331111133113331222122o11111ccao
+....o3113311113312333111o2222231111caao
+....o3113331133313331111322222321112cco
+....oo3113311331333111113o2223221122cco
+....oo33133313313o3111113o222o222222co.
+...o13o3313332333o3111113o322o22222ccT.
+...o11oo331333133o3111113o322o22233cco.
+.oo1113o333233323oo211113oo33o33333oo..
+o1111333o33333333oo31111113oooooooo....
+o3333333oo333333o3o331112212oo.........
+.ooooooo..oooooooooo333322222o.........
+....................Pooooooooo.........
diff --git a/parts_pl_src/body/pl_secretary.txt b/parts_pl_src/body/pl_secretary.txt
new file mode 100644
index 0000000..45d118e
--- /dev/null
+++ b/parts_pl_src/body/pl_secretary.txt
@@ -0,0 +1,48 @@
+# pl_secretary: from pixellab_src/pl_secretary/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 37)
+# head_top at (29, 24) (from part/probe)
+# back at (40, 33) (from part/probe)
+# tail at (39, 42) (from part/probe)
+......................o.............
+.....................o3..o..........
+.....................o3oo3o.........
+....................o33o3o..........
+............ooooooo.oaoa3o..........
+..........oo211^223oocoao...........
+.........o31111112223obcoooo........
+........o3211112222223oo3333o.......
+........oba2222bbbb223cc33o.........
+........oob22bbooocb23ooo.....ooo...
+........o1cbbbo1oa2b222o.....o11o...
+........ooccbbooc11b223o...oo111o...
+........oxxzcboc113223o....3o33ooooo
+.......o1zzzbcbbbb223o....o3333o111o
+......oxzzbbbc222223oo....B3333o31o.
+......obooooo32223oo.....o3333o33oo.
+......o......o3333o.....o3333o33oo..
+.......oo...o11123ooooooo333o33o....
+.......o2ooo111113A21123ooo33oo.....
+.......oo2o1111113321122233oooooo...
+........o3o111112232222233b333b33oo.
+........o3o211112233222333b333333o..
+..o......oo11113223oo33333333oooo...
+.ozo......oo132222333oo33T33cc33o...
+.o3zo......o3222233333oooooooooo....
+ozczo.......o333333333o.............
+.obzo.....oo3o33333ooo..............
+..ozzooooo33ooooooo.................
+...ozzzzbc3o....o3o.................
+...ozoooooo.....o3o.................
+....oo..........o33o................
+................o33o................
+................o3oo................
+.................oco................
+.................obo................
+.................obo................
+.................obo................
+.................ozo................
+.................ozo................
+..............oooyzbo...............
+............oozzzyozbo..............
+..............oooPoo................
diff --git a/parts_pl_src/body/pl_secretary_b.txt b/parts_pl_src/body/pl_secretary_b.txt
new file mode 100644
index 0000000..1db40b6
--- /dev/null
+++ b/parts_pl_src/body/pl_secretary_b.txt
@@ -0,0 +1,48 @@
+# pl_secretary_b: from pixellab_src/pl_secretary_b/base.png (variant of pl_secretary) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 38)
+# head_top at (29, 23)
+# back at (40, 33)
+# tail at (47, 42)
+......................o............
+.....................o3..o.........
+.....................o3oo3o........
+....................o33o3o.........
+............ooo^ooo.obob3o.........
+..........oo2222223oocobo..........
+.........o32222222223obcoooo.......
+........o3222222222223oo3333o......
+........obb2222bbbb223cc33o........
+........oob22bbooocb23ooo.....ooo..
+........o1cbbbo1o12b223o.....o11o..
+........ooccbbooc1ab223o...oo111o..
+........oxxycboca132223o..o2o112o..
+.......o1yyybcbbbb222232o.o221121oo
+......oxyybbbc2222222222ooB3212211o
+......ob22222222222221123o3333211o.
+......o311222211111123333o3333112o.
+.....o2111111111111222223o33331111o
+.....o21111111111122222222o3333322o
+....o2212121211211A22222222o33333o.
+....o221112121121232222222ooo3333o.
+.....33211111112123222222o23o33333o
+..o..o3221111111123222232333333333o
+.oyo.o32212111211223322233oo33333T.
+.o3yo.o3212211221122o333333o333oo..
+oycyo..o2222212221222oooooo.ooo....
+.obyo...oo22222222222223oo.........
+..oyyoooo2332222222222oo...........
+...oybbbc22333223333oo.............
+...oycccc3333ooo3333o..............
+...oyoooooooo...o333o..............
+....o...........o223o..............
+................o2233o.............
+................o3233o.............
+.................o333o.............
+.................obcco.............
+.................obco..............
+.................obco..............
+.................oybo..............
+..............oooyybo..............
+............ooyyybbybo.............
+..............oooPoo...............
diff --git a/parts_pl_src/body/pl_secretary_c.txt b/parts_pl_src/body/pl_secretary_c.txt
new file mode 100644
index 0000000..fac5893
--- /dev/null
+++ b/parts_pl_src/body/pl_secretary_c.txt
@@ -0,0 +1,63 @@
+# pl_secretary_c: from pixellab_src/pl_secretary_c/base.png (variant of pl_secretary) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 31)
+# head_top at (29, 8)
+# back at (40, 33)
+# tail at (46, 42)
+......................o.............
+.....................o3..o..........
+.....................o3oo3o.........
+....................o33o3o..........
+............ooo^ooo.oaoa3o..........
+..........oo2222223oocoao...........
+.........o32222222223oacoooo........
+........o3222222222223oo3333o.......
+........ob222222aab223cc33o.........
+........oba2222acoob23ooo...........
+........ooc22aboo11b222o............
+........o1oaaco1o1cb223o............
+........ooccaaooo1ac22o.............
+........oxxzcaccccb223o.............
+.......o1zzzbcbbbb223o..............
+......oxzzbbbc2222233o..............
+......obooooo33222333o..............
+......ob.....ooo33333o..............
+...............o33333o..............
+...............o33323o..............
+...............o22323o..............
+...............o11223o..............
+...............o11223...............
+..............o11122o...............
+..............o11122o.........ooo...
+..............o11122o........o11o...
+..............o11222o......oo111o...
+.............o1112A2o......3o33ooooo
+.............o111222o.....o3333o111o
+.............o11122o......B3333o31o.
+.............o11122o.....o3333o33oo.
+............o111122o....o3333o33oo..
+............o111122oooooo333o33o....
+...........o111112222223ooo33oo.....
+..........o1b11b12222222233oooooo...
+..........o111111232222233a333a33oo.
+..........o211112233222333a333333o..
+..o.......o2b11b223oo33333333oooo...
+.ozo......o3222b22333oo33333bb33T...
+.o3zo......o3222233333oooooooooo....
+ozczo.......o333333333o.............
+.obzo.....oo3o33333ooo..............
+..ozzooooo33ooooooo.................
+...ozyyybc3o....o3o.................
+...ozoooooo.....o3o.................
+....oo..........o33o................
+................o33o................
+................o3oo................
+.................oco................
+.................obo................
+.................obo................
+.................obo................
+.................ozo................
+.................ozo................
+..............ooozzbo...............
+............oozyyzoybo..............
+..............oooPoo................
diff --git a/parts_pl_src/body/pl_secretary_d.txt b/parts_pl_src/body/pl_secretary_d.txt
new file mode 100644
index 0000000..a2eaef6
--- /dev/null
+++ b/parts_pl_src/body/pl_secretary_d.txt
@@ -0,0 +1,50 @@
+# pl_secretary_d: from pixellab_src/pl_secretary_d/base.png (variant of pl_secretary) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 37)
+# head_top at (29, 18)
+# back at (40, 33)
+# tail at (45, 42)
+................oo................
+..............o^23ooo.............
+.............o3223223o............
+.............o2222233o............
+............o22222233o............
+...........o2222222223o...........
+..........o322222222223o..........
+.........o22222222222223o.........
+........o2122222112222233o........
+........o2222222222222223o........
+........oo22222ooo3222223o........
+........owo222owo232222233o.......
+........ooob22ooo132222233o.......
+........ooxzb2oo1211222233o.......
+.......ozxzzzb222111222333o.......
+.......obbbbbb222111223333o...ooo.
+........o33333222222233333Booo22o.
+.......o323332222223333333333322o.
+......o3111111222222322233333322o.
+......o1111111222223222222333332o.
+.....o21111111112A332222222333333o
+.....o21111111112233222222223o333o
+.....o22111111111333322222233333o.
+.....o32111111112333332223333o33o.
+..o..o32211111111333o33322o3o33o..
+.oyo..o33111111113333o33333o333T..
+.o3yo.o333111121113333ooooo3333o..
+ozczo.o33331212131333333333333o...
+.oazo..o333321133333333333333o....
+..ozzoooo33333333333333333333o....
+...ozzzzac33333333333333333oo.....
+...ozoooooo333333333333333o.......
+....oo.....oo3333333333ooo........
+.............oooooooooo...........
+.................oco..............
+.................oao..............
+.................oao..............
+.................oao..............
+.................oao..............
+.................ozo..............
+.................ozo..............
+..............oooyzao.............
+............oozzzyozao............
+..............ooPooo..............
diff --git a/parts_pl_src/body/pl_shoebill.txt b/parts_pl_src/body/pl_shoebill.txt
new file mode 100644
index 0000000..40906df
--- /dev/null
+++ b/parts_pl_src/body/pl_shoebill.txt
@@ -0,0 +1,48 @@
+# pl_shoebill: from pixellab_src/pl_shoebill/base.png (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 40)
+# head_top at (32, 24) (from part/probe)
+# back at (32, 34) (from part/probe)
+# tail at (48, 46) (from part/probe)
+................oooooo............
+...............o3222oo............
+..............o31123oooo..........
+..............o2123o333o..........
+...........oooo11233oooo..........
+..........o211211^2233ooo.........
+........oo211111111112233o........
+......oo211111111111112233oo......
+......ooo1112121111113oo333o......
+......oooo1131321111oooo2333o.....
+.......oooo3o2o321ooooo22233o.....
+......o31oooo3oooooo1132223oo.....
+......o3w221oooo1w22w132233oooo...
+.....o231w1oczzco1www132233323o...
+....o22233ozyyyzco333332232333o...
+....o3322oz11yyyzBo2222122333oo...
+.....o33oy1111yyzzco3223333333o...
+....ooooy11111yyzzzco333333oooo...
+...o23o11111111yzzzzco333ooooo....
+..o33o1ooo11111yzzczcooooo3223oo..
+..ooo1oaao11111zzzoocoooo211122o..
+.oy11oaaaoo111yzzAoocooo32111223o.
+.oy11oaao1111yzzzoocoooo32112233o.
+ozzy1oaaoyy1yzzoooccooo332222233oo
+ozzzzocoozzzzzzooccoooo33322333o3o
+ocozzzoozzzzzzooccbooooo333233o3oo
+ocoozzzzcccoozoccbooooooo3333o3o3o
+.ozozzzzooooozccbooo3ooooo3o33o33T
+.oczzzzzzoozzzcboooo3ooooooooo33oo
+..occcczzzzccccoooo3333ooooo333ooo
+...ooccccccccooooo333333ooooo3ooo.
+.....oooooooooooo3333333oooooooo..
+......oooooooooo333333ooooooooo...
+.......ooooooooooo33ooooooooo.....
+.........oooooooooooooooooo.......
+..........oooooooooooooooo........
+..........obo.oooooooo.obo........
+..........oco..........oco........
+........oozzo..........ozco.......
+.......oyzyzc.........ocyzyo......
+......ooooyoo........ooyoooyo.....
+.........oP............o...o......
diff --git a/parts_pl_src/body/pl_shoebill_b.txt b/parts_pl_src/body/pl_shoebill_b.txt
new file mode 100644
index 0000000..c2e9127
--- /dev/null
+++ b/parts_pl_src/body/pl_shoebill_b.txt
@@ -0,0 +1,52 @@
+# pl_shoebill_b: from pixellab_src/pl_shoebill_b/base.png (variant of pl_shoebill) (pixellab_library.py extract)
+# pivot at (38, 60)
+# aura at (32, 38)
+# head_top at (32, 15)
+# back at (32, 34)
+# tail at (52, 46)
+....................o^oo...................
+...................oo233o..................
+...............oooo321133oooo..............
+.............oo22222111132222o.............
+...........oo11211111111111122o............
+..........o22111111111111111113ooo.........
+........ooo11111111111111111111222o........
+.......o222111211111111121111212223o.......
+.......o2111111111111111111112222233o......
+......o22221111111111111111112222333oo.....
+.....o3222o31111111111111112222222233oo....
+.....o3o22ooo21112112111112ooo222222ooo....
+....o333222ooo211321311122ooo32222223oo....
+...o32322223ooo32oo2322ooooo33222222o3oo...
+...o2222222311ooooooooooo11333222222oooo...
+..o2212222231w231oooo3122w1333222223ooooo..
+..o21112222331w1oy1yyo1www133322223322ooo..
+.o2211122222333oy1ycyzo333333322222222ooo..
+.o221111222222oy1yyyyyzo33332222222222oooo.
+.oo21112222222oy1yyccBzo332222222222222o33o
+o3o22111222222oyyccyzzo32222222222222222o3o
+o32222113222222oozzzoo322222222221111222ooo
+o3222112o22222233ooo3332222222232111113oooo
+o3322223o221112233333A22111222o32111112ooo.
+.oo222232211112222222111111122o32211212ooo.
+oo32222o2111111111121111111122ooo222222oooo
+oo3222oo2211a111111111111112223oo32223ooooo
+oo3322322211a1111111111a1112223ooo2232ooooo
+oooo2o32221112111111a11a1122222oooo23o3oooo
+oooo2o32222112121112122112222223oooo333ooo.
+.ooooo32a222222221122222222222223oooo3oooo.
+.ooooo333222a2222222222a222222223ooooooooT.
+..oooo333222a2222232222a222222333oooooooo..
+..oooooo33322222222222222222a2333oooooooo..
+...oooooooo32222222222222222223ooooooooo...
+...oooooooo3333222223322322233ooooooooo....
+....o3oooooooo32332233333333ooooooooo......
+.....oooooooooo333333o333oooooooooooo......
+.......ooooooooo333ooooooooooooooooo.......
+........oooooooooooooooooooooooooo.........
+..........ooooooooooooooooooooooo..........
+.............ooooooooooooooooo.............
+............oobbo.ooo.oooo.obbo............
+...........oyzyzb.........obyzyo...........
+..........ooooyoo........ooyoooyo..........
+.............oo............P...o...........
diff --git a/parts_pl_src/body/pl_shoebill_c.txt b/parts_pl_src/body/pl_shoebill_c.txt
new file mode 100644
index 0000000..5d3ce4b
--- /dev/null
+++ b/parts_pl_src/body/pl_shoebill_c.txt
@@ -0,0 +1,63 @@
+# pl_shoebill_c: from pixellab_src/pl_shoebill_c/base.png (variant of pl_shoebill) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 29)
+# head_top at (32, 4)
+# back at (32, 34)
+# tail at (38, 46)
+.................^ooo.............
+................o113o.............
+.............ooo112oooooo.........
+.............2o3113o3113o.........
+............o1o1123212ooo.........
+............o131121133ooo.........
+............o111111332222oo.......
+..........ooo2111113ooo3333o......
+.........o111211111113o33ooo......
+........o111111111111233ooo.......
+.......o11111111111112233o3o......
+.......oo11111211111oo2233o3......
+.......ooo11313111oooo2223ooo.....
+......o31oooo23oooo11322233oo.....
+......o31221oo3112211322233o......
+.....o13111oooo1111113223323o.....
+....o11233ozyyooo33332223233o.....
+....o3223oy1yyyzbo322212233oo.....
+.....o33oy111yyzzbo3222233oo......
+....ooooy1111yyzzzbo32333ooo......
+...o33o1111111yzzzzbo333oooo......
+..o33o1ooo1111yzzbzbooooo311o.....
+..ooo1oaao1111zzzooboooo31111o....
+.oy11oaaaoo111zzzoobooo3111112o...
+.oy11oaao1111yzzooboooo3111111o...
+ozzy1oaaoyy1zzzooAboooo32211133o..
+ozzzzoboozzzzzooobooo3o3321223ao..
+obozzzoozzzzzoobbcoo33o333333abco.
+oboozzzzbboozobbcooo33obb3bacabco.
+.ozozzzzoooozbbcooo333ooabcbab3oo.
+.obzzzzzzozzzbcooBo333oocb33b333o.
+..obbbbzzzbbbboooo3333oo333232333o
+...oobbbbbbbooooo333333oo322322o3o
+.....ooooooooooo3333333oooo2232ooo
+.....oooooooooo3333333ooooo22322oo
+......ooooooo3oo333ooooooooo2332oo
+.......ooooooooo333oooooooooo333oo
+........ooooooooooooooooooo..o33o.
+.........o3oooooooooo333oo....oo..
+.........o33ooooooooo333o.........
+..........o3oo......o333o.........
+...........ooo.......ooo..........
+...........obo.......obT..........
+...........obo.......obo..........
+...........ozbo......ozzo.........
+...........oyzo......oyzo.........
+...........oybo......oybo.........
+...........oyo.......oyo..........
+...........oyo.......oyo..........
+...........oyo.......oyo..........
+...........oyo.......oyo..........
+...........oyo.......oyo..........
+...........oyo.......oyo..........
+.........ooyybo.....oyyo..........
+........oyzybozo...oybcyo.........
+.......ooooyo.oo..oyoooyo.........
+..........oo.......P...oo.........
diff --git a/parts_pl_src/body/pl_shoebill_d.txt b/parts_pl_src/body/pl_shoebill_d.txt
new file mode 100644
index 0000000..4b5a8f1
--- /dev/null
+++ b/parts_pl_src/body/pl_shoebill_d.txt
@@ -0,0 +1,64 @@
+# pl_shoebill_d: from pixellab_src/pl_shoebill_d/base.png (variant of pl_shoebill) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 34)
+# head_top at (32, 3)
+# back at (32, 34)
+# tail at (48, 46)
+................o^o...............
+...............o33o...............
+..............o213o...............
+.........ooo.o2133o..oooo.........
+........o33o.o1133o.o333o.........
+........o13oo1113ooo213oo.........
+........o133o1113oo1123o..........
+........o113o1133o2133oooooo......
+.....oooo113o1133o1133oo333o......
+.....o33o113o113o2133o2113oo......
+.....o33oo13o113o223o3233oo.......
+.....oo33o23o213o22oo333ooo.......
+......o33o22o323o33o33ooooooo.....
+.......oooo2o333o3oo33oo3333oo....
+........ooooo333o3oooooooooooo....
+.........o32233322223oooooooo.....
+........o2112222211112oooo........
+......oo311111111111123o..........
+......ooo11111111111oo3o..........
+......oooo11311111oooo33o.........
+.......oooo3o311ooooo223o.........
+.......o3woooooooow13223o.........
+......o33w1o1yo3www13222oo........
+......o223o11yyo3333223ooo........
+......o22o11yyyzo322223oo.........
+......o32o1yzoooz3223o3oo.........
+.......ooo1yobbbo3333ooo..........
+........ooyoooccccooooo...........
+.........oo.obbbbbbbo.............
+..........oobzzzzzzboooo..........
+..........oozyyyyyzbboooo.........
+.........oozy111ABzzbbo33oo.......
+.......ooozyy1111yyzzzo3333o......
+......o2oyy111111yyzzo333333o.....
+....oo22oyy111111yzzo33333oooo....
+...o3o21oyyy111yyyoo33333o3123o...
+..o2o3111oyyyyyyoo111333o211122o..
+.o2oo21111ooooo311111333o2111223o.
+.o3o3211111111111111123o32112233o.
+o33o2211111111111112223o32222233oo
+o3occ211111111111112223o3322333o3o
+o3obbccccccccccccccccccoo33233o3oo
+ooobaaaaaaaaaaaaaaaabccoo3333o3o3o
+.oobbaaaaaaaaaaaaaabcccooo3o33o33T
+.oocbbbaaaaaaaaaabbbccccoooooo33oo
+.oooccccccccccccccccccc3oooo333ooo
+..ooo3333333333333333333ooooo3ooo.
+..oooo333333333333333333ooooooooo.
+...oooo3333333333333333ooooooooo..
+....ooooo333333333333oooooooo.....
+....ooooooo33333oooooooooooo......
+......ooooooooooooooooooooo.......
+.......ooooooooooooooooooo........
+.........ooooooooooooooobo........
+........oobbo..........ozbo.......
+.......oyzyzb.........obyzyo......
+......ooooyoo........ooyoooyo.....
+.........oP............o...o......
diff --git a/parts_pl_src/body/pl_silverfish.txt b/parts_pl_src/body/pl_silverfish.txt
new file mode 100644
index 0000000..a76aa31
--- /dev/null
+++ b/parts_pl_src/body/pl_silverfish.txt
@@ -0,0 +1,36 @@
+# pl_silverfish: from pixellab_src/pl_silverfish/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 46)
+# head_top at (24, 41) (from part/probe)
+# back at (37, 39) (from part/probe)
+# tail at (50, 42) (from part/probe)
+.oo.......o...............................
+..bo.......o..............................
+..oao......oo.............................
+..obo......ao.............................
+...oao.....co.......................oooo..
+...obo.....oao....ooooooooo.......oo2212o.
+....oao....oao.ooo322132222ooooooo2131123o
+....obo....oaoo21121111321132223213113233o
+.....bao...oao211112211231B23212321332o33o
+.....oao.oo3ac1211111321132113212322o33o3o
+.....oaoo321a^1133311131113212322o323o3oco
+.....oaobbaaac1121131123223322o3233333oTo.
+.....oab2222aba321113221333o3232332o33cao.
+.....oab2112ab3ao111o32233o32332o33o3cao..
+....o2ac1112ab33a332o232o2332o33o3obcao...
+...o21111111ab323ao3A2oo32o33o3o3obabo....
+..o211111111122223ao323333ooo3o33baco.....
+..oo11111111112223ac333o3o3o33occao3o.....
+.o1cc1111111oooo233ao3o3o333occoao333o....
+.o1ac111111oo111o33aoo33oc3obooaooobao....
+.o1cc21111cwocw1o33bocc3obcbo31o...ooo....
+.obcc22222coobwwo33bococbobac331o.........
+.oo2222222co13w133caoaobacaooa33o.........
+.oo32oooo22bbaa333baoboacoo..oabo.........
+o3ab3ooooo2222333ca3oobo33o...oo..........
+oaooc3333333333ccao31oo3211o..............
+oo..ooccccccbbaaoob32o.oooo...............
+......oooooooooo..oa3o....................
+...................obo....................
+....................P.....................
diff --git a/parts_pl_src/body/pl_silverfish_b.txt b/parts_pl_src/body/pl_silverfish_b.txt
new file mode 100644
index 0000000..24d0258
--- /dev/null
+++ b/parts_pl_src/body/pl_silverfish_b.txt
@@ -0,0 +1,45 @@
+# pl_silverfish_b: from pixellab_src/pl_silverfish_b/base.png (variant of pl_silverfish) (pixellab_library.py extract)
+# pivot at (33, 57)
+# aura at (32, 39)
+# head_top at (24, 25)
+# back at (37, 39)
+# tail at (56, 42)
+.bo........o....................................
+..co.......co...................................
+..oco......oc...................................
+..obo......oao.........ooooo....................
+...obo.....obo.......oo21111ooooo...............
+...obco....oco...ooooo3111111ocbbo..............
+....obo.....ob^.ocbbbaac111112oaaaooo...........
+....oco.....obooccbbaaaaao1112ocaac22o..........
+.....obo....oao1111oaaaaao223111caao1oo.........
+.....obo...o3ao11111obaaaaa31111oaaa113o........
+......bbo.o31bc1111131caaaac11111oabo13oo.......
+......oboo321bc11112211caaaao1133obbo33oo.......
+......oaoo3oobc111121111oaaao3333obbo33o3o......
+......obo3bbbacoo1211111oabbb3333obbbooo3o......
+......obc2222acbbo2111113obbbooooobbbo3o3o......
+.....o2bc2112bc3bbo111223obbbo2133obbo3ooooo....
+....o22bc1112bc32bbo22233obbbbo113obbo3o3o2o....
+...o211111111bc323bc33ooo3obbbo333obbo3o3o2oo...
+..o2111111111122223bo33113obbbo333obbooo3oo2o...
+..oo111111111112223bc333113obbo33oob333o3oo3ooo.
+.o1cc11111111oooo233aoA3313Bbbooooo33113ooo3o12o
+.o1wc1111111oo111o33aoo3333occoo3oo311113oooo23o
+.o1cc211111cwocw1o33boo3333occo33oo111113oooo3co
+.o2cc222222coocwwo33booooooocco33oo111113oobobT.
+.o2cc222222cooowwo33bcooo3occco3ooo3211b3obboo..
+.o222222222co13w133cbc333ooccco3ooo3333b23oo....
+.o31oooooo22bbbb333cb33222ooco33cco3333333o.....
+.oc3ooooooo2222333cbo321b22ocoocccoo333333o.....
+..ocb33333333333ccboo3111123o33oco..ooo333o.....
+..oooccccccccccbbbooo32111233322o...o33333o.....
+..o33ooooooooooooo3oo32111133321o..o333223o.....
+..o33obbcccccccooo3o3oo111133331o..o2o323o......
+.o1333ooooooooooooooco211133oo33o..oooooo.......
+o133ooooo3333ooccooco3211133oo33o...............
+o331oooooocccccooocco3333333o.o3o...............
+.ooooooo.oooooooocco2222333o...o................
+...........oooooooo13322ooo.....................
+..................o2313ooo......................
+..................oooooPo.......................
diff --git a/parts_pl_src/body/pl_silverfish_c.txt b/parts_pl_src/body/pl_silverfish_c.txt
new file mode 100644
index 0000000..8496c92
--- /dev/null
+++ b/parts_pl_src/body/pl_silverfish_c.txt
@@ -0,0 +1,38 @@
+# pl_silverfish_c: from pixellab_src/pl_silverfish_c/base.png (variant of pl_silverfish) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 46)
+# head_top at (24, 36)
+# back at (37, 39)
+# tail at (56, 42)
+o.................................................
+.o................................................
+.oo.......o.......................................
+..bo.......o......................................
+..oao......oo.................................ooo.
+..obo......ao................................o323o
+...oao.....co...............................o3123o
+...obo.....oa^....ooooooooo.............oooo211o3o
+....oao....oao.ooo322132222ooooo......oo2221232oco
+....obo....oaoo21121111321132222oooooo222ac11oobo.
+.....bao...oao211112211231B232ab21132131ob2o33oco.
+.....oao.oo3ac1211111321132113ca321131133o31o3ao..
+.....oaoo321ac1133311131113212o32321o3ob3o33oao...
+.....oaobbaaac1121131123223322o32o332o3b33boaT....
+.....oac2222aba321113221333o32323obo21oo3baoo.....
+.....oac2112ab3ao111o32233oac331obab33ocbboo......
+....o2ac1112ab33a332o332o2ocao33occo3oaaoo........
+...o21111111bb323ao33Aco32occo3o3oobcaoo..........
+..o211111111122223ao3cao33ooo3o31oacoo............
+..oo11111111112223ac3cco333obao33ao3o.............
+.o1cc1111111oooo233ao3o3oa3ocaooao333o............
+.o1ac111111oo111o33aoo33ocaocoocooobao............
+.o1cc21111cwocw1o33bobb33oobo31o...ooo............
+.occc22222coocwwo33bocacbobac331o.................
+.oo2222222co13w133caocccacaooa33o.................
+.oo32oooo22bbaa333baoooacoo..oaco.................
+o3ac3ooooo2222333ca3oobo33o...oo..................
+oaooc3333333333ccao31oo3211o......................
+oo..ooccccccccaaoob32o.oooo.......................
+......oooooooooo..oa3o............................
+...................obo............................
+....................P.............................
diff --git a/parts_pl_src/body/pl_silverfish_d.txt b/parts_pl_src/body/pl_silverfish_d.txt
new file mode 100644
index 0000000..c292efe
--- /dev/null
+++ b/parts_pl_src/body/pl_silverfish_d.txt
@@ -0,0 +1,55 @@
+# pl_silverfish_d: from pixellab_src/pl_silverfish_d/base.png (variant of pl_silverfish) (pixellab_library.py extract)
+# pivot at (34, 57)
+# aura at (30, 37)
+# head_top at (24, 21)
+# back at (37, 39)
+# tail at (48, 42)
+.oo..........o...........................
+..co..........oo.........................
+...co.........oo.........................
+...obo.........oo........................
+...oco.........bo........................
+....obo........bo........................
+....obo........obo.......................
+....obco.......obbo......................
+.....oabo......oabo......................
+.....obbo......oabo......................
+......obbo.....oabo......................
+......obbo....ooabcoooo..................
+.......obo.o^o3oabc1112ooo...............
+.......oaooo2213abc122232oo..............
+.......oaobbaaa3abc32111112o.............
+......oobc332222abcoo1112221o............
+.....ocobc311112abc3bc1111212o...........
+....oobobc311113bbc33bb311212o...........
+...oc322bc111113bbc313b3112321o..........
+...o331111111111boc3133bc22221o..........
+..oc31111111111111111233bo21133o.........
+..o311111111111111111233bo31233o.........
+..ooo1111111111111111223bo33o33o.........
+.o11oo1111111111ooooo2233booo33o.........
+o1owoo11111111oooo11oo233bo32ooo.........
+o1o1oc2111111ocwooc11o333bo332oo.........
+owoooc2111111ocooocw1o333bo333oo.........
+o1coob2222222ocooocwwo333bo33ooo.........
+oo2bbb2222222oooccAwwc333boo3oo..........
+.o22222222222oc1111w1333bboooo...........
+.oo322ooooo2222bbbaa3332aBooooo..........
+.oob32oo33oo22222223333cbooooooo.........
+..oo22333333222222333oobbooo3o22oo.......
+...oooc3333333333333cbbooooo33221oooT....
+......oocccccccccbbbooo3o33o31o31311oooo.
+........oooooooooooo3333o31o21oo21o11o12o
+.........oo111111oo33333o31o32o331o31o33o
+.........oo111111co222oo3oo333o332o32o33o
+........o3oc111111oo3111o333ooo33o33o33co
+........o3oo2111111oo111o33o311o3o33o3co.
+.......o33oooc11111co1113ooo311occcocoo..
+.......o13oooo221111o1113obo3111ocboo....
+.......o13ooooooc111o1113obo3211ooo......
+.......o33ooo3ooooooo1113ooo3313o........
+.......o33o.oooo...oo2223oo.o333o........
+.......oo3o.oooo....oo333o...ob3o........
+........oo...oo......o33oo...ooo.........
+.....................oo3o................
+......................Po.................
diff --git a/parts_pl_src/body/pl_skullbat.txt b/parts_pl_src/body/pl_skullbat.txt
new file mode 100644
index 0000000..ec558f4
--- /dev/null
+++ b/parts_pl_src/body/pl_skullbat.txt
@@ -0,0 +1,46 @@
+# pl_skullbat: from pixellab_src/pl_skullbat/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 41)
+# head_top at (32, 28) (from part/probe)
+# back at (32, 33)
+# tail at (46, 50) (from part/probe)
+.....ooo............................ooo.....
+.....o31oo........................oo13o.....
+......oc31oo....................oo13co......
+......occo11o..................o11occo......
+......occco21o................o12occco......
+......oaccco21o..............o12occcao......
+.....o3aaccco11o.....o......o12occcaa3o.....
+.....o2aaaccc211o..oo1^o...o113cccaaa3o.....
+.....o2aaaacco21ooo13131oooo13occaaaa3o.....
+.....o2aaaacco2o22111111122o33occaaaa3o.....
+......o2aaacooo3212111112123oooocaaa3o......
+......o2aaccoc321111111111123ococcaa3o......
+......o2baccoo32211112B111223cooccac3o......
+.......o3ccco33ooo2111112ooo33occcc3o.......
+.....oo.o3cco3ooooo21112oooooboocc3o.oo.....
+...oo11o.oo3o3ooabco111ocaboo3o33oo.111oo...
+.o23331o..o3o3ocawao222oawaco3o3oo.o12333oo.
+o3333231oo33o33oaaco222ocaao33o333o12233333o
+.oo32333ooo3o32occoo222oocco23o3ooo323233oo.
+...o2333o3333o31ooo22o22ooo13o33333o2332o...
+...o3333oo112oo321121oA21113oo3112oo2333o...
+...ooo3o31112oobo232131232oboo211123o3ooo...
+......oo111112cboo2o3o3o2oobc3211113oo......
+......o1111123coo31o1o1o13ooc3o211112o......
+.....o211112o3333oo31213oo33333o211113o.....
+.....o111111oocc333ooooo3333ccoo111111o.....
+....o33111112occcc3322222cbccco21111123o....
+.....o3311112oocaccc222cccaacoo2111123o.....
+.....o33311321oaaaacccccaaaaao12311333o.....
+.....o33333o21oaaaaaaaaaaaaaao12o333T3o.....
+......o3o31ooocaaaaaaaaaaaaaccooo13o3o......
+......o3oooooccaaaaaaaaaaaaacccooooo3o......
+.......oo.o33cccaaaaaaaaaaacccc33o.oo.......
+..........oo3ccccacaaaaacacccco33o..........
+...........o33occcccaaccccccco33o...........
+...........oo3ococcccccccccoco3oo...........
+............o33ooocoocoocoooo33o............
+.............o333ooo.oooooo333o.............
+............o13oo..........oo31o............
+............ooP..............ooo............
diff --git a/parts_pl_src/body/pl_skullbat_b.txt b/parts_pl_src/body/pl_skullbat_b.txt
new file mode 100644
index 0000000..6a71247
--- /dev/null
+++ b/parts_pl_src/body/pl_skullbat_b.txt
@@ -0,0 +1,49 @@
+# pl_skullbat_b: from pixellab_src/pl_skullbat_b/base.png (variant of pl_skullbat) (pixellab_library.py extract)
+# pivot at (22, 61)
+# aura at (32, 41)
+# head_top at (32, 25)
+# back at (32, 33)
+# tail at (52, 50)
+.....ooo............................ooo.....
+.....o31oo........................oo13o.....
+......oc31oo....................oo13co......
+......occo11o..................o11occo......
+......occco21o................o12occco......
+......obccco21o..............o12occcbo......
+.....o3bbccco11o...ooo^o....o12occcbboo.....
+.....o2aabbcc211ooo11111oooo113cccbaa3o.....
+.....o2aabbcco31oo211111122o13occbbaa3o.....
+.....o2aabbcco321o1111111311o3occbbaa3o.....
+......o2abbcooo11o11111113112ooocbba2o......
+......o3abccoo2111o1111131112oooccba3o......
+.....ooo3bccc322oo2111112ooo23occcc3ooo.....
+...ooyy3o3cco32oooo21112ooooo3occc3o3yyoo...
+...oo33y3oo3o3oocboo12Bocbboo2oo3oo2y33oo...
+...oo3yy33ooo3ocaabooo2obaaco2ooo33yyyyo....
+..o3yyyyy333o21oaaco212ocaao22o3333yyyyyoo..
+.o3y33yyyy3co21occo21o12occo12o33yyyy3333oo.
+.o333yyy3333o211oo21ooo1o22122o33yyyyyy333o.
+o333y2yyyy333o22o111o2o11o113oc333yyyyy3333o
+o3o33yyyyyy333ooo212121112ooo333yyyyy3yy333o
+ooo32yyy33yyy3333o2o2o2o2ooo332yy3yyyy33oooo
+..o3yy333yyy3yy3co1o1oAo1oo33y3yyy333y3ooo..
+..o3333o3y3yyyy333o31113oo33yyy3yyy3333o2o..
+.o2oooooyy3yyyyy333oooooc33yyyyy3yy3oooo22o.
+o31222ooy33yy2yy3yy333333yy2yy3yc3y3o222113o
+o111112o3o3y32y3yyyy322yyyy2yy333oc3o211112o
+o2111112ooo3o3y3yy3yyyyyy3yy3y333ooo2111112o
+o2111112o3o3o333yy3yyyyyy3y3333oo33o2111112o
+.o2111122o3ococ33333yyyy3333o3oco33o211112o.
+.o2211221o33coooo3o33yy33o3ooobcc2o1221122o.
+.o22222o1o22ccccoooo3333oooaaoacc2o1o22222T.
+.oo2o21oo322ccacacooo33oabcaaaacc22oo12o2oo.
+..o2ooooo322ccbaaaaaoooaaaaaaaccc223oooo2o..
+...oo..o3322cccbaaaaaccaaaaaabcc22233o.oo...
+.......oo3323ccccaaaaaaaaaaabccc2233oo......
+........o3332ccccccaaaaaaaacccc22333o.......
+........oo3333ccccccccccccccccc333oo........
+.........o3333occcccccccccccco3333o.........
+..........o33333ooccccccccooo3333o..........
+...........o333oo.oooooooo..o333o...........
+..........o123oo.............oo31o..........
+..........ooP..................ooo..........
diff --git a/parts_pl_src/body/pl_skullbat_c.txt b/parts_pl_src/body/pl_skullbat_c.txt
new file mode 100644
index 0000000..89dd28b
--- /dev/null
+++ b/parts_pl_src/body/pl_skullbat_c.txt
@@ -0,0 +1,63 @@
+# pl_skullbat_c: from pixellab_src/pl_skullbat_c/base.png (variant of pl_skullbat) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 37)
+# head_top at (32, 24)
+# back at (32, 33)
+# tail at (48, 50)
+...........oo..................oo...........
+...........ooo.................oo...........
+...........oco................oco...........
+...........oco................oco...........
+...........occo..............ocbo...........
+...........occo..............ocbo...........
+...........obco..............ocbo...........
+...........obco..............ocbo...........
+..........ocbcbo............obcbco..........
+..........ocacbo............obcaco..........
+..........ocacbo............obcaco..........
+..........oaacbo............obcaao..........
+..........oaac1o............o1caao..........
+..........oaac1o............o1caao..........
+..........oaac1o............o1caao..........
+..........oaac11o..........o31baao..........
+..........oaac11o..........o11baao..........
+..........oaab11o..........o11baao..........
+..........oaabc13o........o31cbaao..........
+..........oaabb11o........o11cbaao..........
+...........oabb11o...o^o..o11cbabo..........
+...........obbb313ooo333oo313cbbo...........
+...........obbb31331111113313ccbo...........
+...........obbo31311111113313ocbo...........
+...........o3bo33111111111133ocoo...........
+............ooo311111111111133oo............
+............oo3311111131111133oo............
+.............o3311111111111133o.............
+.............o3ooo11111111ooo3o.............
+.............o3oooo311B13oooo3o.............
+.............o3oaboo1111ooaao3o.............
+.....oo......o1oa1bo3113oa1ao1o......oo.....
+...oo11o...oo31oaaao3113oaaao13o....111oo...
+.o23331o..o3o311oooo3A13oooo113oo..o12333oo.
+o3333231oo33o331111331133111133o3oo12233333o
+.oo32333ooo33o3331113113111333o3ooo323233oo.
+...o2333o33333oo33311oo11333oo33333o2332o...
+...o3333oo111333oo331oo133oo333112oo2333o...
+...ooo3o3111133333o31oo13o3333211123o3ooo...
+......oo111112b333o311o13o33b3211113oo......
+......o1111123b3333o3111o333b3o211112o......
+.....o211112o333333o3333o333333o211113o.....
+.....o111111oobb3333oooo2333bboo111111o.....
+....o33111112obbbb3322222bbbbbo21111123o....
+.....o3311112oobbbbb222bbbaaboo2111123o.....
+.....o33311331oaaaabbbbbaaaaao13311333o.....
+.....o33333o31oaaaaaaaaaaaaaao13o33333T.....
+......o3o31ooobaaaaaaaaaaaaabbooo13o3o......
+......o3ooooobbaaaaaaaaaaaaabbbooooo3o......
+.......oo.o33bbbaaaaaaaaaaabbbb33o.oo.......
+..........o33bbbbabaaaaababbbbo33o..........
+...........o33obbbbbaabbbbbbbo33o...........
+...........oo3obobbbbbbbbbbobo3oo...........
+............o33oooboobooboooo33o............
+.............o333ooo.oooooo333o.............
+............o13oo..........oo31o............
+............ooP..............ooo............
diff --git a/parts_pl_src/body/pl_skywhale.txt b/parts_pl_src/body/pl_skywhale.txt
new file mode 100644
index 0000000..12996fc
--- /dev/null
+++ b/parts_pl_src/body/pl_skywhale.txt
@@ -0,0 +1,40 @@
+# pl_skywhale: from pixellab_src/pl_skywhale/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 43)
+# head_top at (31, 29) (from part/probe)
+# back at (37, 34) (from part/probe)
+# tail at (46, 51) (from part/probe)
+..............oooooooooooooo...........
+..........oooo22222222222222ooo........
+........oo222222222^22222222222oo......
+......oo222222222222222222222333oo.....
+.....o2222222222222222222223333b3o.....
+....oo212211111112211122233333333o.....
+....o2211111111111111111233333333o.....
+....o22222222222112222222B3333333o.....
+....o1112222222222211112233333333o.....
+....o1332222222222233332233333333o.....
+....oooob222222222boooo2233333333o.....
+....oo11o222222222o111oo233333333o.....
+....oo1oo222222222o1o13o23333o333o.....
+....ooo1o233332222oco132233312o33o.....
+....ooooob22222322oo31obb333o2o33o.....
+....obco32222223322ooobabb33o2o33o.....
+....oaa332b222323222Abaaab333o3c3o.....
+.....obooooccccoooooooobbbb333c33o.....
+.....obooobaaaaboooooooobb333oc3oo.....
+.ooooo212111111112b11213233322ooo......
+o2a22o21211111111121121223332222ooooo..
+ob223oo1211111111111111233o332222aa2bo.
+o33cooo3111111111111121b33oo33b222233o.
+.ooooooo121111111121132b3o3coc33333co..
+...ooo.o312111111121122b333cooooooT....
+........o112111111211b2b33oc3oo........
+........o312111111222b2b3c3c3o.........
+.........o3121111112222bcc33o333.......
+..........o32211122b22bb333co33coooo...
+...........o32222222b2b2b333cc322222ooo
+............oo3222222b2b3c333332222223o
+..............oo322222b222co332222223o.
+................ooo2222booo.oo33333oo..
+...................Poooo......ooooo....
diff --git a/parts_pl_src/body/pl_skywhale_b.txt b/parts_pl_src/body/pl_skywhale_b.txt
new file mode 100644
index 0000000..86a0c36
--- /dev/null
+++ b/parts_pl_src/body/pl_skywhale_b.txt
@@ -0,0 +1,44 @@
+# pl_skywhale_b: from pixellab_src/pl_skywhale_b/base.png (variant of pl_skywhale) (pixellab_library.py extract)
+# pivot at (31, 61)
+# aura at (31, 43)
+# head_top at (31, 24)
+# back at (37, 34)
+# tail at (46, 51)
+..............ooooo^oo..................
+..........oooo22222222ooooo.............
+........oo222222222222222aaoo...........
+.......o22222222222222222aa22oo.........
+......o222222222222222222aa2222o........
+....oo22222222222222222222222a22o.......
+....o212211111112211112222222aaa2o......
+...o2211111111111111111122222aaa22o.....
+...o22222222222112222222233222aa222o....
+...o111222222222221111122332222222ao....
+..o31bb22222222222bbbb122B3322222aaao...
+..o3ooob222222222boooo12233322222aaao...
+..o3o11o222222222o111oo22333222222b2o...
+..o3o1oo222222222o1o13o2233oo2222222o...
+..o3oo1o2bbbb2222ooo13222312o222222bao..
+..oboooob22222b22oo31obb23o2o222222bao..
+..obbco3222222bb22ooobabb3oo3222222bao..
+..oaaa332b222b2b2222baabb33332222223bo..
+...obcoooooooooooooooobbb333322222222o..
+...o3booobaaaabooooAooo33333222222233o..
+..o2111111111111123111132233222222bbbo..
+..o2111111111111111111132223222222bbbo..
+.o2c111111111111111111o3222o322222bbbo..
+.o2o111111111111111112o2222o3222233bo...
+o22o111111111111111112o2223o32223333o...
+o223o11111111111111112o2223o3223333o....
+o22co21111111111111122o2223o3333333o....
+.o3cco1111111111111122o3333o333333T.....
+..oooo31111111111111222o33o333333o3o....
+......o3111111111122222coo333333o22o....
+.......o32222222222222333333333o2223o...
+........oo3222222222333333333oo32222boo.
+........o3oo322222oo33333o33o3333222233o
+........o333ooo222o333333oooo3333333333o
+........o32233ooooo322223o..oooc333cooo.
+........o2223co...o32222oo.....ooooo....
+.........ooooo....o3222co...............
+...................Poooo................
diff --git a/parts_pl_src/body/pl_skywhale_c.txt b/parts_pl_src/body/pl_skywhale_c.txt
new file mode 100644
index 0000000..79e9acb
--- /dev/null
+++ b/parts_pl_src/body/pl_skywhale_c.txt
@@ -0,0 +1,54 @@
+# pl_skywhale_c: from pixellab_src/pl_skywhale_c/base.png (variant of pl_skywhale) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 35)
+# head_top at (31, 13)
+# back at (37, 34)
+# tail at (48, 51)
+..............oooooo^oooo..................
+.........ooooo22222222222ooooooooooooooo...
+......ooo2222222222222222222222222222222o..
+....oo22222222222222222222222222222222333o.
+..oo22222222222222222222222222222223333333o
+.o2111111222211111112222222222223333333333o
+o211111111o1111111111111112222333333333333o
+o212222222o222222222222221113333333333b333o
+o212222222o222222222222222113333333333c333o
+o2133332222222222222223332213333333b333333o
+o23222233222222222223332232133333333333o33o
+o22222222322222222223222222233333333333o33o
+o22111122322222222231111122233333333333333o
+o21122212232222222311222211233333333333333o
+o21cooob123222222321cooo311233333333333333o
+o2cooooo223222222322booooo1233333333333333o
+o2oo111o222322223222o111ooo233333333333333o
+o2o31o2o222333333222o1o11oo233333oo3333333o
+o2o31ooo222bbbb22222ooo11oo23333212o333333o
+o22o1o2o22b22222b222o2o11o223333232o333333o
+oaacooo22b2222222bb23o21ocab3333o32o333333o
+oaaacc22b222222222222ooocaBab333o32o333b33o
+oaaaaa2b222222222222bAaaaaaab3333oo3333333o
+oaaaaa222booooooo222222aaaaabb333333333333o
+oaaa222boo1111111ooc2b2aaaabb333333333b333o
+o222222o31122222111obb222aabb3333333333333o
+o2122223112222222111o322222233cb333333333o.
+o312222222222222222222222222333b33333333oo.
+o321223223222222222322222222333333333ooo...
+.o33333223222222222322232223333333oooo.....
+..ooooooo3333333331333333333333oooo........
+......ooooooooooooooooooooooooo333oo.......
+.....o32o222ccc222cc222cc22c3333221oo......
+.....o22o112bb2222cc222bc22cc3332212o......
+....o223o111bb1111bb111bb112c33o22222o.....
+...o1233o11bb11111b1111bb112bc33o222a2o....
+...o2233o11bb11111b111bbb112bc33oo3222o....
+...oa2aoo11bb11111bb11bbb112bc333o32a2o....
+...o333oo11bbb1111bb111bb112cc3333oo3T.....
+....ooo.o211bb1111bb111bb122c3333oooo......
+........o221bbc1111bb11cc222c333oo3co......
+.........o22ccc2222cc222cc223333oc323o.....
+..........ooocc22222cc222cc333oo3c3222oo...
+............oooooo222cc3333333o33333222o...
+............o23333oooooo332233oo33333cco...
+............o21333o.....o122233oooooooo....
+............o22333o.....o222233o...........
+.............ooooP.......oooooo............
diff --git a/parts_pl_src/body/pl_skywhale_d.txt b/parts_pl_src/body/pl_skywhale_d.txt
new file mode 100644
index 0000000..b5c5496
--- /dev/null
+++ b/parts_pl_src/body/pl_skywhale_d.txt
@@ -0,0 +1,45 @@
+# pl_skywhale_d: from pixellab_src/pl_skywhale_d/base.png (variant of pl_skywhale) (pixellab_library.py extract)
+# pivot at (34, 59)
+# aura at (32, 38)
+# head_top at (31, 21)
+# back at (37, 34)
+# tail at (47, 51)
+.........oooooooo^oooooooooooooo....
+.......oo22222222222222222222222ooo.
+....ooo2222222222222222222222222222o
+..oo2222222222222222222222222233333o
+.o222222222222222222222222233333333o
+o1111111111111111111111122333333333o
+o1222222222222222222222221233333333o
+o1222222222222222222222221133333333o
+o2222222222222222222222222233333333o
+o2222222222222222222222222233333333o
+o222ooo222222222222oooo222233333333o
+o22o3oo32222222222ooo33o22233333333o
+o2o3wwoo222222222owwoo33o2233333333o
+o2o3wwoo222222222owwoo3Bo2233333333o
+o2o2oooo222222222ooooo31o2233333333o
+o2o2ooo1222222222oooo331o2233333333o
+o2o11oo1222222222o2oo11wo2233333333o
+o22311132222222222A221w332233333333o
+o22a3332222222222223333a22233333333o
+o2aaa222222ooo22222222aaa2233333333o
+o2222222222222222222222222233333333o
+o22222222222222222222222222333333oo.
+.o2222222222222222222222223333ooo...
+..o222222222222222222222233ooo......
+...oooooooooooooooooooooooo.........
+.........oo32222333333333o..........
+........o3o322222223333333o.........
+.......o23o211111111223o22o.........
+.......o23o211111111223o222o........
+......o223o2111111111233o222o.......
+......o33oo2111111111223o222o....T..
+......oa3oo21111111112333o2ao..oo3o.
+......ooo.o321111111223333oo2oo223o.
+..........o3331111222333333322233o..
+..........o23oo2222oo333o233333co...
+..........o2233oooo32223o2222coo....
+.........oo2233o...o2223oooooo......
+.........o13233o...o132co...........
+..........ooooo.....Pooo............
diff --git a/parts_pl_src/body/pl_sleepsheep.txt b/parts_pl_src/body/pl_sleepsheep.txt
new file mode 100644
index 0000000..24036f6
--- /dev/null
+++ b/parts_pl_src/body/pl_sleepsheep.txt
@@ -0,0 +1,47 @@
+# pl_sleepsheep: from pixellab_src/pl_sleepsheep/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 38)
+# head_top at (32, 24) (from part/probe)
+# back at (37, 32) (from part/probe)
+# tail at (44, 45) (from part/probe)
+...............ooooo..............
+...........oooo11111oooo..........
+..........o1111111111112o.........
+..........o111111111cc112o........
+.........o1111111^1bb11113o.......
+........o111111111cab111122o......
+........o211111111caac1c122o......
+.......o32232111211caabc1223o.....
+......o2233332223322ccc112233o....
+...ooo33oooo3333oo33321122o33o....
+.oo112oo3333oooo33oo3o22332ooooo..
+o1233oo2222333322333oo32o3211112o.
+oaabbco222222222222333B3ooo333332o
+.ooaaboooo22222ooooo33o3obbbbbbaao
+...oooo1o22222221o1333o33oaaaaaoo.
+.....o3222222222222233o322ooooo...
+.....ooa222222222aa23o33112333o...
+.....o322222222222333o311112333o..
+....o21o22ooo2222A33o3311112333o..
+....o212o2222223333o32111123333o..
+.....o212o3333333oo31111122333o...
+.....o2112ooooooo3311111112333o...
+.....o221122333331111111113333o...
+.....oo2211111111111132111o333o...
+.....o1o33111111111133o111o33o....
+.....o12o3322211112233o1112o3T....
+....o112o3333332222333o2112oo.....
+....o223o3333333333333o2112o......
+....o233o.oo3333333333o2112o......
+.....ooo..o3o3333o333ooo333o......
+.........o23ooooo.ooo33o3o3o......
+........o223o.......o23oooo.......
+.....ooo223o........o23o..........
+...o322223o.........o22o..........
+...ooo233o...........o23o.........
+....oo33o............o23o.........
+.....ooo.............o23o.........
+....................o223o.........
+...................o2223o.........
+...................o3o33o.........
+....................Pooo..........
diff --git a/parts_pl_src/body/pl_sleepsheep_b.txt b/parts_pl_src/body/pl_sleepsheep_b.txt
new file mode 100644
index 0000000..e9a9fc4
--- /dev/null
+++ b/parts_pl_src/body/pl_sleepsheep_b.txt
@@ -0,0 +1,48 @@
+# pl_sleepsheep_b: from pixellab_src/pl_sleepsheep_b/base.png (variant of pl_sleepsheep) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 39)
+# head_top at (32, 19)
+# back at (37, 32)
+# tail at (47, 45)
+..............oo^o..............
+..........oooo1b11ooo...........
+........oo1111aab1111oo.........
+.......o1111c11aa111111o........
+......o1c111cc1111111111o.......
+.....o11cc11c11111cc11111o......
+.....o1ac111111111ac111111o.....
+....o211c111111211111111111o....
+...o1111122111231111cc11b112o...
+...o11123332122332211c1aab12o...
+..o1112oooo3333oo3221121ab11o...
+.o1112o3333oooo33oo2222111111o..
+.occ1o2222333322333o2221111111o.
+o1ca1o22222222222233oB21111211o.
+o1111oooo22222ooooo33o21c113112o
+o1112owo2222222wow333o21c111311o
+o12123222222222222233o211111331o
+o22123a222222222aa23o21111113o2o
+.o211322222222222333o211b111ao2o
+.o2112o22ooo2222333o211aab11aooo
+.o11a12o22222233A3o2211ac21233o.
+.o1bab12o3333333oo311111221233o.
+.o12a1112ooooooo3311b111132233o.
+.o22111112233333111bab111232333o
+..o2111111111111111bc11112333a3o
+...o2c11111b11111111111111333a3o
+...o2bb121bac1111a11131111o3333T
+...o1a11211cc113aab1133111o3333o
+..o21111o11111131a11133211oo333o
+..o11123o1121123111113o211oo333o
+..o1123oo3121123211113o312oo33o.
+.o113ooooo32113o21122oo312oo33o.
+.o233ooo2o32113o22122oo322oo33o.
+.oooooo223o3113oo2122oo333oooo..
+.ooo22323oo3213oo2222oo333o.oo..
+..ooo233o..o323ooo22ooo333o.....
+...oo33o...o333o.o22o2oo33o.....
+....ooo.....o33o..ooo23o3o......
+.............ooo..oo223oo.......
+..............oo..o2223oo.......
+..................o3o33o........
+...................Pooo.........
diff --git a/parts_pl_src/body/pl_sleepsheep_c.txt b/parts_pl_src/body/pl_sleepsheep_c.txt
new file mode 100644
index 0000000..343e67a
--- /dev/null
+++ b/parts_pl_src/body/pl_sleepsheep_c.txt
@@ -0,0 +1,49 @@
+# pl_sleepsheep_c: from pixellab_src/pl_sleepsheep_c/base.png (variant of pl_sleepsheep) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 36)
+# head_top at (32, 18)
+# back at (37, 32)
+# tail at (42, 45)
+...............oo^oo............
+...........oooo11111oooo........
+..........o1111111111112o.......
+..........o111111111cc112o......
+.........o111111111bb11113o.....
+........o111111111cab111122o....
+........o211111111caac1c122o....
+.......o32232111211caabc1223o...
+......o2233332223322ccc112233o..
+.....o33oooo3333oo33321122o33o..
+....o1oo3333oooo33oo3o22332o33o.
+...o13o2222333322333oo32o311o3o.
+..o12bo222222222222333o3o3311oo.
+.o12bboooo22222ooooo33o3ocb312o.
+.o13abowo2222222wow333B3ocbb21oo
+o13aao3222222222222233o32oaab11o
+o13aoooa222222222aa23o3112oaa21o
+o13aoo322222222222333o3111oaa21o
+.oooo21o22ooo2222A33o331112oa21o
+....o212o2222223333o31111123oooo
+.....o212o3333333oo311111223333o
+.....o2112ooooooo33111111233333o
+.....o22112233333111111311o333o.
+......o3211111111111113o11o333o.
+.....o1o331111111111223o21o33o..
+.....o12o33222111122333o211o3o..
+.....o12o33333322223333o211oo...
+....o123ooo333333333333o211T....
+....o12o..oo33333333333o211o....
+....o12o..o33o3333o3o33o211o....
+.....oo..o333oooooooo33o2o1o....
+.........o23o.......o33oooo.....
+........o22o........o22o........
+.......o223o........o22o........
+....ooo223o.........o22o........
+...o32223o..........o22o........
+...ooo23o............o23o.......
+....oo33o............o23o.......
+.....ooo.............o23o.......
+....................o223o.......
+...................o2223o.......
+...................o3o33o.......
+....................Pooo........
diff --git a/parts_pl_src/body/pl_sleepsheep_d.txt b/parts_pl_src/body/pl_sleepsheep_d.txt
new file mode 100644
index 0000000..56df04d
--- /dev/null
+++ b/parts_pl_src/body/pl_sleepsheep_d.txt
@@ -0,0 +1,49 @@
+# pl_sleepsheep_d: from pixellab_src/pl_sleepsheep_d/base.png (variant of pl_sleepsheep) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 36)
+# head_top at (32, 18)
+# back at (37, 32)
+# tail at (42, 45)
+.................^ooo.............
+............ooooo1111o............
+.........ooo1111211111ooo.........
+........o1121111111111212o........
+........o11111111111112112o.......
+......o12111111111111121122o......
+.....o1111111111121111111222o.....
+.....o11111111111211111111122o....
+.....o22111111111111111111222o....
+....o1121112111121111111211222o...
+....o1122222211222112211212212o...
+...oo222ooooo22ooo222221112212o...
+.oo11o2o33333oo333ooo2222222oooo..
+o1233oo22223333223333o222o311112o.
+oaabbco222222222222333B2ooo333332o
+.ooaaboooo22222ooooo33o2obbbbbbaao
+...oooo1o22222221o1333o22oaaaaaoo.
+.....o3222222222222233o222ooooo...
+.....o3a22222222Aaa23o222222o.....
+.....o322222222222333o22222oo.....
+......oo22ooo2222333o2o222o.......
+......o3o2222223333oc2cooo........
+......o2co3333333ooc22bbo.........
+.....o11bcooooooo2cc111bbo........
+.....o12cc2cc2cc22bb111bb2o.......
+.....o12cc1bb1bb11bb1211b2o.......
+.....ob1oc1bb1bb11bb12o1bbo.......
+.....ob2oc1bb1bb11bb12o21b2T......
+....o1b2oc1bb1bb11bb22o21b2o......
+....o112oo2bb1bb11bb22o21b2o......
+....o333o.occ2cc11cc22o21b2o......
+.....ooo..ooo2cc22cc2ooo333o......
+.........o1ccoooooooo2co3o3o......
+........obc2o.......o2coooo.......
+.....ooobb2o........o1co..........
+...o311bb2o.........o1co..........
+...ooo12co...........o1co.........
+....oo22o............o1co.........
+.....ooo.............o1co.........
+....................o122o.........
+...................o1112o.........
+...................o3o22o.........
+....................Pooo..........
diff --git a/parts_pl_src/body/pl_slime.txt b/parts_pl_src/body/pl_slime.txt
index 432da1b..07e6cf4 100644
--- a/parts_pl_src/body/pl_slime.txt
+++ b/parts_pl_src/body/pl_slime.txt
@@ -1,8 +1,8 @@
# pl_slime: from pixellab_src/pl_slime/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (31, 45)
-# head_top at (31, 25) (from part)
-# back at (44, 33) (from part)
+# head_top at (31, 25) (from part/probe)
+# back at (44, 33) (from part/probe)
# tail at (44, 50)
...............ooo..............
..............o222o.............
diff --git a/parts_pl_src/body/pl_slime_b.txt b/parts_pl_src/body/pl_slime_b.txt
new file mode 100644
index 0000000..4f1c973
--- /dev/null
+++ b/parts_pl_src/body/pl_slime_b.txt
@@ -0,0 +1,42 @@
+# pl_slime_b: from pixellab_src/pl_slime_b/base.png (variant of pl_slime) (pixellab_library.py extract)
+# pivot at (31, 50)
+# aura at (32, 37)
+# head_top at (31, 15)
+# back at (44, 33)
+# tail at (49, 50)
+.............................^oo............................
+............................o22o............................
+...........................o2123o...........................
+...........................32123o...........................
+..........................o222233o..........................
+..........................o222233o..........................
+.........................o21222333o.........................
+........................o2222223333o........................
+.......................o221222223333..ooo...................
+......................o2222222223333oo32o...................
+......................o22222222222233323o...................
+....................o321owwc32222o323333o...................
+....................o32owwoco2222o22333oooooo...............
+................oooo32owwwwoao222222233o33333ooo............
+............oooooo3332cwwoooao222ooo2333o1111333oo..........
+.........ooo33333o3232o3wooo2o22oowwoo33o222222233o.........
+........o33111222o33322oo312o322222322b33ccc2222233o........
+.......o321222222o3333c2booo322222oobab3oaaac2222333oo......
+....ooo33222222ccooo33aa22222222ooo22a23oaBaac22222333oo....
+..ooo322222222caaao3332222ooooooobao2233oaaabc2222222233oo..
+.o3331222ccc2caaaao333222222223obaao2233oaaac22cccc2222133o.
+.2212222caaaccbaaaco333222222222oooo3333occc22caaaac2222133o
+o2122222aaaaaccbbbco3333222222A222223333o22222caaaaac222213o
+o212222caaaaac2ccccco333123222222222333oac2ccccaaaabc222213o
+o212222cbaaacc22caaco333123322233322333oaacaaaccaaacc222213o
+o3312222ccccc32caaaabo3322333333332233oaacaaaaacccc32221133o
+.o3331222222222caaoooo3333333333332233ooocbaaacc2222221333o.
+..ooo33222222222co32223333333333333332233occccc22222333ooo..
+....ooo3322222222o211233223333223333222223occ22222233oo.....
+.......oo32122222o333333333211223o33333333o222222223o.......
+.........o3122222ooooooooo3333333ooooooooo2222222213o.......
+..........3311222222222222ooooooo2222222222222222223o.......
+..........o33311111111222222222222222222222222111233o.......
+...........ooo3333333332222222222222221111111133333o........
+..............ooooooo333333333333333333333333333ooo.........
+.....................ooooooooPoooooooooooooooooT............
diff --git a/parts_pl_src/body/pl_slime_c.txt b/parts_pl_src/body/pl_slime_c.txt
new file mode 100644
index 0000000..b69f6d1
--- /dev/null
+++ b/parts_pl_src/body/pl_slime_c.txt
@@ -0,0 +1,63 @@
+# pl_slime_c: from pixellab_src/pl_slime_c/base.png (variant of pl_slime) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (31, 4)
+# back at (43, 33)
+# tail at (46, 50)
+...............^o...............
+...............o2o..............
+...............22o..............
+..............o22o..............
+..............o222o.............
+..............o222o.............
+..............o222o.............
+..............o2123o............
+..............o2123o............
+..............o2123o............
+.............o22123o............
+.............o212233o...........
+.............o212233o...........
+.............o212233o...........
+............o2222233o...........
+............o2122233o...........
+............o21222233o..........
+...........o222222233o..........
+...........o212222233o..........
+..........o22122222b33o.........
+..........o22a22222b33o.........
+..........o222c2222bb3o.........
+.........o2222c22223b33o........
+........o2222ac2222ab33o........
+........o222aa2222cab333o.......
+.......o222aac2222baac33o.......
+......o222aac22222baac33o.......
+......o22aaaa2222223aac33oo.....
+.....o22aaacaa222222ccac33o.....
+.....o21acc22ca22222223ab33B....
+....o221a22222c22222222cab3o....
+....o21222222222222222223b33o...
+...o212221ooo22222222oo23b33o...
+..o221222o11ao322222o3222c233o..
+..o21222o11ooao22222o22222233o..
+.o22122o1111ooao2222222222223o..
+.o21222o11ooooaoA222oooo222233o.
+.o21a22o11ooooao222oo11ooo22b3o.
+o22ca22o31oooo2o222o22222o22b33o
+o22ca222oo3122o32222223222b23b3o
+o22ba2a22aoooo3222222oo2aab23b3o
+o22ba2aaa2222222222ooo222a22cb3o
+o32ba222222ooooooooobao22222ab3o
+o32caaa22222222222obaao2222ac33o
+o332cba222222222222obbo222aac33o
+.o332ccaa22222222222oo222aac33o.
+.o33222bbbc2222222222222aac333T.
+..o33222222c2222222222caac3333o.
+..o333222222b222222222bac3333o..
+...o3332bb22c22222222bbc3333o...
+....o3333bbb22223bbc3333333o....
+..oo33333b333333333333333333oo..
+.o3222233333332222233333332223o.
+o321122222223333222322222221123o
+o3333333333321112223o3333333333o
+.oooooooooo333333333ooooooooooo.
+...........ooooPoooo............
diff --git a/parts_pl_src/body/pl_slime_d.txt b/parts_pl_src/body/pl_slime_d.txt
new file mode 100644
index 0000000..36a1216
--- /dev/null
+++ b/parts_pl_src/body/pl_slime_d.txt
@@ -0,0 +1,43 @@
+# pl_slime_d: from pixellab_src/pl_slime_d/base.png (variant of pl_slime) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 44)
+# head_top at (31, 25)
+# back at (44, 33)
+# tail at (47, 50)
+..................oooooo..........
+................^o32223o..........
+...............o2222223o..........
+.............oo32122233o..........
+..........o.o2231222333...........
+.........o2o21231223323o..........
+.........o2o212222232233oo........
+........o31321222222233333oo......
+......oo3312212222222332223o......
+.....o212212222222222222233o.Bo...
+.....o2112222222222222223333o23o..
+....o33212222222222222222222233o..
+...o2222222ooo22222222oo2222333o..
+..o2111222o11ao222222o32222333o...
+.o2222222o11ooao22222o222222233o..
+.ooo3222o1111ooao222222222222233o.
+..o22222o11ooooao2222oooo22222223o
+.o211222o11ooooao222oo11ooo223333o
+o3222222o31oooo3o222o22222o22233oo
+o32322222oo3122o32222222222b2223o.
+o333222a22boooo31A2222o32aab22223o
+oo32212aaa2222222222ooo222a223323o
+.o3223222222ooooooooobao222222333o
+.o32332222222222222obaao22222223oo
+.o323321222222222222obbo22222223o.
+.o3333212222222222222oo222223233o.
+.ooo3322232222222222222222223333T.
+...o3332322232222222222122123333o.
+...o33333223322222222321232233oo..
+...oo3333223332222222332233233o...
+....o333332333222322333223333o....
+...o33333333332223223333333333o...
+..oabcbb3333o322bc22333333ccccao..
+.oaaoaa3c333oc22b3c233333c3aaoaao.
+.occobc3c333oc2c3ocaco333c3ccocco.
+..ooooooooooocbccocccooooooooooo..
+............ooooP.ooo.............
diff --git a/parts_pl_src/body/pl_slinky.txt b/parts_pl_src/body/pl_slinky.txt
new file mode 100644
index 0000000..60f0785
--- /dev/null
+++ b/parts_pl_src/body/pl_slinky.txt
@@ -0,0 +1,45 @@
+# pl_slinky: from pixellab_src/pl_slinky/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 43)
+# head_top at (31, 24) (from part/probe)
+# back at (32, 40) (from part/probe)
+# tail at (46, 53) (from part/probe)
+...........ooooooo............
+.........oo2211122oo..........
+........o21111^1122oo.........
+.......o2111111112233o........
+......o22111111112223oo.......
+......o2ooo111112ooo33o.......
+.....o2o31oo2222oo32o33o......
+.....o2o1w3o2222owo12o3o......
+.....o2owooo2222ooow1o3o......
+.....o2ow2co2222oc2w1o3o......
+.....o3o1wao2222oaw1o33o......
+.....o32ooo222222ooo333o......
+......o3b22o2222o222b3o.......
+......oo3222oooo222333o.......
+.......o3322222223333ooo......
+........oo333333333oo33o......
+..........oo33333ooo333o......
+.............ooooo33oooo......
+.............ocBoooo33co......
+............o33occ23333o......
+...........oo2122occo33o......
+..........o233aA323ocoo.......
+.........o211123ao233co.......
+........ocaa1o22oco33o........
+.......o33113aao3ocoo.........
+.......o2111123coooo..........
+.......o2212222ocoo...........
+.....ooooo2223333oooooooo.....
+..oooc3ocaacccccccoocoo3cooo..
+.o122ooo32233ooooooooococa11o.
+o21oaa3oo3222223oooc22o21oa12o
+o2oao12ooo222oooocobo11o12oa2T
+o2oao223ooooooo3cooa2o2oa2oa3o
+o3cc22o3oo3oo3cco3oa2o3ob33cco
+o3oc33o33ooccco33oco2o3ob3ocoo
+oo3co3333cooo333oc333o3oc3ocoo
+.oocc33oooooo33occ33o3occ3ooo.
+...ooooo.....ooooooo33ccooo...
+.................Poooooo......
diff --git a/parts_pl_src/body/pl_slinky_b.txt b/parts_pl_src/body/pl_slinky_b.txt
new file mode 100644
index 0000000..0ce919c
--- /dev/null
+++ b/parts_pl_src/body/pl_slinky_b.txt
@@ -0,0 +1,49 @@
+# pl_slinky_b: from pixellab_src/pl_slinky_b/base.png (variant of pl_slinky) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 18)
+# back at (32, 40)
+# tail at (46, 53)
+...........ooo^ooo............
+.........oo1111222oo..........
+........o21111112233o.........
+.......o2111111112223o........
+......o211111111122233o.......
+.....o21111111111222233o......
+.....o21111111111222233o......
+....o2212222111112222233o.....
+....o2223333333333322233o.....
+....o3333ooooooooo333233o.....
+....o33oo1o333333ooo3333o.....
+.....ooo1w3o3333owo1o333o.....
+.....o3owooo2222ooow1o33o.....
+.....o3ow2co2222oc2w1o33o.....
+.....o3o1wao2222oaw1o3o3o.....
+.....o33ooo222222ooo333oo.....
+.....o33b22o2222o222b33o3o....
+......o33222oooo222233o33o....
+.......o33222222233333o33o....
+........o333333333333o333o....
+.........ooo333333ooo33b3o....
+............oooooobbbbbbo.....
+............o33B33ooooooo.....
+............o32A11222333o.....
+...........oo32222222333o.....
+.........oo11oooo3333333o.....
+.........o2111122ooooooo......
+........oo32222222333oo.......
+.......o22oo3333333333o.......
+.......o2111oooo333333o.......
+.....ooo21111122oo333o........
+..ooo33o2222222233oooo..ooo...
+.o222333o333333333oo..oo332o..
+.o123oooo333333ooo3ooo33o322o.
+o213o1oo2oooooo223313o322o31o.
+o22o11oo3211122233o11o3211o22T
+o23o11oo332222333o211oo311o32o
+o23o223o33333333o3211oo311o32o
+o33o223oooooooooo2222oo322o33o
+o33o3333oo33333332223o3333o33o
+.o33o3333ooo3b333333oo3333o3o.
+..oooooooo..oo33333oo3333ooo..
+..............Poooo..oooo.....
diff --git a/parts_pl_src/body/pl_slinky_c.txt b/parts_pl_src/body/pl_slinky_c.txt
new file mode 100644
index 0000000..e37cdb1
--- /dev/null
+++ b/parts_pl_src/body/pl_slinky_c.txt
@@ -0,0 +1,64 @@
+# pl_slinky_c: from pixellab_src/pl_slinky_c/base.png (variant of pl_slinky) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 34)
+# head_top at (31, 3)
+# back at (32, 40)
+# tail at (46, 53)
+...........ooo^ooo............
+.........oo2211122oo..........
+........o21111111223o.........
+.......o2111111112233o........
+......o22111111112223oo.......
+......o2ooo111112ooo33o.......
+.....o2o31oo2222oo32o33o......
+.....o2o1w3o2222owo12o3o......
+.....o2owooo2222ooow1o3o......
+.....o2ow2co2222oc2w1o3o......
+.....o3o1wao2222oaw1o33o......
+.....o32ooo222222ooo333o......
+......o3b22o2222o222b3o.......
+......oo3222oooo222333o.......
+.......o3322222223333ooo......
+........oo333333333oob3o......
+..........oo33333ooob33o......
+............oooooo33333o......
+..............o33333233b......
+..............obbbbbbbb3o.....
+...............ooo222233o.....
+...............o32222233o.....
+..............o33aaaa233o.....
+..............oc2222obbo......
+.............oo3aa2223bo......
+.............o2123bbo3o.......
+............o33aa32oboo.......
+...........o21113ao23bo.......
+..........o3aaa22oco3o........
+..........o2112ab3obo.........
+..........o212223bboo.........
+..........ooo22A33bbo.........
+..........obabccbboooo........
+...........oo22ooooobbo.......
+...........oo2222obb33o.......
+............oooobbc2233o......
+.............oobo333333o......
+.............obB222233bo......
+............o33obb22333o......
+...........oo2122occo33o......
+..........o233aa323ocoo.......
+.........o211123ao233co.......
+........ocaa1o22oco33o........
+.......o33113aao3oboo.........
+.......o2111123coooo..........
+.......o2212222ocoo...........
+.....ooooo2223333oooooooo.....
+..oooc3obaaccccbcbooboo3booo..
+.o122ooo32233ooooooooococa11o.
+o21oaa3oo3222223oooc22o21oa12o
+o2oao12ooo222oooobobo11o12oa2T
+o2oao223ooooooo3cooa2o2oa2oa3o
+o3cc22o3oo3oo3cbo3oa2o3ob33cco
+o3oc33o33oobbco33obo2o3ob3ocoo
+oo3bo3333cooo333ob333o3oc3ocoo
+.oocc33oooooo33obc33o3obc3ooo.
+...ooooo.....ooooooo33cbooo...
+.................Poooooo......
diff --git a/parts_pl_src/body/pl_sloth.txt b/parts_pl_src/body/pl_sloth.txt
new file mode 100644
index 0000000..1ac7d5b
--- /dev/null
+++ b/parts_pl_src/body/pl_sloth.txt
@@ -0,0 +1,42 @@
+# pl_sloth: from pixellab_src/pl_sloth/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 43)
+# head_top at (24, 28) (from part/probe)
+# back at (33, 35) (from part/probe)
+# tail at (47, 40) (from part/probe)
+..........oo........................
+......oooo32ooo.....................
+.....o312111112oo...................
+...oo22112^1aa222o..................
+..o211211111111111o.................
+..o2233223321111112o................
+..o32123321232113123o...............
+.o321112211112211322ooooo...........
+.obb111111bbb122111133311oooo.......
+occbc1111cc3bb231111333111111oo.....
+ocowo1111cow3cc221bB2323111113o.....
+oc3oo3332coo3occ31b123333113113o....
+.occ312332cccocco111131c11331113oo..
+.oc23ooo3112cccco1123322c11113333o..
+.o21333333o1222co1123222111111bc3o..
+..o23ooooo222222o223311311aa11bccToo
+..o323333222222332332111311a111cc22o
+...o32222222233o333211113111112cc2oo
+....ooo3333333o33A31111131111121cco.
+......oooooooo33331111113111a23123o.
+......o3o3333333311aa111o222a331333o
+......o33o333333o1aa111o3322333123oo
+....oo333o333333oaaa111o333333112oo.
+....o33233o33333o2111123o333o1113o..
+.....o21133oo333o211132o333o11123o..
+....o1131233oooo2111132o33o211123o..
+....o1111333o..o313332o33o11113333o.
+....o331133o..o21121133oo3112323oo..
+....o211333o..o21111333oo3213233o...
+...o312133oo..31111323oo.o3333333o..
+...oo13333o..o22111233o..oo333333o..
+..o22o3o3oo..oo313233o....oooooo3o..
+.o13312ooo..o22ooo33o......2322oo...
+.o2o1oo....o22o12ooo.......o22oo....
+..o.o......o2o1oo...........oo......
+............ooP.....................
diff --git a/parts_pl_src/body/pl_sloth_b.txt b/parts_pl_src/body/pl_sloth_b.txt
new file mode 100644
index 0000000..fd133ff
--- /dev/null
+++ b/parts_pl_src/body/pl_sloth_b.txt
@@ -0,0 +1,44 @@
+# pl_sloth_b: from pixellab_src/pl_sloth_b/base.png (variant of pl_sloth) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 42)
+# head_top at (24, 24)
+# back at (33, 35)
+# tail at (50, 40)
+.............ooo.......................
+.........ooo^11oo......................
+.......oo32112222oo....................
+.....oo113112111111oo..................
+....o1111211211222222oooooo............
+....3222121212211111233aa22oo..........
+...o11222212222222221133aa22coo........
+..o212233223332221122133aa222a2oo......
+..o13331333311332211221o2aa22aa22o.....
+.o123311133111133221122o22a222a212o....
+.o13bb111111bbb13321121322aa22aa212o...
+.o13c3c1111cc3bb33221222o22a222a221o...
+.o13o1o1111co13cc3321B22o22a222a2211o..
+o1133oo3333coo3occo22123322a222a2221o..
+o113cc312333ccoocco221233222222a22212o.
+o113c33ooo3113cccco2212o2222a22a22211o.
+o21331333333o1333co1212o2222a22222221o.
+.o12333ooooo333333o1222o22222222222211T
+.o11323333333333232122o222222222222221o
+.o211o2333333333332A22o222222222222122o
+.oo11233222222232121o2o222222222222132o
+..o12213333333322131oo2221332222212122o
+..o23212221122221132o2221133223211212o.
+...o32131211122313333212112o223211212o.
+...o32231212122323o32212112o233111212o.
+....oo23231212233o332212112o3o2111222o.
+....oo2333221233o3322112122o3o2121232o.
+.....oo333222o3o33312112133oo3212123oo.
+.....ooo33o33o3o3331111123ooo3212323o..
+.....ooo3ooo33o33o31211123ooo3222323o..
+.....o3o33ooooo33321211223ooo3332233o..
+....o32oo3ooooooo22221123o..o3333233o..
+...ooo33oo3ooooo322221233o..oo3o33233o.
+....o33o2o3oo..oo3232233oo...ooo333333o
+...o12313ooo..o33oo32333o....3233ooooo.
+...o3o1oo....o33o13o33oo.....o33oo.....
+....o.o......o3o1ooooo........oo.......
+..............ooP......................
diff --git a/parts_pl_src/body/pl_sloth_c.txt b/parts_pl_src/body/pl_sloth_c.txt
new file mode 100644
index 0000000..b6e83d9
--- /dev/null
+++ b/parts_pl_src/body/pl_sloth_c.txt
@@ -0,0 +1,53 @@
+# pl_sloth_c: from pixellab_src/pl_sloth_c/base.png (variant of pl_sloth) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 36)
+# head_top at (24, 15)
+# back at (33, 35)
+# tail at (47, 40)
+.........oo.........................
+......ooo32^oo......................
+....oo22222222oo....................
+..oo2221211aa222oo..................
+..o22221222222222o..................
+.o2233213332222122o.................
+.o22123321133223123ooooooo..........
+.o2111221111132232232ccbbboo........
+obb111111bbb1122222322cbbaaaoo......
+obbb1111ccbbb132222332ccbbaaabo.....
+ocwo1111cow3bc222b1232ccbbbbaabo....
+ocoo3332coo3occo2b1232ccbbbbbbbco...
+occo1333yccoocco22123222cbbbbbbbo...
+ooc3ooo3212cccco22232222cbbbbbbbco..
+.o2333333o1222co2233222cbbbbbbbcc3o.
+.o2oooooo222223o3332222cbbbbbbbcc3o.
+..o32222222223o33322222cbbbbbbccc2o.
+...o333333333o3332222222cbbbbccc22o.
+....ooooooooo333322222222cbbccc221oo
+......oo3333333322aa222222cccc22213o
+......oo333333o222a2232222222222213o
+......o3o33333o22aa2Bo2322232222113o
+......o33o3333o222A22o3322232222123o
+......o333o3333o22223o3333332222223o
+......o3333ooo3o22213o33333o322222o.
+......o2333o.ooo22113o3333oo322222o.
+......o1333o..oo21132oooooooo22222T.
+......o113o....o2132ooo3333oo32222o.
+......o113o....o1132o.o3333oo32222o.
+......o123o....o1322o.o3333o.o3222o.
+......o323o....o2222o..o333o.o331ao.
+......o223o....o2222o..oo33o..o312o.
+......o223o....o2222o...o33o...o11o.
+......o22o.....o2223o....o33o...o12o
+......o22o.....o222o.....o33o...o12o
+......o22o.....o222o.....o33o...o22o
+......o23o.....o223o.....o33o...o22o
+......o23o.....o223o.....o33o...o22o
+......o23o.....o23o......o33o...o22o
+......o23o.....o23o......o33o...o22o
+......o23o.....o23o......o33o...o22o
+......o3o......o23o.....oo3o....o3o.
+....ooo3o......o33o...oo333o..ooo3o.
+...o1313o....ooo3o...o23233o.o2323o.
+...o2ooo....o1313o....ooooo..oo2ooo.
+....oo......o2ooo.............oo....
+.............oP.....................
diff --git a/parts_pl_src/body/pl_sloth_d.txt b/parts_pl_src/body/pl_sloth_d.txt
new file mode 100644
index 0000000..9d08eb8
--- /dev/null
+++ b/parts_pl_src/body/pl_sloth_d.txt
@@ -0,0 +1,60 @@
+# pl_sloth_d: from pixellab_src/pl_sloth_d/base.png (variant of pl_sloth) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (32, 33)
+# head_top at (24, 10)
+# back at (33, 35)
+# tail at (46, 40)
+....................oo..................
+...................o2o..................
+..............ooooo22oooooo.............
+...........oo^2222222222222oo...........
+.........oo222222222222222222oo.........
+........o222221122211112aaa2222oo.......
+......oo222222111221111aaaa222222o......
+.....o22a2222211122222222222222223o.....
+.....o12222222111222222222222211223o....
+....o112222222222222222222222211112o....
+...o21222223322222223322222222231123o...
+...o212223311332223311113332222233223o..
+..o2222331111113331111111113222223223o..
+..o22231111111111111111111111222232233o.
+..o22311111111111111111111111122222233o.
+.oa22x11111111111111111111111132222223o.
+.o22311ccc111111111111ccccc111132222333o
+.o221cccccc1111111111cccccccc1112222313o
+.o23cccooocc11111111cccooocccc11122a313o
+o323ccowoooc11111111ccowwoocccc1122a213o
+o32cccoooooc11111111ccoooooccccc1222213o
+o3bcccoooooc133oo331ccoooooccccc1222233o
+o3bccccoooc3o111oo331ccooocccccc1222233o
+o3bbcccccc13oooooo3331ccccccccccc222233o
+o3bbcccc1113oooooo333111ccccccccc222333o
+.o3bcc1111333oooo3333111111cccccc22333o.
+.o3bc111113333oo33333A1111111cccc22333o.
+..o33111113333ooo3333111111111cc32333o..
+..o33111111333333ooo11B11111113333333o..
+...oo3111111333333311111111111333333o...
+....oo31111111111111111111133333333o....
+.....oo3311111111111111111133333ooo.....
+.......o3333111111111113333333oo333o....
+........ooo33333333333333ooooo33b33T....
+.........o3oooooooooooooo333333c3333o...
+.........o333333333333333333322222333o..
+.........o222333333333332222222222213o..
+.........o222333333333322a2222222a2323o.
+........o2a2233333333322aa2223222a2223o.
+........o2a22o333333332aa2222322222221o.
+........o2222o3333333o2222222322222211o.
+........o33222o333333o222222o322322122o.
+........o11322o333333o222112o323222222o.
+.......o1112223oo333oo223111o3o3222232o.
+.......o1112233o3o33o2211333o3o322213o..
+.......o3222233o33ooo2222223ooo322213o..
+.......o322223oo333oo2222223o.o332233o..
+........o32233ooo33oo3222323o.oo33333o..
+........oo3333ooo33oo322233o...oo3333o..
+.........o33333oooooo33333o...o333333o..
+.........o3x31oooooo33333o....oo3o3oo...
+..........ox3o3...ox3113oo.....ooooo....
+...........oooo...oxo1ooo...............
+...................Poo..................
diff --git a/parts_pl_src/body/pl_sludgerat.txt b/parts_pl_src/body/pl_sludgerat.txt
new file mode 100644
index 0000000..c1186c5
--- /dev/null
+++ b/parts_pl_src/body/pl_sludgerat.txt
@@ -0,0 +1,43 @@
+# pl_sludgerat: from pixellab_src/pl_sludgerat/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 42)
+# head_top at (28, 29) (from part/probe)
+# back at (39, 37) (from part/probe)
+# tail at (44, 45) (from part/probe)
+.......ooo...............oooo............
+......o222o............oo1111oo..........
+.....o2c323o..........o112c2223o.........
+.....obb323o....ooo...o12cbb2a2o.........
+....o2bb3233oooo212ooo12cbbb1aa2o........
+....o2bc3233o1111^223o1ocbbb1aa2o........
+....o2bc32oo11112332321occcaaaa2o........
+....o2bcco2211233223222ooccbaaa2o........
+....o23co22312322222222ooccbaaa2o........
+.....o2c2123232221122222cccbaa2o.........
+.....o3o3112322111233322cccba22o.........
+......oooo2222223oooo3222ccb22oo.........
+.......owwo22233owow1o2222222o2oo........
+.......owo11113o1oow1o2223ooB2211o.......
+......o3o2111122o1w1o11223o3o12211o......
+.ooo..o1111111122222111123o3o222211o.....
+....oocccc1111111111111123o33oo22222o....
+ooo.caaaabc11111122o311233o3333o2o32o....
+...ocaabbbc1111111o21A223o33232o23o2o....
+..o.occcccc12111oo1112223o22222o233o2o...
+.o...ooccc2212oo11oo2223o2222223232o2o...
+.......ooooooo21122oo2332112222o1T33oo...
+.........o1ww32222223o3211122222oo333o...
+..........ooo332223332o2111233322o3o3o...
+.........o3o2323332232o22113o2222o2o3o...
+.........o3o2322222222o2113o211122oo3o...
+.........o3oo13223212o22223o11122233oo...
+.........o3bbo132311oab222o211212233o....
+.........ocooo123111ooab3o3222222333o....
+..........oo3o1111111ooco32222223333o....
+...........o33o1111211ooo3322223333ooo...
+............o33321211112o3333333333obcoo.
+............ooooo11212222o33333333ocbbcco
+..........oobbbccoo22222ooccc3333ooooooo.
+..........obbcaccoooooocbaaabccoo........
+...........oooooo.....ooaaoaaco..........
+........................Poooo............
diff --git a/parts_pl_src/body/pl_sludgerat_b.txt b/parts_pl_src/body/pl_sludgerat_b.txt
new file mode 100644
index 0000000..e4cf5aa
--- /dev/null
+++ b/parts_pl_src/body/pl_sludgerat_b.txt
@@ -0,0 +1,53 @@
+# pl_sludgerat_b: from pixellab_src/pl_sludgerat_b/base.png (variant of pl_sludgerat) (pixellab_library.py extract)
+# pivot at (40, 60)
+# aura at (32, 38)
+# head_top at (28, 16)
+# back at (39, 37)
+# tail at (53, 45)
+......oooo...............oooo...............
+.....o2223o............oo2211oo.............
+....o23322o.....^oo...o223c2223o............
+....o2aa323o.ooo112oo.o23baa2a3o............
+...o2aaa323oo11122233o23baaa2aa3o...........
+...o2aac33oo11123333322obbbaaaa3o...........
+...o2aacco2311232222222oobbaaaa3o...........
+...o22cco32312322222222oobbaaaa3o...........
+....o2co2122232221122223bbbaaa3o............
+....o3co21223222112333223bbaa33o............
+.....o3oo322222233ooo3222bba33oo............
+......oowo322223owow1o2222223o22o...........
+.......owo222223ooow1o2223ooo2221oo.........
+......o233111222oaw1o22223333322111o........
+.ooo..oo111122223333211222333o322212o.......
+....oocccc12222222222112223333312332o.......
+ooo.caaaaac22222222222222233332323332o......
+...ocaaaaac22222222222223333322b33233o......
+..o.obbbbbcooooo222222223333322b32o332o.....
+.o...oooooo22222o22222333332222b22o33oo.....
+.....oo32222222222222333o3222222222o33oo....
+.....o3o22222222222223o3322222222212333o....
+....o223oo322222222ooo22222222222222233co...
+...ob2232222222222222222222B222322222ccco...
+..oc2233111222222221A1123322bb2322222ccco...
+..o222o111111111111111113222bbc322222bccco..
+.o222321111111111111111o2222bcco2222bbccco..
+.o222o11111111111111111o22222c3o22222bccco..
+.o2222o111111111111111o2222223o3222223ccco..
+.o322ao111111111111111oa22223o32222223ccco..
+.o3aao1111111111111111oac223o3222222233cco..
+..oao211111111111111111ooaco2222222223333T..
+...oo1111111111111111111ooo2222222222333o...
+...oo11111111111111111111112232111123333o...
+..o3o11111111111111111111112o22111123333o...
+..o2o11111111111111111111112o22122223333o...
+..o23o211111111111111111112o22222222333o....
+..o22o221111121111111111222o2222bbb2333o....
+..ob23o22111111111111111222o2222bbbc33oo....
+..ocb3oo2211111111111122222o322bbbcc33oao...
+...occ3oo222222222222222222o322bccc33ocaaoo.
+...oo3333ooo222222222222223o3333cco33occccco
+....oooo333oo333322223333oooo33333333oooooo.
+..ooaaacc33o.oooooooooooo...oocccc33o.......
+..oaacaac33o...............oaaaaaaco........
+...oooooo..................oaaaoaaco........
+............................Pooooo..........
diff --git a/parts_pl_src/body/pl_sludgerat_c.txt b/parts_pl_src/body/pl_sludgerat_c.txt
new file mode 100644
index 0000000..3b2752c
--- /dev/null
+++ b/parts_pl_src/body/pl_sludgerat_c.txt
@@ -0,0 +1,46 @@
+# pl_sludgerat_c: from pixellab_src/pl_sludgerat_c/base.png (variant of pl_sludgerat) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 41)
+# head_top at (28, 24)
+# back at (39, 37)
+# tail at (46, 45)
+.........ooo..............ooooo...............
+........o222o...........oo21111o..............
+.......o33312o.........o2233211o..............
+.......o3bbo2o...oo^..o313bb232o..............
+.......ooabo2oooo222ooo23bba2o2o..............
+.........obo3o1123333332obaao.oo..............
+.........oboo21222222323obaao.................
+.......oobbo312322222223obbao.o...............
+.......o3bo2323222122223obbaa32o..............
+........oo212322211332223bbaaa2o..............
+.........oo222232oooo32223baa23o..............
+.........o.o2223oaoa1322232333oo..............
+.........o.o2222oooa122223oooo................
+.........oo222222333211223ooo.................
+........obaab222222221223o33ooo...............
+......ooaaaab222222222233o3332co..............
+....ooaaaaabb22223322333o33322Bcoo............
+.oooaaaaaccc333332222ooo333222cc23o...........
+oaababoooooo333oooooo33332222ccc23oo..........
+oabooo.....ooooo...oo333321132c222co..........
+.oo................oo22A331132222ccco.........
+...................oo22233213322ccc2o.........
+...................o3oc22o222o22c222co........
+...................o3o1111o22o32222cco........
+...................o3o1111o22o3222cccT........
+..................o23o2221o22o3222cc23o.......
+.................o233o211o223o32222occo.......
+.................o23oo211o23o333222ccco.......
+................o22o.o31o223o332122223o.......
+................o2boo332o22o3321122323o.......
+................oaoo333oaaao3211222333o.......
+................obo3233oaabo3212223333o.......
+.................oo3233ocbo232122333333o......
+..................o3333ooo22o2222333333oo.....
+...................o3333o222o33223o3333bboooo.
+..................ooo333ooo22o3333oooobb3b3b3o
+................oobbbb33oo.oooo3333o.oooooooo.
+...............oabcaabbbo..ooccab33o..........
+................oooooooo..oacabbbboo..........
+...........................Pooooo.............
diff --git a/parts_pl_src/body/pl_sludgerat_d.txt b/parts_pl_src/body/pl_sludgerat_d.txt
new file mode 100644
index 0000000..bf7ec4f
--- /dev/null
+++ b/parts_pl_src/body/pl_sludgerat_d.txt
@@ -0,0 +1,45 @@
+# pl_sludgerat_d: from pixellab_src/pl_sludgerat_d/base.png (variant of pl_sludgerat) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 42)
+# head_top at (28, 25)
+# back at (39, 37)
+# tail at (51, 45)
+.......ooo...............oooo............
+......o333o............oo1111oo..........
+.....o3b333o..........o113b2233o.........
+.....oaa323o....o^ooooo13baa2a3o.........
+....o3aa3233oooo212ooo13baaa1aa3o........
+....o2ab3233o11112223o1obaaa1aa3o........
+....o2ab32oo11112332331obbbaaaa3o........
+....o2abbo3211233223322oobbaaaa3o........
+....o23bo32312322222222oobbaaaa3ooo......
+.....o3b2123232221122223bbbaaa3o322o.....
+.....o3o3112322111333333cbbaa33o3222o....
+....o3oooo3222323oooo3333bba33o332222o...
+....ob3owwo22233owow1o3333333o33322cco...
+...obb2owo22223o1oow1o3333ooo33322cccco..
+...o32o3o2111123o1w1o11333o3333222bccco..
+.ooo12o1111111123333111133o3B3222bbbccco.
+..o2oocccc1111111111111133o322222bbbccco.
+ooo2caaaaac111111333311133o322222bbbccco.
+..oobaaaaac1111111o21333333222222bbbbcco.
+.oo1obbbbbc13111oo111333332222222bbbbccco
+.o111ooccc3333oo11ooA3333322222222bbccc3o
+.o11113ooooooo21122333332112222222bbcc33o
+.o1111133o1wwo22223333321112332222222c33o
+.o1b111133oooo33333333331112332222222333T
+.obbb11113333333333311331113332222222333o
+.obbbb1111223331111111o11113o32222223333o
+.ocbbbb11111111111111o32223o322222223333o
+..ocbbb1111111111111oaa222oo22222223333o.
+..occbbb11111bbbb111oca223o21112223cc33o.
+..occcbb111bbbbbbb111ooa3o22112222ccc33o.
+...occc3111bbbbbbbbb11ooo322222233ccc3o..
+....oc33321bbbbbbbbb1113o32222233ccc3oo..
+.....o333333cbbbbbbb1113o3322223cc333oo..
+......o33333cccccccc3333o3333333333ooboo.
+.......oo33333cccccc33333o33333333ooaacco
+.......oooo333333c333333oobbb3333ooooooo.
+.......obcboo333333333obaaaaabcoo........
+........ooooooooooooooooaaoaaco..........
+........................Poooo............
diff --git a/parts_pl_src/body/pl_smog.txt b/parts_pl_src/body/pl_smog.txt
new file mode 100644
index 0000000..94ab874
--- /dev/null
+++ b/parts_pl_src/body/pl_smog.txt
@@ -0,0 +1,43 @@
+# pl_smog: from pixellab_src/pl_smog/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (33, 43)
+# head_top at (32, 31) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (50, 49) (from part/probe)
+..................................oooo..
+.................................o2222o.
+................................o222222o
+...................oooo.........o222322o
+.................oo2222ooo......o22223o.
+................o222112223o......o2222o.
+...............o22111112223o......o2222o
+..........ooooo22111^1112233ooooo..o222o
+...oo....o21123221111111223332223o.o222o
+..o22o..o2111122211111122333211222oo222o
+.o2222oo32111122221B11222332212222o222o.
+o22222oo3221122222222222222222223322oo..
+o222oo.o322222111122222221111223233o....
+o22o...o33222oooo222222222oooo22233o....
+o22o..o33322owww1o2222222owww2o23333o...
+.o22oo33222o1oooowo22222o2oooo2o22233o..
+..o2233222o2oww22o1o222o2o22wwo2o22233o.
+...oo22322o2ow2woo2o222o2oow2wo2o22223o.
+....o32222o2ow2ooo2ooooo2ooo2wo2o22223o.
+....o32222o2ow222o3oaAao3o222wo3o22223o.
+....o332222o3oooo3ocabaco3oooo3o222233o.
+....o3333223o1113ocooooooo1113o3223333o.
+....o33332223ooooooaaaacoooooo32223333o.
+.....o3333bbb3oocoaooooacocoo3bbb3333o..
+.....oo333222o2ooboo223oacoo2o222333oo..
+....o33o32222o3ooco23o23oboo3o22223o33T.
+....o23o33222o3ooo33oco3oboo3o22233o32o.
+....o23o333222oooco23o32ocooo222333o32o.
+...o2233o3333333oco3233ooco3333333o3322o
+...o22o3oo3333333ocoooocoo3333333oo3o22o
+...o323o..o3333o33occccoo33o3333o..o323o
+....ooo....oooo3o33ooooo33o3oooo....ooo.
+.............o333o333333oo333o..........
+.............o333ooooooooo333o..........
+...........oo2233o.......o3322oo........
+..........o222233o.......o332222o.......
+..........ooooooP.........ooooooo.......
diff --git a/parts_pl_src/body/pl_smog_b.txt b/parts_pl_src/body/pl_smog_b.txt
new file mode 100644
index 0000000..623883f
--- /dev/null
+++ b/parts_pl_src/body/pl_smog_b.txt
@@ -0,0 +1,63 @@
+# pl_smog_b: from pixellab_src/pl_smog_b/base.png (variant of pl_smog) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (33, 35)
+# head_top at (32, 4)
+# back at (31, 34)
+# tail at (50, 49)
+..............ooo^ooo................
+.............o1111111oo..............
+............o1111111111o.............
+........oooo111111111111o............
+.......o1113111111111133ooo..........
+......o11113111111111133111o.........
+.....o3111111111111111111111o........
+.....o31111111111111111111113o.......
+.....o31111111111111111111113o.......
+.....o31111111111111111111113o.......
+.....o33111111111111111311133o.......
+.....o33331111311111111311333o.......
+......o333311331111111133333o........
+.......o33333333111113333333o........
+........o333333333333333333o.........
+.........oooooo3333333ooooo..........
+...........oooooooooooooo............
+...........oo111333333ooo............
+.........ooo1111111113311o...........
+........o11311111111133111o..........
+.......o1111111111111111111o.........
+......o31111111111111111111o.........
+......o31111111111111111111o.........
+......o33111111111111111111o.........
+......o33311111111111111113o.........
+.......o333131111111133113o..........
+........o33333311111333333o..........
+.......oo3333333333333333ooooo.......
+......o21oooo33333333oooo31113o......
+.....o2111333oooooooo3333211122o.....
+....o32111123333B33332332212222o.....
+....o3221122222222A2222222222332.....
+....o322222111122222221111223233o....
+....o33222oooo222222222oooo22233o....
+...o33332owww2o2222222owww2o23333o...
+..o33232o1oooowo22222o2oooo2o22233o..
+.233222o2oww22o1o222o2o22wwo2o22233o.
+.o22322o2ow2woo2o222o2oow2wo2o22223o.
+.o32222o2ow2ooo2ooooo2ooo2wo2o22223o.
+.o32222o2ow222o3oacao3o222wo3o22223o.
+.o332222o3oooo3ocabaco3oooo3o222233o.
+.o3333223o1113ocooooooo1113o3223333o.
+.o33332223ooooooaaaacoooooo32223333o.
+..o3333bboaaoooooooobcoooaaobb3333o..
+..oo3333oooaaoooo223obooaaooo3333oo..
+.o33o333o23oaooo23o23ooaao32o333o33T.
+.o23o333oo32oco33oco3ooao23oo333o32o.
+.o23o333o2o3ocoo23o32ooco3o2o333o32o.
+o2233o33o2ooocoo3233ooocooo2o33o3322o
+o22o3oo33o2oooocoooocoocco2o33oo3o22o
+o323o..o33oooo3occccoo3oooo33o..o313o
+.ooo....oooo3o33ooooo33o3oooo....ooo.
+..........o333o333333oo333o..........
+..........o333ooooooooo333o..........
+........oo2233o.......o3322oo........
+.......o222233o.......o332222o.......
+.......ooooooP.........ooooooo.......
diff --git a/parts_pl_src/body/pl_smog_c.txt b/parts_pl_src/body/pl_smog_c.txt
new file mode 100644
index 0000000..b15b209
--- /dev/null
+++ b/parts_pl_src/body/pl_smog_c.txt
@@ -0,0 +1,58 @@
+# pl_smog_c: from pixellab_src/pl_smog_c/base.png (variant of pl_smog) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 34)
+# head_top at (32, 9)
+# back at (31, 34)
+# tail at (50, 49)
+...........................o^ooooo......................
+.........................oo3333333oo....................
+........................o33322222333o...................
+................oooooo.o3322222222333o..................
+................o33333o33222222222223o.oooo.............
+...............o33222333322222222222333333oo............
+..............o33222223332222222222233222333o...........
+..............o322222223332222222223332222233o..........
+..........oooo3322222223333222222333322222223o..........
+.........o33333322222222222222233322222222233o..........
+........o33222332bbbb2222222222222bbb22223333ooooo......
+.......o33222223baaabb22222222222bbbb222222333333o......
+.......o32222222baaabb22222222222bbbb2222222222223o.....
+......o332222222bbbbb222222222222b22222222bbbb22233o....
+......o3322222222bbb222222222222222222222baaabb2223o....
+......o3322222222222222222222222222222222baaabb2223o....
+....ooo3322222222222222222b222222222222222baab22223o....
+...o333333222222222222222bab222222222222222bb222233o....
+..o33222333222222222222222bb222222232222222222223333oo..
+.o3322222222223322222223222322222223322222232233332233o.
+.o32222baaaa223332222223222222222233322222232222222233o.
+o332222babbb223333222233322222222233332222332222222223o.
+o332222bbbb2222333333333332222222333333333332222222cc33o
+o3322222b22222223333333o33322222333o33333332222222bac33o
+o332222222222222333333313333333333311333333322222233c33o
+o33322233222223333322211113BA33333111111113332222233c33o
+.o33222332222233331111111111333331111111113333322333333o
+.o3333333322233331111111111111111111111111133333333333o.
+..o3333333333333311111111111111111111111111333333333c3o.
+..o3ca3333333333311ooo111111111111111ooo11133333ca33co..
+...ooc333a333333111ooooo11131113111ooooo11133333ccacoo..
+....ocacca333331111owwwooo1o111o1ooowwwo111133ooocaco...
+....ocacca333o31113oww1woooo111oooow1wwo311113o.ocaoc...
+....ocaoocooo311113o3w11oo2ooooo2ooo1w3o311113o.oaco....
+.....cao.co.o3111133o2111o3oabao3o1111o3311113o.oaco....
+.....cao.co.o33111133oooo3obaaaco3oooo33111133o.oaco....
+.....cao.o..o333311133333ocooooooo333331113333o.oaco....
+.....cao....o333311123oooooaaaabooooo321113333o..oo.....
+.....cao.....o3333aaa3oocoaooooabocoo3aaa3333o..........
+......bo.....oo333222o2ooaoo223oaboo2o222333oo..........
+............o33o32222o3oobo23o23oaoo3o22223o33T.........
+............o13o33222o3ooo33oco3oaoo3o22233o31o.........
+......c.....o13o333222oooco23o32ocooo222333o31o.........
+......c....o1133o3333333oco3233ooco3333333o3311o........
+...........o11o3oo3333333ocoooocoo3333333oo3o11o........
+...........o313o..o3333o33occccoo33o3333o..o313o........
+............ooo....oooo3o33ooooo33o3oooo....ooo.........
+.....................o333o333333oo333o..................
+.....................o333ooooooooo333o..................
+...................oo1133o.......o3311oo................
+..................o111133o.......o331111o...............
+..................ooooooP.........ooooooo...............
diff --git a/parts_pl_src/body/pl_snail.txt b/parts_pl_src/body/pl_snail.txt
new file mode 100644
index 0000000..58859e8
--- /dev/null
+++ b/parts_pl_src/body/pl_snail.txt
@@ -0,0 +1,45 @@
+# pl_snail: from pixellab_src/pl_snail/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (31, 26) (from part/probe)
+# back at (32, 34)
+# tail at (48, 51) (from part/probe)
+.................ooooooo................
+..............oooaaaaaaaooo.............
+...........oooaaaaaaaaaaaaboo...........
+.........ooaaaa2222222222aaaboo.........
+........obaaa333111^2222222aabco........
+.......ooooo13111111oooo22222abbo.......
+......oo1112o1111aao1111o22222abbo......
+.....oo2o1132o1aaao21o112o22222abco.....
+....obo11o112oaaaao1o1o12oaa2222abco....
+....oao2o2113oa332o22o113oaaa2323aco....
+...obaa321233b2222o32123o22aaa2323bco...
+...oba2o3333o222222o3333o222abb233bco...
+..obaa22o3ob22222aaaBo3o22222abb233bco..
+..oba222o1o222oooo222o1oaa2323ab233bco..
+..obb222o1o2oo1111ooo21o2aa232abb333bo..
+.obba222o21o11111111o12o22bb223bb333bco.
+.obba2222o211111111122o2222b233bc333bco.
+.obb3222o21111111111112o2223b23bc333bco.
+.ocb3322o11111111111111o3233b33bcb33bco.
+.ocb333o11ooo11111ooo111o333b33bcb333co.
+.ocbb33o1aoo1ooooo1cAaa1o33b333bcb333co.
+..ocb33o1aooocccccoooaa1o33b333cc3333co.
+..ocb33o11occaaaaaaco112o33b333cc333bco.
+..occ33o211ooaaaaaoo1122oo3b333cc333bco.
+...occ33o2211ooooo11122o33o333cc3333bo..
+...occcoo22211111112222o223o3ccc333bco..
+...occo32o222222222222o22223occ3333cco..
+....ocb232o2222222222o232222oc33333co...
+....obb312o2222222222o211222o33333bco...
+....oba2312o22222222o21222aaco333cccT...
+....o322222o23222322o22222abco33ccco....
+....o332223o22222222o3222bbccooocco.....
+.....o33333o22222222oo3333bco333oooo....
+..ooo3o333o3322222233o33333oo3333333ooo.
+.o33333ooo333333333333ooooo333333333333o
+o33333333333222222223333333333333333oooo
+.oooo33333311111111112333333333333oo....
+.....ooo33322222222222333ooooooooo......
+........oooooooooooPooooo...............
diff --git a/parts_pl_src/body/pl_snail_b.txt b/parts_pl_src/body/pl_snail_b.txt
new file mode 100644
index 0000000..f9daa72
--- /dev/null
+++ b/parts_pl_src/body/pl_snail_b.txt
@@ -0,0 +1,63 @@
+# pl_snail_b: from pixellab_src/pl_snail_b/base.png (variant of pl_snail) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 38)
+# head_top at (31, 5)
+# back at (32, 34)
+# tail at (41, 51)
+.................oo.....................
+................o13^....................
+................o13o....................
+...............ob1bo....................
+...............o3333o...................
+...............o3333o...................
+..............ob333cco..................
+..............obbbbcco..................
+.............o3bbbbc33o.................
+.............o31111333o.................
+.............o31111133o.................
+............obb111113cco................
+............obbbbbbbccco................
+............obbbbbbbbc33o...............
+............o31bbbbbb333o...............
+...........o3311111113333o..............
+...........o3311111113333o..............
+..........ob33111111133ccco.............
+..........obb311111113cccco.............
+..........obbbbbbbbbbbccc3o.............
+.........o3bbbbbbbbbbbc3333o............
+.........o331bbbbbbb1133333o............
+........ob3311111111111333cco...........
+........oooo13111111oooo3ccco...........
+.......o1112o111111o1113occ33o..........
+......o2o1132obbbbo21o112o333o..........
+......o11o112obbbbo1o1o12o333o..........
+......o2o2133obbbbo22o133o333co.........
+......o321233bbbbbo321233333cco.........
+......oo3333o222222o3333o3cccco.........
+.....ocbo3o222222222Bo3obccc333o........
+.....ocbo1o222oooobbbo1occc3333o........
+.....occo1oboo1111ooo21o3333333o........
+.....o3co21o11111111o12o333333co........
+......o33o21111111A122o33333ccoo........
+......o3o21111111111112o33cccco.........
+.......oo11111111111111occcc3oo.........
+.......o11ooo11111ooo111o3333o..........
+.......o1aoo1ooooo1coaa1o3333o..........
+.......o1aooocccccoooaa1o333o...........
+.......o11occbbbbbbco112o33co...........
+.......o211oobbbaaoo1122ooco............
+........o2211ooooo11122o33oo............
+........o22211111112222o223o............
+.......o2o222222222222o22223o...........
+......o232o2222222222o232222o...........
+.....ob312o2211111122o211222o...........
+.....ob2332o21111112o21222abcT..........
+.....o22222o21111112o22222bbco..........
+.....o32223o21111112o3222bbccooo........
+.....o33333o22111222oo3333bco333oooo....
+..ooo3o333oo322222233o33333oo3333333ooo.
+.o33333ooo33ooooooooooooooo333333333333o
+o33333333333222222223333333333333333oooo
+.oooo33333311111111112333333333333oo....
+.....ooo33322222222222333ooooooooo......
+........oooooooooooPooooo...............
diff --git a/parts_pl_src/body/pl_snail_c.txt b/parts_pl_src/body/pl_snail_c.txt
new file mode 100644
index 0000000..931465f
--- /dev/null
+++ b/parts_pl_src/body/pl_snail_c.txt
@@ -0,0 +1,52 @@
+# pl_snail_c: from pixellab_src/pl_snail_c/base.png (variant of pl_snail) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (31, 15)
+# back at (32, 34)
+# tail at (49, 51)
+....................oo^ooo....................
+...................oaaaacco...................
+..................oaaaaaaccoo.................
+...............oooaaaaaaaa3ccoo...............
+............ooobbb3aaaaaa3333333o.............
+...........obbb2223333233333222333o...........
+........ooobb2221133333333222222333oooo.......
+......ooaa3b22111112222222122222233aaaao......
+.....oaaaa3221111bbbb22221112222223aaaabo.....
+.....oaaa3322111bbbbbb1111112bb22223aabbco....
+.....oaa33321111bbbbbb111111bbbb22233abcco....
+.....o3333aa1111bbbbb11111112bbb222233ccco....
+.....o333aaoooo11bbb111oooo12222222233333o....
+....ob322bo1112o111111o1111o2222222222333o....
+...obb222o211o12o1222o21o112o2222222223333o...
+...ob2222o1111o1o2222o1o1o12o2222bbb2233333o..
+..obb2222o111o13o2222o12o113o222bbbbc233333o..
+..ob32222221113222bb2o3112322222bbbbc2333333o.
+.obb322222o2222o22bb22o2222o2222bbbcc2333333o.
+.o233222bb2o3o222222222Bo3oa22222ccc22333333o.
+.oaa322bbbbo1o222oooo222o1oa2222222222333333o.
+oaaa322bbbbo1o2oo1111ooo21o22222222223333cccco
+oaaa322bbbbo11o11111111o11o22bbb22223333ccccco
+oaaa3222b222o111111111113o222bbbc2333333ccccbo
+obbc3322222o11111111111A11o22bbbc2333333ccccbo
+occc3333222o11111111111111o222cc22333333ccccbo
+.occ333332o11ooo11111ooo111o333333333333ccccco
+.o33333333o1aoo1ooooo1coaa1o3333333333333cccco
+.o333cb333o1aooocccccoooaa1o3333333333333cccco
+.o333cbb33o11occbbbbbbco111o33333333cc333333o.
+.o233ccc33o311oobbbaaoo1111oo333333cccc33333o.
+..o23ccc333o3111ooooo11133o32o33333cccc3333o..
+..oc333333oo33111111111333o113o3333cccc3333o..
+..occ3333o32o333111113333o11113o333ccc33332o..
+...oc333ob121o3333333333o121111o3333333333o...
+....oc3obb211o1133333311o111111o333333333o....
+.....o3oba1211o31111111o11111abco3333333T.....
+......oo311111o13111331o11111bbco333333co.....
+.......o231113o11111111o3111bbcco3333cco......
+........o33333o11111111oo3333bco333ooooo......
+.....ooo2o332o2211111122o23333ooooo33333oo....
+....o23333ooo222222222222ooooo333333333333o...
+...o23333333333111111113333333333333333oooo...
+....oooo23333311111111112333333333332oo.......
+........ooo33322222222222332ooooooooo.........
+...........oooooooooooPooooo..................
diff --git a/parts_pl_src/body/pl_snail_d.txt b/parts_pl_src/body/pl_snail_d.txt
new file mode 100644
index 0000000..89372fc
--- /dev/null
+++ b/parts_pl_src/body/pl_snail_d.txt
@@ -0,0 +1,57 @@
+# pl_snail_d: from pixellab_src/pl_snail_d/base.png (variant of pl_snail) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (32, 33)
+# head_top at (31, 9)
+# back at (32, 34)
+# tail at (49, 51)
+...................o^ooooo................
+...............ooooaaaaaaaooo.............
+............oooaaaaaaaaaaaaaaoo...........
+...........oaaaa2222222222aaaaboo.........
+.........oobaaaa222222222222aaabco........
+........obaaaa2221111122222222aabco.......
+.......ooooa222111111oooo2222222aaco......
+......oo212o221111aao2112o2222222abbo.....
+.....oo22112o111aaao221122o2222223abbo....
+....obo11o12oaaaaaao21oo11oaaa22223abco...
+....oao1oo11oaaa112o21oo12oaaab22233bco...
+...obao2oo12oaa2222o22oo13o22abb22323bco..
+..obaao33223o222222o332233o222bab2333bco..
+..obaa2o333oa2222222o3333o22222abb2233bco.
+.obaa222o3oa22222aaa2oo3oba22222abb233bco.
+.obaa222o2o222ooooo22oo2o2bbb222abb2333bo.
+.obb2222o2o2ooooooooo3o2o222b2222bbb333bco
+obba2222o23o221111122o22o322bb222abb333bco
+obba2222o222211111112222o3323b222abc333bco
+obb3222co2221111111222223o3233b22abcb33bco
+ocb3322co22211111222222223o333b32accb333co
+ocb3332o2222222222222222223o33b33accb333co
+ocbb333o22222222222222222233oc333bcc3333co
+.ocb33o222222222222222222223oc333ccc3333co
+.ocb33o22oo2222222222Ao222233o333ccc333bco
+.occ33o22oo2222222222Bo222233o33ccc3333bco
+.occc3o22oo2222222222oo222233o33ccc3333bo.
+..occcoaaoo2222222222ooaaa233o33ccc333bco.
+..occcoaaa2222222222222aaa233o3ccc3333bco.
+..occcoaa22222ooo222222aaa233occc33333co..
+...occo3222222222222222222333occ33333bco..
+....occo32222222222222222333occc3333cco...
+.....oc3o322222222222222333occ33333ccco...
+......oc3o3322222222223333occ33333ccco....
+.......occoo33333333333oooo333333ccco.....
+........oco33oooooooooo3333occcooooo......
+.........oo33333333333333333ooo33223o.....
+.........o33o2332222333o32223o3322233o....
+........o223o2211111122o32223o3322oo3o....
+........o22o321111111122o22223o32212o3o...
+.......o222o321111111122o22223o32o22o3o...
+.......o222o321111111122o32223o33o33o3o...
+.......o333o3311111111222o3233o333oo33T...
+........oooo2o311111122222oooo3o33333o....
+...........o23o3111122222223o333o333o.....
+...........o223oo3333o222223o3333ooo......
+...........o32233ooooo222223ooooo.........
+............o3333o...o333333o.............
+............o3333o....o33333o.............
+............o223o......o223o..............
+.............ooo........Poo...............
diff --git a/parts_pl_src/body/pl_snake.txt b/parts_pl_src/body/pl_snake.txt
index b026969..74bd36e 100644
--- a/parts_pl_src/body/pl_snake.txt
+++ b/parts_pl_src/body/pl_snake.txt
@@ -1,9 +1,9 @@
# pl_snake: from pixellab_src/pl_snake/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (31, 43)
-# head_top at (31, 27) (from part)
-# back at (35, 27) (from part)
-# tail at (45, 38) (from part)
+# head_top at (31, 27) (from part/probe)
+# back at (35, 27) (from part/probe)
+# tail at (45, 38) (from part/probe)
...........oooooo.....................
.........oobbc22oooo..................
.......oo1bbb112222ooo................
diff --git a/parts_pl_src/body/pl_snake_b.txt b/parts_pl_src/body/pl_snake_b.txt
new file mode 100644
index 0000000..0f61eaa
--- /dev/null
+++ b/parts_pl_src/body/pl_snake_b.txt
@@ -0,0 +1,54 @@
+# pl_snake_b: from pixellab_src/pl_snake_b/base.png (variant of pl_snake) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 37)
+# head_top at (31, 13)
+# back at (35, 27)
+# tail at (49, 38)
+...........oooooooo^oo.................
+........ooobbbcc222222oo...............
+.......obbbbbbbbc2222222oo.............
+......o2b22223bbbb22222223o............
+....oo111111222bbb2222222bco...........
+...o21111111112222222222bbcco..........
+...o11222222111222222222bbbcco.........
+..o112oooooo221112222222bbbcco.........
+.o112oooooooooo11122222bbbbcc3o........
+.o12ooooooooccoo2112222bbb2233o........
+o113oooooo3ccc33o2112222222233o........
+o11oooooo33c33333o2112222222333o.......
+o11ooo33331113c3c3o211222222333o.......
+o13ooocb22113bab3ooo11122223333o.......
+o13ooobb23123ab3ooo3o11B2223333o.......
+o13oooo33323223oo1o3o211322333co.......
+o13ooo13333333o1o1333o1133333cco.......
+o13ooo1o3113ooo11a322o2133333cco.......
+o11ooo311111223o332o33o13333ccco.......
+o11oo2111112222222o333o1133occco.......
+o11oo2o222o22222oo333oo113333cco.......
+.o1oo3222222223o3333ooo1133333o........
+.o33oo3333223oo333oocoo1133333o.ooooo..
+.o33ooooooooo333oocccoo133333o.o11233o.
+..o3ooo33bo333ooccAcco1133333oo313oo3o.
+..o33oooobooooobbb33oo12333cooo33o..oT.
+...o33oooboooobbbbbo111333cco.o33o.....
+....o333ooooo33333o122333cco..o333o....
+.....oo333ooo3311o1233333ooooooo33o....
+.......oo33oc3aaao1333ooo3333333oo3o...
+.........ooo311112ooooco3333ccc223oo...
+......oooooo1aaaa122cccoo3ccbbb22223o..
+....oo322bo1aaaaa12cbcco333ccbc111bbco.
+...o3222bco1aaaaa323ccoo333oo3211bbbco.
+..ocbb233o1a111232223oo33333333111bbcoo
+.ocbbc23oo1aaaaa122233ocbbcc333111ccc3o
+.ocbbc22oo1aaaaa122233ocbbcco321122333o
+.o2211222o1aaaaa122233cooooocbbb122333o
+.oc2222cbo33222233223cbo3333cbbc22oo33o
+.occ22cbco21aaaa13222cbbc22ccbc22occo3o
+.occo33ccoo1aaaaa232cccc22222cc23occoo.
+..oc3333o3o31aaaa13332222ccc2223ooco3o.
+...o3333333o31a11333333cccccc33333o3o..
+....oocbbbcobbbbbbbb3333occo3333333o...
+......ooooooobbbbbbbbb333oo333333oo....
+............ooobbbbbbbbcc3333ccoo......
+..............ooobbbbbbbbbbcooo........
+.................ooPoooooooo...........
diff --git a/parts_pl_src/body/pl_snake_c.txt b/parts_pl_src/body/pl_snake_c.txt
new file mode 100644
index 0000000..d56fb0d
--- /dev/null
+++ b/parts_pl_src/body/pl_snake_c.txt
@@ -0,0 +1,52 @@
+# pl_snake_c: from pixellab_src/pl_snake_c/base.png (variant of pl_snake) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 41)
+# head_top at (31, 16)
+# back at (35, 27)
+# tail at (35, 38)
+...............oooo.....................
+............ooobbbbo^o..................
+...........oo111bbbbbbo.................
+.........oo2bbb11111b123o...............
+........oob1bb1bb22232233o..............
+........obbbb1booo3333333o..............
+.......o2bb112o21o332233cco.............
+......obbb1123oo1o222233cco.............
+.....o1ccb1223ooo22222333co.............
+....ob1112222222222223o3333o............
+...o11o2222222oooooa1bo3333o............
+..o1112222ooooaaaaa3oo3333co............
+.o12ooooobb331113oooc333B3co............
+o2ooobbbbbooooooocccc333bcco............
+o33bbooooo......ooccb33bbcco............
+.oooo............obbb322ccco............
+.................o3333223cco............
+.................o11112233o.............
+................o3aaa12233o.............
+................o11111223co.............
+................oaaa1113cco.............
+...............o1aaa11bcco..............
+...............o111111bcco..............
+..............o1aaa1113cT...............
+..............oaaa111233o...............
+.............o1111211333o...............
+.............oaaaa2A233oooooooooo.......
+............o1aaa12123co322222333oo.....
+............o1111111bccoc1122bbb223oo...
+.......ooooooaaaa11cbcoccc2cbbbb22223o..
+.....oo322bo1aaaa11cccoco332ccbc111bbco.
+....o2222bco11113222ooooo333oo3211bbbco.
+...ocbb222o1aaaa122333o333333333111bbcoo
+..ocbbc23oo1aaaa122233occbbbc332111ccc3o
+..ocbbc22oo311113222333ocbbbco321222233o
+..o2211222o1aaaa1222233cooooocbbb222333o
+..oc2222cbo3aaaaa32223cbc3222cbbc22oo33o
+..occ22cbco32222233222cbbc22ccbc22occo3o
+..occo23ccco1aaaa1232cccc22222cc23occoo.
+...oc3333o3o31aaaa33332222ccc2223ooco3o.
+....o3333333o31111133333cccccc23333o3o..
+.....oocbbbcocccccbbb3333occo3333333o...
+.......ooooooobbbbbbbbb333oo333333oo....
+..............oobbbbbbbbbc3333ccoo......
+...............ooobbbbbbbbbbcooo........
+..................oPooooooooo...........
diff --git a/parts_pl_src/body/pl_snake_d.txt b/parts_pl_src/body/pl_snake_d.txt
new file mode 100644
index 0000000..d6688e4
--- /dev/null
+++ b/parts_pl_src/body/pl_snake_d.txt
@@ -0,0 +1,51 @@
+# pl_snake_d: from pixellab_src/pl_snake_d/base.png (variant of pl_snake) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (31, 18)
+# back at (35, 27)
+# tail at (49, 38)
+.............oo.......................
+............obo.......................
+............oaco..^o..................
+........oo.obaco.obo..................
+........oboobcccobaco.................
+........oacobcccobcco.oo..............
+........occcbccc2bccoobo..............
+.......oobc1ccc2222ccbco..............
+.....ooo111112311o23ccco..............
+....o3121111231b22o33ccoooo...........
+....obb11112bab3ooo3333cbao...........
+....obb12113ab3ooo3333Bcbco...........
+....oo23213113oo1o32333bcco...........
+....o12322322o1o1322333cco............
+....o1o2113ooo11a3113o333o............
+....o311111113o331o33o233ooo..........
+...o1111111111111o233o23ccbo..........
+...o1o111o11111oo223o333cbco..........
+...o2111111113o3333o3333ccco..........
+....o2222113oo333ooc3333coo....ooooo..
+.....ooooooo333ooccc32333o....o11122o.
+.....o33bo333ooccbb332333oo..o113oo2o.
+......oobooooobbbbbb223ccbbo.o12o..oT.
+.......obo..oobbbbbb223cccoo.o23o.....
+.......ooo.oo3b33333223ccco.obo3oo....
+...........ob31111A12233occooccobo....
+..........oo3aaaa1112ooo3cc1occccco...
+..........o311112311cco32221111ccoo...
+.....oooooo1aaaa111ccco321111111113o..
+...oo211bo1aaaaa11cbcco3322111111bbco.
+..o2111cco1aaaaa312ccoo3333311111bbco.
+.ocbb122o1a111231113oo33333333111cbcoo
+ocbbc13oo1aaaaa111133ocbbcc332111ccc3o
+ocbbc11oo1aaaaa111133ocbbcco311111233o
+o1111111o1aaaaa111133cooooocc11111233o
+oc1111cbo33222232113cbc3222c11111oo33o
+occ11cbco21aaaa13111cbbc11cc1b11occo3o
+occo23ccoo1aaaaa121cccc111111111occoo.
+.oo3333o3o31aaaa13331111ccc1113ooco3o.
+..oc33333co31a11333332cccccc22333o3o..
+...oocbbbcobbbbbbbb3333occo3333333o...
+.....ooooooobbbbbbbbb333oo33333coo....
+...........ooobbbbbbbbcc3333ccoo......
+.............ooobbbbbbbbbbcooo........
+................ooPoooooooo...........
diff --git a/parts_pl_src/body/pl_snowcat.txt b/parts_pl_src/body/pl_snowcat.txt
new file mode 100644
index 0000000..a293aa9
--- /dev/null
+++ b/parts_pl_src/body/pl_snowcat.txt
@@ -0,0 +1,46 @@
+# pl_snowcat: from pixellab_src/pl_snowcat/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 42)
+# head_top at (30, 29) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (50, 49)
+.............................322222......
+............................22222b11b....
+..........................3222b22b1111...
+..........................222bb32211111..
+...............322223....2223cco33321113.
+.............3332222233.2bb33.....332233.
+...........bbb3222o222bbboc........33333.
+......333.32b222oo1o222b22.222......333..
+.....3oc32o322oo111^oo222o22c33..........
+.....3ccc22oooo1111113ooo22ccc3..........
+.....3cccc32o3111111132o22cccc3..........
+......cbbco322oo311132222ocbbc...........
+......3cbo322111o32o222223obc3...........
+.....333co32211123322222223o333..........
+....33o3o32222112222B122223o3o33.........
+....33oo332ooo33222233ooo233oo33.........
+.311o22332ow1oo3222231oo1o23322o113......
+...111122231ooo322223ooo132221111........
+3222111112313o33111133o3132111112223.....
+..22111111232131baac2o123211111122.......
+.332211111b22211obbo22222b111112233......
+33o22111112b22311ooA1322b21111122333.....
+..322221122222o32o2233232221122223.......
+..3322222223322o2123o2233222222233...33..
+.3333222222333322222233332222223333..223.
+..3o332222333333333333333322223333..3bb23
+...oo3332333oo33333333ooo3323333....32b23
+.....3o333o333oooooooo333o333o3.....32223
+......o3oo3333333333333333oo3o.....3222T.
+......c3333333333333333333333c.....2bb3..
+.....ccco332233222222332233occc.3322bc...
+.....3c3o322223322223322223o3co.3bb33....
+.....333o32bb2233223322bb23o333.3ccc.....
+.....333oo22b223o33o322bb2oo333..........
+...12123oo222223o33o322222o332121........
+..1312233o221122o33o221122o3322131.......
+..331313.31111111..11111113.312132.......
+....3.33.11311311..11311311.33.3.........
+.........32333333..33333323..............
+............33........P3.................
diff --git a/parts_pl_src/body/pl_snowcat_b.txt b/parts_pl_src/body/pl_snowcat_b.txt
new file mode 100644
index 0000000..4c62658
--- /dev/null
+++ b/parts_pl_src/body/pl_snowcat_b.txt
@@ -0,0 +1,58 @@
+# pl_snowcat_b: from pixellab_src/pl_snowcat_b/base.png (variant of pl_snowcat) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (31, 34)
+# head_top at (30, 13)
+# back at (31, 35)
+# tail at (48, 49)
+..........................................32222....
+........................................32222211a..
+.......................................322ba221112.
+.......................................222cc3331113
+......................................3223o...33233
+....................322^2.............323o.....3333
+..................32232a111..........oa2o.......33.
+..................22a3221112.........oaao..........
+..........3223...223coo33113.........oaao..........
+.......cc33222333oc3....3333.........oaao..........
+....2232a22o1o2232222....33..........o22o..........
+...332o22oo11oo22o2co2...............o222o.........
+...3cc3ooo11113oo2ccc2................o22o.........
+...3cac322o213322ocac.................o322o........
+....oco3222o232222oco..................o2ac........
+...ooo322113321222ooo...................oaco.......
+...ooo3oo332233oo23oo...................oaco.......
+.21223owwoo223wowo232o12o...............oa3o.......
+3221113w333113oow3211122o...............o23o.......
+.2211123231baco132111223o...3333.......3223o.......
+oo21112a221oo232b211122oo..3ab2233....32233........
+.o2221222o3323o22221222o33322bb222oo.3aa333........
+.o322223o2o22o22322222333bb22bb222b2o2acc3.........
+.3o32233oo3333ooo32223332bb22bbb22b2233co..........
+..333233.oooooo33333333222bb22bb22b22ooo...........
+....333...o333333333o32222bb22bb222223.............
+..........o3333333333222A2bb22b22222223............
+..........o3333332222222B2b222b22222223............
+..........o332222222222222b222222222223............
+..........o332222222222322b222232222223............
+...........o33222322222o2222333322bbb23............
+...........ooo322322222o3333oooo22bbb23............
+............ooo333o2222o3ooooooo32bbb23............
+............o33oooo2222ooo.oooooo222223............
+............o333o.o2222o...oooooo222223............
+............o333o..o222o...oooooo322223............
+............o333o..o222o...ooooooo32222o...........
+............o33o...o22bo....ooooooo33222o..........
+............oc3o...obbbo.....ooooooo3222bo.........
+............occo...obbbo......3oooo.33bbao.........
+............occo...ob22o.......occo..3bb2o.........
+............333o...o222o.......oc3o...o22T.........
+...........o333o...o22o........o33o...o22o.........
+...........oc33o...o33o........c33o...o3ao.........
+...........occ3o...obbo.......occ3o...oaao.........
+...........o3c3o..o2b2o.......o33oo...o222o........
+...........o333o..o222o.......o33o....o222o........
+..........o333o...o222o.....oo333o....o222o........
+........1o3333o..o2222o....o33333o..122222o........
+........313133o.111122o....o3ooooo..1o1o12o........
+........333333..1o1o12o.............3o3o33.........
+................3o3o3P.............................
diff --git a/parts_pl_src/body/pl_snowcat_c.txt b/parts_pl_src/body/pl_snowcat_c.txt
new file mode 100644
index 0000000..6e6b740
--- /dev/null
+++ b/parts_pl_src/body/pl_snowcat_c.txt
@@ -0,0 +1,46 @@
+# pl_snowcat_c: from pixellab_src/pl_snowcat_c/base.png (variant of pl_snowcat) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 41)
+# head_top at (30, 24)
+# back at (31, 35)
+# tail at (50, 49)
+..............................322222......
+..................22.........22222b11b....
+..................21....2233222b22b1111...
+...........3222..221^.33113222bb32211111..
+...........3111222212311123333cco33321113.
+.........2232211222122112211133....332233.
+........o1112221122o22122112233.....33333.
+.......33321122222o1o2222223222o.....333..
+......3oc32o32222o111o2222o22c3331........
+....333ccc22oo2o11111132oo22ccc3113.......
+....313cccc32o3111111132o22cccc323........
+...1113cbbco322oo311132222ocbbc32233......
+..312223cbo322111o32o222223obc3221113.....
+..3322223co32211123322222223o33222223.....
+...311222o32222112222B122223o32222223.....
+..3111222332ooo33222233ooo233322211112....
+.3111222332ow1oo3222231oo1o233222222113...
+3111222232221ooo322223ooo1222332222233....
+32222222cbb213o33111133o3122bc3221113.....
+.331122cbbab32131baac2o1232babc3221113....
+.311122bbbbab2211obbA22222babbb32221113...
+.311222cbbbab22311oo11322babbbb32222213...
+.312322cbbbbb22o32o223323bbbbbc3222333....
+.3123123cbbb2322o2123o2232cbbbc21221o.33..
+.31o31323ccc333322222233333ccc2221313.223.
+..333132233322333333333322333322213333bb23
+....3232231112233333332221222113313..32b23
+....3233332222112222222221222313313..32223
+....33o33322321222222221231223133o..3222T.
+.....o3oo333332o312223322o222oo333332bb3..
+.....o33o333o33o3322333oo3ooo33333332bc...
+.....o333o332oo3o323o3o33333o33333bb33....
+.....ob33o3222233333oo322222o333coccc.....
+.....o3b3o32bb2233oo3322bb22o33cco........
+.....o3333o22b223o33o322bb2o33333o........
+.....11133o222223o33o322222o332111........
+....213123o221122oooo321122o3221312.......
+....233233.111111o..o111111.3322332.......
+...........131131....131131...............
+...........232232....P32232...............
diff --git a/parts_pl_src/body/pl_snowcat_d.txt b/parts_pl_src/body/pl_snowcat_d.txt
new file mode 100644
index 0000000..c3f898f
--- /dev/null
+++ b/parts_pl_src/body/pl_snowcat_d.txt
@@ -0,0 +1,49 @@
+# pl_snowcat_d: from pixellab_src/pl_snowcat_d/base.png (variant of pl_snowcat) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 39)
+# head_top at (30, 18)
+# back at (31, 35)
+# tail at (56, 49)
+................oooo^ooooo......................
+.............ooo1111111111ooo...................
+...........oo1111111111111122oo.................
+.........oo11111111111111111122o................
+........o111bb11122221111cbb1112oo..............
+.......o2111bb122222222111bb111112o.............
+......o211112bb22222222bb2111111122o............
+.....o2111122bb2222o222bb21111111122o...........
+....o2113332222222o1o2222212331111222o..........
+...o2213cc32o22oo1111oo22o22cc3111122o..........
+...o2223ccc22oo31111113oo22ccc3111122o..........
+..o22223cccc32o2o3111332o3cccc32111222o.........
+..ob2222cbboo2111o21132222obbc322222bbo.........
+.obbb222occo321112o32222223oc332222bbbbo........
+.obbb223o3o3222112222112223o3o33222bbcbo........
+obbbb233oo332222222222222233oooo222bbcbco.......
+obbb11o2222o11oo3222231oo122222o112cbbcco.......
+occc311112231ooo32222Booo12221111222ccc3o.......
+o2322211112313o33111133o3122111122232223o.......
+o22222111112321o1caac2o12321111122222223o.......
+o2333221111b22211occo2222211111223322233o.......
+o32232211111b22311oo1A222b11111223332233o.......
+o32233222112222o32o223323211122223222333o.......
+o323333222222322o2123o223322222233222333o.......
+o3bb333222223333222222333322222333222333o.......
+occbc33o33233oo33333333ooo32333323222333o.......
+ocbcb222o33o333oooooooo33oo33o322bbbc33o....33..
+.cccb22233o3322333333333233o3332bbbccc3o....223.
+.ocbb222223322222222222222233222bbbccc3o...3bb23
+.occc222222222222222222222222222cbcccco....32b23
+..o33322222222222222222222222222ccccc3o....32223
+...333222222222222222222222222233ccc3o....3222T.
+...o33333222232222222222222223333333oo...32bb3..
+....333o322223222222232222233333333o3333332b3...
+....o33o32222332222223322223o3333oo3333cc333....
+.....o3o32bb223333333322bb23o333ooo3333cc3......
+.....2oo32bb22333333o322b323o33o3o33333c........
+...2222oo222223o3333o3222223ooo332..............
+...12122o211223oo333o321122o3323122.............
+...3313111111123oooo11111111.313132.............
+.....2.113113123....11311311.3232.3.............
+.......32332323.....32332323....................
+..........3............P2.......................
diff --git a/parts_pl_src/body/pl_snowman.txt b/parts_pl_src/body/pl_snowman.txt
new file mode 100644
index 0000000..0f1079c
--- /dev/null
+++ b/parts_pl_src/body/pl_snowman.txt
@@ -0,0 +1,48 @@
+# pl_snowman: from pixellab_src/pl_snowman/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (31, 22) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (46, 50)
+.................oooooo.................
+...............oo211112oo...............
+.............oo1111111111oo.............
+............o111111^1111111o............
+...........o2111111111111112o...........
+..........o322111111111112223o..........
+..........o222211111111122122o..........
+.........o22212221111112221222o.........
+.........o32222ooo2212ooo22223o.........
+.........o2222o3a3o22o3a3o2233o.........
+........o32222o1ooo22o1ooo22233o........
+........o3322aooboo11oobooa2233o........
+........o3333aaooo1oo1oooaa3333o........
+.........o33223221oaao21132233o.........
+occ......o332oo222oabo222oo233o......cco
+obac......o33321o22oo22o12333o......cabo
+.obc.oo...ooo33331222213333ooo...oo.cao.
+occacao...occoo3333B23333oocco...oacbcco
+oooobao...occbbbboooooooccaoco...oaboooo
+....obco..occcbbaaaaaabobacaco..ocbo....
+.....occoo3ocaaccbbbbbccoabbo3oocco.....
+......occo233ooaaaaAaaaboccco2occo......
+.......oo211333ooooooooooccco22oo.......
+.......o22111112222oo333occbo223o.......
+......o22221111111oaao12oaabbo233o......
+......o22222111111coab12oaabbo223o......
+......o22222111111obbo12oaabbo223o......
+.....o3322222111111oo112oacobo2333o.....
+.....o332222221111111112oacobo2333o.....
+.....o3332322222111oo1123ooo332333o.....
+.....o333222222223oaao223333323333o.....
+.....o333322222222boab222222223333T.....
+......o33333222222occo22222333333o......
+......o333333222223oo222322333333o......
+......o33333333322222232233333333o......
+.......o333333333333333333333333o.......
+........o3333333333333333333333o........
+.........o33333333333333333333o.........
+..........o333333333333333333o..........
+...........o333333333333333oo...........
+............ooo3333333333oo.............
+...............ooooPooooo...............
diff --git a/parts_pl_src/body/pl_snowman_b.txt b/parts_pl_src/body/pl_snowman_b.txt
new file mode 100644
index 0000000..dc30ab7
--- /dev/null
+++ b/parts_pl_src/body/pl_snowman_b.txt
@@ -0,0 +1,62 @@
+# pl_snowman_b: from pixellab_src/pl_snowman_b/base.png (variant of pl_snowman) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 34)
+# head_top at (31, 5)
+# back at (31, 36)
+# tail at (46, 50)
+.................oo^ooo.................
+...............oo211112oo...............
+.............oo1111111111oo.............
+............o11111111111111o............
+...........o2111111111111112o...........
+..........o322111111111112223o..........
+..........o222211111111122122o..........
+.........o22212221111112221222o.........
+.........o32222ooo2212ooo22223o.........
+.........o2222o3a3o22o3a3o2233o.........
+........o32222owooo22owooo22233o........
+........o3322aooboo11oobooa2233o........
+........o3333aaooo1oo1oooaa3333o........
+.........o33223221oaao21132233o.........
+.........o332oo222obbo222oo233o.........
+..........o33321o22oo22o12333o..........
+..........ooo33331222213333ooo..........
+occ.......occoo3333223333oocco.......cco
+obac......occbbbboooooooccaoco......cabo
+.obc.oo...occcbbaaaaaabobacaco...oo.cbo.
+occbcao..o3ocaaccbbbbbccobbbo3o..oacbcco
+oooobao..o222ooaaaaaaaaboccco2o..oaboooo
+....obcoo211222ooooooooooccco22oocbo....
+.....occ22111112222oo333occbo223oco.....
+......oo2221111111oaao11oaabbo223o......
+......o22222111111coac11oaabbo223o......
+......o32222211111ocbo11oabobo223o......
+.....o3322222211111oo111oacobo2333o.....
+.....o3332322222111oo112ooooco2333o.....
+.....oo33222222223oAao22333332333oo.....
+.....oo33322222222coac22222222333oo.....
+......oo3333222222oBco22222333333o......
+......oo33333222223oo222322333333o......
+......ooo333333322222232233333oooo......
+.......oo3o333333333333333333oooo.......
+.........oooo333333333333333oooo........
+........o2o3oo3333333333333o3o2o........
+.......o222oooo3o333333o33ooo212o.......
+.......o2213333oooooooooo3333112o.......
+......o222211112222oo222211111222o......
+......o22221111111oaao11111112222o......
+.....o333222111111coac111111222233o.....
+.....o332222211111occo111111222233o.....
+.....o3332322211111oo1111112222233o.....
+.....o3332222222111111122222222333o.....
+.....oo333222222231oo1222222223333T.....
+.....ooo3333222222oaao222223333333o.....
+.....ooo3333322222occo2232233333oo......
+.....oooo3333333222oo22233333333oo......
+......ooooo3333333222233333333oo3o......
+......ooo33oo3333333333333333333oo......
+.......oo33oo33333333333333o3o3oo.......
+........ooooo3oo3333333ooooooooo........
+.........oooooo33o333ooo3oooooo.........
+...........ooooo3oooooooooooo...........
+...............ooooPooooo...............
diff --git a/parts_pl_src/body/pl_snowman_c.txt b/parts_pl_src/body/pl_snowman_c.txt
new file mode 100644
index 0000000..6ef61cd
--- /dev/null
+++ b/parts_pl_src/body/pl_snowman_c.txt
@@ -0,0 +1,55 @@
+# pl_snowman_c: from pixellab_src/pl_snowman_c/base.png (variant of pl_snowman) (pixellab_library.py extract)
+# pivot at (32, 61)
+# aura at (32, 39)
+# head_top at (31, 13)
+# back at (31, 36)
+# tail at (47, 50)
+.................oo^ooo..................
+...............oo211112oo................
+.............oo1111111111oo..............
+............o11111111111111o.............
+...........o2111111111111112o............
+...........o2211111111111122o............
+..........o222211111111122222o...........
+..........o212222111111122122o...........
+.........o22122222111222222222o..........
+.........o22222ooo2222ooo22223o..........
+.........o2222o3a3o22o3a3o2233o..........
+........o32222owooo22owooo22333o.........
+........o3322aooboo11oobooa2233o.........
+........o3332aaooo1oo1oooaa2333o.........
+.........o33223221oaao21132233o..........
+.........o332oo222oabo222oo233o..........
+..........o33323o22oo22o22333o...........
+occ.......oooo333122221333oooco.......cco
+obac......ocbbooo3322233oooccco......cabo
+.obc.oo...ocbbbbboooooooccaocco...oo.cbo.
+occbcao...occbbbaaaaaabobacaoco...oacbcco
+oooobao..o3ocaacbbbbbbccobbboo3o..oaboooo
+....obco.o223ooaaaaaaaaboccco33o.ocbo....
+.....occo111222ooooBoooooccco222occo.....
+......oo2111112222222222occbo2122oo......
+......o32111111111111112oaabbo1223o......
+......o2211111111111A112oaabbo1222o......
+.....o2222111111111oo112oaabbo13223o.....
+.....o222221111111oaao12oacobo22223o.....
+.....o222222111111boab12oacobo22233o.....
+....o3322222111111obbo123ooo33222333o....
+....o33222222111111oo111333332322333o....
+....o3322212221111111111132222223333o....
+....o33322122222111oo112222222223333o....
+....o3332213222223oaao22222222233333o....
+.....o333312222222obab2222231223333o.....
+.....o333333222222occo2222231333333o.....
+.....o3333333222222oo22232232333333T.....
+......o333333313222222323333333333o......
+......o333333313333333333333333313o......
+.......o33133323333333333333333313.......
+....oooo33123333333333333333333312ooo....
+..oo3122oo123333333333333333313311122oo..
+.o2111222211233333333333333311122211112o.
+.o2211111111111113333331111111222222222o.
+..o222222111112222111111112212223oooooo..
+...oooooo22222oooo2111122222222oo........
+.........ooooo....o22222ooooooo..........
+...................oPooo.................
diff --git a/parts_pl_src/body/pl_snowman_d.txt b/parts_pl_src/body/pl_snowman_d.txt
new file mode 100644
index 0000000..86d497f
--- /dev/null
+++ b/parts_pl_src/body/pl_snowman_d.txt
@@ -0,0 +1,48 @@
+# pl_snowman_d: from pixellab_src/pl_snowman_d/base.png (variant of pl_snowman) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (31, 19)
+# back at (31, 36)
+# tail at (46, 50)
+.................oo^ooo.................
+...............oo111122oo...............
+.............oo1121112111oo.............
+............o11211111211211o............
+...........o1121111111111211o...........
+..........o112111112111112212o..........
+..........o112211121111121222o..........
+.........o12212221111112221221o.........
+.........o12222ooo2212ooo22221o.........
+.........o2122o3a3o22o3a3o2231o.........
+........o13222owooo22owooo22232o........
+........o1322aooboo11oobooa2232o........
+........o1333aaooo1oo1oooaa3332o........
+.........o23233211oaao21133331o.........
+occ......o323oo222obbo222oo311o......cco
+obac......o23321o22oo22o12332o......cabo
+.obc.oo...ooo22322122123313ooo...oo.cbo.
+occbcao...ocboo3221B23122oocco...oacbcco
+oooobao...ocbbaacoooooooccaoco...oaboooo
+....obco..occbcaaaaaaaaoaacaco..ocbo....
+.....occoo2ocaaccbbbbbbboacao3oocco.....
+......occo133ooaaaaAaaaboccco2occo......
+.......oo121333ooooooooooccco21oo.......
+.......o11211111222oo333occbo221o.......
+......o11221112111oaao12oaabbo211o......
+......o12222112111boab12oaabbo221o......
+......o12212111111obbo12oaabbo223o......
+.....o1332212111111oo112oacobo2331o.....
+.....o132221221121111112oacobo2321o.....
+.....o1332322222111oo1123ooo322311o.....
+.....o133222222222oaao223333323322o.....
+.....o233322212222boab221222223332T.....
+......o23333221222occo22122333331o......
+......o233333212223oo222222333311o......
+......o21133333322222222233333321o......
+.......o212333333333331333333112o.......
+........o2133333113332233333312o........
+.........o21333332333233333321o.........
+..........o113333333333131322o..........
+...........o221113333331112oo...........
+............ooo2211221122oo.............
+...............ooooPooooo...............
diff --git a/parts_pl_src/body/pl_snowmonkey.txt b/parts_pl_src/body/pl_snowmonkey.txt
new file mode 100644
index 0000000..6b97505
--- /dev/null
+++ b/parts_pl_src/body/pl_snowmonkey.txt
@@ -0,0 +1,47 @@
+# pl_snowmonkey: from pixellab_src/pl_snowmonkey/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 41)
+# head_top at (32, 23) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (50, 51)
+..................ooo.................
+.............ooooo222oo...............
+...........ooo223211222ooo............
+.........oo22221211^111222o...........
+.........oo211111112111112o...........
+........oo32111111211111122o..........
+........o2221121122112212222o.........
+.....oooo2122223222232222112oooo......
+....oaaao2123333322333332222oaaao.....
+...oaaobo222occ33333ccoo222oaaobao....
+...oaoco223ocaaacoobaaaco322ooccao....
+...oacco23ocaaaaabbaaaaaco32occcao....
+....obo222ococcccaacccccco222ocbo.....
+....obbo32oco3wooaaowo3oco22ocbbo.....
+.....ooo223cow32oaao32woc2123ooo......
+.......o211obbccaaaaccbbo1123o........
+.......o3322obbaboBbabbo2222ooo.......
+......ooo3222obaaaaaabo22233o33oo.....
+....oo33o3323oboooooobo3233o3323o.....
+...oo2233oo333obaaaabo3333o33222oo....
+..oo211233o3o33occcco33o3o3321112o....
+..o22233oo3o3oo3333A33o3o3oooo2223o...
+.o22211123ooo3ooo3oooo3ooo31111122o...
+ooo221111111oo333oo33oo111111111233o..
+.o321221111111oo3333o1111112222323oo..
+.o2222221211222o222o22211211222333o...
+.o33322222222ooo22ooo2222222222333o...
+..o333223222o33ao2c33o33223322333oo...
+..oo3333333oo3aaaoaa3oo3333333333o....
+...oo33ooo3oobaacoaaboo3ooo3333ooooo..
+.....oo33333ocbbcobbco33333ooooo.o11o.
+.....oo22222occcooccco222223o33oo3112T
+.....oo221123ooo3oooo3211123o33o.o212o
+.....oo2232133o3333o32121223333o.o223o
+......oo333323o3333o3232232o33o.o222o.
+.......oooooo33o333o3333233o33oo223oo.
+.......ooccccoooooooooooo33o3o3233oo..
+......ocacaaacoooooocacacoooo333oo....
+......obcaacccooooocacacacoooooo......
+......oooooooo....oobobocoo...........
+...................Pooooo.............
diff --git a/parts_pl_src/body/pl_snowmonkey_b.txt b/parts_pl_src/body/pl_snowmonkey_b.txt
new file mode 100644
index 0000000..d5110c9
--- /dev/null
+++ b/parts_pl_src/body/pl_snowmonkey_b.txt
@@ -0,0 +1,52 @@
+# pl_snowmonkey_b: from pixellab_src/pl_snowmonkey_b/base.png (variant of pl_snowmonkey) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 39)
+# head_top at (32, 15)
+# back at (31, 36)
+# tail at (50, 51)
+...............o^o.................
+...........oooo212oo...............
+.........oo223211222oo.............
+........o2221211111122oo...........
+.......o211111112111112o...........
+.....oo32111111211111122o..........
+.....o222112112211221222o..........
+.....o2122223222232222112o.........
+..oooo2123333222333332112oooo......
+.oaaao2223333323333332222oaaao.....
+obboco222obbo333obboo222oaaobbo....
+obooo222ocaaacoocaaaco222oooobo....
+obcco23ocaaaaaccaaaaaco22occcbo....
+.oboo32ococccobbocccoco222ocbo.....
+.obco22ocowo3obbowo3oco22oobbo.....
+..oo221bbo232obbo232obb223ooo......
+...o22baabcccaaaacccbaab23o........
+...o2bbbbbobaboocabobbbbb3o........
+...o3bbbbbobaaaaaabobbbbc3o........
+....o3bbbboboooooobobbbb3o.........
+.....o3bb3occaaaabo33bb33o.........
+.....oo3333occcBco333333o..........
+.......o3333ooooo33333oo...........
+........ooo33333333ooo33o..........
+........o33ooo3oAoo33333o..........
+.......o223333o333332223oo.........
+......o21232222222o221233o.........
+.....o2122o2222222o111233o.........
+.....o2122o2211122o1122333o........
+.....o2123o211112o11122o33o........
+.....o2122o21111o111222o333o.......
+.....o2212o2111o1112233o323o.......
+.....o32123o21o2122233o32233o......
+....oo33223o2oo2222ooooo2233o......
+...o22o3233o3o3222o222223233o..oo..
+..o212o3333coc333o2211122333o.o11o.
+..o2113o33bcobb3oo2211122333oo3112T
+..o2223ocaacoaabo32211222233o.o212o
+..o3233occocoaoco33222233333o.o223o
+...oo333ooooococoo332223333ooo222o.
+....oooooooo3ooooo333333333o2223oo.
+....ooccccooo333oooooo3333oo333oo..
+...ocaoaaacoooooocccccoo3o333oo....
+...oboaaoccooooocacacbcoooooo......
+...oooooooo....oobobocoo...........
+................oPoooo.............
diff --git a/parts_pl_src/body/pl_snowmonkey_c.txt b/parts_pl_src/body/pl_snowmonkey_c.txt
new file mode 100644
index 0000000..438a5c8
--- /dev/null
+++ b/parts_pl_src/body/pl_snowmonkey_c.txt
@@ -0,0 +1,49 @@
+# pl_snowmonkey_c: from pixellab_src/pl_snowmonkey_c/base.png (variant of pl_snowmonkey) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 41)
+# head_top at (32, 18)
+# back at (31, 36)
+# tail at (50, 51)
+..................o^o.................
+..............oo.o213oo...............
+...........ooo213211332ooo............
+..........o11o212111322113oo..........
+........ooo21221211122112312o.........
+........o22211212111211221122o........
+.......oo211111111121122112223o.......
+......o32221121212221221122112o.......
+......o112221222122222112211222o......
+.....o11112322232222322232122232o.....
+.....o32111233333223333322322112o.....
+.....o332222occoo33oocoo33321212o.....
+....o111233obaaaboobaaabo32222222o....
+....o31112obaaaaabbaaaaabo3332222o....
+....o22222obobbbbaacbbbcbo3211233o....
+....o23322obo3wooaaowo3obo3321133o....
+....o332122bow32oaao32wob22123233o....
+....o322211obbbbaaaabbbbo222123333o...
+...o33o21122obbaboBbabbo21122233312o..
+..o312o211212obaaaaaabo222112233211o..
+..o1123323112oboooooobo2122132322222o.
+.o322223331212obaaaabo22113133222222o.
+o21221223322322obbbbo21232o3332212122o
+o22211222o323212211A2222333o322212113o
+o322122bbcoo3223211232323ooccc2211223o
+o32122aaac22o323312333oocc22caa221233o
+o3222babb1222ooo3323oo22cbb21bbb2222o.
+.o232bbb212122o33ooo22111bab12bb2322o.
+o3332bb221112ooo33ooo22112bb12bb2332o.
+o33o3cc22212o33ao3c33o2222bb22ccc33o3o
+o33oocc33222o3aaaoaa3o3323cc33cccoo33o
+o333ooc33333obaaboaabo3333cc33coo3333o
+o33233ooo333obbbbobbboo333cc3ooo33233o
+.o3333333oooobcboobcbo3oooooo33332233T
+.o33323233333ooo3ooo33333333333232333o
+..o332322322323333333212223332323333o.
+...o3233232332232233223212333232333o..
+...o3333333332232333233232332232333o..
+....o33oooooo333233o33o33333233333o...
+.....oooacaaaoo3333ooooooo333333oo....
+......obcaacbbo333ooacacaoo333ooo.....
+......oooooooooooooobobobooooo........
+...................Pooooo.............
diff --git a/parts_pl_src/body/pl_sockeye.txt b/parts_pl_src/body/pl_sockeye.txt
new file mode 100644
index 0000000..d0b2561
--- /dev/null
+++ b/parts_pl_src/body/pl_sockeye.txt
@@ -0,0 +1,39 @@
+# pl_sockeye: from pixellab_src/pl_sockeye/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 45)
+# head_top at (27, 36) (from part/probe)
+# back at (34, 37) (from part/probe)
+# tail at (50, 52)
+.....................ooo................
+....................o12o................
+...................o122o................
+..................o122co................
+.................o122c33o...............
+.................o22c3333o..............
+................o23c333c3o..............
+............oooo2oooo3c333o.............
+.........ooocbb^bbbccoo33co.............
+.......oo32222obbbbbbbBoo33o............
+......obaaa11222obbbbbbbco3o............
+.....obaaaa112222oaaaabbbcoo.........oo.
+....ocbba111bbb222oaaaaabbco........oaao
+...obcbbb1cbabbc222obbbaabbcoooo...oaabo
+...obcbbbbaabbcc222obbbbbabbocbo..oacbo.
+...oobcbcabbcooo222obbbbbbaaboo..oacbbo.
+...ooccbcbboozwo2222obbbcbbbabooobcbbo..
+...owocccoowowwo22bAobbbbbbbbbbbbcccbo..
+...owocccocwyywo22b2obbbbbbbbcbbbccbbo..
+.oo2o22222owwwo212b2obbbbcbbbbbcccccco..
+owo211112o2ooo2122b2obbbbbbbcccccccbbo..
+owo2ooo2owo111aa2222occcccccccccobccbo..
+o111owooow1o2111222occccccccccoooobcco..
+.oooooocao111o12222occcccccccoo...obcco.
+...o2oaaacooo22222occcccccccocco...oocT.
+....o21111122222oocccccccccoccco.....o..
+.....ooo222222ooccooooccccooooo.........
+........ooooooccccobbboooo..............
+...........ocoooooocbbabo...............
+...........occco...obbbao...............
+............oco.....obbbo...............
+.............oo......obbbo..............
+......................Poo...............
diff --git a/parts_pl_src/body/pl_sockeye_b.txt b/parts_pl_src/body/pl_sockeye_b.txt
new file mode 100644
index 0000000..71583f8
--- /dev/null
+++ b/parts_pl_src/body/pl_sockeye_b.txt
@@ -0,0 +1,38 @@
+# pl_sockeye_b: from pixellab_src/pl_sockeye_b/base.png (variant of pl_sockeye) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 45)
+# head_top at (27, 31)
+# back at (34, 37)
+# tail at (50, 52)
+..................ooooo.................
+.................o2222ooo...............
+..............o^o333c3223o..............
+...........ooobbcccooo3c33oo............
+.........oobbaabbbbbbcoo3333o...........
+.......oobaabbbbbba222bbco33o...........
+......ob33333bbbaaaa22aabcoo3o..........
+.....o221122233bbaaaaaaa2bbboo..........
+....o211112222233baaa2Baaabbbo..........
+...o22112222222233bab222a3bbbo..........
+..o322222222222223cbb333bbb223o.......o.
+..o2222222222222233cbbbbbbb223co....ooao
+.ooo2222222ooo22233obbbbbbbb23co...oaabo
+.oowo22222owwwo2233obbbb233bbbcco.oacbo.
+oowoo2222owwoowo2233obbb233bbbccooacbbo.
+ooooo2222owooowo2233obbb333b33bcobcbbo..
+oowoo2222owooowo22A3ocbbbbbb33ocobccbo..
+oowwo2222owyoxwo2233obooobbb33ocobcbbo..
+o2oo222222owwwo22233obbabobbbbccocccco..
+o2222ooo222ooo222233obbbbbobbbccoccbbo..
+o222o222o22222222333bbcccbobccccocccbo..
+.o22222222222222233obbbbabocccco.occcbo.
+.o3222222222222333occobbboccccco..obcco.
+..oo2222222222333occccoooccccco....oocT.
+....oo3333333333occcccccocccco.......o..
+......ooooooooooccccbcccccccoco.........
+.......occcccccccccbbbbbccoocco.........
+........oocccccccccobbaboooccco.........
+........ocoooooooooobbbao..ooo..........
+........obcco.......ocbbo...............
+.........ooo.........obbo...............
+......................Po................
diff --git a/parts_pl_src/body/pl_sockeye_c.txt b/parts_pl_src/body/pl_sockeye_c.txt
new file mode 100644
index 0000000..dd9b069
--- /dev/null
+++ b/parts_pl_src/body/pl_sockeye_c.txt
@@ -0,0 +1,46 @@
+# pl_sockeye_c: from pixellab_src/pl_sockeye_c/base.png (variant of pl_sockeye) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 44)
+# head_top at (27, 31)
+# back at (34, 37)
+# tail at (50, 52)
+........................ooo..............
+.......................oo1o..............
+......................o11o...............
+.....................o122o...............
+....................o1a22o...............
+...................o1122o................
+...................o1222o................
+..................o1a222bo...............
+.................o11222a2o...............
+.................o1222a22o...............
+................^1222a222co..............
+................o122a22232o..............
+................o22a2223c22o.............
+................o22b222b223o.............
+.............oooo2oooob333c3o............
+..........ooocbbbbbbbcoo3333o............
+........oo32222obaaacc1Boo333o...........
+.......oaaaa11222oaaacc12co3co...........
+......oaaaaa112222oaabc11bco3o........oo.
+.....ocaaa111bbb222oaacc11bco........o12o
+....oacaaa1baaabc222oaac11bccoooo...o1b2o
+....oacaaabaaabcc222oaacc1bcc1oco..o1b2o.
+....oobcacaaacooo222oaacc11bc1oo..o1b22o.
+....ooccacbboozwo222Aoaac11acc1oooab22o..
+....owocccoowowwo22b2oaac11aac11baa222o..
+....oo11112owyywo22b2oaac11aac11baabbbo..
+..oo11222111oooo212b2obac11aac11ccc222o..
+.ow11oooooo211wo122b2obbc11bac22ccc2bbo..
+.ow1oooooooo21wo12222occc22bcc22co3c22o..
+ow1o2owoooooo21wo222occcc22acc2oooo2c2o..
+ow1o22oocaaooo1wo222occc222cccoo...o2c3o.
+o11oo2oaaaoooo11o22occcc22cccocco...oo3T.
+.o11oo21111o111o2ooccccc33ccoccco.....o..
+..oo..ooo222oooooccoooo33ccooooo.........
+.........ooooooccccobbaoooo..............
+............ocoooooocbbaao...............
+............occco...oabaao...............
+.............oco.....obbao...............
+..............oo......obaao..............
+.......................Poo...............
diff --git a/parts_pl_src/body/pl_sockeye_d.txt b/parts_pl_src/body/pl_sockeye_d.txt
new file mode 100644
index 0000000..5ecf338
--- /dev/null
+++ b/parts_pl_src/body/pl_sockeye_d.txt
@@ -0,0 +1,39 @@
+# pl_sockeye_d: from pixellab_src/pl_sockeye_d/base.png (variant of pl_sockeye) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 45)
+# head_top at (27, 33)
+# back at (34, 37)
+# tail at (50, 52)
+.....................oooo...............
+....................oaaco...............
+...................oaacco...............
+..................o2aaco................
+.................oa222coooo.............
+.............33^o22222caaco.............
+............331232222222bco.............
+..........331212233333322cooo...........
+........332222221111223333aco...........
+.......321222222111111B2333co...........
+......3211222233321111112233co..........
+.....32112222222232222211223co.......oo.
+....33221223211222322222211333......oaco
+...3213222311122222322222211233....o1aco
+...32232231122222223222222111233..o11co.
+...oo22221223ooo2133222222222223.o21cco.
+...oo322222oozwo2221322222222233o2122o..
+...owo222oowowwo222A32222222222332222o..
+...owo333ozwxxwo22233322222222233222ao..
+.oo2o22222owwwo221223322222223333322ao..
+owo222222o2ooo2222123332222323333322bo..
+owo2ooooowo22222222233322223233333322o..
+o111owooow1o32222223333233233333o3332o..
+.oooooocao111o222233333233233333.oo3cco.
+...o3oaaacooo222233333333333333o...occT.
+....o22222222332333333333333333.....ooo.
+.....o33222333333333322233333oo.........
+......oo333333333333322233ooo...........
+........ooo33333333332223o..............
+...........o2333ooo33321o...............
+............o23o...oo331o...............
+............ooo......o3aao..............
+......................Poo...............
diff --git a/parts_pl_src/body/pl_sockworm.txt b/parts_pl_src/body/pl_sockworm.txt
new file mode 100644
index 0000000..31aebbc
--- /dev/null
+++ b/parts_pl_src/body/pl_sockworm.txt
@@ -0,0 +1,45 @@
+# pl_sockworm: from pixellab_src/pl_sockworm/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 41)
+# head_top at (31, 25) (from part/probe)
+# back at (38, 26) (from part/probe)
+# tail at (43, 51) (from part/probe)
+............ooooooo...........
+.........ooo222aaa3ooo........
+.......oo2222222aaa333oo......
+......o2221112^22aaa22cco.....
+.....oaaaaa1112122aa2B3c3o....
+....oaaaaaaaa22222aaa22cc3o...
+...o111111aaaa22222aa22ac3o...
+..o211111122aaa2222aa22aa33o..
+..o2121221222aa3333cc22aa33o..
+.o22212112222ac3333cc33ac333o.
+.o332223332223cc333c33ccc333o.
+o3woo23woo3233cc333c33cc3333o.
+owww33www33233cc33c333c33333co
+oww333ww333333c333333333333cco
+o311323113233ooo3333332233cc3o
+o333222332233o.o22222222acc33o
+.oa221223a333o.oa22222aaac333o
+.o2333332333o..o2aaaaaaaa3333o
+..o32222333o...o2222222233333o
+...o33333oo....A221222223333co
+....ooooo......oa112222333ccco
+..............o22aaaaaabccc3o.
+..............o22112aa333333o.
+.............o22111222223333o.
+.....oooooooo2aa112222233333o.
+...oo11223a2221aaaaa22233cco..
+..o32221123a211112aaaaccccco..
+.o23obo21223a11122222223333o..
+o22obcbo2223aa2222222233333o..
+o23oacao21123a222222233333T...
+o233oao331123a22222aacbcc3o...
+o2333oo333123c32223aacbccco...
+o233oaao33333c33333ccccc3bo...
+o22obccao2233c33333ccbcbbo....
+o223oaao32233c33333ccbcbo.....
+.o223ooo2233c33333ccccbo......
+..o223322333c3333cbcboo.......
+...oo22233ooooooooooo.........
+.....ooooP....................
diff --git a/parts_pl_src/body/pl_sockworm_b.txt b/parts_pl_src/body/pl_sockworm_b.txt
new file mode 100644
index 0000000..200e160
--- /dev/null
+++ b/parts_pl_src/body/pl_sockworm_b.txt
@@ -0,0 +1,49 @@
+# pl_sockworm_b: from pixellab_src/pl_sockworm_b/base.png (variant of pl_sockworm) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 39)
+# head_top at (31, 18)
+# back at (38, 26)
+# tail at (45, 51)
+..............^oooooo.........
+.........ooooo2222222ooo......
+.......oo222222333223222oo....
+......o2223333333333333222o...
+.....o11333333333333331122o...
+....o211233333333333111222o...
+....o212111221333111123222o...
+....o222222222111112223322o...
+....o3232222222122222B3322o...
+....o333222232222222223323o...
+...o22333322332222332233333o..
+..o212222333333222333333333o..
+..o2122112233333333333333333o.
+.o2222222222233333333233ccc3o.
+.oao223aoo32222222222233ccc33o
+oaa333aa33322222222222223cc33o
+oaa333aa333222222bb2222223333o
+o311323113222232bbbb222222333o
+o333222332222232bbbb222222333o
+o3b222222b2333322bb2222222333o
+.o22333323333o222222222bb2333o
+.o3322223333o22A1122222bbb333o
+..oo33333oooo2211122222bbb333o
+....ooooo...o21111222222b3333o
+............o211bb22222223333o
+...........o222bbbb2222223333o
+.........oo2212bbbb222222333co
+.....oooo2221112bb222222233cco
+...oo1122331111122222222233cco
+..o111112233111112222222333cco
+..o221211223311112222223333cco
+.o22222212223211222222bb33333o
+o32222222112322222222bbc33333o
+o32222222122332222222bcc3333T.
+o322222222222322222233cc3333o.
+o33222222222232222333333333o..
+o3322222222233333333333333o...
+o3332222222333333333333333o...
+o3333223333333cc33333333oo....
+.o333333333333ccc333333o......
+..o3333333333cccc333ooo.......
+...oo33333oooooooooo..........
+.....ooooP....................
diff --git a/parts_pl_src/body/pl_sockworm_c.txt b/parts_pl_src/body/pl_sockworm_c.txt
new file mode 100644
index 0000000..24d08fe
--- /dev/null
+++ b/parts_pl_src/body/pl_sockworm_c.txt
@@ -0,0 +1,64 @@
+# pl_sockworm_c: from pixellab_src/pl_sockworm_c/base.png (variant of pl_sockworm) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 32)
+# head_top at (31, 3)
+# back at (38, 26)
+# tail at (42, 51)
+............oo^ooo..........
+.........ooo111aa2ooo.......
+.......oo11111111a22co......
+......o1111111111aa13co.....
+.....oaaaaa1111111a11cco....
+.....oaaaaaaa11111aa1ac2o...
+....o111111aaa1111aa1ac22o..
+...o111111111a1223cc3ac22o..
+...o111113111ac222223cc23o..
+..o33111ob3113c22222c223c3o.
+.o3w331ob1bo13c22222c23cc2o.
+.owo231oaoao22c222c223ccc22o
+.o3w231oaac323o2222222cc222o
+.o333111oco33ooo22222cc2223o
+..oa111113a22o.o333cac32222o
+..o313333123o..o1aaaaaa2222o
+...o3111122o...o111111aac22o
+....o22322o....o111111aac22o
+.....ooooo.....o1111aaaa222o
+...............o11aaaa12222o
+...............o1aaa111222o.
+...............oaaa1111222o.
+...............o1aaaaa1222o.
+..............o11111aBac23o.
+..............o111111accc3o.
+..............o111aaaa2222o.
+..............o11aaaa32223o.
+..............o1aaaa122223o.
+..............o1111aaa2222o.
+..............oA11111acc22o.
+..............o111111aacc3o.
+..............o1111aaac223o.
+..............o1aaaaa12222o.
+..............oaaaa1112222o.
+.............o11aaaaa22222o.
+.............o11111aaaac22o.
+.............o1111111aaccco.
+.............o11111111accco.
+.............o111111aacc22o.
+.............o111aaaaa2222o.
+.............oaaaaaa112222o.
+.............o11aaaa112222o.
+.............o1111aaaa2222o.
+.....oooooooo11111111ac222o.
+...oo11113a1111111111acc22o.
+..o21111113a11111111113c22o.
+.o2222211113a11111c1113323o.
+o22222221113aa1111c111c32o..
+o222222211113a11b11c1c332T..
+o2222oo221113a113111cc322o..
+o2222ob222113c211bzzzc322o..
+o2222obo22223c2222bbz322o...
+o22222obo2223c22222cc222o...
+o222222o22223c222222c22o....
+.o2222222222c2222222c2o.....
+..o222222223c2222222oo......
+...oo22222oooooooooo........
+.....ooooP..................
diff --git a/parts_pl_src/body/pl_sockworm_d.txt b/parts_pl_src/body/pl_sockworm_d.txt
new file mode 100644
index 0000000..ef47014
--- /dev/null
+++ b/parts_pl_src/body/pl_sockworm_d.txt
@@ -0,0 +1,63 @@
+# pl_sockworm_d: from pixellab_src/pl_sockworm_d/base.png (variant of pl_sockworm) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 33)
+# head_top at (31, 4)
+# back at (38, 26)
+# tail at (43, 51)
+............oo^ooooo..........
+..........oo22222222oo........
+.........o222211222223o.......
+........o32211111112223o......
+.......o2221111111112223o.....
+.......o22111111111122233o....
+......o221111111111122223o....
+......o2211111111112222233o...
+.....o22222111111122222333o...
+.....o22222221121222223333o...
+.....o322222222122222223333o..
+.....o332222222222222323333o..
+.....o33322222222222233333o...
+......o3332222222222333333o...
+......o3332232222232333333o...
+......o333333223223333333o....
+.......o33333333333333333o....
+........o333333333333333o.....
+.........oo333333333333o......
+.........oo33333333333o.......
+.......oo2233333333333bo......
+......oaa22113333bbb322bo.....
+.....o222aa2112222aa2B2bbo....
+....o111112aa222222aa223b3o...
+...o11111112aa22222aa222b3o...
+..o2111111222aa2222ab22aa33o..
+..o21212212222b3333bb22aa33o..
+.o222121122222b3333bb33b3333o.
+.o332223332223bb333b33bb3bb3o.
+o3woo23woo3233bA333333b3bbb3o.
+owww33www332333b3333333bbbbbbo
+oww333ww333333c333333333bbbb3o
+o311323113233ooobbb332233bb33o
+o333222332233o.o333222223b333o
+.oa221223a333o.o22bb222223333o
+.o2333332333o..o2aaaa2223bb33o
+..o32222333o...oaaaaaa22bbb33o
+...o33333oo....oaaaaaa2aabbb3o
+....ooooo......o2aaaa22aabbbbo
+..............o221aa2222abbbo.
+..............o211a222223bb3o.
+.............o221aaa22223333o.
+.....oooooooo22aaaaaa2233b33o.
+...oo2222332222aaaaaaa2bbbbo..
+..o22122223c2111aaaaaabbbbbo..
+.o2211112223a1111aaaa223bbbo..
+o22111122223311122a22233bb3o..
+o211112222223a222222233b33T...
+o212222222223a2222233cabb3o...
+o2222222222333222223acabaao...
+o222222222333332233bbccccao...
+o322222232233b33333bbccaao....
+o333222332333b33333bcccao.....
+.o3333333333b333333bbcbo......
+..o333333333b3333bbbcoo.......
+...oo33333ooooooooooo.........
+.....ooooP....................
diff --git a/parts_pl_src/body/pl_solenodon.txt b/parts_pl_src/body/pl_solenodon.txt
new file mode 100644
index 0000000..319923a
--- /dev/null
+++ b/parts_pl_src/body/pl_solenodon.txt
@@ -0,0 +1,44 @@
+# pl_solenodon: from pixellab_src/pl_solenodon/base.png (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (31, 41)
+# head_top at (33, 26) (from part/probe)
+# back at (37, 29) (from part/probe)
+# tail at (49, 43) (from part/probe)
+....................oo....................
+................o.oo23oooooo..............
+................2o222222222ooooo..........
+..............oo222232^22223333ooo........
+.............oo222232222223222333o........
+......ooo...o222222222oooo2222233oo.......
+.....o32oo.oooooooo22o3222B22223333o......
+.....o332ooo1a22223oo223332o22223333o.....
+.....obb2o21aa22a222o23bb33o22232333o.....
+.....o3bo22aa2222222o2bbab3o222223333o....
+......oo222a2222222222bbb33o222232333o....
+......o3122221112322233333o2222223333o....
+.....o321122111333322233oo222222233333o...
+.....oo31222113ooo32222oo222222323333oo...
+.....o1o222223o111o32222o222222332333o....
+.....o1o22222o11111o222222222323333333o...
+.....ooo22222o1ooo1o222232223233333333o...
+.....ooo22222o1oo31o2222o3333333333333o...
+.....oo222222o13321oA2223333333333333oo...
+.....o21122222ooooo2a2233333333333333o....
+....oo1111122222222a22233333o3332233oaT.o.
+...ooa11111222222222223333333332222ooaao3o
+..oobbb11222233332222333223o3o32223oo3a33o
+..oaaabb223333ooo2223332222o3o32223oo333oo
+.oobbbbo3ooooooo32233o32223ooo33333o.ooo..
+.o222boooooaaaoo3333oo32233o.o33333o......
+.ox2bo....ooaoo33ooooo3333o...o33oo.......
+o222o.....o1o13ooo...oo33o.....o33o.......
+ox2bo......oooo32o....o33o.....o33o.......
+ox2o..........o3o...ooob3o.....o3bo.......
+o22o......oooobbo..occo3bo...ooobbooo.....
+o22o.....obcobbbo..ooob3bo..obbbbbbcooo...
+ob2bo...oacoaobo..ocbcobbo.obobbbboaobco..
+.obbo....oooooo..oboaoaobo.oooooooooooo...
+.obbboo..........ooooooooo................
+..obbbcooo................................
+...oobbbco................................
+.....oooP.................................
diff --git a/parts_pl_src/body/pl_solenodon_b.txt b/parts_pl_src/body/pl_solenodon_b.txt
new file mode 100644
index 0000000..329d592
--- /dev/null
+++ b/parts_pl_src/body/pl_solenodon_b.txt
@@ -0,0 +1,50 @@
+# pl_solenodon_b: from pixellab_src/pl_solenodon_b/base.png (variant of pl_solenodon) (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (32, 39)
+# head_top at (33, 17)
+# back at (37, 29)
+# tail at (53, 43)
+......................^.....................
+.................oo.oo2oooo.................
+...............oo22o322222ooooo.............
+...........oooo22222222222aaaaoooo..........
+..........o2o22322222222aaaaaa222oo.........
+..........o2222222222222aaaa22222aao........
+........oo2222222222222222a222222aaaoo......
+.......oobb22211222222122222a2222aaa33o.....
+......o222b22122222212222222aaa2222a33o.....
+......oa22b22222222122222222aaa2222a333oo...
+....oo2a2222222222232222222222aaa2223333o...
+....o2ooo2222222222222oooo2222aaa222c333o...
+....oo32oo22ooooooo22oo222B222aaa222c3333o..
+...o2o332ooo1a22223oo223332o2222a222c3333o..
+...o2obb2o21aa22a222o23bb33o2222a2222233cco.
+..o22o3bo22aa2222222o2bbab3o2222a222222ccco.
+..o222oo222a2222222222bbb33o2222a22222cccco.
+..o222o3122221112222233333o222222222222c33o.
+..o22o321122111332222233oo22222222222222333o
+.o222oo31222113ooo22222oo222222222222222333o
+.o222o1o222222o111o32222o222222222222232333o
+.o222o1o22222o11111o2222222222222222222333bo
+..o22ooo22222o1ooo1o2A2232222222222222233bco
+..o22ooo22222o1oo31o2222o222332222222223ccco
+..o233o222222o13321o2222o22222222222233333o.
+..o33331122222ooooo2a223322222222222223333o.
+..oooo1111122222222a2223222222222222333333T.
+..ooaaaa11122222222222o322222223222333333o..
+...oaaba12222oo22222233322222223232333333o..
+..oaaabb3223o222222233322222322323233333o...
+.o222bbo333o2222222332222222223323333333o...
+.o222booooo222223oo3222222223233233333o3o...
+.oa2boo3333oooooo3332222222232333333o3oo....
+o222o.oo3333333333333322322333333333ooo.....
+oa2bo..o3333333333333332222o333333ooo.......
+oa2o....oo33o33o33333o32223o3333ooo3o.......
+o22o.....ooocooo333ooo33333ooooobbboo.......
+o22o....oobccbboooooooobboo.occbbbbcooo.....
+ob2bo..ocbcoaobo..ocbcobbo.obobbbboaobco....
+.obbo..oooooooo..oboaoaobo.oooooooooooo.....
+.obbboo..........ooooooooo..................
+..obbbcooo..................................
+...oobbbco..................................
+.....oooP...................................
diff --git a/parts_pl_src/body/pl_solenodon_c.txt b/parts_pl_src/body/pl_solenodon_c.txt
new file mode 100644
index 0000000..473c4a1
--- /dev/null
+++ b/parts_pl_src/body/pl_solenodon_c.txt
@@ -0,0 +1,49 @@
+# pl_solenodon_c: from pixellab_src/pl_solenodon_c/base.png (variant of pl_solenodon) (pixellab_library.py extract)
+# pivot at (32, 57)
+# aura at (32, 36)
+# head_top at (33, 17)
+# back at (37, 29)
+# tail at (56, 43)
+..................ooo............................
+..............oooo322ooo.........................
+.............o3322222223o^.......................
+....ooo.....o3222222oooo23o......................
+....332o...oooooo22o3222o23o.....................
+...o3332ooo1aa222oo223332o23oo...................
+...o3b33o21aaa2a22o22bb33o223oo....oooo..........
+...o3aboo2aa22222222bbab3o223oaooooaaabo.........
+....o3o222a222222222bbb33o222oaaaaaaaaaoo........
+....oo212222211222223333o2222oaaaaaaaaao3oo......
+....o31112221133322223oo22222oaaaaaaaaao23o......
+....oo31222113ooo322223222222ocaaaaaaaao223o.....
+....o1o222223o111o32223222222ocaaaaaaaco2233o....
+....o1o22222o11111o3222322222occaaaaaaco2223o....
+....ooo22222o1ooo1o3222322222Bcccaaaacco22223o...
+....ooo22222o1oo31o32223222222occcccccco22223o...
+.....o211222o13321o22223222222occccccco222223o...
+.....o1111222ooooo2a22332222222occccoo2222223oo..
+....o111112222222222223222222222oooo222222223oo..
+...obbb11122222222222233222222222222222222223oo..
+...oaabb1123332222223332232222222222222222233oo..
+..oaaabbb33oooo222233332A3222222222322222223ooo..
+..obbbboooooaao2223oo33232222233223322222223ooo..
+.o2a2bo...oooo223oo3333232222233323o2222222ooao..
+.oa22o....o3332oo3333333o222223o333o2222223ooao..
+oa22co.....oooo..oo33333o222223o333o222222ooo3o..
+oa2bo............o3o3333o322223o33oo322223o.oo2o.
+oa2bo............o33oo333o22223oooooo22223o..o22o
+o22bo.............o33ooooo2222oooooooo2223o..oo3T
+o22bo....oo.......o333o..o3223o333oo.oo222o...oo.
+ob2bo...oabo......o333o..o3223oo3333o.o3222o.....
+.o2ao....obo......o333o..o3223ooo333o.o33223o....
+.o2abo...obo......o33o...o3223o.o333o..o3223o....
+..oaboo..obo......o33o...o322o..o333o..o322o.....
+..obbbcoobbo.....o333o...o322o..o33o...o322o.....
+...oobbbbbo......o333o...o323o.o333o...o322o.....
+.....ooooo.......ob33o...o223oooc33o..ocb23o.....
+.............oooobbb3o..ob222ooccccoooocb2bo.....
+............obcooocbboooobbb2oocccoccbcocbbo.....
+...........obboabbbbbooboocbbocccobcacoacbbo.....
+...........obooaobbbo2bco2abboooooboao2oobbo.....
+...........oooooooooo2ooo2obbo...ooooo2oooo......
+....................ooooPoooo.........oo.........
diff --git a/parts_pl_src/body/pl_solenodon_d.txt b/parts_pl_src/body/pl_solenodon_d.txt
new file mode 100644
index 0000000..878e4cf
--- /dev/null
+++ b/parts_pl_src/body/pl_solenodon_d.txt
@@ -0,0 +1,50 @@
+# pl_solenodon_d: from pixellab_src/pl_solenodon_d/base.png (variant of pl_solenodon) (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (32, 39)
+# head_top at (33, 19)
+# back at (37, 29)
+# tail at (51, 43)
+...................o......................
+..................o3oo.oooo...............
+................oo2322^2222ooo............
+............oooo2o222222223333oo..........
+...........o2222222222222222222oo.........
+...........o211222221122332222222o........
+..........o21122222112222222222223oo......
+.........o22212222222221222222222222o.....
+........o2222122212222112222222222232o....
+........o2222232222222222232222222223o....
+.......o22222222222222222222221111333o....
+......oo32222222222222oooo222211333333o...
+.....o32o322222222222o3222B22221112223o...
+.....o3323221a222222o223332o22233322223o..
+.....obb2221aa22a222o23bb33o22222222222o..
+.....o3b222aa2222222o2bbab3o222222223223o.
+....o2o2222a2222222222bbb33o222222222233o.
+....o2o2122221112322223333o2222222232233o.
+...o2o32112211133332222ooo22222222322233o.
+...o2oo31222113ooo3222222222222222222233o.
+...o2o1o222223o111o322222222222222223233o.
+...o3o1o22222o11111o22222222222222222333o.
+...o3ooo22222o1ooo1o2A223222222222322333o.
+...o3ooo22222o1oo31o2222o22222232232333o..
+....ooo222222o13321o2222322223232233333o..
+....oo21122222ooooo2a22332222322323333o...
+....oo1111122222222a223322322332333333o.T.
+...ooa111112222332222232222o233333333ooo3o
+..oobbb11222233oo2223322222o33333333ooa33o
+..oaaabb223333o333333o22223o3333333ooo33o.
+.oobbbbo3ooooo3333333o22223o333333oo.ooo..
+.o222booooo3333333333o32233o3333oo3o......
+.ox2bo...ooo333333333o3323oo33oo333o......
+o222o.....oooo33o3333o3333ooooo333o.......
+ox2bo......oooooooooooo33o.....o33o.......
+ox2o........oo3o......o33o.....o3bo.......
+o22o....ooooobboo.....oaco...ooobbooo.....
+o22o...oobcoaabbbo.ooaoaco..obbbbbbcooo...
+ob2bo..obooaaooooooacoaaco.obobbbboaobco..
+.obbo..obooaooooooacoaaoco.oooooooooooo...
+.obbboo.o..oo....oaooaoooo................
+..obbbcooo........o..oo...................
+...oobbbco................................
+.....oooP.................................
diff --git a/parts_pl_src/body/pl_solifuge.txt b/parts_pl_src/body/pl_solifuge.txt
new file mode 100644
index 0000000..a90bb36
--- /dev/null
+++ b/parts_pl_src/body/pl_solifuge.txt
@@ -0,0 +1,46 @@
+# pl_solifuge: from pixellab_src/pl_solifuge/base.png (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (32, 41)
+# head_top at (31, 23) (from part/probe)
+# back at (40, 30) (from part/probe)
+# tail at (50, 51)
+...........oooooooooo..................
+.........oo2111111122oo................
+........oc111111111^12oo...............
+.......oc2o111111ooo1122o..............
+......o2owo11111ow2ao1122o.............
+......o1oo111111oo2ao11123o............
+.....o11111111111ooo111122o............
+.....o1111111111111111ca122o...........
+.....oooo111111oooo1111c222o...........
+.....oow3o1111o3333o11112223B..........
+.....o2ooo1111owoo3o11112c23o..........
+.....o1oo21111o2oo3o1112cb32o..........
+.....o2ww2222111oow11222bc23o..........
+......o223ooo322ww2122222233oooo.......
+......o3aaoooao32222o3223333o212oo.....
+.......ooooooooaaooooo33co33o11112oo...
+.........ocooooooooooo33333o22211122o..
+.........oooccccccocoo33333o32222112oo.
+.......oocoaaaaacoabco3333oo1o2222122o.
+.....ooaboaaaaaooaacco3333o111o222222o.
+...ooaaoobaaaaocaaccA3333o2o11133222c3o
+..oaaooocaaaooaaacoo33ooo2233122333c33o
+.obco...oocoaaacooooooo3o333o222occ333o
+ocoo..oo33oaaaooo333o2ooo333occco33333o
+oo..oo112ooaco3333oo2222oocco333o33333o
+o..o11122ocoo3333o2112223333o333o33333o
+..o11122ooooo333o2111122o333o333o3oo3o.
+..o122oo.oo2o23o111122oooo3ooooooo21oo.
+.o122o..o222o33o11122o3332oo221oo2111o.
+.o12o..o21233oo21222oo3221oo2112o22112o
+.o22o..o2123ooo112oo3o22111o22112o2212T
+.o23o...o23o..o212o33oo22112o2212oo21oo
+..o3o...o23o..o222o3333o2212oo222oo22o.
+..o3o...oo3o..o22oooo33o2212oo222oo32o.
+...o.....o3o...o2o.oooooo21oo.o2o.oco..
+..........oco...o3o.....o22o..o2o.oco..
+...........oo...oo......o22o.ocoo.oo...
+........................oco..oco.......
+........................oco...o........
+.........................P.............
diff --git a/parts_pl_src/body/pl_solifuge_b.txt b/parts_pl_src/body/pl_solifuge_b.txt
new file mode 100644
index 0000000..c63adcc
--- /dev/null
+++ b/parts_pl_src/body/pl_solifuge_b.txt
@@ -0,0 +1,49 @@
+# pl_solifuge_b: from pixellab_src/pl_solifuge_b/base.png (variant of pl_solifuge) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (33, 38)
+# head_top at (31, 18)
+# back at (40, 30)
+# tail at (50, 51)
+....................^oooooo.................
+...............ooooo2222222ooo..............
+.............oo222222222222222oooo..........
+...........oo22122222222112222222oo.........
+.........oo211112222222121211222222oo.......
+........o2211112222222222211122222233o......
+.......o3b3o111222ooo22222111222212233o.....
+......o22owo11222ow3ao22222211122222333o....
+.....oo22oo222222oo3ao222222122222222333o...
+....o3222222222222ooo2222222222222222233o...
+...o3223322222222222222ba2222222222232233o..
+...o22oooo222222oooo2222b2222222122222223o..
+..o222oow3o2222o3333o22222222B222212222233o.
+..o22bo3ooo2222owoo3o22222b222222221222233o.
+.o22a2o1oo22222o3oo3o2222bb3222222222222333o
+.o222222112222221oo122222bc2222222222222333o
+.o2222oo33333333311333222222222222222222333o
+o2122oooabbbbbbbb333ooo22a22222222222223333o
+o2222ooobooooooobaa1cooo2222222222222233333o
+o3222ooao322222oooaaabco2222222222222233333o
+o33222oo2233333222ooaaA3222222322222233333co
+o3322222333333333222oo2222222222222233333cco
+oc32222222222222333222222222223232233333cc3o
+oc3332322222222222222222222232333333333cc33o
+occ3333222222222222222233222323333333ccc333o
+o3cc3333322223222322333oo33333333333cc33333o
+o33caa333332232223333oo33o3333333ccc333333o.
+.o33ccaa33333333333oo33333o33ccccc33333333o.
+.o3333aaaa33333333o3222233occ3cc333333333o..
+..o33333aaaaaaaaao3222233oocc333333oo3333o..
+..oo333333cc33aao222233o3oo33ooo33o32oo3o...
+...oo33333333333o22233o33333o332oo3222o3o...
+..o3ooc33333333o32333oo3322oo3222o33223o....
+..o333o33333333o223oo3o33222o33223o3323T....
+..o333ooo333333o323o33oo33223o3323oo32oo....
+...o3o..ooo3333o333o3333o3323oo333oo33o.....
+...o3o...o3ooo3o33oo3333o3323oo333oo33o.....
+....oco...o3o.ooo3oo33333o32oo.o3o.oco......
+.....o.....oco..oo3ooooooo33o..o3o.oco......
+............oo...ooo.....o33o.ocoo.oo.......
+.........................oco..oco...........
+.........................oco...o............
+..........................P.................
diff --git a/parts_pl_src/body/pl_solifuge_c.txt b/parts_pl_src/body/pl_solifuge_c.txt
new file mode 100644
index 0000000..5c1a987
--- /dev/null
+++ b/parts_pl_src/body/pl_solifuge_c.txt
@@ -0,0 +1,58 @@
+# pl_solifuge_c: from pixellab_src/pl_solifuge_c/base.png (variant of pl_solifuge) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 33)
+# head_top at (31, 8)
+# back at (40, 30)
+# tail at (50, 51)
+...........oooooooo^...................
+.........oo211111122oo.................
+........oc11111111112oo................
+.......oc2o111111oo1122o...............
+......o2owo11111owao1122o..............
+......o1oo111111ooao11122o.............
+.....o11111111111oo111122o.............
+.....o111111111111111ca222o............
+.....oooo111111ooo1111c222o............
+.....oow311111o333o11112223o...........
+.....o2oo11111owooo11112c23o...........
+.....o1oooooo1o2ooo1112cb32o...........
+.....o2o1o1o1o212211222bo23o...........
+......o1oooooo1222222222233ooooo.......
+......o1oooooo1oo2222223333o1bb2oo.....
+.......o.ocooooooooo333co33o11b112o....
+.........oooccccccooo33333oo11bb122o...
+.......oocoaaaaacocoo33333o111bb111o...
+.....ooaaoaaaaaaoaaco3333o2111bb1112o..
+...ooaaoobaaaaooaacco3333o2211bb1112o..
+..oaaooooaaaooaaacco3333o22211b11122oo.
+.obco.oowocoaaacooo333oo22222111122c3o.
+ocoo..o31woaaaooo3333o332222B222ccc33o.
+oo.....o22oaco33333oo33322222ccc33333o.
+o.......oocoooooooo333ooo3ccc3333oo33o.
+..........oo33333333Ao2223333333212o3o.
+.........oo3333333333o211o33333o111o3o.
+.........o2o332222223o211o33333o1112o..
+........o222o33222223o211o33333o1112o..
+........o1232o3322222o2111o3333o1112o..
+.......o1122ooo333322o2111o3333o1112o..
+.......o122o.o3ooo3333o111o33ooo1112o..
+......o1122oo2333oooooo111oooo.o1112o..
+.....o1122o.o2333o....o111o33o.o2112o..
+.....o122o.o2233o.....o211o33o..o112o..
+....o112o..o233o......o211o33o..o212o..
+....o122o..o23o........o11o333o.o2222o.
+....o12o..o23o.........o11o333o..o222o.
+....o12o..o23o.........o11oo33o..o222o.
+....o12o..o23o.........o11oo333o..o22o.
+....o22o..o33o.........o11o.o33o..o222o
+....o22o..o33o.........o11o.o33o...o22o
+.....o2o..o33o.........o11o.o33o...o22o
+.....o2o..o33o.........o11o.o33o...o22T
+.....o2o...o33o........o11o.o3o....o22o
+.....o2o...o33o........o11oo33o....o22o
+....o212o..oco........o111oo33o....o23o
+..oo2122o..oco........o11oo33oo...o333o
+.occ22oo....o.......oo211oooo...occ333o
+.ooooo.............o22112o......oooooo.
+..................occ2222o.............
+..................oPooooo..............
diff --git a/parts_pl_src/body/pl_solifuge_d.txt b/parts_pl_src/body/pl_solifuge_d.txt
new file mode 100644
index 0000000..b521288
--- /dev/null
+++ b/parts_pl_src/body/pl_solifuge_d.txt
@@ -0,0 +1,51 @@
+# pl_solifuge_d: from pixellab_src/pl_solifuge_d/base.png (variant of pl_solifuge) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (32, 38)
+# head_top at (31, 16)
+# back at (40, 30)
+# tail at (51, 51)
+..............oo.............................
+.............o1o..oo.^ooo....................
+.............o1o.o1oo122o.ooooo..............
+..........ooo113o1111133oo2222o..............
+..........o1o1131111223222223ooooo...........
+........ooo1111111122222222333333oo..........
+.......o11211112112221112222222233oo.........
+......oo12222112233222121112332223o..........
+....oo1122oo221322222222211111322222oo.......
+...o11111ob3o233222ooo2222221123222222oo.....
+....oo211oowo22222ow3ao22111111132223333o....
+....o21122oo222222oo3ao222111222222223oo.....
+...o111222222222222ooo222233112223222222o....
+..o11122222222112122222222232112223222222o...
+..o12222ooo222122oooo223222233122232223332o..
+.o133222ow3o2212o3333o2a222232B2222o22233ooo.
+.ooo22222ooo2222owoo3o22a22222222222o2223o...
+..o112222oo2222223oo1o22222222222222o22223o..
+.o3122222223333333oo2222222222211322o22222o..
+.o11212223oooooooooo33332222222111322223222o.
+o22221223owaooooaowaoo333222122211332o23322o.
+o2331123oowaoooooowaooo332221132212ooo22333o.
+ooo22223oooooooooooooooo33222223212o33223333o
+.o222223obooooooooooooAo33221123222o32222333o
+.o222223obooooobbbbboooo32222122332o2223233oo
+.o2321233obcooaacaabbboo32223132332o2223233oo
+.oo321223obooaabaacccco322223232332o22232c3..
+..o323223ocowaaaaawacoo32212333133oo22333c3o.
+..o3231223oo1aaaaowao33222132331333222333c3o.
+..o333122233oooooooo32222113233133323233333o.
+..o333122122222223332212211322323o323233333o.
+..oo33123112222222222312311332333o31333c33oo.
+...o3332312212312232231231133333o331333c33oo.
+...oo33231321231223223233313o333o333333c3o...
+....oo3233322333123323333313o33o3333bb333o...
+....o3o3333323333233oo333333o333333333333o...
+...o333o333323333223oo222333o333333333333T...
+...o3333o33333333323o332223oo333333o33333o...
+....o33ooo33o3333333o332223oo33333oo3333o....
+....o33o.ooooo3333333o33233o333333o.o333o....
+.....o3o..o33ooo3o333o33233ooo3333o.o33co....
+.....ooo..oco...ooooooo33o3o..o33o..o33co....
+...........oo........oco3oo...ocoo...ooo.....
+.....................o.ocoo...ocoo...........
+.......................Poo.....oo............
diff --git a/parts_pl_src/body/pl_spectercat.txt b/parts_pl_src/body/pl_spectercat.txt
new file mode 100644
index 0000000..686a4d1
--- /dev/null
+++ b/parts_pl_src/body/pl_spectercat.txt
@@ -0,0 +1,47 @@
+# pl_spectercat: from pixellab_src/pl_spectercat/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 39)
+# head_top at (32, 27) (from part/probe)
+# back at (32, 40)
+# tail at (42, 54) (from part/probe)
+.ooo........................ooo.
+3o22oo....................oo22o3
+333313o..................o213333
+333o311oo..............3o113o33.
+o33bo1113o............31113ob33o
+o33bbo1122oo........oo2113ocb33o
+o3bbbco22233o33333oo33213ocbab3o
+o3aabcco22232222^2233322occbaa3o
+o3aabbcco22211111112233occbbaa3o
+.ooabbcco22111111111133occbbaoo.
+o3obcooco21111111111123ococbbo3o
+.o3bocco3211111111111223ocobb3o.
+.o3ccoc32221111111112222ocobb3o.
+..o3cco222221111111222223obb3o..
+..o33co222222211112222223oc33o..
+...o33323ooo22222223ooo22o33o...
+....oo32ooooo222222ooooo23oo....
+.o3..o3ooo1oo22222oo1ooo23o..33.
+.o33oo2ooo2oo22222oo2ooo22oo33o.
+..o32222ooooo21A12ooooo222223o..
+...oooo2boooa22aB2aooob23oooo...
+....o333a2222222222222a333o.....
+...oo3ooo3222o2o2o22233ooo3o3...
+....oo...oo3322222233oo...oo....
+...........oo333333oo...........
+....333....oaboooobao...........
+...o1113...oobaaaaboo...........
+..o31113o.333ooccoo3o...........
+..o32113o.3333caac333o..........
+...oo223o.o223baab323o..........
+....o33o..o22caooac23o..........
+...o33o...o222occo323o..........
+...o33o..o3322333322o3o.........
+...o33o33o3o22333322o3o333......
+....oo21133o323oo323o32112T.....
+....oo21123o322oo223o321123.....
+.....o322233o22oo22o33222o......
+......o33333o22oo22o33333o......
+.......oooooo223322oooooo.......
+.......o2323o32oo23o3232o.......
+........oooooooPoooooooo........
diff --git a/parts_pl_src/body/pl_spectercat_b.txt b/parts_pl_src/body/pl_spectercat_b.txt
new file mode 100644
index 0000000..5fc791d
--- /dev/null
+++ b/parts_pl_src/body/pl_spectercat_b.txt
@@ -0,0 +1,53 @@
+# pl_spectercat_b: from pixellab_src/pl_spectercat_b/base.png (variant of pl_spectercat) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 39)
+# head_top at (32, 21)
+# back at (32, 40)
+# tail at (48, 54)
+........oo.........................ooo..
+.......o22oo.....................oo22o..
+......o33311o...................o11333o.
+......o333311oo...............oo113333o.
+......o33co2112o.............o2113oc33o.
+......o33cco3111o...........o1113occ33o.
+......o3cacco3112o.........o2113occac3o.
+......o3aaacco112ooooo^ooooo211occaaa3o.
+......o3aaabcc3223b11bb11b33223ccaaaa3o.
+......o3aaabcc3221b11bb11b12223ccaaaa3o.
+......o3aaaocc3111ab1bb1bb11123cccbaa3o.
+.......oaacco32111bb1bb1bb111223oocaao..
+.......ocaco3221111b11b1b11112223ocabo..
+.......o3cco222211111111111122222occ3o..
+.......oooc32222221111111122222223c33o..
+........oo3222oooo22111112oooo22223oo...
+.........o222owwooo222222owwooo2223o....
+........o322oowwoooo2222oowwoooo223o....
+........oc22oooooooo2222oooooooo22cco...
+........ocb2oooooooo2222oooooobo2bbco...
+........o3222oooobo221122oooobo22223o...
+........o32222oooo222aa222oooo222223o...
+........occb22222222223222222222bbcco...
+.........oc22222222o2oo2o222222223co....
+.........o3322222222o22o22222222233o....
+.........oo3332222222A22222222233333o...
+........o33o3333222222B222223333oo333o..
+.......o3322oo3333333333333333oo32233o..
+.......oc2222333333333333333333222223co.
+..oo..occb2222222111111111122222222acco.
+.o1oo.ocbbb222222wwwwwwwwww2222222bbb33o
+o211o.o32bb222222wwwwwwwwww1222222bb233o
+oo22ooc32222222221wwwwwwww122222222223co
+.o2aoocbb2222222221wwwwww1222222222bacco
+.obaoocbbbb232222231wwww1322222322bbb33o
+.oaboo322222322222311ww1131112232222223o
+.ob3oo332222332222231111331112332222233o
+.o13oo33b22233cbb223111132bbbc33222bb33o
+.o333oocbb223ocb2223o111322bbco222bbbc3o
+..o3cooc22223o322223o11o32222co22222cco.
+...oc3o322c23o32bbb3o11o32bb23o22bb23cT.
+....ooo3ccc333ocbb23o11o32bbco322bbc33o.
+.....ooocc3333oc2223o11o3222co3333ccco..
+.......oo33333o32223o11o32223o33333co...
+........o22223o21112o11o2111233222oo....
+........o23233o23232oooo2323233232o.....
+.........ooooooooooPo...oooooooooo......
diff --git a/parts_pl_src/body/pl_spectercat_c.txt b/parts_pl_src/body/pl_spectercat_c.txt
new file mode 100644
index 0000000..c2d2dc4
--- /dev/null
+++ b/parts_pl_src/body/pl_spectercat_c.txt
@@ -0,0 +1,47 @@
+# pl_spectercat_c: from pixellab_src/pl_spectercat_c/base.png (variant of pl_spectercat) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (32, 26)
+# back at (32, 40)
+# tail at (45, 54)
+.oooo......................ooooo
+o1111o....................o1111o
+o11111o..................o11111o
+o3cc111oo..............oo111cc3o
+o.ooc3111o............o1113cc3oo
+...occ3111o...3..3...o21133coo..
+ooobbco2122o3.13^13332212ocbo...
+o1bbbcco22233312111232223ccb2..o
+o11bbbcc3222111111112223ccbb221o
+o211bbbco22111111111123ocbbbbb1o
+o221bccco21111111111113ocbbbbb1o
+.o2bbcco3111111111111113occbb2o.
+.o2bbcc321111111111111123ccbb2o.
+..o3bco2113oo111111oo3112occ2o..
+...o3co213oooo1111oooo311oc3o...
+1..o33o11ooooo1111ooooo11o33o..1
+.2..oo313ooooo1111ooooo313oo..1.
+.....3213oo1oo1111oo1oo313o.....
+....32113oocoo1111oocoo31123....
+...311113oooo311113oooo311113...
+...3122113oo311AB113oo3111113...
+....331111331111111133111133....
+.....3122111111111111112113.....
+.12...133212111111112113313.....
+.......3.213212112113313.3..1...
+...333...33o31o31331oo.3........
+.311123...o3333313333o......21..
+.313211..o332333333233o.........
+.333321..o322222322223o...1.....
+.....212.o322322223223o...1.....
+....3112o33223222232233o..21....
+...3112o33o3233223322o32o2.11...
+...2122o23o3223333223o32o1.111..
+..2122oaaaoo223333223o3aab1112..
+..212oa22a3o222oo3aa3oa32ob11T..
+..311oa22b2o222ooa22b3bb33b122..
+...31oabbb2obaaaob22b33baab12...
+....o1ooo22ob22bobbbb32ooo123...
+.....o2oooooo233o323ooooo123....
+.......o3223o23oo323o322o.......
+........oooooooPoooooooo........
diff --git a/parts_pl_src/body/pl_spectercat_d.txt b/parts_pl_src/body/pl_spectercat_d.txt
new file mode 100644
index 0000000..287418f
--- /dev/null
+++ b/parts_pl_src/body/pl_spectercat_d.txt
@@ -0,0 +1,58 @@
+# pl_spectercat_d: from pixellab_src/pl_spectercat_d/base.png (variant of pl_spectercat) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 33)
+# head_top at (32, 18)
+# back at (32, 40)
+# tail at (43, 54)
+.oooo................................oooo.
+.o111oo............................oo111o.
+o333311oo.........................o111333o
+o33oo2112o......................oo1113333o
+o33cc31111oo...................o11113cc33o
+o33bcc311111o.................o21113ocbb3o
+o3cbbcc311112o...............o11112ocbbb3o
+o2bbbcco311113o............o321112occbbb2o
+o2bbbccco311123o..........oo22111occcbbb2o
+o2bbbbccco322223ooooo^ooooo322223occbbbb2o
+o2bbbbcccco322233111111111332223occcbbbb2o
+o3bbbbbccco33222111111111112222occcbbbbb3o
+o3bbbbbooco32221111111111111223occoobbbb3o
+o3bbbbbooco32211111111111111123ocooccbbb3o
+o33bbccccoo222111111111111111222occcobbb3o
+.o3bbcocco32221111111111111122223occobb3o.
+.o3bbcoco3222221111111111111222223ocobb3o.
+..o3cccco2222221111111111112222222occc3o..
+..oo3cco32222222111111111122222222o3c3oo..
+...o3333222222222111111112222222223333o...
+....oo332222ooo222211111222oooo222333o....
+.....oo3222ooooo3222222222oooooo222oo.....
+......o322ooooooo22222222oooooooo22oo.....
+......o322ooooo1oo222222oo1oooooo22oo.....
+..o...o322ooooo3oo22A222oo3oooooo22oo..o..
+.o3ooo3222ooooo3oo222222oo3oooooo222ooo3o.
+..o3222222oooooooo211112oooooooo22222223o.
+...o3222223oooooo22111122ooooooo2222223o..
+....ooo3322aooooo222aa222aoooooa2233ooo...
+......o3322aaa222222222222223aaa2333o.....
+.....oo3333bab2222o2oo2o22223aab3333oo....
+....oo3ooo332222222o2Bo222222223oooo3o....
+.....oo...oo3322222222222222233o....oo....
+............oo333222222233333oo...........
+..............oooo333333ooooo.............
+........ooo...obbbcooooocbbbo.............
+.......o111o..obbbbcaabbbbbbo.............
+......o31113o.obbbccbbbccbbbo.............
+......o32112o.obbbbcccocbbbbo.............
+.......oo323o..obbooooooccco..............
+........o33o..ooooco33occoooo.............
+.......o333o..o3obbo323obbo2o.............
+.......o333o..o22oo32223oo22o.............
+.......o333oooo322232223222oooo...........
+........o333113o22233233222o3112o.........
+........o331113o2223333222333112T.........
+.........oo3223o322333o222o33222o.........
+..........o33333o223o3o222o3333o..........
+...........o3333o223o3o222o3333o..........
+...........o3113o1123o2112o322o...........
+...........o2323o232oo2132o3232...........
+............ooooooooPoooooooooo...........
diff --git a/parts_pl_src/body/pl_sphynx.txt b/parts_pl_src/body/pl_sphynx.txt
new file mode 100644
index 0000000..bb0fee4
--- /dev/null
+++ b/parts_pl_src/body/pl_sphynx.txt
@@ -0,0 +1,48 @@
+# pl_sphynx: from pixellab_src/pl_sphynx/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 40)
+# head_top at (28, 26) (from part/probe)
+# back at (28, 40) (from part/probe)
+# tail at (45, 50)
+.oo.........................
+o32o................oooo....
+o331oo............oo1222o...
+o3bo12o..........o213bb2o...
+o3bco12o........o213cbb2o...
+o3aco212o......o213ccba3o...
+o3abco123oooooo313ccaaa3o...
+.oaabo3221^132o12occcaa3o...
+..oaboo1231312113ooocaa3o...
+.o3ab311c13111233oooca33o...
+.o33o11awc11111233oocaoo....
+..oo211bob111112223oco2o....
+...oo211c1112232222oo3o.....
+...owo21132oozo323333o......
+...oz1o223ozwy32233oo.......
+...o1y3112oyc31233o.........
+...o2111111111232o..........
+....o13331112233oo..........
+....o2131112333oo...........
+.....oo33223ooo.............
+.......ooooo33oo............
+.......ocoB33Aoco...........
+......oco32232oao...........
+......oao322oaco2o..........
+......ooaaoaooo122o.........
+......o2oooo3211222o...ooo..
+......o2111111112222o.o211o.
+......o2111111113222o..o322o
+......o2211211123222o...oo2o
+......o232231112o2223o...o2o
+......o2o3232112o2223o...o2o
+......o23o332113o2333o...o2T
+......oo23oo3113o3112o..o22o
+.....o3o23oo2113o11123o.o2o.
+.....o3o22oo212o311123oo33o.
+.....o3o22oo113o322223o33o..
+......oo22oo12oo322223ooo...
+......oo22o322ooo33333o.....
+....ooo32oo223ooooo33o......
+....oo213o1313oo2o223o......
+.....oooo23o2o.oo2ooo.......
+.........oooP...............
diff --git a/parts_pl_src/body/pl_sphynx_b.txt b/parts_pl_src/body/pl_sphynx_b.txt
new file mode 100644
index 0000000..5564f6d
--- /dev/null
+++ b/parts_pl_src/body/pl_sphynx_b.txt
@@ -0,0 +1,48 @@
+# pl_sphynx_b: from pixellab_src/pl_sphynx_b/base.png (variant of pl_sphynx) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 40)
+# head_top at (28, 22)
+# back at (28, 40)
+# tail at (48, 50)
+..ooo...........................
+.o111o...............oooo.......
+.o1c11o.....oo.....oo1111o......
+.o1cc11o.oo^1o...oo113cc1o......
+.o1ccc12o33211ooo1113ccc1o......
+.o2ac1oo111221332113ccaa1o......
+.o3acoo121113313213c1caa2o......
+.o3bao112111312322111caa3o......
+.o3bo212111131212311cca23o......
+.o3o31231113o32122331cc23o......
+.ooo1233112o33311223cc22o.......
+..o123o3122322331223332oo.......
+.o112oo331322ooo3121333o........
+.o13o31o3323ow3yo31213oo........
+.o1333333333y33xo3322333o.......
+.o13ox331113x33x3331223o........
+.o13o11111112xx13332121o........
+o121oo313311113333112211o.......
+o3312o3121112333o2112331o.......
+.o3313oo22222ooo3131233oo.......
+.o3o233oooooo33311312o3o........
+..o33131111B13A331333oo.........
+...oww1w11111w21333331o.........
+...ow1ww1ww1ww11ww1111o.....ooo.
+...ow1w1www1www1ww111oo....o11oo
+...o11w1wwwww1ww111ooo...oo11o..
+....o1w11wwww1ww111o3o...o111o..
+....o1111www11111oo333o..o111o..
+....oo1111w11o11oo3222o..o1121o.
+.....oo311w13ooo3322223o.o3121o.
+......oob111oo332322222o..o2212o
+......ooo31o322123232223o..o212T
+......o33ooo311123311123o..o222o
+......o323oo211123111113o.o2222o
+......o3223o21122o111112oo3223o.
+......oo223o21133o311112o33333o.
+.......o223o2113oo321122o3333o..
+.......o223o1123ooo33223ooooo...
+......o1113o113ooo113333o.......
+......o232o1313oo13123oo........
+......ooooo232o.oooooo..........
+..........oooP..................
diff --git a/parts_pl_src/body/pl_sphynx_c.txt b/parts_pl_src/body/pl_sphynx_c.txt
new file mode 100644
index 0000000..8b23be2
--- /dev/null
+++ b/parts_pl_src/body/pl_sphynx_c.txt
@@ -0,0 +1,47 @@
+# pl_sphynx_c: from pixellab_src/pl_sphynx_c/base.png (variant of pl_sphynx) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 42)
+# head_top at (28, 24)
+# back at (28, 40)
+# tail at (50, 50)
+.....oo............oo.............
+....o11o..........o1o.............
+....o132o........o113o............
+....oac23o......o11c2o............
+...o3aco3oo^oooo313ca3o...........
+...o3c31b1bbb1b131oca3o...........
+...o3311b1ba1a11113ca3o...........
+...o311b1aab1b111113c3o...........
+..o311111aa11111111133o...........
+..o131111bb111111111133o..........
+..o13o31111112333111133o..........
+.o11zzo311123ozz31111333o.........
+.o11xwoo3333o1wx31111333o.........
+o31113z31113ox3311111333o.........
+ocb11113331111111bbbc333o.........
+o31b111131121111b1113333o.........
+.ob11113331311111bb3333o..........
+.oo311111331111112cc333o..........
+..o3311111111111113333oco.........
+...o33331111113333333occo.........
+..ocoo33333B333333oooco33oo.......
+..o3acooooooooooooccoc3233o.......
+.o33obaccccoobAobobb33113cco......
+.ob113oaaaaoaaaooo331111cc3o..oo..
+.obb111333333311111111bbb33o.o11o.
+.o3bb1111111111111111a33223o..o11o
+.o31bbb1aab1bbbbbb111122223o...o1o
+.o3111b1aab1b111111111332233o..o1o
+.oo11311aab11111113132112233o..o3o
+.oo11331bab13111113311112233o..o3o
+o3o113331cc3331111o1111bc223o..o3T
+o3o111333cc3331113o111bb3c23o.o33o
+o3o3113oo3c3o31113o111a11c33o.o33.
+o3ooabc3o333ocbbbco111b112c3o333o.
+.o3o2133o33oo3222oo3111c22cco33o..
+.ooo3ab3o333o3aa2o3o3332cc3cooo...
+.o3o3cc3o333o3cc3o33oo33333o......
+o3oo2113o333o111oo3o113333o.......
+ooo13133oooo1311ooo1311333o.......
+..oooooo..oo3o23o.oooooooo........
+...........ooooP..................
diff --git a/parts_pl_src/body/pl_sphynx_d.txt b/parts_pl_src/body/pl_sphynx_d.txt
new file mode 100644
index 0000000..f07aca3
--- /dev/null
+++ b/parts_pl_src/body/pl_sphynx_d.txt
@@ -0,0 +1,61 @@
+# pl_sphynx_d: from pixellab_src/pl_sphynx_d/base.png (variant of pl_sphynx) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 30)
+# head_top at (28, 11)
+# back at (28, 40)
+# tail at (47, 50)
+..............................................ooo.
+.oo........................................ooo222o
+o22oo...................................ooo222332o
+o3322ooo...............................o222233332o
+o3333222oo...........................oo22233ccc32o
+o3bcc32222oo.......o^oooooooo......oo22223cccca32o
+o3aacco32223o...ooo2223322333ooo..o222233cccaaa32o
+o3aaacco22223ooo2322233223332222oo22223occcaaaa32o
+o3aaaccco22333222322332223222223o32223occcaaaaa32o
+o3aaaaccoo233222322333223222222332223occcaaaaaa33o
+o3aaaaccco332223322322232222222332233occcaaaaaa3o.
+.o3aaacooo32222322232223222222223333occccccaaaa3o.
+.o3aacco3o22222222332232222222222333oooocccaaa33o.
+.o3aacooo322222322332232222222222233o33occcaa33o..
+..o3cabo3222222322322232222222222223333occaab33o..
+..o3cabo22222222223222222222222222223333ocaa33o...
+..oo3ao3222222222232222222222222222223oobbaa33o...
+...o33o22211222222222222211111222222233obbaa33o...
+....oo3211111322222222231111111222222233bba33o....
+.....o32111111322222223111111112222222333333o.....
+.....o2233311112222223111133322222222223333o......
+.....o23oooo11122222231113ooooo332222223ooo.......
+.....o33ooooo21222223312ooooozcoo322222333o.......
+.....o3ozzwooo322222333oooooozzzoo22222333o.......
+.....o3ozywoooo32222233oAwoooozzoo32222333o.......
+.....o2oyyooooc3222223ozocoowozz1o32222333o.......
+.....o2oyyooo3c3222222ozooooczyz1o32222333o.......
+.....o2o1yzoozc3222222ozzoooczy11o3222333oo.......
+.....o22c1yooyc3222222ozyooozyy1c32222333o........
+......o2c1yzzyc21111123zyzzzy1y1o22222333o........
+......o22c1yyc221111122czyyyyyyc22222233o.........
+......o322ccc222bbc11122czzzzzc222223333o.........
+.......oaa2222222o2111222222222aa223333o..........
+........o32222222oo211222222222aa33333o...........
+.........o3322222223B2222222233333333o............
+..........oo33322222222223333333333oo.............
+............ooo33333333333333333ooo...............
+...............ooooooooooooooooo..................
+.................occ3333ccccoo....................
+.................ooccccccaao33o....ooo............
+.................o3oaaaaaoo3233o...o32o...........
+.................o2233333222223o....o32o..........
+.................o22222222222223o....o2o..........
+.................o23322322223223o....o2o..........
+.................o23o32o222333233o...o3T..........
+................oo22oo3o2223o2223o..o3o...........
+...............o2o223ooo2223222233oo33o...........
+...............o23o23ooo222o222333o33o............
+...............o33o23ooo223o322333o3o.............
+................o3o23ooo223o33333ooo..............
+.................oo23ooo22ooo3333o................
+................oo322oo322ooooo33o................
+................o3232oo232oo23223o................
+................oooooooo32ooooooo.................
+......................ooPo........................
diff --git a/parts_pl_src/body/pl_spider.txt b/parts_pl_src/body/pl_spider.txt
new file mode 100644
index 0000000..e3b838c
--- /dev/null
+++ b/parts_pl_src/body/pl_spider.txt
@@ -0,0 +1,43 @@
+# pl_spider: from pixellab_src/pl_spider/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 44)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (50, 49) (from part/probe)
+..................oooo..................
+...............oooo22oooo...............
+..............oo222113322o..............
+............oo22111111222ooo............
+...........oo211111^1112222oo...........
+..........oo2111111111112222oo..........
+.........oc221111111111112222co.........
+.........oc211111111111112222co.........
+........ocb221111111111121222cco........
+.......ocbb222111111111212222ccco.......
+....ooooocba2222111B12223222bccooooo....
+...oo31oocbb2a2222222222222bbccoo223o...
+...o211o22cbbb122a22a2b2bbbbcc22o122o...
+..oooooo22cbcbbbbbbbbbbbbbbccc22oooooo..
+.oo2112oo22cccbbbbbbbbbbbcccc22oo3112oo.
+.o211122o222oooo3222222coooo222o211113o.
+o2121oooo32oo311oo2222oo112oo23oooo1222o
+3222o212oo3o2222222222222222o3oo213o332o
+o22o21122oo2o1z222211221z22o2oo31112o32o
+o2o221112o2o111ooo2112111ooo32o211122o2o
+o2o211122o2oz112oooA1oz112ooo2o221222o2o
+.o222ooooo23aoooooo113aoooooo2ooooo222o.
+.o22o2122o23acoobo3113acoobo32o2112o22o.
+.o2o211122o31cbbo131131cbbo13o211112o2o.
+..o2111112oo3zaa1321123zaa13oo2111122o..
+.o221111222o3333321111222333o221111122T.
+.o221112223oooboo222222ooboooo22112222o.
+.oo222212oobaabbco2222ocbbbbboo212222oo.
+.oo22223ocbaaaabbco33ocbaaabbbco22222oo.
+.o222223oobaaabbbcoooocaaaaabboo222222o.
+.o223222ocbbabbbcbcoocbbaabbbbco222222o.
+.oo22322ocbbbbbbbco..ocbbbbbbcco22322oo.
+..oo2222occbbbbccco..occbbbbccco2222oo..
+..oo223ooocccccccco..occccccccooo322oo..
+...oo3oo.ooccccccco..occcccccoo.oo3oo...
+....ooo...ooccccco....occcccoo...ooo....
+............ooooP......ooooo............
diff --git a/parts_pl_src/body/pl_spider_b.txt b/parts_pl_src/body/pl_spider_b.txt
new file mode 100644
index 0000000..9f19a73
--- /dev/null
+++ b/parts_pl_src/body/pl_spider_b.txt
@@ -0,0 +1,54 @@
+# pl_spider_b: from pixellab_src/pl_spider_b/base.png (variant of pl_spider) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 38)
+# head_top at (31, 13)
+# back at (31, 34)
+# tail at (56, 49)
+......................oo^ooo......................
+..................oooo222223oooo..................
+...............ooo22222222222223ooo...............
+..............o32221122122222222333oo.............
+............ooo22111112122222222223ccoo...........
+..........oobaabb1111122222222222bbaabco..........
+.........obazzaaac11111222222222bazzaabbo.........
+.........obzzzaaac11111122222222bazzaaaaco........
+........ocazzaaaac11111122222222baaaaaaaco........
+.......o2baaaaaabc31111222222222bbaaaaaac3o.......
+......o22cbaaaacc3311122222222223bbaaabbb33o......
+......o222bbbbbc331112222222222223bbbccco33o......
+......o2222cccc33111122222222222223bbccc3333o.....
+.....o22222233311111222222222222222233333333o.....
+.....o22222222221111222222222222222222223333o.....
+.....o222222222222bb22222222222bb22222223333oo....
+.....o22222222222bzac222222222bzac22222233333o....
+....o322222222222babc222222222bacc22222233333o....
+....o322222222222bbc2222222222bbc222222233333o....
+....o33222aaa222222222222222222222222aab33333o....
+....o3322bzzab2222222222222222222222bzzac3333o....
+....o3332baaac2222222222B22222222222bzaac3333o....
+....o3332ccabc2222222222222222222222ccaac3333o....
+....o33322ccc222222222222222222222222bcc33333o....
+.....o33322222222222222222222222222222233333o.....
+.....o3332222222222222222A222222222222333333o.....
+.....o33322222222222222222222222222222333333o.....
+.....o33332222222222222222222222222223333333o.....
+......o333322222223333222222333322223333333o......
+......oo333332222o1z333222231z33o223333333o.......
+...oooooo3333322o111ooo3223111ooo333333333ooooo...
+..o32233oo333333oz113ooo22oz113ooo3333333o33333o..
+.o3211233oooooo33aoooooo223aoooooo33ooooo3322113o.
+.o3211233o3233o33acooao3223acooao33o3223o33221123o
+o3322233o311233o31caao132231caao13o321123o3322233o
+o333323o3111223oo3zaa1332233zaa13oo3211233o333333o
+o33333o332122333o3333332222333333o332222233o33333T
+o33333o332223333oooaoo333333ooaoooo33222333o33333o
+o33333oo333323ooaaaaabo3333obaaaaaoo323333oo33333o
+.o3333oo333333caaaaaaabo33obaaaaaaac333333oo3333o.
+ocbbboo333333ooaaaaaaaboooobaaaaaaao3333333oocbbbo
+ocaabco333333obaaaaaabacoocaaaaaaaaco333333occaabo
+obabbooo33333obaaaaaaabo..obaaaaaabco33333ooocabbo
+.oabco.oo3333ocbaaaabbbo..obbaaaabbco3333oo.ocbbo.
+.obbo..oo333ooobbbbbbbco..obbbbbbbcooo333oo..obco.
+..ooo...oo3oo.oobbbbbcco..ocbbbbcboo.oo3oo...ooo..
+.........ooo...ooccccco....ocbbccoo...ooo.........
+.................ooooP......ooooo.................
diff --git a/parts_pl_src/body/pl_spider_c.txt b/parts_pl_src/body/pl_spider_c.txt
new file mode 100644
index 0000000..c93118f
--- /dev/null
+++ b/parts_pl_src/body/pl_spider_c.txt
@@ -0,0 +1,46 @@
+# pl_spider_c: from pixellab_src/pl_spider_c/base.png (variant of pl_spider) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 43)
+# head_top at (31, 22)
+# back at (31, 34)
+# tail at (55, 49)
+........................oo......................
+..................oo...^1o..oo..................
+...............oo.o2o.o21o.o2o.oo...............
+...............o2oo21o2112o32oo3o...............
+...........ooooo21o2113112112o12ooooo...........
+...........oo11o2112113111112112o322o...........
+............o2112112111111113112112o............
+.........oooo2111111111111111121122ooooo........
+........o211333111111111112111332211123o........
+.........o2111121111111111211122211222o.........
+.........oo21122111111111111111222222oo.........
+.......ooo111c22211111111111111222c2222o........
+......oo2111cb22211111111112122222cc2223oo......
+.......oo311cb222221112B11222222bccc22222o......
+........oo31ccba222222222222223bbccc222oo.......
+.......oo3112ccbaa22222222223bbbccc3223o........
+......o3111133ccbbbaaaaaabbbbbbccc231223oo......
+......ooo2111133ccbbbbbbbbbbbccccc1112232o......
+.......oo113111322oocccc23ccoo3333112222o.......
+.......o31231113331123232222332111112222oo......
+......o2222133133222233133322223111112o22o......
+......ooo2123113o1z222211221z22o311212oooo......
+....oo22o232311o111ooo21A2111oooo11222o33oo.....
+...o3112o22o221oz112ooo11oz112ooo22222o2211oo...
+..o31112oooo3213aoooooo113aoooooo222o2o22111oo..
+..o111222o2o2223acoobo3113acoobo3222ooo222111o..
+.o212222o11222231cbbo131131cbbo13222321o222111o.
+.o22222o211222223zaa1321123zaa1332223211o22111o.
+occ222o21122222o33333311112333322o3222111o222bbT
+obabcco1113222o3222223111223233113o322311occbbao
+ocbbcocb2222oo21112222222223333111oo2221cbocbbbo
+o2cccocaabc2oo111122oo222o23o331112oo2cbbaocccoo
+o222oobbbbco.o111122ooo22o2oo321112ooccbbboo223o
+.o22oo2cccco.occabbco.oo2oooocbbcccoooccb32o222o
+.o22oo2222oo.ocbabbco...o...ocbbbbco.oo2322o22o.
+.oo23o22223o.ocbbb22o.......o22bbbco.o22322o23o.
+..oo3o222223o.o222222o.....o221222o.o322322o2o..
+....ooo22223o.o322223o.....o232223o.o33222ooo...
+......oo222o...o33333o.....o22222o..oo333o......
+........ooo.....ooooP.......ooooo....oooo.......
diff --git a/parts_pl_src/body/pl_spider_d.txt b/parts_pl_src/body/pl_spider_d.txt
new file mode 100644
index 0000000..0d27222
--- /dev/null
+++ b/parts_pl_src/body/pl_spider_d.txt
@@ -0,0 +1,49 @@
+# pl_spider_d: from pixellab_src/pl_spider_d/base.png (variant of pl_spider) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 41)
+# head_top at (31, 18)
+# back at (31, 34)
+# tail at (56, 49)
+.....................oo.^o.oo.....................
+....................o22o22o22oo...................
+.................oooo21311312ooooo................
+...............ooo2231111111131122oo..............
+..............ocb2221111111111112occoo............
+.............ocbb211111111111111bbbc3o............
+...........ooobbaa11111111111111bbbbb2o...........
+...........o33bbba11111111111112aabb222o..........
+..........o313cbbba111111111112aabbc322oo.........
+..........o3133bbbaa1111111113babbbc1322o.........
+.........oc33133cbbaa31111111bbbbc211222co........
+........occ33333cbbbbb211113bbbbbc31133cco........
+........ocbb311333bbbbb1333bbbbb231133bcco........
+........o3bbb31133ccbbbbbbbbbbc331133bccc2o.......
+.......o23cbbb311133cbbbbbbb3b331133abcc22o.......
+.......o3233bbb3111333bbbbbb3333112bbbc322co......
+.......oc233cbbb11113333Bb33333112bbbc322cco......
+......occb3332cbb1111133333311112bbbc3322cco......
+......occb2233ccbbooo11333111oooobbc33222co.......
+......occbc3333cbo311o113313o111oo3c3222cco.......
+.......ocbbc3333o33223o1111332223oo332ccccco......
+.......occbbb23o333z223111133z2233333cbbccco......
+.......occcbbb3333wwooo11113wwooo3333bbbccco......
+....ooooooccbbc33zww2ooo1A3zww2ooo33bbbccooooo....
+...o3132oocccbc33aoooooo113aoooooo3bbbccco2311oo..
+..o211123occccc33aoooooo113acooboo3bccccco23113oo.
+.o31111oooooccc33acoobo3113acccoc33cccooooo11113o.
+.o1111o33111ooc331cbbo1311331bca133cco31111o11132o
+o2111o2111113oc233z1113311133111333co3111112o3132o
+o3111o11111133oo2333333111123333322o23111111o2332o
+o331o1111111332oc3333333133333333coo231111111o232o
+o233o1111113322oooobo22313323oboooo2223111111o222T
+o222o311111322oobaabco223322ocbbbbbo223311113o222o
+oo22o33111322obbbaabbco2222ocbaabbbbo222311332o2oo
+.o2o23333322oobaaaaabbco22ocbaaaabbboo32333332o2o.
+.ooo22333322ocbaaaabbbco22ocbaaaaabbbo32233322ooo.
+..ooo2233222ocbbbaabbcco22ocbbbabbbbco2223322ooo..
+...oo222322ooccbbbbbcccoooocbbbbbbbccoo222322oo...
+.....o2222oooccbbbbbcccooooccccbbbcccooo22222o....
+.....oo222oo.occccccccco..occccccccco..o2222o.....
+......oo2oo...occcccccco..occcccccco....o22o......
+.......oo......ooccccoo....ooccccco......oo.......
+................oooooP......oooooo................
diff --git a/parts_pl_src/body/pl_spittle.txt b/parts_pl_src/body/pl_spittle.txt
new file mode 100644
index 0000000..97b1c3d
--- /dev/null
+++ b/parts_pl_src/body/pl_spittle.txt
@@ -0,0 +1,50 @@
+# pl_spittle: from pixellab_src/pl_spittle/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 42)
+# head_top at (31, 21) (from part/probe)
+# back at (32, 30) (from part/probe)
+# tail at (51, 41) (from part/probe)
+.............oo...........oo..............
+............o12o.........o11o.............
+............o112o.......o211o.............
+.............o223o.....o312o..............
+..............o23ooo^ooo33o...............
+...............o322111123o................
+...............o2111111123o.........oo....
+.......1......o311111111223o.......o1o....
+.............o322o112212o223o......o......
+.............o22woo2222woo23o....o32o.....
+...ooo.......o22ooo2bb2ooo23o....o12o.....
+..o211o......o221o1babc1o123oo...o222o....
+..o211o......o3bb12bbbc21bc3o3....oo2o....
+...o22o......o3cb223cB322bc3oo............
+....oo.....oooo322223322233ooooo.......oo.
+........ooo33ooo3332222333ooo333oo....o12o
+.ooo...o2111333oo33333333o3oo33333o...o12o
+o112o.o2111113o223oooooo32o33322333o..o22o
+o112oo22111111o22322222o22o222222333o..oo.
+o22o.o21111111o33o22222o33o111222233o.....
+.oo..o211111111oo1111111oo1111122223o.....
+....o2221111111111111111111331222222oo....
+....o222211111111111111111311312222223o...
+....o2222111111111111111113113122222233o..
+...o211122111111111111111112212222222233T.
+..o111111211111111111A1111111223322222333o
+.o111111113111111111111111112231113222233o
+.o111111112321111111111111122211112222233o
+o2111111112221111122222111222311112322333o
+o2111111122222111311122222222221122322333o
+o2211111222222111311122222222232223223333o
+o222111222233322221122222233322333223333o.
+.o22222222311112223322222311132222223333o.
+.o322222232111122222222211111122222223333o
+.o333333332111223222222111111123222223333o
+.o332222232222223222223111111222322233333o
+.o33222223322222322223211111122232233333o.
+..o3322222332233222223221111222233333333o.
+..o333333333333323323322221222223333333o..
+...oo333333333333333332222222222333333oo..
+.....oo333333333333333322222222333333o....
+.......oo3333oo3333333332222223oooooo.....
+.........oooo..oooooooooo22233oo..........
+.........................Poooo............
diff --git a/parts_pl_src/body/pl_spittle_b.txt b/parts_pl_src/body/pl_spittle_b.txt
new file mode 100644
index 0000000..bacf062
--- /dev/null
+++ b/parts_pl_src/body/pl_spittle_b.txt
@@ -0,0 +1,64 @@
+# pl_spittle_b: from pixellab_src/pl_spittle_b/base.png (variant of pl_spittle) (pixellab_library.py extract)
+# pivot at (25, 61)
+# aura at (32, 36)
+# head_top at (31, 4)
+# back at (32, 30)
+# tail at (51, 41)
+...................oo^oooo...................
+..................o1111112o..................
+.................o111111111o.................
+................o11111111112o................
+..............ooo11111111122ooo..............
+.............o11121111111222o11o.............
+............o1111211111122221111o............
+...........o11111122211222221111o............
+..........o111111111222222211cc11o...........
+..........o11111111112221111cabc12o..........
+..........o11111111111111111cbbc12o..........
+..........o111111cc2111111111cc212o..........
+..........o111112bab21111122222222o..........
+..........o111oo2bbb3111122oo22222o..........
+..........o11o12o233321122o11o2222o..........
+..........o21o112o3333122o211o2222o..........
+...........o11o223o33333o312o2222o...........
+...........o113o23ooooooo33o32222o...oo......
+...........o1133o322111123o332322o..oabo.....
+.......1...o1133o2111111123o32322o..obbo.....
+...........o113o311111111223o2322o...oo......
+...........o11o322o112212o223o312o...........
+...........o11o22woo2222woo23o312o.oo........
+....ooo....o11o22ooo2aa2ooo23o312o.32o.......
+...o211o...o11o221o1aaab1o123o312o.22o.......
+...o211o..o111o3aa12aaab21ab3o311o.oo........
+....o22o..o111o3ba223bB322ab3o311o...........
+.....oo..o1111oo322223322233oo3111o.....oo...
+..oo....o111112oo3332222333ooo31111o...oabo..
+.oooo..o11111113oo33333333o3o3111111o..oabo..
+.obbo..occ11111o223oooooo32o111111111o.obbo..
+..bb..ocabc1111o22311111o22o111111111o..oo...
+......ocabc31111331111A113311112211112o......
+.oo...ocbbc111112211111111111112311122o...oo.
+oabo.o223311111111111111111133132311222o.obao
+obbo.o222111111111133321111111332322222o.obco
+.oo..o22221111111133113311131131232222cco.oo.
+....o21112211111233311113113221223222cabcT...
+...o1ccc11211111331111113113112233222cabc3o..
+..o1cabbc1121133311111113113122311132cbbc3o..
+..o1cabbc11211333111111132232221111222cc33o..
+.o21cbbcc112113111122222133222311112322333o..
+.o211ccc1122113111311122222222221122322333o..
+.o2211111222113111311122222222232223223333o..
+.o222111222312322221122222233322333223333o...
+..o22222222312312223322222311132222223333o...
+..o322cbc233123122222222211111122222223333o..
+..o33cabbc3312312322222211111112322cc23333o..
+..o33cabbc33123223222223111cbc2223aabc3333o..
+..o33cbbcc3312322322223211cabbc22caacc333o...
+...o33ccc223123332ccc23221cabbc22cbbcc333o...
+..oo3333333312333cabbc3222cbbbc223bbc333o3o..
+.o111o33333312333cabbc32222ccc222333333o111o.
+o11112oo333112333cbbcc3322222222333333o11112o
+o1112223o111122o33ccc33332222223oooooo321122o
+.333333o11112223oooooooooo22233oo.....333333.
+.......o11122233..........ooooo..............
+........3333333P.............................
diff --git a/parts_pl_src/body/pl_spittle_c.txt b/parts_pl_src/body/pl_spittle_c.txt
new file mode 100644
index 0000000..6bc96a2
--- /dev/null
+++ b/parts_pl_src/body/pl_spittle_c.txt
@@ -0,0 +1,45 @@
+# pl_spittle_c: from pixellab_src/pl_spittle_c/base.png (variant of pl_spittle) (pixellab_library.py extract)
+# pivot at (35, 58)
+# aura at (32, 41)
+# head_top at (31, 20)
+# back at (32, 30)
+# tail at (55, 41)
+............oo..........o^o.........................
+...........o11o........o211o........................
+...........o112o......o2112o........................
+............o213o.....o212o...................oo....
+.............o23ooooooo33o.oooooooo..........o1o....
+.......1......o321111123ooobbyyyabbooo.......o......
+..............o21111111133obbb11ybbbyyo....o32o.....
+.............o2211111111223obb11yybbbyao...o12o.....
+...ooo......o22o111122o2223obbbyyybbbyyao..o222o....
+..o211o.....o2woo2222woo2223obbbyyybbbyao...oo2o....
+..o211o.....o2ooo2aa2ooo22B3ocbbyyybbbaabo..........
+...o22o.....o21o1aaab1o12223ocbbyyabbbaabo......oo..
+....oo......o3a12aaab21aa223occcaaabbbaabo.....o12o.
+.ooo........o3a222bb322aa233ccccbbbcccaabo.....o12o.
+o112o....ooooo3222332222233occccbbbcccbbbooo...o22o.
+o112o...o211ooo322222223333cc3ocbbc33cbbbo33o...oo..
+o222o...o21111oo3222233333oc322obb322cbbo3333o......
+.ooo...o22111o22333333oo33oc3222ob322oboo2233o......
+.....ooo22111o223ooooo2223ooo322ooo323o2221133o.....
+....o21112211o33o2222o223o222o22ooo322o22111133o....
+...o1111112111oo21111o33o2211oo33o3o33o221111233o...
+...o111111132111111111oo11A1122oo323oo22211112233T..
+..o21111111122111111111111111111122222222211122233o.
+..o21111111222111111111113311111122222331221222233o.
+..o21111112222221111111131122221122223113222222333o.
+..o22111122223332111111131122222222223113222223333o.
+..o22222222231111222111122222233332222222222221133o.
+..o32222222321111222222222222211112222222222221123o.
+..o332222223211122222222222211111112222222322222233o
+..o333222223222222232222222111111112322222332222233o
+..o333222223322222232222223111111222232223332222333o
+...o33322222332223322222232111111222232233333333333o
+...o33333333333333323322232211112222233333333333333o
+....o333333333333333333233222212222223333333333333o.
+.....oo333333333333333333322222222222333333333333o..
+.......ooooo333oo3333333333222222222333333oo3333o...
+............ooo..o333333333322222223oooooo..oooo....
+..................ooooooooooo222333o................
+.............................Pooooo.................
diff --git a/parts_pl_src/body/pl_spittle_d.txt b/parts_pl_src/body/pl_spittle_d.txt
new file mode 100644
index 0000000..f3d5054
--- /dev/null
+++ b/parts_pl_src/body/pl_spittle_d.txt
@@ -0,0 +1,50 @@
+# pl_spittle_d: from pixellab_src/pl_spittle_d/base.png (variant of pl_spittle) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 41)
+# head_top at (31, 21)
+# back at (32, 30)
+# tail at (50, 41)
+..............oo...........oo................
+.............o12o.........o11o...............
+.............o112o.......o211o...............
+..............o223o.....o312o................
+...............o23ooo^ooo33o.................
+................o322111123o...........oo.....
+..........1.....o2111111123o.........o2o.....
+...............o311111111223o........o.......
+..............o322o112212o223o.....o32o......
+..............o22woo2222woo23o.....o12o......
+.....ooo....ooo22ooo2aa2ooo23ooo...o22o......
+....o113o..o12o221o1aaab1o123o22o...oo.......
+....o112o.o223o3aa12aaab21ab3o322o...........
+....o222o.o23oo3ba223bB322ab3oo32o...........
+.....ooo..o33o3o322223322233o3o33o...........
+.........oo33o2oo3332222333o33o33ooo.........
+........o22oo113oo33333333o3333oobbco........
+.......obaac111o223oooooo32o22222baaao....oo.
+.......obaab111o22322222o22o21122baaao...o11o
+......o2ccac111o33o22222o33o11122caac2o..o11o
+.oo...o21cc11111oo1111111oo1111222ccc2o..o22o
+o11o.o2211111111111111111111bbb22222222o..oo.
+o11o.o221111111aac111111111baab12222222o.....
+.oo.o2222211111cac111111111cabc122222223o....
+....o2222221111bc11111A11111cc1222222223T....
+....o222ccb11111111111111111112222222233o....
+...oo22baacc111111111bc1111112222bbc2333o....
+..o1o22baaab21111111aaaac1112222baaab3332o...
+.o11o32bbaab2211111baaaab1122222caaab33322o..
+.o11333bbbbb2222111baaaab2222222baabb33322o..
+.o1113333bb22222222bcaabc2222222bbbb333222o..
+.o311133333332222222bbbc222222222bbb332112o..
+..o1111333333322222222222222222233333321122o.
+.o11111133113333222233322223333333321131112o.
+.o11111311111333333333333331113333111123222o.
+.o22112111111111233111133311112321111113322o.
+.o2222311111111113111111111111121111112333o..
+..o33331111211111311111121111112211111333o...
+...o3332112311113111111231111111321113333o...
+....ooo2222321223321112332111122332223ooo....
+.......o333322223332222332222223o3333o.......
+........oooo2222oo33333oo222222o.oooo........
+............oooo..ooooo..o2222o..............
+..........................Pooo...............
diff --git a/parts_pl_src/body/pl_springtail.txt b/parts_pl_src/body/pl_springtail.txt
new file mode 100644
index 0000000..66e2cfd
--- /dev/null
+++ b/parts_pl_src/body/pl_springtail.txt
@@ -0,0 +1,45 @@
+# pl_springtail: from pixellab_src/pl_springtail/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 42)
+# head_top at (26, 30) (from part/probe)
+# back at (39, 31) (from part/probe)
+# tail at (49, 47) (from part/probe)
+.....ooo........ooo.....................
+...oo212o......o212o....................
+..o212233o.....o2112o...................
+.o12233o3o.....o3211o...................
+o12233o33o....o2o3211o..................
+o2233o.o3o....o22o222o..................
+.o33o..o2o....222oo22o..................
+..oo...o22o..o13o..ooooo................
+.......o12oooo^3ooo33222ooooooo.........
+.......o12o22o13o33o221a222B2222o.......
+......oo12o22o13o3332o1111123o111oo.....
+.....o2o12o12o13o33222o221a12o22ab2o....
+....o22222112o23o222222o211122o22222o...
+...o2a212111122322a22222o222222o2222o...
+..o22b111a11112222b222a22o222a22o2bb2o..
+..o2222113111122222222222o2a2222o2bb2o..
+.o2222221111a22222222a3222o22a22o32223o.
+.o221122222222211112222223o222222o2223o.
+.o2oo112222222ooo111222223o2222b2o3233o.
+o2o1oo12222222o1oo112222b3o3222b2o3333o.
+o23ooo12222222oooo1A222233o332333o3333o.
+o22oo112222222oooo11222333o333333o33b3o.
+o221w1122222221oo111223333o333333o3333o.
+o2222222211222211112223333o33b33o33333o.
+o22b222211112222222c233333o33333o33333o.
+.obaa22oooooo2222aaab3333o33333o33333Tac
+.o3ba2ooccccco222aaab3333o33333o3333occo
+..o332oocbbbcoo223b33333o33333o2233ooooo
+...ooccoooooooco3333333o22333o2333o.....
+...caacocaabcobbo3333oo2233ooo33oooo....
+..caacooooooocaao33ooo3o33oo33ooo322o...
+..cacoocaabcocacooooo333oooo322oo3222o..
+.oaao3ooocoocaccooooo3212o.oo212oo312o..
+..occo3ooaaaabcoo33oo3212o..o222o.o22o..
+...oo3o..occcco.o33o.o222o...o22o.o22o..
+...o23o...o33o..o33o.o222o...o22o.o22o..
+...o33o...oooo..oooo.o223o..o22o.o22o...
+...oooo.............o333o...oooo.oooo...
+....................Pooo................
diff --git a/parts_pl_src/body/pl_springtail_b.txt b/parts_pl_src/body/pl_springtail_b.txt
new file mode 100644
index 0000000..26c8366
--- /dev/null
+++ b/parts_pl_src/body/pl_springtail_b.txt
@@ -0,0 +1,50 @@
+# pl_springtail_b: from pixellab_src/pl_springtail_b/base.png (variant of pl_springtail) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (31, 40)
+# head_top at (26, 19)
+# back at (39, 31)
+# tail at (53, 47)
+......ooo................oooo..........................
+...oo1111oo............oo1aa1oo........................
+..oaa222222o..........o222c2112o.......................
+.o12ao233221o........^2133c3211o.......................
+o122ccooo3322o.......o133ooo3321o......................
+o233oo...o332o.......o33o...o333o......................
+o3oo......o322o.....o23o.....oo3o......................
+oo.........o32o.....o23o.......o.......................
+...........o333o...oaaco...............................
+............o33o...occo................................
+............oaao...o23o................................
+............occo...o23o................................
+............o23o...o13o................................
+............o23o..o213ooooooo..........................
+............o13oooo113oo22211ooooooo...................
+............o13o33o113o3o22a111o22B2ooo................
+...........oo13o22o133o33o211a12o32111oooo.............
+..........o2o1221133333222o221222o22a12o22oo........oo.
+.........o32133111233322222o222aa2o22222o2a1o.......o2o
+........o3b21111111222a22222o222a2o222a2o2112o.....o12o
+.......o22b111a1112222b222a22o22222o22a22o2222o....o13o
+.......o222211b11122222222222o22222o22222o22a22o...o13o
+......o2222221111b2222222b3223o333aao22222o2222oooo12o.
+......o22ww222222222www2222223oaaaaaoa333ao2222o1oa22o.
+......o2oow1222222oooww122A223ooccc3oaaaacoa33ao31aa3o.
+......o2woow222222owooww2222b3o33333o3ccc3ocaaao312c3o.
+......o2ooow222222ooooww222233o33333o33333o3cccoc22co..
+......o2ooow222222ooooww222333o33333o33333o3333oc33co..
+......o21ow12222222o1ww1223333o33c33o33o3o33333o3c3o...
+......o22222221122222222233333o3333o333c3o33c33o3co....
+.......obbb22ooooo222bbbb3333o33333o33333o33333o3o.....
+.......obbb2oocccco22bbbb3333o3333o33333o33333ooT......
+........o332oocbbcoo23b33333o33333o3o333o3o333o........
+.........ooccooooooco333333o33o33o33oo3o333ooo.........
+.........caacocaacocco3333oo33o3o3332o3o332oo..........
+........caacoooooocaao333o33312ooo3322ooo322o..........
+........cacoocaacocacooooooo3112ooo322o.o3322o.........
+.......oaao2ooococaccoo333o.o312o..o22o..o3cao.........
+........occoa3oaaacco..o33o..oaao..ocaao..ocao.........
+.........ooo233oooo....o33o..oaao..obaao..o33o.........
+...........o23o........o33o..o22o...o22o..o33o.........
+...........o23o.......o33o...o22o...o22o.o33o..........
+...........o33o.......oooo..o22o...o22o..oooo..........
+...........ooo..............Pooo...oooo................
diff --git a/parts_pl_src/body/pl_springtail_c.txt b/parts_pl_src/body/pl_springtail_c.txt
new file mode 100644
index 0000000..54966f6
--- /dev/null
+++ b/parts_pl_src/body/pl_springtail_c.txt
@@ -0,0 +1,58 @@
+# pl_springtail_c: from pixellab_src/pl_springtail_c/base.png (variant of pl_springtail) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 34)
+# head_top at (26, 10)
+# back at (39, 31)
+# tail at (51, 47)
+..........................oo..o....................
+...................^o....o22oo3o...................
+...................33oooo212o12oooo................
+.............oo.ooo1132131121112222oo..............
+.........ooo.o33o2211ooo11111112a2213oo............
+.......oo212oo3111a1o211o11111111111122o...........
+......o212233o2111a1o2112o11a1111aa11222o..........
+.....o12233o3o1a1111o3211o11111111a122222oo........
+....o12233o33o11111o3o3211o11111111122aa222o.......
+....o2233o1o3o111a1o23o222o11aa11111122a212o.......
+.....o33o11o2oa2111223oo22o222222a1112222112oo.....
+......oo211o22o122o13o22oo2222222c222211221222o....
+.....o32111o12o222o13o332222a11oo2222a111222222o...
+....o3a22b1o12ooooo13ooo2222a1111oo222222ab2222o...
+....o322222o12o333o13o33oo222211111o22222222223o...
+....o2aa22oo12o322o13o33332o22121112o22a2222223o...
+...o32222o3o12o211o13o332222o2221a123o222222bb2o...
+.oo31222o32o222111o23o3222223o2211122o222222bb23o..
+.o21122o3321211111223222322222o2222223o222222233o..
+.o2222o33a2111b111122222a222323o2222223o32b22233o..
+..o2a2o32a2111a111122222b222a22o2222a22o33c232333o.
+.o32ao32222111311112222222222222o2a2222o333333333o.
+.o222o22222211111a222222222a3222Bo22a22o33333333o..
+.o222o22ww22222222221www122222223o222223o3333333o..
+o1122o2oow122222222ooowww12222223o2222a3o333bb333oo
+o332o3owoow22222222owoowwA2222a33o3222b3o333bb3333o
+.o2ao33ooow22222222oooowww2222333o332333o3333333oo.
+332ao22ooww22222222oooowww2223333o3323333o333333o..
+o332o221ww1222222221oooww12223333o3333333o333333o..
+.o33o2222222222222221111122233333o333333o33333b33o.
+.o32o22b2222211222222222222233333o33b333o33333b33o.
+.o322obaa2221111222222222b233333o333333333333333o..
+..o22obaa22ooooooo22222aaab33333o333333333333333o..
+..o22o33c2oooccccco2222aaab33333o33333333333333o...
+..o322o333coocbbbcoo2223b333333o3333333o33b3333o...
+...o322occcoooooooocc333333333o23333333333b333oo...
+...o321caacoocaabcobbo3333333o323333333333333oo....
+....o3caaccooooooocaao33333oo3323b33333333333o.....
+....o3baccoocaabcocaco333ooo33333b3333b33333T......
+.....oaaco3ooocoocaccooooo333333333333b33333o......
+.....oaaco333occcaacco33333333333333333333o3o......
+......occco3boaaaabco3333b33333b33333333oo.o.......
+.......ooo3333ccccco33333b333333333333oo3o.........
+..........oo333oooo33333333333333333oo333o.........
+..........o3o33333333b3333333o33o33o3o3333o........
+..........o33o3oo3333b3333o333o3o3oo3oo333o........
+.........o133oo.o3oooo3333o333oo.o333o.o33o........
+.........o13o....o333o33ooo313o...o33o.o33o........
+.........o13o....o333ooo..o312o...o33o.o33o........
+.........o23o.....ooo.....o113o..o33o.o33o.........
+.........oooo............o213o...oooo.oooo.........
+.........................Pooo......................
diff --git a/parts_pl_src/body/pl_springtail_d.txt b/parts_pl_src/body/pl_springtail_d.txt
new file mode 100644
index 0000000..ef6d21a
--- /dev/null
+++ b/parts_pl_src/body/pl_springtail_d.txt
@@ -0,0 +1,62 @@
+# pl_springtail_d: from pixellab_src/pl_springtail_d/base.png (variant of pl_springtail) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (30, 39)
+# head_top at (26, 30)
+# back at (39, 31)
+# tail at (52, 47)
+.............oo........oo.........................
+............o2o........o2o........................
+...........o2o..........o1o.......................
+..........o23............32o......................
+.........o22o............o2o......................
+.........o2o.............o22o.....................
+........o12o..............31o.....................
+........o13o..............o13o....................
+........o13o..............o22o....................
+........o13o..............o12o....................
+........o13o..............o12o....................
+........o13o..............o12o....................
+........o22o..............o12o....................
+.ooooooooo2o..............o13o....................
+o11111122oo3o.............o13o....................
+o22233333323o.............o23o....................
+ooooooooo3322o...........o333o....................
+.........oo32o...........o333o....................
+..........o332o..........o33o.....................
+...........o333o........o133o.....................
+............o33o........o22o......................
+.............o33o......o123o......................
+.............o33o......o13o.......................
+..............o2o.....o33oooo..ooooo..............
+..............o22o....o13ocaaooccaaao.............
+..............o12oooo^o13occaaaocccaaoo...........
+..............o12o2222o13oocbaaao2Bcaaaooo........
+.............oo1332222o13333ocaaao3oaaaooao.......
+............o2o2331122o333222oaaao22oaao2cco......
+...........o222221112223322222oaaao22oaaaocao.....
+..........o2b211111112222b22222oaaao2oaaa2ocao....
+.........o22b111b11112222b222b22oaao22oaao2oaao...
+.........o2222113111122222222222oaao22oaao2oaao...
+........o2222221111b22222222b3222oaao2ocaa22oaao..
+........o22ww2222222221wwA2222222oaao23ocao2oaao..
+........o2oow12222222oooww1222222ocao23occo2occo..
+.......o2owoow2222222owooww2222b3occo33occo3occoo.
+.......o23ooow2222222ooooww222233occo33occo3occoao
+.......o22ooww2222222ooooww222333occo33occo3occoao
+.......o221ww122222221ooww1223333ocbo33oca33occoao
+.......o2222222211222211112223333ocao3occo33oacoo.
+.......o22c222211112222222c233333ocao3occo33oaco..
+........obbb22oooooo2222bbbb3333occa33ocao3ocboT..
+........o3bb2ooccccco222bbbb3333ocao33oaao3ocbo...
+.........o332oocbbbcoo223b33333occao3occo3ooco....
+..........ooccoooooooco3333333occao3ooco33ooo.....
+..........caacocaabcobbo3333oo2cccoooccoooo.......
+.........caacooooooocaao33ooo3occoo33ooo322o......
+.........cacoocaabcocacooooo333oooo322oo3212o.....
+........oaao3ooocoocaccooooo3212o.oo212oo312o.....
+.........occo3ooaaaabcoo33oo3212o..o222o.o22o.....
+..........oo3o..occcco.o33o.o222o...o22o.o22o.....
+..........o23o...o33o..o33o.o222o...o22o.o22o.....
+..........o33o...oooo..oooo.o223o..o22o.o22o......
+..........oooo.............o333o...oooo.oooo......
+...........................Pooo...................
diff --git a/parts_pl_src/body/pl_sprite.txt b/parts_pl_src/body/pl_sprite.txt
index b95ad66..eb12466 100644
--- a/parts_pl_src/body/pl_sprite.txt
+++ b/parts_pl_src/body/pl_sprite.txt
@@ -1,9 +1,9 @@
# pl_sprite: from pixellab_src/pl_sprite/base.png (pixellab_library.py extract)
# pivot at (28, 60)
# aura at (32, 43)
-# head_top at (34, 31) (from part)
-# back at (31, 50) (from part)
-# tail at (39, 54) (from part)
+# head_top at (34, 31) (from part/probe)
+# back at (31, 50) (from part/probe)
+# tail at (39, 54) (from part/probe)
...........ooooooo.........
........ooo2222233ooo......
.......o2111111122233o.....
diff --git a/parts_pl_src/body/pl_sprite_b.txt b/parts_pl_src/body/pl_sprite_b.txt
new file mode 100644
index 0000000..1b9d820
--- /dev/null
+++ b/parts_pl_src/body/pl_sprite_b.txt
@@ -0,0 +1,50 @@
+# pl_sprite_b: from pixellab_src/pl_sprite_b/base.png (variant of pl_sprite) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 40)
+# head_top at (34, 17)
+# back at (31, 50)
+# tail at (42, 54)
+.................ooo^...............
+..............o.o2113o..............
+.............o2o21123oooo...........
+............o21o1113o2111o..........
+............o2131113211222o.........
+............o3231133223333o.........
+...........ooo3312333333oo..........
+..........o213332333233333o.........
+.........o21111333111222333o........
+........o2111111111111122333o.......
+.......o211111111111111222333o......
+.......o211111111111111122333o......
+......o21111111111111111222333o.....
+......o21111111111111111222233o.....
+.....o2223331111111333122222333o....
+.....o22oooo211111ooooo22222333o....
+.....o2o11ooo1111o11oooo2222333o....
+.....o2o11coo2222o11coco2222333o....
+.....o2ocooco2222ocoocao2222333o....
+.....o2occcc12222occc11o2223333o....
+.....obbc111321123c111o3bb2333o.....
+.....o3bbooo2111122ooobbbb3333o.....
+......obbb222ooooo222bbbbb333o......
+.....ooo222222caa2A222223333ooo.....
+....o333o32222222222223333oo333o....
+...o12333oo322222222333ooo333113o...
+..o113o2333oooooooooooo3333321111o..
+..o12o3222333333333333322223o211bo..
+.obb3o2212222222222222222223o32bbbo.
+.obbo221122222222222222222223obbbbo.
+obbao221222222222222222222223oabbbbo
+o1bao222222222222222222222223oabb12o
+o112o3222222222222222222222233o2112o
+o113o322222222222B222222222233o3113o
+.o33oo322222222222222222222333oo33o.
+..oo.o332222222222222222223333o.oo..
+......o3322222222222222233333o......
+.......o33322222222222333333T.......
+........oo3333333333333333oo........
+.........o3ooooooooooooo33o.........
+..........o3333o....o33333o.........
+..........obbaao....obbbaao.........
+..........oaaaao....oaaaaao.........
+..........ooooP......ooooo..........
diff --git a/parts_pl_src/body/pl_sprite_c.txt b/parts_pl_src/body/pl_sprite_c.txt
new file mode 100644
index 0000000..c416b65
--- /dev/null
+++ b/parts_pl_src/body/pl_sprite_c.txt
@@ -0,0 +1,49 @@
+# pl_sprite_c: from pixellab_src/pl_sprite_c/base.png (variant of pl_sprite) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 37)
+# head_top at (34, 26)
+# back at (31, 50)
+# tail at (41, 54)
+.oo.........................oo.
+o22o......................oo11o
+o22aoo..................ooa111o
+o3ca12o...............oo1aaa11o
+occc111o.............o1111aaa1o
+occc3111o..........o1111133aaco
+.oc231111o........o11113322aaco
+.o32331112oooooo.o1111332222ao.
+.o32333112o11122^111133222222o.
+..o33331111111111111333222222o.
+..o33332211111111121333322223o.
+...o333211111111112233332223o..
+....o32211111111112233332233o..
+.....o21111111111122333223oo...
+.....o3311111111222233333o.....
+.....oo331111122oo2233ooo......
+.....ooo321111oooco233o........
+.....o1co3111o11oco233o........
+.....occo3222ocooco233o........
+.....o1cc3222oAcc1o233o........
+.....o2co21122c11o2233o........
+.....o2a111111111a233o.........
+......o1111111111333o..........
+.......o21ooo11133oo...........
+........o1221113oo.............
+.........o111oo3o..............
+..........ooo333o..............
+............o333o..............
+..........oo33332o.............
+.........o23332222o............
+........o2322222322o...........
+.......o22o2a2223o22o..........
+......oa2o2a1Ba23o32ao.........
+.....obabo22zy2223ocabo........
+.....obbco2a2a2223ocbbo........
+....o223oo22222223o3222o.......
+....o23o3o33222223o2322T.......
+.....o3ooo23333223ooo23o.......
+......o..o23ooo323o..oo........
+.........o33o..o33o............
+.........oaco..ocao............
+........obbco..ocbbo...........
+........ooooo...Poo............
diff --git a/parts_pl_src/body/pl_sprite_d.txt b/parts_pl_src/body/pl_sprite_d.txt
new file mode 100644
index 0000000..acaa952
--- /dev/null
+++ b/parts_pl_src/body/pl_sprite_d.txt
@@ -0,0 +1,55 @@
+# pl_sprite_d: from pixellab_src/pl_sprite_d/base.png (variant of pl_sprite) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (33, 36)
+# head_top at (34, 12)
+# back at (31, 50)
+# tail at (40, 54)
+..............oooo^oo.............
+...........ooo2222233ooo..........
+..........o2111111122233o.........
+.........o211111111122233o........
+........o21111111111122233o.......
+.......o2111111111111122233o......
+.......o21111111111111222333o.....
+......o211111111111111222233o.....
+......o211111111111111222233o.....
+.....o22233111111133322222333o....
+.....o22ooo311111ooooo2222333o....
+.....o2o11oo2111o11ooco222333o....
+.....o2o11co2222o11coco222333o....
+.....o2ocooc2222ocoocbo222333o....
+.....o23ccc12222occc11o22333o.....
+......o2c11o21123c111o322333o.....
+......o22oo2111122coo222333o......
+.......oaa22oooob222aa2333o.......
+........o3222oaa222223333o........
+........ooo333333333333oo.........
+.....oooo33oooooooooooo3ooooo.....
+....o112233333333333333322111o....
+...o11222222333333333322112111o...
+...o12221111122221111222111111o...
+...o2222111111311A111122111211o...
+..oo323211111131111111233222223o..
+.o2133321111113111111123o3332213o.
+.o212113211112321111123oo2112213o.
+.o23111o32222333222223ooo2112313o.
+.o231113o333113113333333o3212313o.
+o2123233o333113111322333oo2232113o
+o211333o.o3332333333333o..o331132o
+o211333o..o21131113233o...o331232o
+baaabbo...o2113222233o....obaaaabo
+baaabbo...obaaaaaaacco....obaaaabo
+bbbbbo....obaaaaaaabco.....3aaaabo
+o21223o...33caaaaac333o...o1111bo.
+o21132o..o113baaac3311o..o231112o.
+o31133o.o11223cBc323112o.o331112o.
+.o3333o.o113233oo311312o.o33333o..
+..oooo..o13323o.o311233o..oooooo..
+........o31333o..o32113o..........
+........o3333o....o32233T.........
+........oc332o....o333abo.........
+........oaabbo....obaaabo.........
+.........obbbo.....obaao..........
+........o1123o.....o2112o.........
+.......o11133o.....o2112o.........
+........ooooo.......Pooo..........
diff --git a/parts_pl_src/body/pl_starfish.txt b/parts_pl_src/body/pl_starfish.txt
new file mode 100644
index 0000000..af8b549
--- /dev/null
+++ b/parts_pl_src/body/pl_starfish.txt
@@ -0,0 +1,45 @@
+# pl_starfish: from pixellab_src/pl_starfish/base.png (pixellab_library.py extract)
+# pivot at (22, 60)
+# aura at (32, 43)
+# head_top at (32, 30) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (43, 49) (from part/probe)
+...................oooo3..................
+..................o32112o.................
+.................o3221112o................
+.................o32232112o...............
+................oc22333222o...............
+................ob23333323o...............
+................o323333333o...............
+................o32233333o................
+...............oc3223^333bo...............
+...............o33a2222233o...............
+..............oo3c22222a33oo..............
+..............o33a211112233o..............
+..............o332211112233o..............
+....ooo.oo.oo.o33211B111233o.o3.o3.ooo....
+..ooaacocaocao33221111112233oacoacoaacoc..
+.o32ca33aa3ac3322111111112233cb3aa3cac23o.
+o1113333cc3131113331111333111313cc3333111o
+o3222222332111131113113111311112332222223o
+o332222222222231wwo1111oww132222222222233o
+.o33322222222231woow22woow13222222222333o.
+..o33333a22222311ca1221ac11322222b33bc3o..
+...o3b33333a222311131A311132223b3333b3o...
+....ooo3b33322a233311113332a22333bcooo....
+.......o33332211oo222222oo11223333o.......
+........ooo33222oowoooowoo22233ooo........
+..........o33222ooocbbbooo22233o..........
+.........oba22222ccaaaaco22222aao.........
+.........occaa22211aaab11222aaaaT.........
+........o33cbc22222111122222cac33o........
+.......ocb3333222222222222223333aao.......
+.......obbaa222223333333322222aaaco.......
+.......o3cac222233b3333b332222cac3o.......
+.......o3333222bc333333333b2223333o.......
+......oca222223333oooooo333322222aao......
+......occ32223333o......oc3332223cco......
+......o33223b33oo........oo33b32233o......
+......o222333bo............o3333222o......
+.......o3333oo..............oo3333o.......
+........oooP..................oooo........
diff --git a/parts_pl_src/body/pl_starfish_b.txt b/parts_pl_src/body/pl_starfish_b.txt
new file mode 100644
index 0000000..f296974
--- /dev/null
+++ b/parts_pl_src/body/pl_starfish_b.txt
@@ -0,0 +1,44 @@
+# pl_starfish_b: from pixellab_src/pl_starfish_b/base.png (variant of pl_starfish) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 45)
+# head_top at (32, 23)
+# back at (31, 35)
+# tail at (52, 49)
+....................oo^o3...................
+...................o32112o..................
+..................o3221112o.................
+..................o32232112o................
+.................oc22333222o................
+.................oc23333323o................
+.................o323333333o................
+.................o32233333o.................
+................oc32233333co................
+................o33b2222233o................
+...............oo3c22222b33oo...............
+...............o33b211112233o...............
+...............o33221B112233o...............
+...............o332111111233o...............
+...............33221111112233o..............
+.............oo322111111112233o.............
+............o321133311113331113o............
+..........oo31113111311311131112oo..........
+.........o2112231wwo1111oww1322113o.........
+.......oo32222231woow22woow13222222oo.......
+......oca222222311cb1221ac113222222aao......
+.....o3caa222222311131131113222222aac2oo....
+....oa22ac23322a233311A13332a22332ca22abo...
+...ocaa2233333211oo222222oo11233333222aco...
+..o33aa2333333222oowoooowoo2223333332aa33o..
+..o322c33c3oo3322ooocbbbooo2233oo3c33c223o..
+.oaa22333oo.o33222ccaaaaco22233o.oo33322aaT.
+.oaa233co...o3322211baab1122233o...oc332aao.
+o222333o....o3c22222111122222b3o....o333222o
+o12233o....o33322222222222222c33o....o33321o
+o2233o.....o33222233333333222233o.....o3322o
+o2233o.....o3b22233c3333c332222bo.....o3322o
+o233o.....o33222cc333333333c22233o.....o332o
+o23o......o32223333oooooo33332223o......o32o
+o33o......o3223333o......o3333223o......o33o
+.oo.......o32333oo........oo33323o.......oo.
+..........o3333o............o3333o..........
+...........oooP..............oooo...........
diff --git a/parts_pl_src/body/pl_starfish_c.txt b/parts_pl_src/body/pl_starfish_c.txt
new file mode 100644
index 0000000..6a0e1a0
--- /dev/null
+++ b/parts_pl_src/body/pl_starfish_c.txt
@@ -0,0 +1,49 @@
+# pl_starfish_c: from pixellab_src/pl_starfish_c/base.png (variant of pl_starfish) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 42)
+# head_top at (32, 18)
+# back at (31, 35)
+# tail at (53, 49)
+.....................oo^oo....................
+....................o31111o...................
+...................o2111111o..................
+..................o2211111aco.................
+..................o2211111bco.................
+.................oca21aaa112o.................
+.................oca21aaa1122o................
+................o32221bbb1122o................
+................o322211111112bo...............
+...............o3222111111112bo...............
+...............o32cb111111aa123o..............
+..............o332c1111111bab22o..............
+............ooo3322111111112222oooo...........
+...oooooooooaaa33221111111122223aaaooooooooo..
+..o11bb11111bab13321111111111232bab11111aab3o.
+.o111bb111111c1111111111111113111b111a11bab11o
+o22221111aa1111111111111111111111111aab11b222o
+o3222222caab1111113331B1133311111122bb2222223o
+o33aa2222cc2222223111311311131222222222222ac3o
+.o3cc3222222222231wwo1111oww13222222222223co3o
+..oc33322222222231woow22woow13222222222233cco.
+...oo33332222222311ca1221ac11322222222c333oo..
+...oo333cc2222222311131131113222223223c333oo..
+..o3123333332221a133311113331a12223333333333o.
+..o211233333222211oo222A22oo1122222333332112o.
+.o2112223332222222oowoooowoo22222222333222112o
+.o2112223322222222oooccccooo22222222233222112o
+.o21222233222222222ccaaaaco222222222233222212o
+.o3222323222222222211baab11222222222233232223o
+.o32223332aaa2222222211112222222222aa23332223o
+..o3222332aaa222222222222222222222caa2333223o.
+..o3333o322c2222222222222222222222ccc33o333oT.
+...oooo.o32222222222222322222222222223o.ooo...
+........o332222aa222222322222aaa222233o.......
+........o333222aab22222322222aaa22233co.......
+........o333322cc222233332222cc22233333o......
+.......ob2333333332233333332223333cc233o......
+.......o32233333333333333333333333cc223o......
+.......o32223333333333ooo33333333222223o......
+.......o332223333ccooo...oooc3333322233o......
+.......o333333333oo.........oo33333333o.......
+........o3333333o.............o333333o........
+.........ooooooP...............oooooo.........
diff --git a/parts_pl_src/body/pl_starfish_d.txt b/parts_pl_src/body/pl_starfish_d.txt
new file mode 100644
index 0000000..5c0470c
--- /dev/null
+++ b/parts_pl_src/body/pl_starfish_d.txt
@@ -0,0 +1,45 @@
+# pl_starfish_d: from pixellab_src/pl_starfish_d/base.png (variant of pl_starfish) (pixellab_library.py extract)
+# pivot at (22, 60)
+# aura at (32, 43)
+# head_top at (32, 23)
+# back at (31, 35)
+# tail at (43, 49)
+......................ooo.................
+....................o^112o................
+...................o33122o................
+..................o1131223o...............
+.................o32232221o...............
+.................o13322222o...............
+................o12322233o................
+................o22321233o................
+...............o332221233o................
+...............o1132222321o...............
+..............oo2132222322oo..............
+..............o333222222333o..............
+..............o113221122312o..............
+.....oo.oo.oo.o21322B222222o.oo.oo.ooo....
+..ooo12o12o21o33222222222233o12o12o213oo..
+.oaa2123223213322222222222233123123223aao.
+oaaa3332332332223332222333222332332332aabo
+ocac2222222222231113223111322222222122cabo
+occ322112221223111o1221o111322112212223cco
+.oc33222222222311oo1221oo11322222222233co.
+..o32133223322311ca1221ac11322332233113o..
+...o22333222222311132A3111322222333322o...
+....ooo3113222a233322223332a2223213ooo....
+.......o22332222oo222222oo22223322o.......
+........ooo33222oo1oooo1oo22233ooo........
+..........o33222ooobbbbooo22233o..........
+.........o1122222cbaaaabo2222111o.........
+.........o221122222aaab222221122T.........
+........o332222222222222222221233o........
+.......o11333321222222222221333311o.......
+.......o22122222222333222222222122o.......
+.......o32122222233333313223222223o.......
+.......o33321223113333323332222333o.......
+......o11321223322oooooo31132211311o......
+......o2232223333o......o2233222322o......
+......ocaa23213oo........oo31132aaco......
+......ocaac322o............o223caaco......
+.......occc3oo..............oo3ccco.......
+........oooP..................oooo........
diff --git a/parts_pl_src/body/pl_stick.txt b/parts_pl_src/body/pl_stick.txt
new file mode 100644
index 0000000..62d7bed
--- /dev/null
+++ b/parts_pl_src/body/pl_stick.txt
@@ -0,0 +1,48 @@
+# pl_stick: from pixellab_src/pl_stick/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (30, 23) (from part/probe)
+# back at (33, 30) (from part/probe)
+# tail at (43, 43) (from part/probe)
+......oo....o............
+.....oboo..obo...........
+......o2o..o2o...........
+.......o2oo2o............
+.......o211^oo...........
+......o1111313o..........
+.....o11111113o..........
+.....o1111oo223o.........
+.....1111o1wo23o.........
+....oo111oowo23o.........
+....o11111oo223o.........
+.....o2222222oB..........
+......ooooooo3o..........
+.oo....o2222223o.........
+oaco..oaco222c3o.........
+o11o..oc1o12babo.........
+.o2o..o32o11ccc2o........
+.oboo.oooco1o232o........
+..o23o2ooo3o32o22o.......
+...oba3o11obc2o21oooo....
+...occoo111ocoo213112o...
+....oo.o3111o232231122o..
+........o111Aobo3o11122o.
+.......oco222baco321121o.
+.......o3oo2o2cco2321212T
+......o233oo322oo3223222o
+....oo223o.o22233o231o22o
+...ob122o..o22o333o321ooo
+..oaaboo..o212ooo33oo3ab.
+..occco...oab3occoooocbbo
+...oco....obbo.o3o...ocoo
+...o2o....ocoo.o2o...o22o
+...o1o....o2oo.o2o...o21o
+...o2o....o12o.o2o...o21o
+...o2o....o12o.o2o....o1o
+...o2o....o11o.o3o....o2o
+..o2co.....o1o.ooo...o32o
+..o23o.....o1o.......o3co
+..oboo.....oco........oo.
+..........o32o...........
+..........oboo...........
+...........oP............
diff --git a/parts_pl_src/body/pl_stick_b.txt b/parts_pl_src/body/pl_stick_b.txt
new file mode 100644
index 0000000..bafcf93
--- /dev/null
+++ b/parts_pl_src/body/pl_stick_b.txt
@@ -0,0 +1,48 @@
+# pl_stick_b: from pixellab_src/pl_stick_b/base.png (variant of pl_stick) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 42)
+# head_top at (30, 20)
+# back at (33, 30)
+# tail at (45, 43)
+......oo....o..............
+.....oboo..^bo.............
+......o3o..o3o.............
+.......o2oo2o..............
+.......o3113oo.............
+......o2111313o............
+.....o21111213o............
+.....o1111oo333o...........
+......111o1wo33o...........
+....oo211oowo33o...........
+....o22112oo333o...........
+.....o3333333oBooo.........
+......ooooooo3311bo........
+.oo....o3333333311bo.......
+oa1o..o323113113311o.......
+o131o.o12o13311c3311o......
+o11o.oo1o1o1o11bo3113o.....
+.o13oo1oo1o1o31co3311oo....
+.o31133o331ooo13o3311aco...
+..o3133o1o3a1133o33311c1o..
+...o33oo11oc333o333311111o.
+....oo.o121oooo3332311111o.
+.......o3211333333323111aco
+.......o32113A322332311aaco
+......o1o3133o111333311accT
+.....o113o333o111333311c11o
+....oac13o33o1ac133331111o.
+...o1a133ooo11ac1o3o31111o.
+..o11133o..o1ac11ooo3111o..
+.o11133o..o11a113ooo311ao..
+.o1133o...o11113oo.o31aao..
+.o1133o..o11113o3o.o31c1o..
+.o33333o.o1133oo33o.o311o..
+..o3133o.o1133oo33o.o3313o.
+..o113co.o3333oo33o..o311o.
+..o11cco.o3131ooc3o...o31o.
+..o11cco..o1111ooo...ocb1o.
+.oaaccco..o11a1o.....ocbbo.
+.o333oo...o11aao......ooo..
+..ooo.....o31cco...........
+..........o333o............
+...........ooP.............
diff --git a/parts_pl_src/body/pl_stick_c.txt b/parts_pl_src/body/pl_stick_c.txt
new file mode 100644
index 0000000..566947b
--- /dev/null
+++ b/parts_pl_src/body/pl_stick_c.txt
@@ -0,0 +1,48 @@
+# pl_stick_c: from pixellab_src/pl_stick_c/base.png (variant of pl_stick) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (30, 20)
+# back at (33, 30)
+# tail at (43, 43)
+......oo....o.............
+.....oaoo..^ao............
+......o3o..o3o............
+.......o3oo2o.............
+.......o3123oo............
+......o2112323o...........
+.....o21122223o...........
+.....o2222oo333o..........
+......222o1wo33o..........
+....oo222oowo33o..........
+....o22222oo333o..........
+.....o3333333oB...........
+......ooooooo3ooo.........
+.oo....o33333cc33o........
+oa3o..oabo2233c222o.......
+oo3o..ob1o13322b222o......
+.o3o..o33o13322bb222o.....
+.oa3o.ooobo33222b2222o....
+..o33o3o2o3o32222c2222o...
+...o2a3o22oao2222ccc22o...
+...o3boo222oo3222ca2222o..
+....oo.o3222o3222c2b222o..
+........o222Ao322c2bb222o.
+.......ooo2233o22c22bb22o.
+.....oo23oo3o3o322222b22T.
+....o22bb3oo2b3o322222b22o
+...o22bb3o.o2b2oo322222b2o
+...o2b233oo22b23o3o332222o
+..o22b23o.o2bb22o3ooooooo.
+..o2b223o.obb222o3o33c33o.
+..o2b22o.o22b222o33o33c2o.
+.o22bc2o.o22b222ob3o33c2o.
+.o22b22o.o22bb22ob3oo32bo.
+.o2b223o.o22b2b2ob3oo32b2o
+.o2b23o..o22b22oo3o..o2b2o
+.o2233o..o22b22ob3o...o22o
+..oo3o....o2b23ooo...o3oo.
+..ob3o....o2b2o......o3bo.
+..oooo.....o23o.......oo..
+..........oo3o............
+..........obbo............
+...........oP.............
diff --git a/parts_pl_src/body/pl_stonefish.txt b/parts_pl_src/body/pl_stonefish.txt
new file mode 100644
index 0000000..4ac8272
--- /dev/null
+++ b/parts_pl_src/body/pl_stonefish.txt
@@ -0,0 +1,38 @@
+# pl_stonefish: from pixellab_src/pl_stonefish/base.png (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 44)
+# head_top at (32, 32) (from part/probe)
+# back at (35, 36) (from part/probe)
+# tail at (50, 50)
+...................ooo....................
+.....o..........ooo212ooo..........oo.....
+....oao.......oo111113223ooo......oao.....
+....oaao.....o31o111o^332311o....oaco.....
+..ooobazo..ooo111o1o1113o212o...oacco.o...
+..oa3cb2o.o21o1o2o1o1o12o233o...o2cccoao..
+..oba3c21oo31o233o1o3313o2233ooo13cc2abo..
+..obb2c32oo211ooo222ooooB22o33o123c23cbo..
+.oobc3233o1111222112233223aao3o23323ccboo.
+oa23c3323o11111111121113223ao3o33233cc22ao
+oba23333o3321111112222o2222333oo3333322abo
+.ob32223o31112111221111o3222333oo32223cbo.
+.obc3322o3oo11222111ooo2o122233o32333ccbo.
+oa23333oo3ooo111112oooo22o222o33oo333322ao
+oaa21233o313oooooooooo1313o231o3o32221aaao
+occ33333o31o2oooooo2oA1o22o232o3o33333ccco
+.occ332o13o1o2oooooo11oo31o23o3oo2333ccbo.
+.oc3233o1oooo3oooo22oo22o1o2233o3o3223cbo.
+.oa233o12oooooooooooooooo21o23o21o3332aao.
+.occc2o13oooooobbbbbboooo31o33332o23ccooo.
+..ooa3o13o11o33bbbbbbbooo31o333oooocaaoo..
+..oabco32oo111112baabbo1o31o3ao3oocccbaT..
+...occoo222111111112cooo312o333ooobccoo...
+....oobo322ooooo2221111112o333o3oooboo....
+.....oooooo32222333ooo223oo33o3o..ooo.....
+.........o322222223333oooo33o2o2ooo.......
+.........o23322222223333oo3o33o2132o......
+..........oo1323223333o3332ooo332133o.....
+...........ooo23o3333o3o3222oooo3233o.....
+...........o23oo3oooooo3o232oooooooo......
+...........o3233oooooooooo222o............
+............oooo.........Pooo.............
diff --git a/parts_pl_src/body/pl_stonefish_b.txt b/parts_pl_src/body/pl_stonefish_b.txt
new file mode 100644
index 0000000..095ec63
--- /dev/null
+++ b/parts_pl_src/body/pl_stonefish_b.txt
@@ -0,0 +1,49 @@
+# pl_stonefish_b: from pixellab_src/pl_stonefish_b/base.png (variant of pl_stonefish) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 39)
+# head_top at (32, 18)
+# back at (35, 36)
+# tail at (50, 50)
+..................oooo^oooo.................
+..........ooo..oooaaabbbbbbooo..............
+.........oaacoo11aaaaaabbbb222ooo...........
+........oaao11111aabbbbbbb2b22333oooooo.....
+........o11111111112abbbbb2222233ocaaaco....
+........ooo11111111aaab1111122223ocaaaaco...
+......ooaaao1111111aabb1111112222ocaaaaco...
+.....oaaaaaco111111cc1111111122222occaaco...
+.....oaaaaaco1111111111111111222223occcco...
+....oocbaacco11111111111111122222223occco...
+...o1occccco11111111111111122222oo222oooo...
+...o11ooooo111111111111111a2222oaaoo23333o..
+..o111111111111o31111132222222oaaaaco2333o..
+..o11111111111331o111o13o22222oaaaaco23333o.
+.o111111111111oww1o1oww13o2222oaaacco22333o.
+.o111111211111owo2o1owo12o22222occco222333o.
+.ooo1112a21111o233o1o3313o222222ooo222233cco
+.oaao212a112111ooo222oooo22222222222222333co
+oaaaco1111121112221122332B222222222222233cco
+oaaaco111a1111111111211122222a2222222223ccco
+oaaaco21111222111112222o2222aaa32222233cccco
+oacaco2211o11121112211A1o322aaa3222223ocacco
+occco2222o1oo11222111ooo2o222o32222222ocacco
+occo3223o23ooo111112oooo32o22222222222ocacco
+ooo22222o2313oooooooooo1313o22222222223occco
+.o222222o231o2oooooo2oo1o22o22222222233occco
+.o222222o13o1oooooooo11oo31o22223ooo3333ooo.
+.o22oo22o1ooooooooooooo22o1o2222oaaao33333o.
+.ooobbbo12oooooooooooooooo21o22oaaaabo3333o.
+.oaaabbo13oooooobbbbbboooo31o22oaaaabo3333o.
+.oaaaabo13o11o33bbbbbbbooo31o22ocaaabo333o..
+.oaaaabo32oo111112baabbo1o31o222occcoo333o..
+.oaaaabco222111111112cooo312o2223oooo333T...
+..ocaacco322ooooo2221111112o22222233333co...
+...occcco2oo32222333ooo222oo2222233333co....
+....oocc332222222222222ooo222233333ccco.....
+......oo333223oooo22222222222333cccccco.....
+.......oo3333ocaaao222222223333occccoo......
+.........oo33occccc33333333333occcoo3o......
+...........oooccccccccc333333ocooo333o......
+............o3ooocccccc33o3333ooooooo.......
+............o3333oooooooooo333o.............
+.............oooo.........Pooo..............
diff --git a/parts_pl_src/body/pl_stonefish_c.txt b/parts_pl_src/body/pl_stonefish_c.txt
new file mode 100644
index 0000000..d006834
--- /dev/null
+++ b/parts_pl_src/body/pl_stonefish_c.txt
@@ -0,0 +1,46 @@
+# pl_stonefish_c: from pixellab_src/pl_stonefish_c/base.png (variant of pl_stonefish) (pixellab_library.py extract)
+# pivot at (37, 58)
+# aura at (32, 38)
+# head_top at (32, 19)
+# back at (35, 36)
+# tail at (48, 50)
+.......................ooo^.........................
+......oo.............oo1112oo.............oo........
+......oao..........oo11111133oo..........oao........
+......oaao.......oo11111111223oo........oaco........
+......ocaao.....oo1oo31113oo3233o......oaaco..oo....
+....oooccao....oo3o11o211o11o3233o.....oaccoooao....
+....oaocca2o..oo1oww13o1oww13o3233o...o2accooaco....
+.o..ocaoc32o..o31o1wo3o1owo33o3223oo..o23cc2aco..oo.
+.oo.oca2c331oo331o3333o1o3333o32233ooo133c32aco.oao.
+.oaoooc3c332oo2113oooo313oooo3222333o1233c23ccooaao.
+.oca1oc32333o1aa113333111333322aaa333o233233cc2abco.
+..oa22c3323o21bb111111111111222bbb333o33233332abco..
+..occ22c33o331111111111111112233223a33o3333223ccco..
+...oc3223oo111221111111111112211oo3333ooo32233cco...
+ooooc3332o111111111111111222112221o33a33o32333c2ooco
+oaa22333o12ooo211111111122111ooo322o3333o3333222aaco
+ocaa2223o23oz1o311111111111oozzooo22o333o3322223cco.
+.oocc32o23ooz1zoo11111111ooozBzooo32o3222oo333ccco..
+..occc3o23ooo1o1zoooooooo11zo1zoooo22o3322o33cccoo..
+..oa322o23ooooo11z11zz11z1Azooooooo32o33oo32222bbo..
+ooaa223o23ooooo11o111o11zo1zooooooo32o333o3333aaaao.
+oabcc33o23oooooo1oo11oooooooooooooo22o333o333cccbaao
+oooooc3o22ooooooooooooooooooooooooo23o3333o33ccooooo
+...oaa3o32ooooooooooooooooooooooooo2333332o3aaco....
+..oaacc3o2ooo1ooooobbbobbbooooo1oo32o33o3oocccaao...
+..oacoc3o23oz1oo1ooaaabbaabb1oo1zo22o33oo33coccao...
+..oooocaoo23o11o11bbaaaabbb11ozzo22o3332o3caaoooo...
+.....oaccco23ozo11z1z11a1131zooo22o33332ooccao......
+.....oaoooo32233o1z1z11z11ooo3222oo3333oooocao......
+.....oo...ooo222333oooooooo22222oo33332oo..ooo......
+..........oo3ooo2222222222222oooo3333oo3o...........
+...........oo333oooooooooooooo33332o33ooooT.........
+...........oo3333333333333333333o33o33o3213o........
+............oo23o332233233223323oooooo332233o.......
+............oo2oo333o3223o323o23o3oooo33333oo.......
+.............ooooo3ooo323oo33oo3333oooooooooo.......
+..............o33o3oooo23oo33ooo333ooooooooo........
+..............o323ooooo3ooooooo3223o................
+..............o3233o...oo.....o2223o................
+...............oooo............Pooo.................
diff --git a/parts_pl_src/body/pl_stonefish_d.txt b/parts_pl_src/body/pl_stonefish_d.txt
new file mode 100644
index 0000000..8aacc54
--- /dev/null
+++ b/parts_pl_src/body/pl_stonefish_d.txt
@@ -0,0 +1,42 @@
+# pl_stonefish_d: from pixellab_src/pl_stonefish_d/base.png (variant of pl_stonefish) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 43)
+# head_top at (32, 25)
+# back at (35, 36)
+# tail at (50, 50)
+...................oo^....................
+..................o123o...................
+................oo1133ooo.................
+...............o1o133o213o................
+..........oo..o12o133o133oo...oo..........
+.....o...o13ooo113333213333o.o13o..oo.....
+....oaoooo1oo222211213322233ooooo.oao.....
+....oao3312oo2o1o111o13o222oo1333oobo.....
+..ooo211313o2oww1o1oww12o22o1331122oo.o...
+..oo2112313o2owo2o1owo12o2o133111122ooao..
+..o3111222oo2o233o1o3312o2o1321111123obo..
+.o23222232oo21ooo222ooooBoo13222111233oo..
+.o22322233oo2133211223223oo23222222223ooo.
+oboo23323o22oo21111222ooo3o223223322ooocao
+obaoo222oo2112ooooooooo222oo2333223ooocbbo
+.oao3oooo22111111222222222ooo222oooo3ocbo.
+.oao2333oo2211111222222222oooooooo3333obo.
+oao3233o23oo211112222223ooo3ooo3332222o3ao
+oaooo33o2213oo211222oAoo3333oooo3332oocaao
+oco21ooo22112oo312ooo3222333o3oooooo33occo
+.oo2123ooo21122oooo32222233oo33o3o1123oco.
+.oo213oo3ooo111112222223oooo333o3o1123oco.
+.oo21o3o313oo211122223oo333333ooo33123obo.
+.oo21o3o33133o3312ooooo2333323ooo33122oco.
+..oooo3ooo2322oooo33333233ooooooo33222oo..
+..o222o3o3331112222223323oo2333o233ooooT..
+...o23o3o22ooo21122223oooo22333o3o222oo...
+....o3ooo2122oo312333oo3o222333oooo2oo....
+.....oo.o2122o3oooooo333o2223333o.ooo.....
+........o312oo333333333oo322333oooo.......
+.........oooooo3222333ooooooooo3212o......
+..........o333oooooooooo3333oo333222o.....
+...........o233o3333333o32233oooo333o.....
+...........o223oo22o3333o2223ooooooo......
+...........o122ooooooooooo223o............
+............oooo.........Pooo.............
diff --git a/parts_pl_src/body/pl_strider.txt b/parts_pl_src/body/pl_strider.txt
new file mode 100644
index 0000000..0c6a5c5
--- /dev/null
+++ b/parts_pl_src/body/pl_strider.txt
@@ -0,0 +1,46 @@
+# pl_strider: from pixellab_src/pl_strider/base.png (pixellab_library.py extract)
+# pivot at (14, 60)
+# aura at (31, 43)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (44, 51) (from part/probe)
+...................oo...................
+..................o23o..................
+..................o^3o..................
+.................o2233o.................
+.................o2233o.................
+.................221233.................
+................o211223o................
+................o211223o................
+................o211123o................
+................o211123o................
+........oo.....o32122223o.....oo........
+.......o22o....o32111233o....o22o.......
+.......o122o...o21111222o...o321o.......
+.......o131o...o211B1222o...o132o.......
+......o13312o.o3211112223o.o21331o......
+......o13o31o.o3211112223o.o13o31o......
+......obco313oo3211112223oo213ocbo......
+......obcoo11oo3211332223oo11oocbo......
+......o13oo313o3231112323o313oo31o......
+......o13o.o21o3211112233o12o.o31o......
+......o13o.o32o322o33o223o13o.o31o......
+......o13o.o33o32o2222o23o33o.o31o......
+......ooo...o3o3o23A332o3o3o...ooo......
+.....o3bboo.o33oboooooobo33o.oobb3o.....
+.....o11c11oo33oo311113oo33oo11c11o.....
+.....o13o3312o3o31111113o3o2133o31o.....
+.....o13ooo332ooo211112ooo233ooo31o.....
+.....o13o..o33owwo1111owwo33o..o31o.....
+.....obo....ooowo1o11o1owooo....obo.....
+.....obo......owooo11ooowo......obo.....
+.....o1o......owwo1111owwo......T1o.....
+.....o1o......ooo111111ooo......o1o.....
+....o13o....oo2o33223233o2oo....o31o....
+....o13.....o33oo3oooo3oo32o.....31o....
+....o13.....o3oo.o3333o.oo2o.....31o....
+....o2o......o2o..oooo..o2o......o3o....
+...o13o.......oo........oo.......o32o...
+2oo13o............................o32oo2
+o13oo..............................oo31o
+ooP..................................ooo
diff --git a/parts_pl_src/body/pl_strider_b.txt b/parts_pl_src/body/pl_strider_b.txt
new file mode 100644
index 0000000..8c3f11c
--- /dev/null
+++ b/parts_pl_src/body/pl_strider_b.txt
@@ -0,0 +1,42 @@
+# pl_strider_b: from pixellab_src/pl_strider_b/base.png (variant of pl_strider) (pixellab_library.py extract)
+# pivot at (42, 59)
+# aura at (32, 42)
+# head_top at (31, 24)
+# back at (31, 34)
+# tail at (54, 51)
+..................ooo^ooooo..................
+...............ooo222222222oo................
+..............o22221112222222oo..............
+.............o22211112222222222o.............
+............o2211112222222222222o............
+...........o22bb1222222222222bb22o...........
+..........o22babc22222222222bbbc23o..........
+.........o222bbbc22222222222bbbc223o.........
+.........o2222cc2222222222222cc2223o.........
+........o322222222222222222222222233o........
+........o322222222222B22222222222233o........
+........o322222222222222222222222233o........
+.......o332222bb2222222222222bb222333o.......
+.......o33222bbbc22222222222bbbc22333o.......
+.......o33322bbbc22222222222bbbc23333o.......
+.......o333222cc2222222222222cc223333o.......
+..ooo..oo333222222222222222222222333oo..ooo..
+.o2aboo.o333322222222222222222223333o.oobb2o.
+.o22c22oo3333332222222A2222222233333oo22b22o.
+.o13c332oo333333333oooooo3333333333o3233c21o.
+o213o33oooo3333333o222222oo33333333ooo33o212o
+o223ooo2aboo33333o221111122o33333oobb2ooo312o
+o233o.o22c22o333o32111112223o333oo2c22o.o332o
+ob3o.oo22c222o3o333222222233o33oo22c32o..o3bo
+ob3o.o223o3322oo3wwo2222oww33oobbo3o322o.o3bo
+ob3o.o223oo3332o3wo1o22o1ow33o2c2boo322o.o3bo
+o23o.ob3oo3o333o3wooo22ooow33o3o22ooo3bo.o32o
+o23o.ob3oo33oo3o3wwo2222oww33o3o22ooo3bo.o32T
+o23o.ob3oo33oooo333222222233oooo32ooo3bo.o32o
+o33o.o23oo33o...o33333333333o..o3bboo32o.o33o
+o33o.o33oo33o....o33333333oo...o3bb.o32o.o33o
+oo3o.o33o.oo......oo33333oo....o32b.o33o.o3oo
+.o3o..o3o...........ooooo......o33o.o33o.o3o.
+..oo..o3o......................o33o.o3o...o..
+.......oo......................o3oo.ooo......
+................................Po...........
diff --git a/parts_pl_src/body/pl_strider_c.txt b/parts_pl_src/body/pl_strider_c.txt
new file mode 100644
index 0000000..e7c1c2a
--- /dev/null
+++ b/parts_pl_src/body/pl_strider_c.txt
@@ -0,0 +1,44 @@
+# pl_strider_c: from pixellab_src/pl_strider_c/base.png (variant of pl_strider) (pixellab_library.py extract)
+# pivot at (14, 60)
+# aura at (32, 42)
+# head_top at (31, 23)
+# back at (31, 34)
+# tail at (54, 51)
+...........................^o...........................
+..........................occo..........................
+.........................o3bc3o.........................
+...............oo........o1ac3o.........oo..............
+..............o11o......oc1ab23o......oo11o.............
+..............o111o.....oc1ab13co.....o1112o............
+.............oo112o.....ob1ab1cco.....o1122o............
+............o31332o.....ob1ab1cco....o12331o............
+...........oo13o311o...o1b1ab1b23o...o12oo21o...........
+...........o12o.o11o...o1b1ab1b23o...o12o.o11o..........
+..........o12o..o211o..o111aa1b23o..o11o...o1o..........
+.........o112o..o321o..o111Ba1b2bo..o12o..oc21o.........
+.........o13bbo..o211oocb11aa11bbcoo11o...ob221o........
+........o133c11o.o311oocb11aa11b33oo12o..o12c22o........
+.......ob23oo31o..311oo3cb1aa1bb33oo12o.o113oo31o.......
+......o1bc3..o21o.ocbco32b1aa1b133ocbo.o112o..32bo......
+......o11co...o11oocb2o32c1bb1c133o1bo.o12o...occ1o.....
+......o23o....o31o.o21o32c1bc2c233o13oo23o.....oo1o.....
+......o23......o31oo21o32c1cc2c23oo33o23o.......o2o.....
+......obo....oo2o33o33o32c1cA2c33o33o333oooo....obo.....
+......obo...o11b2o33o3o3o22cc2co3o33o3o11b11o...obo.....
+......o1o...o12c11ooo33oboooooobo33ooo111c21o...o1o.....
+......o1o...o12o3311oo3oo211112oo3oo2113oo21o...o1o.....
+......o1o...o12o.o321o3o31111113o3o2323o..21o...o1o.....
+......o1o...o1o...o322ooo211111ooo233oo...o1o...o1o.....
+......o1o...o1o....o33owwo1111owwo33o.....obo...o1o.....
+......o1o...obo.....ooowo1o11o1owooo......oco...o1o.....
+......o1o...obo.......owooo11ooowo........o1o...o1o.....
+......o1o...o1o.......owwo1111owwo........o1o...o1T.....
+......o2o...o1o.......ooo111111ooo........o1o...o2o.....
+.....o3oo...o1o.....oo2o33222233o2oo......o1o....o3o....
+.....o3o....o1o.....o23oo3oooo3oo32o......o1o....o3o....
+....o13o....o1o.....o2oo.o3333o.oo2o......o1o....o31o...
+..oo13o....oo1o......o2o..oooo..o2o.......o2o.....o31oo.
+.o11oo.....o13o.......oo........oo........o32o.....o111o
+oooo.....oo23o.............................o31o.....oooo
+........o12oo...............................o31o........
+........ooP..................................ooo........
diff --git a/parts_pl_src/body/pl_strider_d.txt b/parts_pl_src/body/pl_strider_d.txt
new file mode 100644
index 0000000..765e230
--- /dev/null
+++ b/parts_pl_src/body/pl_strider_d.txt
@@ -0,0 +1,49 @@
+# pl_strider_d: from pixellab_src/pl_strider_d/base.png (variant of pl_strider) (pixellab_library.py extract)
+# pivot at (49, 60)
+# aura at (32, 38)
+# head_top at (31, 18)
+# back at (31, 34)
+# tail at (53, 51)
+.....................ooo^oooo......................
+..................ooo22222222ooo...................
+................oo22222222222233oo.................
+...............o222221122222222333o................
+..............o22221111222222222333o...............
+.............obb22111112222222222333o..............
+.............obba111111222222222223cco.............
+............o22bbb111baaaaaaab2222ccco.............
+............o2211bbaaaabbaaaabaaaabc33o............
+...........o2221122ba222222222bbbb22333o...........
+...........o222112222222222222222222333o...........
+..........o32221122222222222222222223333o..........
+..........o32222222222222222222222223333o..........
+..........o32222222222222222222222233333o..........
+..........o32222222222222222222222233333o..........
+..........o32222222222222222222222233333o..........
+..........oc322222222222B22222222233333co..........
+..........occb22222222222222222223333ccc...........
+..........occcba2222222222222223333cccco...........
+..........o33ccaaab3333ooooo33333ccccc3o...........
+.....oooo..o333aaaababoooAoooccccccc33o..oooo......
+....o11b2ooo333333abbo2211123occc33333ooo2ab2o.....
+....o22c222oo3333333o221111123o333333ooo22c21o.....
+....o23o33323o33333ooo2211112ooo33333o3233o32o.....
+....o23ooo3333oo333owwo22222owwo333oo3333oo32o.....
+....o23o..oooo33oo3owo1o222o1owo33o3ooooo.o32o.....
+....oao...o3aaoooooowooo222ooowoooooaa3o...oao.....
+....oao...o12c2222oowooo222ooowooo22c21o...oao.....
+....o2o...o23o33333owwo22222owwo2233o32o...o2o.....
+....o2o...o23ooo333ooo2222222ooo33ooo32o...o2o.....
+....o2o...o23oo3oooo32222222333ooooco32o...o2o.....
+...o22o...oao.o3o..o33333333333o..o3ooao....32o....
+...o22o...oao.o3o...o333333333o...o3ooao....32o....
+...o22o...o2o.o3o....ooooooooo....o3oo2o....32T....
+...o23o...o2o.o3o.................o3oo2o....o2o....
+...o23o..o23o.oo...................ooo32o...o32o...
+.oo23o...o23..........................32o....o32oo.
+o23oo....o23..........................32o.....oo32o
+ooo......o3o..........................o3o.......ooo
+........o23o..........................o32o.........
+......oo23o............................o32oo.......
+.....o23oo..............................oo32o......
+.....ooo..................................Poo......
diff --git a/parts_pl_src/body/pl_tadpole.txt b/parts_pl_src/body/pl_tadpole.txt
new file mode 100644
index 0000000..5cf5d78
--- /dev/null
+++ b/parts_pl_src/body/pl_tadpole.txt
@@ -0,0 +1,40 @@
+# pl_tadpole: from pixellab_src/pl_tadpole/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 43)
+# head_top at (31, 30) (from part/probe)
+# back at (31, 34) (from part/probe)
+# tail at (44, 48) (from part/probe)
+............oooooooo............
+.........ooo22222222ooo.........
+.......oo21111111222223oo.......
+......o21111111^11112b233o......
+.....o21111111111111122b33o.....
+....o211111111111111112ab33o....
+...o21111111111111111112ab33o...
+..o221111111111B111111112b333o..
+..o221111ooo11111111ooo122b33o..
+.o221111o111o111111o111o223333o.
+.o22111o11oo2o1111o2oo11o22333o.
+o322111o1o1o2o1111o1o3o1o223332o
+o322211o13oooo1111oooo31o223332o
+o322ba1o131o3o1111o3o131o2ba332o
+o322aa23o131o311113o131o32aa332o
+o33222o32ooo31111113ooo32o23332o
+o3332oooo321111A1112222oooo3332o
+.o3333oooooooooooooooooooo3333o.
+.o3332oooocoooooooooocoooo3333o.
+.o33332ooooooccccccoooooo23333o.
+..o333322ooocaaaaaacooo223333o..
+..o33a33311oooooooooo11333b3To..
+...o33bb33311111111113333b33o...
+....o33b3333333333333333b33o....
+.....o333b333333333333b333o.....
+......o333333333333333333o......
+.......o3333333333333333o.......
+.......o33oo33333333oo33o.......
+.......o23o.ooo33ooo.o32o.......
+.......o23o...o33o...o32o.......
+.......o33o...o33o...o33o.......
+.....oo2233o...oo...o3322oo.....
+....o2111233o......o2211122o....
+.....ooooooP........ooooooo.....
diff --git a/parts_pl_src/body/pl_tadpole_b.txt b/parts_pl_src/body/pl_tadpole_b.txt
new file mode 100644
index 0000000..90cb681
--- /dev/null
+++ b/parts_pl_src/body/pl_tadpole_b.txt
@@ -0,0 +1,63 @@
+# pl_tadpole_b: from pixellab_src/pl_tadpole_b/base.png (variant of pl_tadpole) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 33)
+# head_top at (31, 4)
+# back at (31, 34)
+# tail at (48, 48)
+..............o^ooo..............
+............oo22222o.............
+...........o22222222o............
+..........o2211222223o...........
+..........o2112222222o...........
+.........o222222222223o..........
+.........o222222222223o..........
+.........o222222222223o..........
+.........o2222222222233o.........
+........ob2222222222233o.........
+........o2b222222222233o.........
+........o22a22222222233o.........
+........o22a2222222223cco........
+.......o2222222222222bc3o........
+.......o221122222222bb33o........
+......o22211222222222333co.......
+......o2221222222222233cco.......
+.....o2221122222222223ac33o......
+.....o2212222222222222a333o......
+....o2221122222222222223333o.....
+....b3222222222222222222333o.....
+...o3a222ooo22222222ooo23333o....
+..o32aa2owwwo222222owwwo2333co...
+..o222aowwoo3o2222o3oow1o23aco...
+..aa222owowo3o2222owo2o1o2bac3o..
+.o3aa22ow3oooo2222oooo31o22b33o..
+.o22aabow32o3o2222o3o231oba333o..
+o3222aa3o132o322223o231o3aa3333o.
+o322222o3ooo32222223ooo3o22333co.
+oc2222oooo322222A222223ooo2333co.
+oca2223ooooooooBooooooooo3233cco.
+ocaa222ococoooooooooocooo22acc3o.
+o33aa222oooooccccccooooo222ac33o.
+o333a22222oocaaaaaacooo22233333o.
+.o3332222222oooooooo2222233333o..
+.o333c22222222222222222223c333o..
+..o333b222222222222222233cc33o...
+..o3333b2222222222222233c3333o...
+.o33o3333b222222222223cc3333o3o..
+o223o3333333222222233333333oo32o.
+o22o.o33333333333333333333o.o31o.
+o22o..o333333333333333333o..o322o
+o22o...o3333333333333333o...o322o
+o223o..o333oo333333oo333o..o2222o
+o233o.o3233o.oooooo..o323o.o2323T
+o23o..o223o..........o322o..o32o.
+o33o..o22o............o22o..o33o.
+.oo...o23o............o32o...oo..
+......o333............o33o.......
+......o333o...........o33o.......
+.......o33o..........o33o........
+.......o33o..........o33o........
+.......o33o..........o33o........
+......o323o..........o322o.......
+.....o22232o........o23322o......
+....o2332o22o......o22o3322o.....
+.....oooo.oo........Po.oooo......
diff --git a/parts_pl_src/body/pl_tadpole_c.txt b/parts_pl_src/body/pl_tadpole_c.txt
new file mode 100644
index 0000000..78e9644
--- /dev/null
+++ b/parts_pl_src/body/pl_tadpole_c.txt
@@ -0,0 +1,57 @@
+# pl_tadpole_c: from pixellab_src/pl_tadpole_c/base.png (variant of pl_tadpole) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 34)
+# head_top at (31, 10)
+# back at (31, 34)
+# tail at (51, 48)
+...................ooooo^oooooooo.................
+...................oooooooooooooo.................
+..............ooooo22222222222222ooo..............
+............oo2211111111112222222222ooo...........
+..........oo22111111111111222222bbc2233o..........
+.........o2211111111111111222222bbc22233oo........
+........o2211111111111111122222222222ccc33o.......
+.......o2211111111111111112222222222cbbccc3o......
+......o32bbbbb1111111111112222222222bbabbcc3o.....
+.....o32baaabbb111111111112222222222bbaabbccoo....
+....o32baaaabbb111111111122222222222cbbaabbcco....
+...o32bbaaabbbb1111111112222222222222bbbabbccco...
+...o22bbbabbbb11111111112222222222222bbbbbbbcco...
+..o222bbbbbbb1111111111122222222222222bbbbbccc3o..
+..o222bbbbbb1111oooo1112222222oooo2222cbbbbccc3o..
+..o2222bbb11111owww1o11222222owww1o22222bbbcc33o..
+.o222222222111owwwoo3o222222o3ooww12222222223333o.
+.o222222222222owwowo3o222222owooow1o222222223333o.
+.o222bb2222222owwowo3o222222owooow1o222222223333o.
+o322cab2222222o1w3oooo222222oooo3w1o2222222233333o
+o322cbb22bbb22o1113ooo222222ooo3311o22bbb22233333o
+o3222bb22bbb222o1323o22222222o3311o222bbb22233333o
+o322222222222222oooo3222222223oooo222222222233333o
+o3222222222oo222222222222222222222222oo2222233333o
+o322222222ooooo222222222BA222222222ooooo222233333o
+o322222222ooo11oooo222222222222oooo11ooo222233333o
+o32bb22222oooow1111oooooooooooo11111oooo222233333o
+o32bb22222oooow11ww1111111111111111ooooo222333333o
+o3322222222oooooowwowwww1wwww11w1oooooo22223ccc33o
+.o322222222oooooowwoowwwowwwwoow1oooooo2222ccbcco.
+.o3cbbb22223oooooooooooooooooooooooooo2222cbbbcco.
+.occbbbcc222oo11oooooooooooooooooooooo2223bbbbcco.
+.occbbbbbb222o11ooooobbboocccoooow1oo2222cbbbbc3o.
+..ocbbbbbbb222o11wwoowwbbcccccwwo11o22223cbbbcco..
+..occbbbbbbb222oowwowwwwwwww1cww1oo222233ccbccco..
+...occbbbbbb32222oowwwwwwwww111oo22223333ccccco...
+...occcbbbbbc222222oooooooooooo22223333333ccc3o...
+....occcbbbbc2222222222222222222223333bb33333o....
+....occcccccc332333222222222222333333bbb3333T.....
+.....occccccc333333333333333333333333cc3333oo.....
+......oocccc33333333333333333333cc33333333o.......
+.......o33333333ccc333333333333ccc3333333o........
+........ooo33333ccc333333333333cc3333333o.........
+..........oo3333cc33333333333333333333oo..........
+............oo3333333333333333333333oo............
+.............oooo3333333333333333oooo.............
+.............o333oooooooooooooooo333o.............
+............o3333o..............o3333o............
+..........oo222233o............o332223o...........
+.........o321122233o..........o33322113o..........
+..........ooooooooP............oooooooo...........
diff --git a/parts_pl_src/body/pl_taiko.txt b/parts_pl_src/body/pl_taiko.txt
new file mode 100644
index 0000000..29c4315
--- /dev/null
+++ b/parts_pl_src/body/pl_taiko.txt
@@ -0,0 +1,41 @@
+# pl_taiko: from pixellab_src/pl_taiko/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 43)
+# head_top at (34, 28) (from part/probe)
+# back at (37, 33) (from part/probe)
+# tail at (49, 48) (from part/probe)
+.............ooooooooooo............
+.........ooooooozzzbbbaboo..........
+.......ooabo1bbabooc^cccaboo........
+.....o1oaobzobbobaaoyyyyyoabo.......
+.....obzzyyzyyyzbocoooyyyyyoao......
+....ooyyb22222zbyyo1bboyyyyyoao.....
+...obyz221111122bzyoooaozzzzzoao....
+..obyz211111111123yyzoaBzzzzzzoao...
+..oyy21111a11111123yzocaozbbbbobo...
+.ozy22111aa11111223bbzoaczzzzbboao..
+.oz32221aaaaa1122223byzcaozzzbboco..
+ocz32222aaaab2222223zyzooozzzzzzobo.
+o1b2o2222aa222222o223bo21bozzzzzobo.
+oob2oo222ba2222ooo223bzoooobbbbboco.
+oz32coo223b222oooc223bzbobobbbbboco.
+oz32c2ooo32ooooo2c223bzbobobboocobo.
+oz32c1o1c3332o1o1cb23bzbccoco33ooco.
+oz32b1coc3332ooo1Ab23bzboboc3322oco.
+oz32ab11c222c1c1bba23bzboboc32112oo.
+.oz3abcc22222cccbaa23boobcoo33211o..
+.ob322222222222222233bob2coco32111o.
+.obb2222cccccc222223cbbooocco32111o.
+o3ob3222222222322233cbocboccco21112T
+o3obb32222222222233cbbococccco22222o
+o23obc332222222333cbbocboooooo222a2o
+o23oobc3333333333cbboobocccco3222a2o
+o233oobbc333333ccbbo2coccccco332aa3o
+o3333obocbbbbbbbcoobbocccccooo3bbbbo
+.oooo.oobcooocoocbbooooooooooo3333o.
+........oocobocbboocccoo33o..ooooo..
+.........oooooooooooooo3333o........
+.........o3333o.......o3333o........
+.........o3333o.......o3333o........
+........o33333o......o33333o........
+........oooooo.......Pooooo.........
diff --git a/parts_pl_src/body/pl_taiko_b.txt b/parts_pl_src/body/pl_taiko_b.txt
new file mode 100644
index 0000000..d638691
--- /dev/null
+++ b/parts_pl_src/body/pl_taiko_b.txt
@@ -0,0 +1,42 @@
+# pl_taiko_b: from pixellab_src/pl_taiko_b/base.png (variant of pl_taiko) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 41)
+# head_top at (34, 25)
+# back at (37, 33)
+# tail at (52, 48)
+..........ooooooooooooo^ooooooooo..........
+......ooooz11111111111111111zzzzzooo.......
+...ooo1111111111111111111111111111zzoooo...
+.oo111111111111111111111111111111111zzz3o..
+oz1111111111111111111111111111111111zzzz1o.
+oz111111111111111111111111111111111zzzzz13o
+ozz111111111111111111111111111zzzzzzz11133o
+ozczzz1111111111111111111zzzzzzzz1113333c3o
+ozczczzzzzzzzzzz1111111111B11111z33333o3c3o
+ocbzczzczzzzzzzzzzzzzzzzzzzzz333333o33o33co
+oaaczzzczzzczzzzczzzzzcozzzzzco3333o3333cco
+oabbcczzzzzczzzzczzzzzcozzzzzco333333ccccco
+oabbbbcccczzzzzzzzzzzzzzzzzzzz33ccccccaccco
+oabbbbbobbccaaacccccccccccccaacccccccacccco
+obabbbboobbbbabbbbboobbbbbbbaacccccccacccco
+obabbbbcoobbbabbbooocbbbbbbbaccccccccaaccco
+obabbbbc3ooobaboooo3cAbbbbbaacccooccccaccco
+obaabbbc1o1cbbb3o1o1cbbbbbbaaaoo33occccacco
+oababbbb1cocbbb3ooo1cbbbbbbbbco3311oaccacao
+oabaabbab11cbbbc1c1bbabbbbbbbco31111occaaao
+oabbaababccabbbbcccbaabbbbbbbao33111oacacao
+ocbbaabbaacaabbbbbaabbbabbbbbaco31111ocaco.
+ocbbbabbaabcabbbbaaabbaaabbbbaco31111oaaco.
+ocbbbaaaabbcaabbbaccaaababbbaacco11111oacT.
+.obbbbaabbbbcabbbbbbaabbaabbaacco11111oaco.
+.ocbbbabbbbbbcababbbcabbcaaacbcco111a1occo.
+..oobbbbbbbbbbcabbbbbbbbbcaaccco3111a1oco..
+...oocccbbbbbbbbbbbbbcbbbbccccco331aa3oo...
+...o2ooccccbbbbcbbbbbbbbcccccccoo3bbbbo....
+....oooooccccccccccccccccccccccco3333o.....
+.........ooooccccccccccccccccoooooooo......
+............ooooooooooooooooo3o............
+............o2222o.......o2233o............
+............o3322o.......o3333o............
+...........o33333o......o33333o............
+...........oooooo.......Pooooo.............
diff --git a/parts_pl_src/body/pl_taiko_c.txt b/parts_pl_src/body/pl_taiko_c.txt
new file mode 100644
index 0000000..65ac3d9
--- /dev/null
+++ b/parts_pl_src/body/pl_taiko_c.txt
@@ -0,0 +1,63 @@
+# pl_taiko_c: from pixellab_src/pl_taiko_c/base.png (variant of pl_taiko) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 31)
+# head_top at (34, 4)
+# back at (37, 33)
+# tail at (49, 48)
+..........ooooooooo^oooo...........
+.....ooooo11111111111111oooooo.....
+...oo1111111111111111111111111oo...
+.oo1111111111111111111111111113xoo.
+.o1111111111111111111113233333y13o.
+o111111111111111111122233331113333o
+o1c11111111111111111112111133333o3o
+.oco1111ya1111xxxxxxx22cc333333coo.
+.oaooooocaoccccccccccccccooooooobo.
+.oaoczzccaobbbbbbbbbbbcobocccbbobo.
+.oaozyyzcaozzzzzzzzzzbcobocbcbbobo.
+.oaozyyzccozzzzzzzzzzbcboccbcbbobo.
+.ooczyzzcaczzzzzzzzzzboboccbcbboo..
+..occyyzboczz22222222zobocbbcbboo..
+..oacyyzaoao221111111obocobbcbobo..
+..oaczyzaoao111111111obocobbcbobo..
+..oaczycc2ao1111a1111ao3obbbbbobo..
+..oaczycc2ca111aa1111ao3obobbboo...
+...oazzao2oao1aaaa11oao3obobbboo...
+...oaz2aooobo111a111ocoo3ob3bboo...
+...oao2aocooc3111111oooc3ob3bob....
+...obo2coc2oaoo111ooao2c3oo3boo....
+....oo2coc1obo33333oao1c3ob3boo....
+....ooao1c11bo33133aoo1caob3boo....
+.....oao1ac1oa11113ao1ccaob3bo.....
+.....oao1accoa1111ococcaaob3bo.....
+.....oob11a1oao111oc13333obobo.....
+.....oob11a11coccAbo133333oco......
+......ob31111co11oboc33333oco......
+......oc33111ob11ob133B33ooco......
+......oob3331obo1ao11333ccoco......
+.....ocozb3333ocoao3333occocbo.....
+.....oaaccooo3ocoao33ooooobbbo.....
+......ooacaaaaaaaaccbbbcbbooo......
+......ocoooooooaooooooooooobo......
+......oaozzzyzbocobbbcccccobo......
+.....o3aoyyyyzboaozzzccccco33o.....
+....o11coyyyzzboaozzzccccco331o....
+...o113ooyyyzzboaozzzccccco3111o...
+..o1113ocoyyzzbaoaozzccccbo33111o..
+.o2113oocoyyzzoaoaozzccccboc31111o.
+.o1133oocczyzzocooazzzcccboc33111o.
+oa113oaooaozzcaozoaozzcccboco31111o
+oa113oaoyaozzcaozocozzccbocco311a1o
+oa133oozycozzccozzcazzccbocco311aaT
+oa33ooozyaozcaobzzccozccbccco331aao
+.o33oaozycozcaozzzccazzobccco333aao
+..oooaozzoaoacczzzzcbozoocccoo33ao.
+...ooacczoaoaobzzzzbcboooccoooooo..
+...o111cccaococccccccbobooo333o....
+...o111111aao11111113bob333333o....
+....oooo111111yyyyy2333333oooo.....
+........ooooooooooooooooooo........
+........o3333o.......o3333o........
+........o3333o.......o3333o........
+.......o11133o.......o33333o.......
+.......oooooP.........oooooo.......
diff --git a/parts_pl_src/body/pl_taiko_d.txt b/parts_pl_src/body/pl_taiko_d.txt
new file mode 100644
index 0000000..b5ef1be
--- /dev/null
+++ b/parts_pl_src/body/pl_taiko_d.txt
@@ -0,0 +1,41 @@
+# pl_taiko_d: from pixellab_src/pl_taiko_d/base.png (variant of pl_taiko) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (31, 42)
+# head_top at (34, 26)
+# back at (37, 33)
+# tail at (49, 48)
+..........oooooooooo^ooooo..........
+.....ooooo1111111111111111ooooo.....
+...oo11111111111111111111111111oo...
+..o112333111111111111111yy322222yo..
+..obb11b1133333333333333333yybb2bo..
+..o1b1b1b111b11bb111bbyyybbybbyybo..
+..ob11b1b1b1b1b1b11b1byybybybybyyo..
+..ooooob111b111b111bbbyBybbyyyoooo..
+..ozz21oooooooooooooooooooooooccco..
+.oza22111aa11111223cccccccccccccco..
+.oz32221aaaaa1122223zzzzzzzzzcccco..
+ozz32222aaaab2222223zzzzzzzzzzcccco.
+ozz2o2222aa222222o223zzzzzzzzzcccco.
+ozz2oo222ba2222ooo223zzzzzzzzzcccco.
+oz32coo223b222oooc223zzzzzzzzzcccco.
+oz32c2ooo32ooooo2c223zzzzzzzzooccco.
+oz32c1o1c333ao1o1Ab23zzzzzzzo33occo.
+oz32c1coc3332ooo1cb23zzzzzzo3322oco.
+oz32ab11c222c1c1bba23zzzzzzo32112oo.
+.oz3abcc22222cccbaa23zzzzzzo33211o..
+.oz322222222222222233zzzzzcco32111o.
+.ocz2222cccccc222223zzzzzzcco32111o.
+o3oc3222222222322233zzzzzbccco21112T
+o3occ32222222222233bbbbbbbccco22222o
+o23ooo332222222333bcccccccccoo222a2o
+o233obo3333333333ccccccccccoo3222a2o
+o233o11ooo33333ccccooooooooyo332aa3o
+o3333obb11bbooooooobyyybyybao33bbbbo
+.oooo.o1b1b11bybybybybybyyyooo3333o.
+.......oo11b11yybyyybyaaooo..ooooo..
+.........oooooooooooooo3333o........
+.........o3333o.......o3333o........
+.........o3333o.......o3333o........
+........o33333o......o33333o........
+........oooooo.......Pooooo.........
diff --git a/parts_pl_src/body/pl_tapir.txt b/parts_pl_src/body/pl_tapir.txt
new file mode 100644
index 0000000..0eb1db6
--- /dev/null
+++ b/parts_pl_src/body/pl_tapir.txt
@@ -0,0 +1,45 @@
+# pl_tapir: from pixellab_src/pl_tapir/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (24, 29) (from part/probe)
+# back at (38, 30) (from part/probe)
+# tail at (50, 43) (from part/probe)
+.....ooo..............ooo.................
+....o322o............o222o................
+....o3323o..........o1232o................
+....o3b22o.........o123a2o................
+....o3b223o.ooooooo213ba2ooooo............
+....o3b323oo222222o22bba2o1122oo..........
+....o33b3311111222223bb22o111112oo........
+.....o3o31111^112222bb22o111111112o.......
+......oo111111112223322oo11B1111112o......
+......o11111111122222oo3111111111122o.....
+......o111111111222223331111111112222o....
+.....o2111111112222222332111111122222o....
+.....o22111122222222222322111111222222o...
+.....o22222222222222222222222211222222o...
+....oo22222222ooo222222222222211122222o...
+...owo2222222owoco222222222222211222222o..
+...oco2222222ococo222222222222211222223o..
+...oo22222222obaao222222222222211222223o..
+...o2111222222oooaa22232222222211222223o..
+..o21111122222222aa22232222222211222233oo.
+..o11111222222222222A332222222211222333o3o
+.o1111112222332222223332222222211223333T3o
+.o1111222233333333333o33222222211233333oo.
+o2111222233ooo333333o333333333333333333o..
+o211122233oaoo33333o3333333333333333333o..
+o2222233ooa3333333o3333333333333333333o...
+o222223oaa33333ooo3333333333333333o333o...
+o222223oooooooo333333333333333333o3333o...
+o222233o..o3o33333333222233o3333o33333o...
+o22223o...o33oo333333222223o33oo333223o...
+o22233o...o23333oooo3222223ooo..322223o...
+.o223o....o22223o..o3111123ooo..322223o...
+.o333o....o22223o..o3111123ooo..o33333o...
+..o33o....o33333o...o21123o33o..o33333o...
+...ooo....o33333o...o22233o33o.o332233o...
+.........o322233o..o222233ooo..o33333o....
+.........o33333o...o222233o.....ooooo.....
+..........ooooo....o33333o................
+....................Poooo.................
diff --git a/parts_pl_src/body/pl_tapir_b.txt b/parts_pl_src/body/pl_tapir_b.txt
new file mode 100644
index 0000000..7871c90
--- /dev/null
+++ b/parts_pl_src/body/pl_tapir_b.txt
@@ -0,0 +1,46 @@
+# pl_tapir_b: from pixellab_src/pl_tapir_b/base.png (variant of pl_tapir) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 40)
+# head_top at (24, 24)
+# back at (38, 30)
+# tail at (52, 43)
+...................oooooooooo................
+.....ooo.........oooobbbbb111ooo.............
+....o322o.....ooo1o2o22bbbb111bboo...........
+....o3323o..o^111o22o222bbbb111bbbo..........
+....o3b32ooo11111o232o2111bbb111bbboo........
+....o3b33oooooooo23b2o1111bbbb111bbb2o.......
+....o3b333222222o23b2o11111bbbb111bb22o......
+....o33311111112223b2o211111bbb111bbb22o.....
+.....o211111111122233o211111bbbb111bb22o.....
+....oo21111111112223o322111B1bbb111bbb2o.....
+....o211111111112222332211111bbbb111bb22o....
+...o22111111111122222322211112bbb112bbb22o...
+..o222211111111222222232211222bbbb22bbb22o...
+..o222221111222222222233211222bbbb222bb22o...
+..o222222222222222222233221122bbbb222bb22o...
+.o22o222222222ooo22222232211222bbb222bbb23o..
+.o2oao2222222oaoco2222232211222bbb222bbb23o..
+.o2oco2222222ococo2222232211222bbb222bbb23o..
+.o2oo22222222obbbo2222232211222bbbb22bbb23o..
+.o2o2111222222ooobb22Ao32211222bbbb22bbc33oo.
+.oo21111122222222bb222o32211222bbbb22bbc33o3o
+..o1111122222222222223o22211222bbb222bcc33oo.
+.o11111122223322222233o22212222bbb223cc33T...
+.o1111222233333333333o33222222cccc333cc33o...
+o2111222233ooo333333o333322333cccc333cc33o...
+o211122233oboo33333o3333222333ccc333cc33o....
+o2222233oob3333333o33333223333ccc333cc33o....
+o222223obb33333ooo33333222333cccc33ccc3o.....
+o222223oooooooo33333332223333cccc33ccoo......
+o222233oo3333333333332333333cccc333oo3o......
+o22223o..ooo333333333333333occccooo333o......
+o22233o..o33ooo3333o3222333ooooo333333o......
+.o223o...o22333ooooo3211123o3o.o333333o......
+.o333o...o222233o..o3211123o3o..o33333o......
+..o33o....o33333o...o21123o33o..o33333o......
+...ooo....o33333o...o22223o33o.o332223o......
+.........o222233o..o222223ooo..o33333o.......
+.........o33333o...o222223o.....ooooo........
+..........ooooo....o33333o...................
+....................ooPoo....................
diff --git a/parts_pl_src/body/pl_tapir_c.txt b/parts_pl_src/body/pl_tapir_c.txt
new file mode 100644
index 0000000..7d3631f
--- /dev/null
+++ b/parts_pl_src/body/pl_tapir_c.txt
@@ -0,0 +1,45 @@
+# pl_tapir_c: from pixellab_src/pl_tapir_c/base.png (variant of pl_tapir) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (24, 23)
+# back at (38, 30)
+# tail at (52, 43)
+.....ooo......oooooo..ooo.................
+....o322o..oo^obbbbooo222o................
+....o3323oocbbbbbbbco1232o................
+....o3b2oobaaaabbbbo123a2o................
+....o3b3obbaabbbbbo213ba2ooooo............
+....o3bobbaabbbbbco22bba2oo122oo..........
+....o33obbaabaccbc223bb22oo1111aoo........
+.....oobccaccacoco22bb22occo1111aao.......
+......ococbcoacooo23322ooccB1111aaao......
+......ooocccocco22222ooccco11111aaaao.....
+......o1occo1oo12222233ccbbo11111aaa2o....
+.....o211oo111122222223ccccco11112222o....
+.....o22111122222222222ccbooo11aa22222o...
+.....o222222222222222223cbo22211a22222o...
+....oo22222222ooo2222223ccbo2211122aa2o...
+...oao2222222oaoco222222ccco2221122aa22o..
+...oco2222222ococo222222ccoo22211222a23o..
+...oo22222222obaao22222ccbo222211222223o..
+...o2111222222oooaa2223ccbo222211222223o..
+..o21111122222222aa2A23ccco222211222233oo.
+..o11111222222222222233cco22222112aa333o3o
+.o11111122223322222233ccco22222112aaa33o3T
+.o1111222233333333333occo222222112aaa33oo.
+o2111222233ooo333333occo3333332223aa333o..
+o211122233oaoo33333ocoo333aa33223333333o..
+o2222233ooa3333333ooo33333aa3322333333o...
+o222223oaa33333ooo33333333aa322333o333o...
+o222223oooooooo333333333333332233o3333o...
+o222233o..o3o32223333222233o2233o33333o...
+o22223o...o33oo322233222223o22oo333223o...
+o22233o...o23333oooo3222223ooo..332223o...
+.o223o....o22223o..o3111123ooo..332223o...
+.o333o....o22223o..o3111123ooo..o33333o...
+..o33o....o33333o...o21123o33o..o33333o...
+...ooo....o33333o...o22233o33o.o332233o...
+.........o322233o..o222233ooo..o33333o....
+.........o33333o...o222233o.....ooooo.....
+..........ooooo....o33333o................
+....................Poooo.................
diff --git a/parts_pl_src/body/pl_tapir_d.txt b/parts_pl_src/body/pl_tapir_d.txt
new file mode 100644
index 0000000..e96ec7b
--- /dev/null
+++ b/parts_pl_src/body/pl_tapir_d.txt
@@ -0,0 +1,61 @@
+# pl_tapir_d: from pixellab_src/pl_tapir_d/base.png (variant of pl_tapir) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 32)
+# head_top at (24, 7)
+# back at (38, 30)
+# tail at (49, 43)
+................oooooooooooo................
+.............o^o111111111222ooo.............
+...........oo111111111111112223oo...........
+.........oo1111111111111111122223oo.........
+........o11111111111111111111222233o........
+.......o1111111111111111111112222233o.......
+......o111111111111111111111112222233o......
+.....o21111111111111111111111122222233o.....
+....o2211111111111111111111111222222333o....
+...o222111111111111111111111122222222333o...
+...o222211111111111111111111122222222333o...
+..o22222211111111111111111112222222222333o..
+..o22222221111111111111111122222222222333o..
+.o2222222221111111111111122222222222222333o.
+.o2222222222221111111222222222222222222333o.
+.o2222222222222222222222222222222222222333o.
+o222222222222222222222222222222222222222333o
+o222222222222222222222222222222222222222333o
+o222222222222222222222222222222222222222333o
+o222222222222222222222222222222222222222333o
+o22222ooo22222222222222222oooo2222222222333o
+o2222ow2oo222222222222222owwooo222222222333o
+o222oow3oo22222222222222oowwoooo22222222333o
+o222ocoooo22222222222222occooooo22222222333o
+o222ocooco22222222222222occoBooo22222223333o
+o222ocooco22222222222222occoobbo2222222333o.
+o222obbaao222111222222A2ocbbaabo2222222333o.
+o2222obbo22o1111122222222obbbbo22222223333o.
+.o2aaaooo2o111111122222222ooooaaaa2222333o..
+.o2aaa222o11111111222222222222aaaa2223333o..
+..oaa222o111111112222222222222aaaa2233333o..
+...o3222o1111111222233222222222222233333o...
+...o332o111111122222o3222222222222233333o...
+....o33o11111112222oo322222222222333333o....
+.....o3o11111122223o332222222223333333oo....
+......o21111122223o333322222233333333oo.....
+......o2111112223o33333333333333333oo33o....
+......o221112223o3333333333333333oo3333T....
+......o221122223o3333333333333ooo233333o....
+......o22222223ooooooooooooooo332233333o....
+......o22222223o33333333333333332222333o....
+......o2222222o333333333333333321122333o....
+.......o222223o333332222222222221122333o....
+.......o222223o333322222222222211223333o....
+........o22233o33332222222223221333333o.....
+........o3333o233o3223222222o322333333o.....
+.........o333o233oo333222222o322333223o.....
+..........ooo2223o.oo3222223o2ooo33223o.....
+...........o11123o...o111123ooo.o32223o.....
+...........o11133o...o11112o33o..o2223o.....
+...........o22233o...o22223o33o.o22233o.....
+..........o222233o..o222223ooo..o3333o......
+..........o33333o...o222233o.....oooo.......
+...........ooooo....o33333o.................
+.....................Poooo..................
diff --git a/parts_pl_src/body/pl_tardigrade.txt b/parts_pl_src/body/pl_tardigrade.txt
new file mode 100644
index 0000000..ef603b9
--- /dev/null
+++ b/parts_pl_src/body/pl_tardigrade.txt
@@ -0,0 +1,34 @@
+# pl_tardigrade: from pixellab_src/pl_tardigrade/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 47)
+# head_top at (31, 35) (from part/probe)
+# back at (36, 37) (from part/probe)
+# tail at (50, 48) (from part/probe)
+...............ooooooo..................
+...........oooo22bbbbcoooo..............
+.........oo22222222^bbc332ooo...........
+.......oo22222223322222223233oo.........
+......o22112122222232112B232233oo.......
+.....o22111122222222321122332233co......
+....o33222222222222223222ab32223cco.....
+...o1w1322222311222223322aa332ab33o.....
+..o1www122223wwww22222322222322b333o....
+..o1w2o122221woww1222233222233222333o...
+..o1woo2c2231ooow1222223222223222333o...
+.o221ob222221cob11222223222223222333co..
+.o22222ooooo211112222223222223222333co..
+.o2222o11zbco222222222232222232223333o..
+ob222o1zb1zabo22222A22232222232223333o..
+ob222owaoo1bco22222aab23222223222o333oT.
+oc222o1aoo1bco32222abb332222o3223o333oo.
+.o222oz1b11cco32222bbb333223o3333o333oo.
+.o33z1o111boozzz222222o33333o33333333o3o
+..o1111oooo111111z2222o33333o333o333o33o
+..oa111111111111132a2oo3333o3333o333o23o
+...ozaz11111111zaa3zao3333oo333o333o32o.
+...oa11z33333333zzzzao3333o333o333oo3oo.
+...ooa11111111zzzzzao3333o333ooooooooo..
+..o22oozzzzzzzzzzzaoooooo33oo332ooooo...
+..o233ooozzzzzzzaooo32223ooo3223o.......
+...oooo..oooooooo..o3223o...oooo........
+....................Pooo................
diff --git a/parts_pl_src/body/pl_tardigrade_b.txt b/parts_pl_src/body/pl_tardigrade_b.txt
new file mode 100644
index 0000000..7ed81ce
--- /dev/null
+++ b/parts_pl_src/body/pl_tardigrade_b.txt
@@ -0,0 +1,44 @@
+# pl_tardigrade_b: from pixellab_src/pl_tardigrade_b/base.png (variant of pl_tardigrade) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 42)
+# head_top at (31, 23)
+# back at (36, 37)
+# tail at (53, 48)
+...................ooo^ooooooo................
+..............ooooo22bbbb33333oooo............
+..........oooo22333322bbbb33333322oo..........
+........oo22223333333222222232223222oo........
+.......o221223211222233222222322123222o.......
+......o22123221112223223221122321223222oo.....
+.....o21123211111223222232111223221232222o....
+....o221232111112223112223211223322223222o....
+....o2123221111222321122223212bb3222233222o...
+...o21223221222222321122223222bb3322bb33223o..
+..o2112222222222222222222232222223222b33223o..
+..o21221a12222222112222222332222233222232233o.
+..21121aaa122222aaaa222222332222223222233233o.
+.o21221a2o122221aoaa122222232222223222223333o.
+.o21221aoo2b22o1oooa1222222B3222223222223333o.
+o2223221cb222221bob1122222233222223222223333bo
+o222322222ooooo21111222222233222223222223333bo
+o22232222oaazbco222222222223322222322222o3333o
+o222b222o1zb1zbbo22222222223322222332222o333oo
+o222b222oaboo1bco22222Abbb23322222332223occcco
+.c22c222o1boo1bco322222bbb333222233322ooccbbco
+occ2o222oz1b11cco322222bbb3o33222o3ccccccbbbco
+obbcc33z1o111boozzz2222222oo33333ocbbbbbcbbb3o
+obbbccz111oooo111111z3333occcccccccbbbbbcbb33o
+obbbbccz111111111111333cccbbbbbbccbbbbbbo2233o
+.obbbcbccczzzzzzzz3cccbbbbbbbbbbccbbbb2oo223T.
+.o2bbcbbcbcccccccccbbbbbbbbbbbbbc322222oo233o.
+.o222obbbcbbbbbbbcbbbbbbbbb22233o322223oo33o..
+.o2123333cbbbbbbbbobbb2222222233o322233ooooo..
+..o223o322o223333oo3332222222233o32233ooooo...
+...o33o322o2222222o333322222333oo3333ooooo....
+....o33o32o22122233o33333333333o3333ooooo.....
+.....oooo33o3222233oo333333333oo3333oooo......
+......oooo3oo3333333ooo333333oo3oooooo........
+.....o22ooooo3333333ooooooo3oo33ooo333o.......
+.....o233oo.ooo33oooooo32223oooo.oo333o.......
+......oooo.....oooooo.o3223o......oooo........
+.......................Pooo...................
diff --git a/parts_pl_src/body/pl_tardigrade_c.txt b/parts_pl_src/body/pl_tardigrade_c.txt
new file mode 100644
index 0000000..558ed9d
--- /dev/null
+++ b/parts_pl_src/body/pl_tardigrade_c.txt
@@ -0,0 +1,31 @@
+# pl_tardigrade_c: from pixellab_src/pl_tardigrade_c/base.png (variant of pl_tardigrade) (pixellab_library.py extract)
+# pivot at (29, 53)
+# aura at (30, 40)
+# head_top at (31, 29)
+# back at (36, 37)
+# tail at (54, 48)
+.............oooooooooooo^ooooooooo....................
+.........oooo22ccc333cb3332bc323occoo..................
+.......oo3333322ccc33222233222223cc22ooo...............
+......o21222223322222322122321123321232boo.............
+.....o211222222232112232112321112321123222o............
+....o2222222222223222bc32122321122321232122o...........
+...o11222223132222322bb32bb23222223222231bo3o..........
+..o1aa12223aaa322232222322223322223222232bc33o.........
+..o1ao12221aoa1222332222322233B222332223222233o........
+..o1oo12221oo1122223222232223322223322233222323o.......
+.o2233222221113222232222322233322333223o32333223o......
+.o2222ooooo2222222232222A322333333o3333o33333323oooooo.
+oc222oa11bco222222232222o322o33333o3333o333oo333322222o
+oc22oa1o1bco2222bc332223o333o33b33o333oo33o33o33333333o
+oc22o1111bco3222cc33323o3333o33c3oo333obz3o22ozzzzzzzo.
+.o33o11yoccyyz3333333ooo3333o333zb3yzzozzzo322ozooooo..
+..o1o1ooooy111z333o3o33o333oozyyb3yybooooooo332o.......
+...oooy111111ybbybo3o22oo3zbzyyboooooo......o33o.......
+....oyy1yyyy1bzyybozo322ozbooooo..o33o.......o33o......
+...ooob1y111zyyybobzzo323oo......o333o.......o33T......
+..o233ooyyyyyyyboooooo323o.......oooo.......o323o......
+..o233o.oooooooo.....o323o..................o32o.......
+...ooo..............o3223o...................oo........
+....................o323o..............................
+.....................ooP...............................
diff --git a/parts_pl_src/body/pl_tardigrade_d.txt b/parts_pl_src/body/pl_tardigrade_d.txt
new file mode 100644
index 0000000..97d1083
--- /dev/null
+++ b/parts_pl_src/body/pl_tardigrade_d.txt
@@ -0,0 +1,55 @@
+# pl_tardigrade_d: from pixellab_src/pl_tardigrade_d/base.png (variant of pl_tardigrade) (pixellab_library.py extract)
+# pivot at (32, 57)
+# aura at (32, 33)
+# head_top at (31, 9)
+# back at (36, 37)
+# tail at (47, 48)
+.......................^ooooooo.................
+...................oooo3bbbbbbbo................
+...............oooo333333bbbbbbbo...............
+............ooo33333333333333bbbbooo............
+...........o333333333333333333333333oo..........
+.........oo333222222222222333333333333oo........
+........o3322222222222222222233333333333o.......
+.......o332221111112112222222223333333333o......
+......o33222111111121122222222223333333333o.....
+.....o3322112111111122222222222223333333333o....
+....o32222112111111222222222222222233333333oo...
+...o32222222222222222222222222222223333ab333o...
+...o32222222222222222222222222222222333aab333o..
+..o322222222222222222222222222222222233abb333o..
+..o32222ooo3222222222222ooooo32222222333b33333o.
+..o2222o111o32222222222oo1111o3222222233333333o.
+.o3223owwww1o322222222o1wwwww1o322222233333333o.
+.o322owwooow1o2222222o1wooowww1o322222233333333o
+o332o1wowwoo11o22222o1wowooowwwo322222233333333o
+o322owwowwooo1o22222o1owwooooww1o22222233333333o
+o322owwoooooo1o22222o1oooooooww1o22222233333333o
+o322owwoooooo1o22222o1oooooooww1o22222233333333o
+o322owwoooob11o33333o1oooooboww1o22222233333333o
+o322o1wwooo11oooooooo1woooooww1oo22222233333333o
+o3222o1wwww1obbzzbbooo1wAoowww1o222222233333333o
+o33223o1111ob11111zbooo1wwwww1o3222222333333333o
+o332223oooob1111111zco3o31111o32222222333333333o
+o3aa2222333a1zaoz111bco3ooooo322222222333333333o
+o3aaa22222oa13ooz111aco32222B2222aa22333333333co
+.obb222222oa13ooo111aco322222222aaab333333333bo.
+.o33222222oa11occ111aco322222222aabb333333333bo.
+..o33222223c11zc111zcco3222222222bbb33333o333co.
+..o333332zzoz11111zaco1zz222222233333333oo333o..
+...o333z111zozzzzzbboz1111z3333333333333o3333o..
+...oo33z11111oooooooz11111zzz3333333333o3333o...
+....oo3z111111zzzzz111111111zzz3333333o333ooo...
+.....oozz1111111111111111111zzz3333333333oo.....
+......oo3zzz111111111111111zzzzz333333333o......
+........o33zzz1111111111zzzzzzzzz333333oo.......
+.........oo333zzzzzzzzzzzzzzzzzaz33333oT........
+...........oooazzzzzzzzzzzzzz33az33ooo3o........
+..........o333oooozzzzzza333333oooo33333o.......
+..........o223ooooooooooo322333ooo333323o.......
+..........o2223oo.ooooooo222233o.oo33323o.......
+.........o33223oo.o122ooo222233o.o333333o.......
+........o32o323oo.oooooo3222333o.ow3w333o.......
+........ow3w333o.......o3223333o.ooow3oo........
+.........oooooo........ow333w3o.....oo..........
+........................Pooooo..................
diff --git a/parts_pl_src/body/pl_tarotcard.txt b/parts_pl_src/body/pl_tarotcard.txt
new file mode 100644
index 0000000..b9ae2b1
--- /dev/null
+++ b/parts_pl_src/body/pl_tarotcard.txt
@@ -0,0 +1,46 @@
+# pl_tarotcard: from pixellab_src/pl_tarotcard/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 41)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (45, 48) (from part/probe)
+............ooo.............
+...........oy1yo............
+..........oaayaac...........
+.........oaooyaoao..........
+.....ccccczo1^b3ozccccc.....
+....caxxxczo1ab1ozcxxxao....
+....cxccccozbabozcccccxo....
+....cxcco33o1111o33cacxo....
+....cxcoac23oooo32caocxo....
+....cxc3oao133332cao3cxo....
+....cxc12oa311113ao32cxo....
+....cxc212o11o1113312cxo....
+....cxc121111bo111113cxc....
+....cxc111113bo111111cac....
+....cxc11cccbBbccc111cac....
+....cxc11b22oabo22c11cxc....
+....cxc11c2occcco2c11czc....
+...ocxc11coca1aaooc11czco...
+...3cxc1occa2332acco1czc3...
+..o3cxcoaca131c21acaoczc3o..
+.o23cxc3occ13Ac21cco3czc33o.
+.o2oczc23cob1331coc32czco2o.
+.23oczc22c3occcco3c22czco32.
+.2o.czc22c23occ333c22czc.o2.
+o1o.czc223occbacoo322czc.o1o
+o1o.czc22233ocoo33223czc.o1o
+o1o.czc222222co222232czc.o1o
+o1o.czc32c222oo22c223czc.o1T
+o13oczc2cac222222bao3czco21o
+o113czcoac22222222baoczc311o
+o13oczccco32cccc23occczco31o
+o33oczcao33czzzzc33obczco33o
+.oo.czcccccccccccccccczc.oo.
+....ozzzzzzzzzzzzzzzzzzo....
+.....oooooooooooooooooo.....
+.......o3o........o3o.......
+.......o2o........o2o.......
+.....ooo2o........o2ooo.....
+....o1113o........o3111o....
+.....oooP..........oooo.....
diff --git a/parts_pl_src/body/pl_tarotcard_b.txt b/parts_pl_src/body/pl_tarotcard_b.txt
new file mode 100644
index 0000000..33374c6
--- /dev/null
+++ b/parts_pl_src/body/pl_tarotcard_b.txt
@@ -0,0 +1,55 @@
+# pl_tarotcard_b: from pixellab_src/pl_tarotcard_b/base.png (variant of pl_tarotcard) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 37)
+# head_top at (31, 12)
+# back at (31, 35)
+# tail at (48, 48)
+...............o^oo...............
+.............ooy1yoo..............
+............cooayazoc.............
+............caaayaaac.............
+...........oaoooyaooao............
+......ccccccyoowab32oycccccc......
+.....cx1xxxcyoo1abawoycxxxxac.....
+....caacccccoyybabooyccccccxac....
+....cyacccccoyybabooyccccccxac....
+....cyaccoo33oo11111o33ccacxac....
+....cyacooac233ooooo32caaocxac....
+....cyac2ooao22333332oaoo3cxac....
+....cyac122oa33111113ao332cxac....
+....cyac222o3331o11133o332cxac....
+....cyac22123111o111132112cxac....
+....cyac12211111ac11111112cxac....
+....cyac1111111cac11111111cxac....
+....cyac111cccccaacccc1111cyac....
+....cyac111cooocaacoooo111caac....
+....cyac111b222cyac222c211caac....
+....cyac111c2ccyyyacc2c211cyac....
+....cyac111cocaxyyyaacc211cyac....
+...ocyac111ccaxyyyyyacc211cyaco...
+...3cyac1occyyyyByyyyaccc1cyac3...
+..o3cyacccayyyyyyyyyyyyaaccyac3o..
+.oo3cyac3occayyyAyyyyaccc3cyac3oo.
+.o2ocyac233coayyyyyyacc332cyaco3o.
+.o2ocyac222c3cayyyyac2c322cyaco2o.
+.23ocaac222b23oayaac22c222cyaco32.
+.2o.cyac222b233cyac322c322cyac.o2.
+o1o.cyac2223occcyacccc3222cyac.o1o
+o1o.cyac2222333caooo332223cyac.o1o
+o1o.caac2222333cac33332223cyac.o1o
+o1o.cyac22222222cc22222332cyac.o1o
+o12ocyac332c2222cc222o2223cyaco21o
+o12ocyac2ooac22222222baoo3cyaco21o
+o113cyac2ooac22222222baoo3cyac311T
+o13ocaacooac2222222222baaocyaco31o
+o33ocyacccco322ccccc23occccyaco33o
+.oo.caacaoo33ccyyyyyc33oobcyac.oo.
+....caacccoooccccccccooooccyac....
+....caaccccccccccccccccccccyac....
+....ccyyyyyyyyyyyyyyyyyyyyyyac....
+.....ocaaaaaaaaaaaaaaaaaaaaao.....
+......oooooooooooooooooooooo......
+..........o3o........o3o..........
+........ooo2o........o2ooo........
+.......o1113o........o3111o.......
+........oooP..........oooo........
diff --git a/parts_pl_src/body/pl_tarotcard_c.txt b/parts_pl_src/body/pl_tarotcard_c.txt
new file mode 100644
index 0000000..0563abb
--- /dev/null
+++ b/parts_pl_src/body/pl_tarotcard_c.txt
@@ -0,0 +1,42 @@
+# pl_tarotcard_c: from pixellab_src/pl_tarotcard_c/base.png (variant of pl_tarotcard) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 42)
+# head_top at (31, 25)
+# back at (31, 35)
+# tail at (45, 48)
+.....oo...ooo^ooooooooo.....
+....oyyo..yyyyyyyyycyyyo....
+....oyyo.ooooooooooooayo....
+....oyobo12oyyyyo11oboyo....
+....oyoobo11oooo11obooyo....
+....ooooobo111111oboooyo....
+....oyo12oa111111ao23oyo....
+....oyo11oo1111113313oyo....
+....oyo11111111111113ozo....
+....oyo11111oooo11111ooo....
+....oyo111oobBbbo1111oy2....
+....oyo112bbcoocboo11oyo....
+....oyo11oboooooobo11oyo....
+...ooyo1oboocyycoobo1oyoo...
+...2oyo1obooyooyyobo1oyo2...
+..o2oyo3obooyoooyobo3ozo2o..
+.o32oyo3oboobooboobo3ozo23o.
+.o3oozo3obcocbAoocbo3ozoo3o.
+.32oozo33obcooooobo33ozoo23.
+.3o.ozo333obaoocboo33ozo.o3.
+o1o.ozo3333obbbbo3333ozo.o1o
+o1o.ozo33333oooo33333ozo.o1o
+o1o.ozo33333333333333ozo.o1o
+o1o.ozo33o33333333333ozo.o1T
+o13oozo3ozo333333ozo3ozoo31o
+o112ozooao3333333ocboozo211o
+o12ooooobo33oooo33ocbocoo21o
+o22oozobo33ozzzzo33obozoo22o
+.oo.ozzoooooooooooooozzo.oo.
+....ozzcozzzzzzzzzzzzzzo....
+.....oooooooooooooooooo.....
+.......o2o........o2o.......
+.......o3o........o3o.......
+.....ooo3o........o3ooo.....
+....o1112o........o2111o....
+.....oooP..........oooo.....
diff --git a/parts_pl_src/body/pl_tarotcard_d.txt b/parts_pl_src/body/pl_tarotcard_d.txt
new file mode 100644
index 0000000..46f7720
--- /dev/null
+++ b/parts_pl_src/body/pl_tarotcard_d.txt
@@ -0,0 +1,44 @@
+# pl_tarotcard_d: from pixellab_src/pl_tarotcard_d/base.png (variant of pl_tarotcard) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 41)
+# head_top at (31, 24)
+# back at (31, 35)
+# tail at (45, 48)
+................oooo........
+....oooccc...^oozao1o.......
+...oxxxaaaoooxxxcccoao......
+...ozcccccccxccc222o1ao.....
+...ozcac2113cc11122oooo.....
+...ozcoac2111211111caoao....
+....oc3oao11111111cac3co....
+....oc12oac1111111ac33czo...
+....oc212o11111111c313czo...
+....oxc113111111111113cxo...
+....oxc111111cccc11111cao...
+....oxc1111ccaaaac1111cao...
+....oxc111caaBccccc111cxo...
+....oxc11caaac32111111cyo...
+....oxc11caao111111111cyo...
+...ooxc1caabo111111111czo...
+...3oxc1caac1111111111cyo...
+..o3ozc2caac2222222222czoo..
+.o23ozc2caaac2A2222222czo2o.
+.o2oozc22caac222222222czo2o.
+.23oozc22ccaaa3222c222czo32.
+.2o.ozc222ccbaaaacc222czoo2.
+o1o.ozc22222ccccc32222czoo1o
+o1o.ozc222222222222223czoo1o
+o1o.ozc22222222222222czo.o1o
+o1o.obc22c2222222c222czo.o1T
+o12oooc2cac222233cao2czoo21o
+o113oo2oac33333333baoczo311o
+o13oooocc333cccc22ocaczoo31o
+o33ooyoao33cyyyyc22obczoo33o
+.oo.ozcoxccccccccccccczo.oo.
+....ozzoozyyyyyyyyyyyyzo....
+.....oooooooooooooooooo.....
+.......o3o........o3o.......
+.......o2o........o2o.......
+.....ooo2o........o2ooo.....
+....o1113o........o3111o....
+.....oooP..........oooo.....
diff --git a/parts_pl_src/body/pl_tasdevil.txt b/parts_pl_src/body/pl_tasdevil.txt
new file mode 100644
index 0000000..6a516c6
--- /dev/null
+++ b/parts_pl_src/body/pl_tasdevil.txt
@@ -0,0 +1,50 @@
+# pl_tasdevil: from pixellab_src/pl_tasdevil/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 39)
+# head_top at (29, 21) (from part/probe)
+# back at (41, 31) (from part/probe)
+# tail at (50, 42) (from part/probe)
+...............ooo..........................
+..............oo3oooo.......................
+.....oooo...ooo33o33ooo...oooooo............
+....o3211oo.o333333333oooo111111o...........
+....o333111oo333333^33oo311333311o..........
+....o3bc311o3333333333oo113cbbb31o..........
+....o3bcc33o333333ooooo113cbbbb311o.........
+....o3bbc3oo333ooo1111o13cbbbbbb31o.........
+....o3bboo2333o1111111213cbbbbbb31o.........
+.....o3o1112o211111111133occbbbb33o.........
+.....o3o111121111111111333ocbbbb33o.........
+......ooo111111111oo3311333obbb33o..........
+......o2o11111111o22o311133333333o..........
+......o13o11111oo1ww3o3112333333o...........
+......ow1o111oo21owwwo31112ooooB............
+.....oooo11113o1w1wwwo311111333o............
+.....ooba3111231o1ww2c11111113oooooo........
+....obaaaa31112coo33c11o1111111o333oo.......
+ooooaaaaaac1111223333oooo1111333o3333o......
+obaaaaaaaa31111113oo12ooo11113ooo333oo......
+obbaaaaabc111113oooow2ooo111113o333333o.....
+.obbbbbbb31133oo12oooooo3123333o3333333ooo..
+..obbbbbc133oooow2ooooAo3123ooo3333333oo3o..
+...ocbbboooo12ooooocccoo11333o13c3a3333o3oo.
+....ooooo.ooowooobbbbo1o13333112a3c3133o33o.
+..........o3ooobbaaaooo11333111122211a3oTooo
+.........o1ooocaaaaow1o13332111111111a1ooooo
+.........oowooaabooo1o133311111111111113ooo.
+.........o1ooobbow1oo3333311111311311113oo..
+..........o11oooooo333o33211111333311113o...
+...........oo31113333o333111111333311113o...
+...........oooooo33o33333111111o3o331133o...
+...........ooooo33333333o111111o3o333333o...
+...........oooooo3333333o111113o3o333333o...
+...........oooooooo33333o111113o3o333333oo..
+...........o33oooooo3333o1111333ooo333333o..
+...........o333ooo..ooooo1111333o..oo3333o..
+...........o3333oo....ooo111133o...oooo33o..
+.........ooo3333oo...oooo11113o...ooooo33o..
+........o3333333o...obooo11133o..o3333o33o..
+........oboc33c3o...oo31111113o..ob3b3ob3o..
+........ooobob33o....oa2a12a13o..oooooooo...
+..........oooooo.....oooao3a3o..............
+........................Poooo...............
diff --git a/parts_pl_src/body/pl_tasdevil_b.txt b/parts_pl_src/body/pl_tasdevil_b.txt
new file mode 100644
index 0000000..0465c8a
--- /dev/null
+++ b/parts_pl_src/body/pl_tasdevil_b.txt
@@ -0,0 +1,57 @@
+# pl_tasdevil_b: from pixellab_src/pl_tasdevil_b/base.png (variant of pl_tasdevil) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 35)
+# head_top at (29, 12)
+# back at (41, 31)
+# tail at (55, 42)
+...............ooo................................
+..............o33oooo.............................
+...ooooo....oo3333333^o....ooooooo................
+..o33322oo..o3333333333oooo2222222o...............
+..o3333222oo33333333333oo3223333322o..............
+..o3ccb3222o33333333333oo223bcccc32o..............
+..o3ccbb323o333333oooooo223bccccc322o.............
+..o3cccb3ooo333ooo33333o23bccccccc32o.............
+..o3cccoo23333332222222323bccccccc32o.............
+..o33co222233o221111222233oobccccc33o.............
+...o3o111222o22111111222333obccccc33o.............
+...o3o1112222211111112222333occcc33o..............
+....oooo1122221111oo33222333occc333o..............
+....oo2o112222111o22o3222233333333o...............
+....oow2o222231oowww2o222233333333o...............
+....oow1o22223o1wowwwo3222233ooooo................
+...ooow1ooo223o1w1wwwo322222233oooooo.............
+...o3oocaac222o1o1ww2b322222233oo2ccooo...........
+..ooocaaaaa3222bo111b32111222233o2cc22boo.........
+ooaaaaaaaca322222ooo333o111222222o2c22ccoo........
+ocaaaacccaa3222222333oooo11122222o2c22cc2oo.......
+occaaacocc32222233ooo12ooo1122233B2a22cc2cco......
+.occcccccc32233ooo3oow2ooo111223o22a22aa2cco......
+..occcccc3333oooo12ooooooo1112223o2a22aa2cc3o.....
+...oooooooooo12oow2ooooooo1113333o2a22aa2cc2oooo..
+...ow1ooooooow2ooooooooAoo11233oo22a22a22aa23o3o..
+...ow1oooooooooooooooooooo113333222a22a22aa22o3o..
+....oo2oooooooooooooooooo2113333222222222aa22o33o.
+.....o2oooooooobccccccooo11233332222222222222o33o.
+....o2ooooooobccccaaacwo1112333222222222222223o33o
+....o2ooooooccacaaaacc1o1123332222222222222223o33o
+...o2o1oooobaacaaaaw2oo11233322222222222222223o3o.
+...o2o1ooocaaaaaaacw2o111333222222222222222223oT..
+...o1oowooaaaaw1acooo112o333222222222332222223o...
+...o1oowooaaaaw1coo1112233322222223223o2222223o...
+...o11ooooooooooo11122o33332222222o333o2222223o...
+....o2111111111112222o333332222222o333o2222233o...
+.....ooo22222222222333333o32222223o332o222223o....
+........ooooooo3333333333o32222223o222o222223o....
+..........ooooooo33333333o32222223o222o322233o....
+..........ooooooooo222222o32222233o2ooo3333333o...
+..........oooooooo.oo2222o22222333ooooo3333333o...
+..........o333oooo...ooooo22222333o....o333333o...
+..........o3333ooo.....ooo22222333o.....o33333o...
+..........o33333oo.....ooo2222233o......o33333o...
+........oo333333oo....oooo222233o......o333333o...
+.......o33333333o....ocooo222233o.....o3333333o...
+.......oc3c33333o....oo322222223o.....oc3c33c3o...
+.......oooc3c333o.....oa2a22a233o.....oooooooo....
+.........ooooooo......oooa33a33o..................
+.........................Pooooo...................
diff --git a/parts_pl_src/body/pl_tasdevil_c.txt b/parts_pl_src/body/pl_tasdevil_c.txt
new file mode 100644
index 0000000..e89eece
--- /dev/null
+++ b/parts_pl_src/body/pl_tasdevil_c.txt
@@ -0,0 +1,57 @@
+# pl_tasdevil_c: from pixellab_src/pl_tasdevil_c/base.png (variant of pl_tasdevil) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 35)
+# head_top at (29, 11)
+# back at (41, 31)
+# tail at (49, 42)
+.............ooo............................
+............oo3oooo^........................
+....ooo...ooo33o3333oo..ooooo...............
+...o321oo.o33333333ooooo22111o..............
+...o33311oo333o333ooooo1233331o.............
+...o3cc31o333oo3oooooo113ccc31o.............
+...o3ccc3o33oooo3122o213ccccc31o............
+...o3cco333ooo222212o13cccccc31o............
+...o3co322oo22222211133occccc33o............
+....oo1222322211b1221333ccccc33o............
+....oo12a12b2b11122111333ccc33o.............
+.....o11b11b111oo3211223333333o.............
+.....oo1222211o22o3221233o333o..............
+.....o1o11121o1ww1o2211233ooo...............
+.....owo2213o2owwwo312113333oo..............
+.....o1o2123o1wwwwo3222211333o..............
+....o33bb12233o113c21121112oooo.............
+....oaaaac12b2233222o1122221oo..............
+ooooaaaabc222b222o1ooo1121333oo.............
+obaaaaabb322222ooowooo11223o33o.............
+obbbbbbb3222oo12oooooo11222333oooo..........
+.obbbobc33oooow2ooooo11122oo33oB11oo........
+..obbbb3oo12oooooccco11232o33oo11233o.......
+...ooooo1oowoocbbaoo1113ooo3311a2a11bo......
+........ooooobbaaoo11123ooo321221b112oooo...
+.......oo1oocaaabw111A33o33221211c11a1o33oo.
+.......o1oocaawoo11123ooo2212121112221o3333o
+.......o1ooooo111122o3o3312211111122212o3ooo
+........o11111112233o3o3312211212121211oooo.
+........oo222222333o3o32221112212111212ooooo
+.........oooo333333o3332221113311322111oooo.
+..........o3oo333o3o1332221112o33312212ooo..
+..........o33oo332oo1333222212o33321222T....
+...........o33o3o221113o122212o3o322212o....
+...........o33o3o111112o322222o2o322122o....
+............o3ooo2112223312212o2o312122o....
+............o33ooo222222o22223o2o312213o....
+............o33ooooo2222o22223ooo322223o....
+............o33ooo..ooooo22223o..o121133o...
+............o33ooo.....oo22223o..o333333o...
+............o333oo.....oo2222ooo..o33333oo..
+............o333oo.....o31223ooo...oo3333o..
+............o333o......o21223ooo....oo333o..
+............o333o......o2222oooo.....o333o..
+............o333o......o2222oooo.....o333o..
+..........oo3333o......o2222ooo.....o3333o..
+.........o333333o.....oo2222ooo...oo33333o..
+........oc3c3333o....o222221ooo...oc3c3c3o..
+........oooc3c33o...oa2a12a2o.....ooooooo...
+..........oooooo....oooa33a3o...............
+......................Pooooo................
diff --git a/parts_pl_src/body/pl_tasdevil_d.txt b/parts_pl_src/body/pl_tasdevil_d.txt
new file mode 100644
index 0000000..d958540
--- /dev/null
+++ b/parts_pl_src/body/pl_tasdevil_d.txt
@@ -0,0 +1,62 @@
+# pl_tasdevil_d: from pixellab_src/pl_tasdevil_d/base.png (variant of pl_tasdevil) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 31)
+# head_top at (29, 5)
+# back at (41, 31)
+# tail at (46, 42)
+.................ooo^ooooooo.................
+..............ooo22222222222oooo.............
+............oo211122222222222233oo...........
+...........o1112222222222222222333oo.........
+.........ooo1112222222222222o3222333o........
+........o1oao22222222222222oao2222333o.......
+.......o2oaao22222222222222oabo2222333o......
+......o11oaaco222222222222oaabo22222333oo....
+.....o111oaacco2222222222oaaaco222222333o....
+....o2112ocaaa322222222223aaaco2222223333o...
+....o11222oca32222222222223aco32222222333o...
+...o11222233322222222222222333222222223333o..
+...o12222222222222222222222222222222222333o..
+..o1122222222222222222222222222222222223333o.
+..o1122211122222222222222211112222222222333o.
+.o11222111112222222222222111111222222222333o.
+.o12222311111222222222211111113222222222333o.
+.o122223311111222222221111113332222222222333o
+.o1222ooooo111222222221111oooooo222222222333o
+.o122oo11ooo312222222211oooo111oo22222222333o
+o2222o11ooooo3222222223oooooo111o22222222333o
+o222o1wowwoooo22222222owwooooo111o2222222333o
+o222o1wowwoooo22222222owwooooo1w1o2222222333o
+o222owwooooooo22222222oooooooowwwo2222222333o
+o222owwooooooo22222222oooooooowwwo2222222333o
+o222owwoccooco2ooooo22oooooocowwwo2222223333o
+o2222owwoccccoobaaaao2oAoccccwwwB22222223333o
+.o2223owwcccooaaaaaaao2occccwwwo22222222333o.
+.o22223ooooo1oaaaaacco113oooooo32bb22223333o.
+..o22222222111ocaaaoo1111122333bbbbb222333oo.
+..o222222211111oaao3111111122222bbb2223333o..
+..o32222211o1111oo311111111122222222223333o..
+...o3222111o11111o11111o11111222222223333o...
+...o33221111o1113o3111o111112222222233333o...
+....o32231111oooo3oooo311111122222233333o....
+....o3323111113311113311111132222223333oo....
+.....o33331111111111111111113222233333oo.....
+......oo33311111111111111113322333333T.......
+........o32311111111111111333333333oooo......
+........ooo313111111111331333333ooo3o33o.....
+...........oo333313333333o3333ooo333o333o....
+.............oooooo3333ooooooo3333333o33o....
+...............o333oooo333333333333333o3o....
+..............o33333333333333333333333oo.....
+..............o33333333333333333332333o......
+..............o3333333333o322233332233o......
+.............o2233o322222o22223oo32233o......
+.............o22233o32222o22223oo322333o.....
+.............o22233ooo222o22222oo333333o.....
+.............o22223o..oooo22222o.o33333o.....
+.............o22223o...o3o22223o..o3333o.....
+............o222223o..ocoo22223o.o33333o.....
+...........o2233223o..oo3222223oo333333o.....
+...........oa3a3a33o...oc323223ooc3c3c3o.....
+............ooooooo....oooa3a3o..oooooo......
+.........................Poooo...............
diff --git a/parts_pl_src/body/pl_tatzel.txt b/parts_pl_src/body/pl_tatzel.txt
new file mode 100644
index 0000000..2545187
--- /dev/null
+++ b/parts_pl_src/body/pl_tatzel.txt
@@ -0,0 +1,43 @@
+# pl_tatzel: from pixellab_src/pl_tatzel/base.png (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 43)
+# head_top at (24, 28) (from part/probe)
+# back at (40, 37) (from part/probe)
+# tail at (51, 51)
+..oo................ooo...................
+.o31oo............oo123o..................
+.o3312oo........oo11oc3o..............oo..
+.o3b1223oooooooo311ocb3o.............o13o.
+.o3bo12332bb2^2311ocbb3o............o11o..
+.o3o311211b111211occbb3o............c13o..
+..oa21211111111113bcbb3o...........oc13c..
+..ooo2111111111113obb33o...........o123o..
+..obc1111111111112bbc3o............o123o..
+...o311111111111113c33o............ob23o..
+...o21111b111111111333o............obbco..
+...o2a11bb11111a12233o..............o12o..
+...ooo211b1111oooo333o..............o123o.
+...oobo111111oobbo323o..oooooBooooooo223o.
+...oo1o31112o1oaao322ooo211bb1122b123o33o.
+...o2oo31112ooo11o233o111111b1111bb223o3o.
+.ooc3a3211222ao1o1ooooo1111111111b111b2oo.
+...oocb1122211bbcc33ocb222b21222b111bbb3o.
+.oo..o11oo1111113ooo333c333b333cb1111123o.
+......o11a11111oo33oA333333cc333c111b123o.
+.......oozzzzoo3333oc33333333333321bbb233o
+.......oaooooaa333boc33333baaooo21a112b33o
+.......oaaaaaaa323bo3c33baooooo1111112333o
+......o3aaaaaa322b3ooooooo2111bb1111223cco
+......oa11111122b2333b111b11111b111b2333co
+.....o1a11111121111o1bb11b11111b122bc333o.
+.....o1a111111211112ob111bb111b222cc333bo.
+....o121111111321112o2211b2222bc333333aoT.
+..ooo1211111113o1112o32222233cc333333aao..
+.o11123z11111zzo1113o3333333333333aaoao...
+o3b3123ooa111zcoooooo333333333bb3aaaoo....
+oboc323oaccoccoo2112oob33aaaoaaaoaoo......
+o3cbo333oaaaaao1cb321oacaaacaaaooo........
+.oobb33o.ooaaao3ocob3oaoaaaoooo...........
+..ooooo....oooo3cbb33oooooo...............
+..............oobbb3o.....................
+...............ooooP......................
diff --git a/parts_pl_src/body/pl_tatzel_b.txt b/parts_pl_src/body/pl_tatzel_b.txt
new file mode 100644
index 0000000..d4902a1
--- /dev/null
+++ b/parts_pl_src/body/pl_tatzel_b.txt
@@ -0,0 +1,45 @@
+# pl_tatzel_b: from pixellab_src/pl_tatzel_b/base.png (variant of pl_tatzel) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 42)
+# head_top at (24, 25)
+# back at (40, 37)
+# tail at (51, 51)
+...oo...................ooo.................
+..o31o.................o213o................
+..o311o...............o1133o................
+..o3c11oo..oooo^ooo..o11cc3o................
+..o3co11ooo21cc2222oo11occ3o............oo..
+..o3cco223111c11112311occc3o...........o13o.
+..o3ccc321111111111213cccc3o..........o11o..
+..o3cco211111111111113occc3o..........c13o..
+...oco31111111111111113cc33o.........oc13c..
+...oco11111111111111111cc3o..........o123o..
+....o211111111111111111233o..........o123o..
+....o211111111111111111133o..........oc23o..
+...oo21111111111111111113aaoo........occco..
+..o1a2oo21111111ooo11111aaaao.........o12o..
+.o1111oco111111oocco111a11aaao........o123o.
+.ob111obo311113wobbo11111aaaaooBooooooo223o.
+.o1111o1o311113oo11o1a11111aaoc1122c123o33o.
+o1111bb1o211122bo1bbb11111aaaao1111cc223o3o.
+oaaa11bba2222211bbbbbz11111aaoo1111c111c2oo.
+.oa111bb11oo111111bbb1111a1aoo2222c111ccc3o.
+.oa111abb11a11111bbzzA111aaaoc333cc1111123o.
+.oa1a11abbzzzzzbbbb1111a1aaaocc333c111c123o.
+.ooaa111aabbbbbbaa111a1aaaao333333321bcc233o
+..oaab1a11aaaaa111111aaaaaoocbbooo21b112c33o
+...ooaaa111111111aa1aaaaao33ooooo1111112333o
+....oaoa1a1111a11aaaaaaooo3c2211cc1111223cco
+.....ooaaa1aa1aaaaaaoooc333o21111c111c2333co
+......ooaaaaaaaaaaoo3o3cc33c11111c122cc333o.
+.......oooaaaaaooo3333oc331cc111c222cc333co.
+......o33aoaaoobo33333o2211c2222cc333333boT.
+....ooo331aooabb3o3113o32222233cc333333bbo..
+...o11313a11111aao1113o3333333333333bbobo...
+..o3c3133oob11zacoooooo333333333cc3bbboo....
+..ococ333obccoccoo2112ooc33bbbobbboboo......
+..o3cco333obbbbbo1cc321obcbbbcbbbooo........
+...oocc33o.oobbbo3ococ3obobbboooo...........
+....ooooo....oooo3ccc33oooooo...............
+................ooccc3o.....................
+.................ooooP......................
diff --git a/parts_pl_src/body/pl_tatzel_c.txt b/parts_pl_src/body/pl_tatzel_c.txt
new file mode 100644
index 0000000..53447bc
--- /dev/null
+++ b/parts_pl_src/body/pl_tatzel_c.txt
@@ -0,0 +1,46 @@
+# pl_tatzel_c: from pixellab_src/pl_tatzel_c/base.png (variant of pl_tatzel) (pixellab_library.py extract)
+# pivot at (32, 58)
+# aura at (31, 41)
+# head_top at (24, 26)
+# back at (40, 37)
+# tail at (51, 51)
+.o..................oo...................
+o2o................o11o..................
+o21o..............o111o..................
+o231o.............o121o..................
+o1313o...........o1321o..................
+o13313o.........o11321o..................
+o123113o.......o113321o..................
+o123311ooooo^oo1113221o..............oo..
+o12231123bbc2221132221o.............o13o.
+o13232111aa11111233211o............o11o..
+o12331111a211111232213o............o12o..
+.o1311111a111111233213o...........o112o..
+..o311111a11111112312o............o122o..
+..o11a1111111a111233o.............o123o..
+..o111111111a1112223o.............o123o..
+..ooo11111111oooo23o..............ocaco..
+..oobo111112ooao3333o..............oboo..
+..oowo21112owoxo3333o..............o133o.
+..o3xo211123oox11133o..oooooBoooo...333o.
+..o112111122222111a3ooob1111111bbooo333o.
+...o111112111111x33o211b1111111aab22o33o.
+...ox1ooo111111x33oc1111b11111aaa1112o3o.
+....o11aa11xxx3333oAb111c1111caa211112oo.
+....oaaaaaabxa3333oaa112c3333ccc211aaaco.
+.....ooxxxxaaa3333oabc33c3333cc32bbaaaco.
+......oaaaaaaa333co3bc33c3333cc3cb1111cco
+.....occcccccc3cbco3ccc3ccaaaccc21111113o
+.....ocaacccbaaccco33ccacaaaoocccc111113o
+.....ocbaaaaaaacc3ooooooo222211caaa11133o
+.....occcccccccc33223cbbb111111caaa11333o
+....o211ccccc3322b1111caab111111aacc333o.
+....o23111113332221111caaa1111113ccc33ao.
+....o21133331333c22222caaac111133ccc3aaT.
+....o211111113333322222cbbc133333ccc3ao..
+.....o31111131333333333cbbc333333cccco...
+......ox333311a33333333cccc333aacccoo....
+......oaaaaaaaaa333333cccccaaaaacoo......
+.......oaaaaaaacaaaaaacccccaaaooo........
+........ooccccaaaaaaaaccccoooo...........
+..........ooooooooooPooooo...............
diff --git a/parts_pl_src/body/pl_tatzel_d.txt b/parts_pl_src/body/pl_tatzel_d.txt
new file mode 100644
index 0000000..747c0ae
--- /dev/null
+++ b/parts_pl_src/body/pl_tatzel_d.txt
@@ -0,0 +1,43 @@
+# pl_tatzel_d: from pixellab_src/pl_tatzel_d/base.png (variant of pl_tatzel) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (30, 43)
+# head_top at (24, 26)
+# back at (40, 37)
+# tail at (51, 51)
+..oo................ooo...................
+.o32oo.....oo.....oo133o..................
+.o3322oo..o12^o..o21oc3o..............oo..
+.o3bo223oo1222ooo21ocb3o.............o23o.
+.o3bo32oo1222ooo21ocbb3o............o22o..
+.o3cbooo1122oo1o3occbb3o............o23o..
+..oaco1o1222o21oooacbb3o...........o223c..
+..oao21o122oo112o3obb33o...........o223o..
+..oa321o122o2122oobbc3o............o223o..
+...o322o222o22222ooc33o............o223o..
+...o322o222o2222333oooo............o223o..
+...oo32o222o223oo2223o..............o23o..
+..o2ooooo33ooooooo2233o.............o233o.
+..o2oaooo33oooobboo233o.oooooBooooooo333o.
+..o2owo3ooo3owoaaoo233ooo221oo21o2223o33o.
+..ooooo32223ooo11oo23o11oo221oo1o222ooo3o.
+.oocca3311333ao1ooo33o312oo222o2o22o333oo.
+...oocb2233311aaooooooo322o223o3o2o21133o.
+.oo.oo11oo1111133ooooooo22o333o33o321123o.
+....o2o11a11111ooo1A1ooo33o333o33ooooo23o.
+...o22ooozzzzooo322111oo33o333o33o2112o33o
+...o2oo2oooooooo3221112o33o33oooo321122o3o
+...oooo2211222oo3322222o33oooo333oo1123o3o
+...o2ooo211223oo33ooooooooooooo2111o2233oo
+...o2oo3o222oo3ooooooooo21o2112o1112o333oo
+....ooo23ooo323ooo32222o21o21112o222o333o.
+....o3oo222222oo3ooooooo222o2222o222o333o.
+...o23ooo222oooo33333o32222o2222o233o333T.
+..ooo3o2ooooo33ooooo3o32222o2223o333o33o..
+.o22oooo211223oo2113oo33333o3333o333o3o...
+o3o32oooo112oooooooooo33333o3333o333oo....
+ococ33oo3oooo3oo2223oo33333o3333o3oo......
+o3cac3ooo33333o2cc332o33333o333ooo........
+.oobb3oo.oo333o3oco33o3333ooooo...........
+..ooooo....oooo3caab3ooooo................
+..............oobbbbo.....................
+...............ooooP......................
diff --git a/parts_pl_src/body/pl_teapot.txt b/parts_pl_src/body/pl_teapot.txt
new file mode 100644
index 0000000..7874347
--- /dev/null
+++ b/parts_pl_src/body/pl_teapot.txt
@@ -0,0 +1,40 @@
+# pl_teapot: from pixellab_src/pl_teapot/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 45)
+# head_top at (32, 28) (from part/probe)
+# back at (32, 39) (from part/probe)
+# tail at (48, 43) (from part/probe)
+...................ooo..................
+..................o2^2o.................
+..................o112o.................
+..................o222o.................
+.................ooo3ooo................
+..............ooo223o333oo3.............
+.............obcbc11222cb3co............
+...........oo32bc1111112cb33oo..........
+...........o2o3211111111233o3o..........
+...........o322ooooooooooo223o..........
+..ooo.....o3oo2222222222233oo3o..oooo...
+.ooo1o...o2122ooooooooooooo3333oo1111o..
+o21112o.o21111122222B22222222333211221o.
+.o3211o.o1111111111111111122223322oo322o
+..o3211o2111111111111111111222233o..o32o
+..o32111121111ooo1111111ooo122233o..o32o
+...o3111112111oo11111111oo1122233o..T32o
+...o3211112111ooo1111111ooo1122233o.o22o
+...oc211112111ooo111A111ooo1122233oo32o.
+...o3c3111211aaa11o111o11aaa222233o322o.
+....ob3321211111111ooo111111222233o32o..
+....o33333321111111111111111223332o33o..
+.....o3333322221111111111122333b32ooo...
+......ooocc22bb22222222222bb32bbb2o.....
+.......occ33bacb3222b2222bcab33b3o......
+.......oo333ccac323bbb323bacb322o.......
+........o3333cc33233b33233cc3333o.......
+.........o333332222222222233333o........
+..........o3333333333333333333o.........
+...........oo333333333333333oo..........
+...........o3oo3333333333oo3o...........
+..........o2233oooooooooo3322o..........
+..........o2123o.........o212o..........
+..........ooooP...........oooo..........
diff --git a/parts_pl_src/body/pl_teapot_b.txt b/parts_pl_src/body/pl_teapot_b.txt
new file mode 100644
index 0000000..781a889
--- /dev/null
+++ b/parts_pl_src/body/pl_teapot_b.txt
@@ -0,0 +1,58 @@
+# pl_teapot_b: from pixellab_src/pl_teapot_b/base.png (variant of pl_teapot) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 36)
+# head_top at (32, 9)
+# back at (32, 39)
+# tail at (41, 43)
+...................^oo................
+..................o123o...............
+..................o223o...............
+..................o333o...............
+.................ooooooo..............
+...............oo2222333oo............
+..............oaa112222abbo...........
+.............oaa1122222abb3o..........
+............o22222222222cc33o.........
+...........o2333333333333333o.........
+...........o2221112222222333o.........
+............oooooooooooooooo..........
+............o33333333333333o.oooooo...
+.ooo........o33222333333333oo322212o..
+o222o.......o33212222222333o33333322o.
+oo322o......o33212222222333o33ooo3322o
+..o322o.....o33212222222333o3oo..o332o
+...o31o.....o33212222222333oo.....o32o
+...o331o....o33212222222333o......o33o
+....332o....o33oo222222ooo3o......o33o
+....o322o...o33ow222222oow3o......o33o
+....o322o...o33oo222222ooo3o......o33o
+....o322o...o33oo222222ooo3o.....o333o
+....o322o...o3aa12o22o22aa3o.....o33o.
+....o322o...o321122oo222233o.....o33o.
+....o322o...o221122222222333o....o3o..
+....o322o...o221122222222333o....o3o..
+....o322o...o221122A22222333o....o3o..
+....o3223..o32211222222223aco....ooo..
+....o3221o.oac21122222222babo.........
+....o32222ooaac1122B22222baco.........
+....o33221223ac1122222222baco.........
+....o33222223b21122222222cbbo.........
+.....o3322233221122222222233o.........
+.....o333223322112accc222233T.........
+......o3333332211aaaaac222333o........
+.......o33333221baaaaac222333o........
+........o3333221caaaaac222333o........
+.........o3332211caacc2222333o........
+..........o3322122ccc22222333o........
+..........o3322122222222223333o.......
+..........o3322222222222223333o.......
+..........obbaa222222222223333o.......
+..........obaaac222222222ab333o.......
+..........obbaac22222222aaa333o.......
+..........obbbac222222222bb333o.......
+..........obbbc22222222233333o........
+...........o3333333333333333o.........
+............o33333333333333o..........
+...........o3oooooooooooooo3o.........
+...........o3333o......o3333o.........
+...........ooooP........ooooo.........
diff --git a/parts_pl_src/body/pl_teapot_c.txt b/parts_pl_src/body/pl_teapot_c.txt
new file mode 100644
index 0000000..cf1a9af
--- /dev/null
+++ b/parts_pl_src/body/pl_teapot_c.txt
@@ -0,0 +1,41 @@
+# pl_teapot_c: from pixellab_src/pl_teapot_c/base.png (variant of pl_teapot) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 44)
+# head_top at (32, 25)
+# back at (32, 39)
+# tail at (56, 43)
+.........................o^oo.......................
+........................o2123o......................
+........................o2223o......................
+........................o3333o......................
+....................oooooo33ooooo...................
+...................obc2233oo333b3o..................
+..................occbc2122222cbccoo................
+..............ooooo3bc333333333cc33oooo.............
+............oo3223oooooooooooooooooo333oo...........
+ooooo......o32223322223322222233333333233o...oooo...
+o3221o....o3212332222322222222233222233233o.o2112o..
+.o3222o...o21233211222222222222232222232233o322222o.
+..o3212o.o222232112232112222222232222222223333oo322o
+..o3222oo322223211223111222222222322222322333o..o32o
+...o3222232223211222211122B22222232222232223o...o32o
+...o3221123223211223ooo1222222ooo22222223223o...o32o
+...o3322223232212223oow2222222oow232222232233o..o32o
+...ob322223232222223ooo2222222ooo232222232223o..o32o
+...occ32223232222223ooo2222222ooo232222223223o.o33T.
+...o3b3322323222223aaa22o2A2o22aaa32222223223oo333o.
+....ob3333323222223322222ooo22222232222223223o333o..
+....o3333322322222332222222222222232222223223o33o...
+.....o333322322222332222222222222232222223223o33o...
+......oo33b23222223322222222222222322222232b3ooo....
+.......o3cab3222223bb22222222222bb32222233bc3o......
+.......o3acb33222bcabb222222222bbacb222233bbco......
+........occc33222cabbb2222b2222bacac222232cco.......
+.........o33333222cbcb222bbb222cccb22223323bo.......
+.........o3333o3223cc33222b22233cb22233o333o........
+..........o333o33333333322222333333333oo33o.........
+...........oo33o3333333333333333o33333o33o..........
+............o33o33333o3333333333o3333o33o...........
+.............oo33o3333o33333333o3333o33o............
+...............oooo3333o333333o3333oooo.............
+...................ooooooPooooooooo.................
diff --git a/parts_pl_src/body/pl_teslacoil.txt b/parts_pl_src/body/pl_teslacoil.txt
new file mode 100644
index 0000000..5d11f43
--- /dev/null
+++ b/parts_pl_src/body/pl_teslacoil.txt
@@ -0,0 +1,41 @@
+# pl_teslacoil: from pixellab_src/pl_teslacoil/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 41)
+# head_top at (31, 29) (from part/probe)
+# back at (30, 46) (from part/probe)
+# tail at (43, 51) (from part/probe)
+........ooooooooooooooooo.........
+.....ooo2111wwwww11112222oooo.....
+...oo2221111wwwww111122222333oo...
+..o2222211113333^33332222233333o..
+.o222221133cbbbyyybbbc3332233333o.
+o222221133bbbooooooobbbc332333333o
+o32222112oooocccbbbcoooo322333333o
+oo312211111wooooooooo222223333233o
+ooo31111111wwwwww1112222223311333o
+.ooo331wwwwwwwww11112222ww113333o.
+..oo333333wwwwwwwwwwww112233333o..
+...oo333333322222111222222333oo...
+.....ooo33332222211122223oooo.....
+.......ooooooooooooooooooco.......
+.......ococbccc33333oooocbo.......
+......occooobzzyAbbbcbbbbco.......
+......occ32ooocccccooccccoo.......
+.......ocbo111o2223211oooco.......
+.......oooaowwa222awwoaoobo.......
+.......ocoaoooazybaoooabcco.......
+......occ3oaoaoB22oaoacccoo.......
+......occ322211111113333oco.......
+.......ocb22112aaa211222bbo.......
+.......oocbyoaoooooao2ybcoo.......
+......oooocbyyboooczzbccoooo......
+.....oo2cooocbbxxxbccc33oc2oT.....
+.....o23oo2233332222222cco32o.....
+....o223ooo222111112bb3coo322o....
+....o113oooo2222222bb2oooo311o....
+....o223ooooo2222222oooooo322o....
+.....o3oo.ooooo222oooooo.oo3o.....
+......oo..ocooooooooooco..oo......
+..........occoooooooocco..........
+.........o21oo......oo12o.........
+..........ooP........ooo..........
diff --git a/parts_pl_src/body/pl_teslacoil_c.txt b/parts_pl_src/body/pl_teslacoil_c.txt
new file mode 100644
index 0000000..2963280
--- /dev/null
+++ b/parts_pl_src/body/pl_teslacoil_c.txt
@@ -0,0 +1,63 @@
+# pl_teslacoil_c: from pixellab_src/pl_teslacoil_c/base.png (variant of pl_teslacoil) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (32, 32)
+# head_top at (31, 4)
+# back at (30, 46)
+# tail at (41, 51)
+........o^ooo........
+......oo22222oo......
+.....o211122233o.....
+....o11ww1122233o....
+...o211ww1122233o....
+...o21ww111222233o...
+..o321ww111222233o...
+..o3211w111222233o...
+..o3211w111222233o...
+..o3221w111222233o...
+...o2221111222333o...
+...o332111222333o....
+....o33222223333o....
+.....o333223333o.....
+....oooo33333ooo.....
+...occooooooooooo....
+...occccooooooocco...
+...oocbco222ooocbo...
+..ococbbb2222oocbo...
+..ocooczzzbbbcbbco...
+..oco2occccccoccoo...
+..oco2oooccoooccoo...
+...oco11222o11oobo...
+...ooaowa22awoaobo...
+...ooaooazbaooabco...
+..oc3oaao22oaaccoo...
+..oc32221111ooccoo...
+..oc22211111122oco...
+..ocb2112aA21122bo...
+...ocboaooooao22bo...
+...ocbbaooooao2bco...
+...oobxxboocbbbcoo...
+...oocbxbccbbbccoo...
+...oooccbxxzccc2oo...
+..oco22222222222ooo..
+..ocoo2211112zb3coo..
+..ooco222222bb23coo..
+.o2ocb2222222223oooo.
+.o2oocbb22222223oo2o.
+.o2oo32yy2222223co2o.
+.o2oo322bbzz222cco2o.
+o22oo322222zz2ocoo22o
+o22ooo22B22bbcoooo22o
+o12oooo22222booooo21o
+o12ooooo2222oooooo21o
+o22oooooo22ooooooo22o
+o22oooooooooooo.oo2oo
+.ooo.ooooooooco..ooT.
+..oo.oocoooocco..oo..
+.....occo..ocbo......
+.....occo..ocbo......
+.....oobo..ooco......
+.....oooo..oo3o......
+.....o3oo..oo3o......
+.....o1oo..oo1o......
+....o32oo..oo23o.....
+.....ooo....Poo......
diff --git a/parts_pl_src/body/pl_tombstone.txt b/parts_pl_src/body/pl_tombstone.txt
new file mode 100644
index 0000000..de4f136
--- /dev/null
+++ b/parts_pl_src/body/pl_tombstone.txt
@@ -0,0 +1,43 @@
+# pl_tombstone: from pixellab_src/pl_tombstone/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 42)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 40) (from part/probe)
+# tail at (43, 51) (from part/probe)
+.........oooooooo.........
+.......oo11111111oo.......
+.....oo111122221112oo.....
+....o111232222223122oo....
+...o111333oo^ooo331o1oo...
+..o11233oo333333ooo1233o..
+..o1223o3332222333o3233o..
+.o1223o3322cccc223332233o.
+.o123o33212cabc222333223o.
+.o123o32122caac222233323o.
+o123o321222caac2222333233o
+o123o322ccccaacccc2233223o
+o12o3312caaaaaaabc2233323o
+o12o3222caaaaaabbc2333323o
+o12o3222ccccaacccc2233323o
+o12o3222222caac2222223323o
+o12o3c22222cBbc2222323323o
+o12o3222222cbbc22223bo323o
+o12o3222222cAbc22222cc323o
+o1233222222cccc222222b323o
+o2b3322oo22222222oo223333o
+o32332oooo222222oooo33333o
+oo233oo1coo2222ooc1oo3333o
+obo33o1cwoo2222owoc1o3333o
+obb33owaooo2222oooawo3333o
+obb33owaaao2222oaaawo33boo
+obbo33owwo222222owwo333bbo
+ocbo332oo222oo222oo23333To
+.obo3aaa2222222222aaa33bo.
+.obo3aaa2222222222aaa3obo.
+.oboo3333222222223333oobo.
+..ooooo333333333333ooooo..
+....o33oooooooooooo33o....
+...o12333o......o33321o...
+..o12223o........o32221o..
+.oaao333o........o333oaao.
+..oooooP..........oooooo..
diff --git a/parts_pl_src/body/pl_tombstone_b.txt b/parts_pl_src/body/pl_tombstone_b.txt
new file mode 100644
index 0000000..4517e58
--- /dev/null
+++ b/parts_pl_src/body/pl_tombstone_b.txt
@@ -0,0 +1,49 @@
+# pl_tombstone_b: from pixellab_src/pl_tombstone_b/base.png (variant of pl_tombstone) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (32, 37)
+# head_top at (31, 18)
+# back at (31, 40)
+# tail at (46, 51)
+....oooooooooooooo^oooooooooooooooo....
+.oo1111111111111111111111oo11111222ooo.
+o1112122222222222222222222o22222233333o
+o1221222222222222222222222o32222233333o
+o12222222222222222222222222o3222233333o
+.oo333333333333333333333333oo3333333oo.
+.ooo33333oo33333333333333o333333333o...
+...o33333oo33333333333333o333333333o...
+...o322222o22222222222222o322233333o...
+....o12222o222222222222222o22233333o...
+....o122222o22222222222222o2222333o....
+....o122222o32222oooo2222323222333o....
+....o12222o2o2222oaco2222223222333o....
+....o12222o22o222oabo222222222333oo....
+....o1222o2222222oabo222222222333oo....
+.....o22o22222ooooaboooo2222233ooo.....
+.....oooo22222oaaaabbbco2222ooo33o.....
+.....oo22o2222obbbbbbcco2222o2333o.....
+.....o12223222oooobboooo222o22333o.....
+.....o12222222222obAo222222222333o.....
+.....o12222222222obco222222222333o.....
+......o1222222222occo22222222233o......
+......o1222222222oBco22222222233o......
+......o1222222222oooo22222222333o......
+......o1222222222222222222222333o......
+......o1222oo322222222223oo22333o......
+......o12222ooo22322322ooo222333o......
+......o1222o1cooo3223oooc1o22333o......
+......o3222owbooo2223ooobwo22333o......
+......oo222owabbo2222obbawo22333o......
+......oo2222owwo322222owwo222333o......
+......oo22222oo32222222oo2222333o......
+.....o2o222aa2222oooo222baa223333o.....
+.....o1ooo2aa222o2222o22ba3233333T.....
+.....o1o22o2222322222322223o333o2o.....
+.....o3o222o322222222222233o333o3o.....
+......oo2222o222222222233333o33oo......
+........o222o22333333333333oooo........
+........ooooooooooooooooooooo..........
+.........o12333o......o33321o..........
+........o12223o........o32221o.........
+.......obbo333o........o333obbo........
+........oooooo..........Pooooo.........
diff --git a/parts_pl_src/body/pl_tombstone_c.txt b/parts_pl_src/body/pl_tombstone_c.txt
new file mode 100644
index 0000000..e505100
--- /dev/null
+++ b/parts_pl_src/body/pl_tombstone_c.txt
@@ -0,0 +1,54 @@
+# pl_tombstone_c: from pixellab_src/pl_tombstone_c/base.png (variant of pl_tombstone) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 37)
+# head_top at (31, 13)
+# back at (31, 40)
+# tail at (47, 51)
+..............ooo^ooooo.............
+...........ooo11xxxxxxxoooo.........
+.........ooxx1113333333xxcco........
+........oxxx3133333333333bcoo.......
+.......oxx33333333333332cc333o......
+.....ooxx333333333333333cc3332o.....
+....ocxx3333333322222333oc33333o....
+....oac33333222222222233oc33323o....
+....oobo233333222222223o2oo33222o...
+...ox3obo33233222222223o22o3333co...
+...ox33ob2221332oooo223222o333oboo..
+..ox232ob2122232oabo222222oo33aooo..
+..ox3322bo122222oabo2222322o2oao3o..
+..ox3222oo222222oabo222232222oc33o..
+..ox322133222ooooaboooo222222oc33o..
+..o3321132222oaaaabbbco222222oc33co.
+.oo3221232222obbbbbbcco223222oc33oco
+.oo3221232222oooobboooo223322oo33oco
+.oc3222233222222obbo22222332obo33oco
+.ocoo22232222222obco22222322obo33oc.
+..occc2222222222occo22222222bo233oo.
+..o3obo222222222occo22222222bo233ooo
+..o32oo222223322oooo22222222bo233ooo
+.oo322o2222332222222222222222o233ooo
+.oo3222222o2222222A22322232222233ooo
+oco322222o22222222222o322o3222233oco
+oco333222o22222222222oooo33323323oco
+oco323222oooooo22B222ooooooo23233oo.
+oco323222o22222o22222o1bbooo22333oo.
+oco322222o22222o22222o1awooo22333oo.
+oco3322222ooooo2222222oooo2222333o3o
+.oco3222222ooo222222222oo22222333ooo
+.oobo2222222222222222222222223333oo.
+.ooobo222aaa22222ooo22222aaa23333o..
+.oxobo222aaa22222o2oo2222aaa23333o..
+.ox3obo222222222o2223223222233333o..
+.o33obo22223322222222233333333333o..
+.o333ocoo333322222222222333333333o..
+..o33obbbo33322222222223333333333T..
+..o333b3obo333222222322333333333o...
+...o33o33obo33333333333333333333o...
+....o33333oco333333333333333333o....
+.....oooo3ooo3323333333333333ooo....
+.......oooooooooooooooooooooo.......
+........oo2333o......o3332oo........
+.......o12223o........o32221o.......
+......obbo333o........o333obbo......
+.......oooooP..........oooooo.......
diff --git a/parts_pl_src/body/pl_tombstone_d.txt b/parts_pl_src/body/pl_tombstone_d.txt
new file mode 100644
index 0000000..62a02d1
--- /dev/null
+++ b/parts_pl_src/body/pl_tombstone_d.txt
@@ -0,0 +1,55 @@
+# pl_tombstone_d: from pixellab_src/pl_tombstone_d/base.png (variant of pl_tombstone) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (31, 36)
+# head_top at (31, 14)
+# back at (31, 40)
+# tail at (48, 51)
+..........oooooo.........ooooo..........
+.......ooo111112oo....ooo11112ooo.......
+......o11122222233o..o11122222233o......
+.....o1122222222233^o1122222222233o.....
+....o11222222222233oo12222222222233o....
+...o112222222222223oo122222222222333o...
+..o1112222222ooo223oo122oooo22223333o...
+..o11222222obbbboo3oo1oobbcco22232333o..
+..o1222222obaabbbcoooobaabbcco2223333o..
+.o1122222obaaabbbbcoobaaabbbcco2232233o.
+.o122222obaabbbbbbbcobabbbbbbcco232223o.
+.o122222obabbbbbbbbcobbbbbbbbcco223233o.
+.o122222obabbbbbbbbcobbbbbbbbcco222333o.
+.o122222obabbbbbbbboobbbbbbbbcco222333o.
+.o122222obbbbbbbbboobbbbbbbbbcco222333o.
+.o122222obbbbbbbbbobbbbbbbbbbcco222333o.
+.o1222222obbbbbbbbobbbbbbbbbcco2222333o.
+.o1222222obbbbbbbbobbbbbbbbccco2222333o.
+.o12222222obbbbbbbbobbbbbbccco32222333o.
+.o122222223obbbbbbbobbbbbbcco322222333o.
+.o1222222223obbbbbbobbbbbcco3222222333o.
+.o12222222223ocbbbbobbbbcco32222222333o.
+.o122222222223ocbbbcobccco322222222333o.
+.o1222222222222occbboccoo3222222222333o.
+.o33222222222222ooccoco33222222222233o..
+..o332222222222233oAoo322222222222233o..
+..o2322222222222222oo3222222222222233o..
+..o22322222222oo222222222222222222233o..
+..o223222222ooooo2222222ooo2222222233o..
+..o22222222oo1cooo2B222ooo1o222222333o..
+..o22322222o1cwooo2222oowoc1o22222333o..
+..o22222222owcoooo2222oooocwo22223323o..
+..o22222222owaoobo2222ooooawo22223233o..
+..o22oo22222owbb3222223bbawo222222333o..
+..o2oabo22222333222222233332222232333o..
+..ooobboo22aaa22222oo22222aaa2223233o...
+..oaboobbo2aaa2222o22o2222aaa222ooo3o...
+..oaboocco222222222222222222222oaacoo...
+..oobobco3222222222222222222223occooo...
+..oobcoco322222222222222222oo233ooo3o...
+..oooooo33oooo222222222222oacoo33oooT...
+..oaabo33oabbbo22222222222obccco3oabo...
+.oocbboo3oaboco2222222222oocoocooobbcoo.
+oaacobbco3obooco22222222oabooccoaboocbco
+obbooobcooobobco32222222obccobcoabooocco
+.obbooccoo3ooco3332222222ooccooooccooco.
+.oabcbco3o3oooo333333322233ooo3oobcccco.
+.occocco3o3o33333333333333333o3ooccocco.
+..oooooooooooooooooPooooooooooooooo.oo..
diff --git a/parts_pl_src/body/pl_topiary.txt b/parts_pl_src/body/pl_topiary.txt
new file mode 100644
index 0000000..ef049c1
--- /dev/null
+++ b/parts_pl_src/body/pl_topiary.txt
@@ -0,0 +1,46 @@
+# pl_topiary: from pixellab_src/pl_topiary/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (29, 25) (from part/probe)
+# back at (38, 34) (from part/probe)
+# tail at (46, 42) (from part/probe)
+.........ooo....................
+......oooo11ooo.................
+.....o113112221ooo..............
+....o1121121112223o.............
+..oo322112121^2223o.............
+..o1312222222232323o............
+.o2333121232322333ooo...........
+.o333111213332331322o...........
+o2331222222333o11133o...........
+o33b332233233o212123oo..........
+oboo3b3b333o3o221223bo.....oo...
+.oboooo333o3oo323233bo....o11o..
+..o1o23ooo333ob333b3o....o1122o.
+...oo22331o133obb33booBo.o3223bo
+...oo1222oo123oob3bo1211ooo33bbo
+..o111211oo1233oooo3212221ooo3o.
+.oc3c111111223o33ooo32121213oo..
+.o22o111112233oooo3333222133o...
+.ocoo1111o33ooccooob332121232o..
+..oo2222oooocaccoo33233212223o..
+...ooooocccaacoA3b3233222122b3o.
+....oocoooccoo33o333222212233bT.
+....o3oacooo3333323322312332b3o.
+...o122oo33333312322233323233bo.
+...o212233233212222233223333b3o.
+...o2321222221212213323b32b333o.
+...o32321221221322333333333boo..
+...ob33b23323222323b3bb33ooobo..
+....o3b33b3bb3323b333o333o3bo...
+.....o3b33b333bbb333o3b3o3oooo..
+.....oo33o3o3333b3o3ooooooob2o..
+....o22oooooo333ooooo3oo33222bo.
+...o2122boo.ooooo3oooo.o3b323bo.
+....o32233o..o222bo3bo..obb3bo..
+....ob33b3o.o21123boo....oooo...
+.....ooooo..o3323bbo....o2o2o...
+....o1o1bo...ob3bbo......ooo....
+.....oooo....ooooo..............
+............o1o1bo..............
+.............ooPo...............
diff --git a/parts_pl_src/body/pl_topiary_b.txt b/parts_pl_src/body/pl_topiary_b.txt
new file mode 100644
index 0000000..f2705f7
--- /dev/null
+++ b/parts_pl_src/body/pl_topiary_b.txt
@@ -0,0 +1,55 @@
+# pl_topiary_b: from pixellab_src/pl_topiary_b/base.png (variant of pl_topiary) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 35)
+# head_top at (29, 12)
+# back at (38, 34)
+# tail at (49, 42)
+..............oo^ooooo...............
+............oo23322223ooo............
+.......ooooo3321222223322ooooo.......
+....ooo33332212222222222222223oooo...
+..oo222223323223322222233233333332o..
+.o222223321222222222332222332232223o.
+o2xxxxx33222222222223322222332233333o
+o222333xxxxxx22332313232222233333333o
+o2222x22222xxxx222222232223333332333o
+o2222222222222332xxx2223333333332333o
+o223x222222222223323x333333333333133o
+o2232232222222223322x333133333333333o
+o2222322322232222x22x333133333333333o
+o22223222232222223x2x333333333333333o
+o2323322233222223x232333333333333333o
+o2222wo23223322233322333333333333333o
+o2222oo2233332o222x23333333333333323o
+o2222oo212222woo22323333333333333333o
+o22333o111112ooo22223333333333333233o
+o23322o111111ooo22223333333333333233o
+o2322o11111111o222233333333333333333o
+o322o2331111113222223333333333133333o
+o333oc2o11111132222333313B33333333ooo
+o333oc2o1111133223A33333333333333occo
+.ooo3oo31133333223333333333333oooccco
+.oaaooo333333333332333333333ooccccooo
+.oaaaaaooooooo33322333333oooccccoo33o
+.oooaaaaoaaoccooo33333ooocccccoo3333o
+.o33oooooacoaaaaaoooooccccccoo333333o
+.o22333oaocbcoaaaaaacccccooo33333333o
+.o2233oaaooaaooooaaaccooo33333333313T
+.o222oaaco3oaco33ooooo33333333333333o
+.o232oaco33oaao332232333333333333133o
+.o2333oo3323oaao22223333333333133333o
+.o3333233222obo222223333333333333333o
+.o33332232223o323222233333333333333o.
+.o3333233233322332222333331333333oo..
+..oo33333333332333333331333333ooo2o..
+....ooooo3333323333333333333oo2222o..
+.....o222oooo3333333333333oo222223o..
+.....o3322222oooo333333ooo.o222223o..
+.....o3332222o.o2oooooo2o..o222222o..
+.....oo333222o.o22222222o..o333322o..
+.....o1oo122o..o33222222o..o13o32o...
+.....o1o112o...o23332222o...ooooo....
+......ooooo....oo333322o.............
+...............o1o11322o.............
+...............o1o1132o..............
+................ooPooo...............
diff --git a/parts_pl_src/body/pl_topiary_c.txt b/parts_pl_src/body/pl_topiary_c.txt
new file mode 100644
index 0000000..c4a83b5
--- /dev/null
+++ b/parts_pl_src/body/pl_topiary_c.txt
@@ -0,0 +1,64 @@
+# pl_topiary_c: from pixellab_src/pl_topiary_c/base.png (variant of pl_topiary) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 32)
+# head_top at (29, 4)
+# back at (38, 34)
+# tail at (46, 42)
+.........ooo.....................
+......ooo311oo^..................
+.....o112112221ooo...............
+....o1121111112223o..............
+..oo32211212112223o..............
+..o1322222222232323o.............
+.o2332121232322333ooo............
+.o323111213332331322o............
+o2331222222333o11133o............
+o33b332233233o212123oo...........
+oboo3b3b333o3o222223bo...........
+.oboooo333o3oo322233bo...........
+..o1o23ooo333ob333b3o............
+...oo12331o133obb33bo............
+...o11112oo123oob3bo.............
+..o111111331233oooo..............
+.occc111111223o33o...............
+.o22o11111133o333o...............
+..oo11113ooo33333o...............
+...oooooo33333333o...............
+........o33223333o...............
+........o221133cco...............
+........o1111333co...............
+........o11113333o...............
+........o11113333o..........ooo..
+........1111133aco.........o111o.
+.......o1111133cco........o2122o.
+.......o111113333o.oooooo.o3223bo
+.......cc11113333oo221211ooo33bbo
+.......o1111ac3A333322122111o33o.
+.......o1111cc3333332222122c1oo..
+......o111111333323232cB222c22o..
+.....o3111111332222222c2221122o..
+....o231111111322ac222222122221o.
+....o221111112222cc222222222322o.
+...o2212111312222222323222323323o
+...o2121333222112222233223323333o
+...o32212222211212233333c3333b33o
+...o32331222222122333333333b3b33o
+...o33ab23332322332333b33333333T.
+....o3b333b3b332c33b33333ooo333o.
+....o33333b333bbcb33o33co33oooo..
+.....oo3333333333333oooooo333o...
+......ooooooo333333oo33o.o333o...
+.......o33o..o333oo.o33o..o33o...
+.......o33o...ooooo..o33o.o33o...
+.......o33o...o33oo...o3o..o33o..
+.......o13o...o13oo...o3o...o3o..
+.......o11o...o11oo...o3o...o3o..
+.......o13o....o1o....o3o...o1o..
+.......o1o.....o1o....oo....o1o..
+.......o1o.....o1o...o3o....o1o..
+.......o1o.....o1o..oo3o....o1o..
+.......o1o.....o1o.o333o...o22o..
+......o11o.....o1o.oooo...o3o3o..
+.....o233o....o11o.........ooo...
+......ooo....o2o3o...............
+..............ooP................
diff --git a/parts_pl_src/body/pl_topiary_d.txt b/parts_pl_src/body/pl_topiary_d.txt
new file mode 100644
index 0000000..239a9a0
--- /dev/null
+++ b/parts_pl_src/body/pl_topiary_d.txt
@@ -0,0 +1,64 @@
+# pl_topiary_d: from pixellab_src/pl_topiary_d/base.png (variant of pl_topiary) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 30)
+# head_top at (29, 3)
+# back at (38, 34)
+# tail at (48, 42)
+.................o^oooo...................
+...............oo221111oo.................
+.............oo3211111112oo...............
+..........oooo221111111111oooooo..........
+........oo1113221111111111222222oo........
+.......o1111122211111111112221112oo.......
+......o1111111111111111222221111222o......
+.....o21111121111111112222211111222o......
+.....o222112211111111122222111112223o.....
+....o3222222211111111222221111222222o.....
+....o3222222222111122222211112222223o.....
+...o2222a2222222112222221111222222233o....
+..o32212222222222222222221112222232333o...
+..o311122212222222222222222233222333333o..
+..o211122111112222222222222233222333333o..
+.o32112222111112111232222222223333333333o.
+.o32222222211111211232222222223333333333o.
+o3322223222121112222232222222233333333b3o.
+o332222322222111222233322223233111333333o.
+o3b2222322222222222233332233332111113o3o..
+o332233332222222222233333333332111111o3o..
+.o333b3332322222233233b33333o321111121ooo.
+.o33333333322233333323b33333o3111111212oo.
+.oo3333b333b333333333333333o331111112222o.
+.oo33333333333333333o333333o3311112222223o
+o23o333ooo333333333o2oo33o3o3321112212323o
+o223oooo22oo33333ooo233ooooo3322112222333o
+o32233oo222oooooo2222A22222o3322222222333o
+o3b2233o2ooo22222221oooo122o33b2233223333o
+.o32233o11oo222221111ooo112o333222233333o.
+.o3b333o1ooo11111111oooo112o3333b3333333o.
+..o3333o1ooo11111111oooo112Bo333b333b33b..
+...oo3oo1ccc11111111oocc1122oo33b33333bo..
+....ooo2aa11occc1111111aaa222o33b33333o...
+......o2aa11o22co111111aaa222ooo3ooooo....
+.......o11111oco111111111222oo.ooooo......
+........o21111o111111112222o....oo31o.....
+.........oo2111111111222ooooooo.o3221o....
+...........ooooooooooooocco333ooo3323o....
+...........oocccccccccccoo3333333o333T....
+...........o3oocccaaaooo3333333223o3o.....
+..........o3333oooooo3333332322322oo......
+..........o212233333332222322222122o......
+..........o2112222222221222222222222o.....
+..........o2212211122211222222222112o.....
+..........o332121122121222232b322112o.....
+...........o323222222233223323322222o.....
+...........o3333b3323b33b2333o322222o.....
+............oo3b33333332233o3o332222o.....
+............ooo3333o3322223ooo332232o.....
+............o33oo33o3222223o3oo333333o....
+............o2333ooo332223o33o.o3b333o....
+............o22333oo332233o33o..o333o.....
+.............o333o.o333333ooo...o222o.....
+.............o223o..o3333o......o212o.....
+............o112o...o1112o.......ooo......
+.............ooo...o1111o.................
+....................Pooo..................
diff --git a/parts_pl_src/body/pl_tortoise.txt b/parts_pl_src/body/pl_tortoise.txt
new file mode 100644
index 0000000..12783e3
--- /dev/null
+++ b/parts_pl_src/body/pl_tortoise.txt
@@ -0,0 +1,49 @@
+# pl_tortoise: from pixellab_src/pl_tortoise/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 40)
+# head_top at (31, 21) (from part/probe)
+# back at (32, 31)
+# tail at (52, 42)
+...................oooooo...........ooooo...
+...............oooo321123ooo......oo11111o..
+.............oocbc32111123ccoo...o11111111o.
+...........oo33bab311^1112aab3oo.o11131aa11o
+.........oo2113bbo111111113bb312oo211o1aa11o
+........oc11112co21111222223c11111o21o32211o
+.......oc211113322222oo223223o11112o11ooo11o
+......o321111o111133caac331111o1112o2111111o
+.....o332111o11111ocbaabco11111o122o2111111o
+....o112222o111111ocbbbbco111112o22o2211112o
+....o113ooo3211113333333333112223oooo21111o.
+...o212cbbco21133111111111133222ocbbo21333o.
+...o21caabco23311111111111111332obaao21333o.
+..o223cbabcooo11122222B23222112oobbbo11133o.
+..o333cbbco23211322ooooooo2231122ocbo1113o..
+.o32213cco231133ooo2111111ooo33132oco3113o..
+.o31111oo231133ocbc1111111ccco31232o11333o..
+.o222112oo213ocbbaabc1111caaabco313o11333oo.
+.o222213o1133cbcbbcabc11cabbcbbc323o1133o2o.
+o322223o21333occccccbc11cccccbcc33o11333o2o.
+o32222o212ooooooaoooc2112yooaoooooo1133o22o.
+o3o22o2233oooo2o133o311122331o3ooo31333o32o.
+ooooo2233oooo2121co211A112co1313o31333o33oo.
+o2211ooooyoo31a12221111133o331ao31133o33313o
+o3333ooooooo3111111111111122ooo31133ooo322To
+.ooooozzzzzzo3111oo1111111111111333oozzoooo.
+..ozzzzzxxxzo333o11oo3333311113333oozzzzzo..
+...ozzxzzxxzzo3331111oooo3333333oozz3xzzo...
+....oozzxxzxxzoo333333333oo333ooxzxz3zoo....
+...o33oozzzxxx3yoo333333333ooozxxzzzoo3o....
+..o11133ozzzzxxooooooooooooyyyxzzzzo3311o...
+.o1111133oozz3zzooooyyyyyoooozzzzoo331111o..
+.o1bc111133oozzzzzzoooooozzzzzzoo331111b1o..
+.ocabc11o3o.oooozzzzzzzzzzzzzooo.o3o11cabo..
+.o1bc113oo..o3oooooyyyyyoooooo3o..oo311b23..
+.o111113oo.occ333ooozzzzoooo33cco.oo311111o.
+.o1111133o.occ333oo.oooo.ooo33cco.o3311111o.
+.o1111133o.o333333o......o333333o.o3311111o.
+.o3111333o.o333333o......o333333o.o3331113o.
+.o3313333o.oo33333o......o333333o.o333313oo.
+.o1231233o.o2o1233o......o3321o2o.o3321321o.
+.o1131133o.o1o12o3o......o3311o1o.o3311311o.
+.ooooooooo.oooooooP......oooooooo.ooooooooo.
diff --git a/parts_pl_src/body/pl_tortoise_b.txt b/parts_pl_src/body/pl_tortoise_b.txt
new file mode 100644
index 0000000..5fae7bc
--- /dev/null
+++ b/parts_pl_src/body/pl_tortoise_b.txt
@@ -0,0 +1,60 @@
+# pl_tortoise_b: from pixellab_src/pl_tortoise_b/base.png (variant of pl_tortoise) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (33, 39)
+# head_top at (31, 24)
+# back at (32, 31)
+# tail at (56, 42)
+........................................oooooo......
+......................................oo211112o.....
+.....................................o1112221112o...
+....................................o2222aaa21112o..
+....................................o122caaa22222o..
+...................................o2222caoo22222o..
+...................................o22222boo22222o..
+...................................o2222222222222o..
+..................................o2223222oooooo2o..
+..................................o2223222222222o...
+..................................o2223333333233o...
+..................................o2223oo333333o....
+..................................o2223oooooooo.....
+..................................o2223333o.........
+..................................o222233o..........
+..................................o222223o..........
+..................................o222223o..........
+.....................oooo^oo......o222223o..........
+.................oooo222caaaooo...o322123o..........
+...............oo33221111122233oo.o322122o..........
+.............oo333211111233333333oo322122o..........
+............oc3333333323o3333ca2333o32222o..........
+...........oc21133cabo3331223caa333o322122o.........
+..........o322113caaac31111233aa333o322122o.........
+.........o3222113caaac3112B222oo333o322222o.........
+.........o32221233ccco31222222o33oooo222122o........
+........o33322233333333312223o33o113o222122o........
+.......o2233333331111233333oo33o1133o322122o........
+.......o223cac33112211233cbco3o21333o3221222o.......
+......o223caac3222222213caaaooo2133oo3222222o.......
+......o223caac3222222213caaboo2233oo33222222o.......
+oo..oooo233cc3332222o2333ccoo22233oo33222223oo.o..oo
+o1oo1oo133333333322o1o33333A21233ooo32222223ooo1oo1o
+o11oo33133333ooo33311o33o3o22333ooo33322333o33o3211o
+o1211331133o3oo1o331113313o2333ooo33333333oo332o122o
+o22111311331o3o11oo111331333oooooo33333333oo331231T.
+.oo121132121221111o2312121333ooooo3333333ooo33313oo.
+..oo23132122122211o2312231ooozzyxxooo333oozzo331o...
+....oo22ooo21o2231oo222ooozzzooyxxxxxoooxxxzoooo....
+......oozzoooooooozzooozzoooo33oyyyxxxxxxxzo........
+.......ooozzzz222ozzzzzzo322212oyyyzzzzzzzoo........
+......o333ooozzzxooyzzzo32221122ozxxxxxxzo33o.......
+.....o22233oooozzzozzzzo32211112ozzzzzoooo222o......
+.....o2c2233ooooozzzooooo3222b22ozzoooooo322co......
+.....obac223oo..oooo2oooo32caac2oooo..oo332cao......
+.....o2c3223oo..o333ooooo322bb22o33o..oo3322co......
+.....o222223oo.occ333oo.o3222222o3cco.o333222o......
+.....o222233oo.occ333oo.o3322222o3cco.o333222o......
+.....o2222333o.o333333o.o3322222o333o.o333222o......
+.....o3223333o.o333333o.o3332222o333o.o3332223o.....
+.....o3323333o.o333333o.o3333233o333o.o3333333o.....
+.....o1231233o.o231233o.o3311311o232o.o3321311o.....
+.....o1131133o.o231133o.o3311311o231o.o3311311o.....
+.....ooooooooo.oooooooo.oPooooooooooo.ooooooooo.....
diff --git a/parts_pl_src/body/pl_tortoise_c.txt b/parts_pl_src/body/pl_tortoise_c.txt
new file mode 100644
index 0000000..4d0483e
--- /dev/null
+++ b/parts_pl_src/body/pl_tortoise_c.txt
@@ -0,0 +1,58 @@
+# pl_tortoise_c: from pixellab_src/pl_tortoise_c/base.png (variant of pl_tortoise) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 36)
+# head_top at (31, 9)
+# back at (32, 31)
+# tail at (53, 42)
+...............oooooo^ooooooo...............
+.............oo22222222222233oo.............
+............o222222222222223333o............
+..........oo22221222222222223333oo..........
+.........o222112112222222222223333o.........
+........o22211112122222222222223333o........
+.......o2221111122222222222222223333o.......
+......o222111112222222222222222223333o......
+.....o22221111222222222222222222233333o.....
+.....o22222112222222222222222222223333o.....
+....o2222122222222222222222222222233333o....
+....o2221112222222222222222222222223333o....
+....o2222222222222222222222222222223333o....
+...obbbb2222222222222222222222222223cccco...
+..oaaaaaaaccccccccccccccccccccccccccccccco..
+..oaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccccccco..
+..oaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccccccco..
+.o22222bbbbcccccccccccccccccccccccccc33333o.
+.o2222222222222233333333333332222222233333o.
+.o2221112222222332111122222233322222233333o.
+.o2221112222233112222222222222332222233333o.
+.o2221112222331233333333333333233222233333o.
+.o2221112222323333ooooBooooo33323322233333o.
+o22221112233233ooo1111111133oo3323333333333o
+o22221112232333o31111111111133o331333333333o
+o2222222232233o3ccc1111111ccc33o33233333333o
+o222222233233o1caaac11111caaac3o33233333333o
+o22222233233o1caaaaacA11caaaaac3o3213333333o
+o22222232233o1caaooac111caaoaac333322333333o
+o2222223133o11caaoooc111coooaac33o332333333o
+o2223332233o111caaac11111caaac333o332233333o
+oooo112233o31111ccc2111111ccc3133oo33222oooo
+o22223333oo11111111111111111111133oo3332333o
+o333333oooo11111111111111111111133ooo333333T
+.oooooozzzo111111111ooooo111111133ozzoooooo.
+..ozzzzzxxo31111111o11111oo1111133oxzzzzzo..
+...ozzxzzxxo311111311111111111333oxxzxzzo...
+....oozzxxzzo3311111111111111333ozxxzzoo....
+...o33oozzzxxo33311111111133333oxzzzoo3o....
+..o11133ozzzzxo33333333333333oozzzzo3311o...
+.o1111133oozzzzooo333333333oozzzzoo331111o..
+.o1bc111133oozzzzzooooooooozzzzoo331111b1o..
+.ocaac11o3o.oooozzzzzzzzzzzzzooo.o3o11caao..
+.o1bc113oo..o3oooooyyyyyyyoooo3o..oo311c23..
+.o111113oo.occ333ooozzzzoooo33cco.oo311111o.
+.o1111133o.occ333oo.oooo.ooo33cco.o3311111o.
+.o1111133o.o333333o......o333333o.o3311111o.
+.o3111333o.o333333o......o333333o.o3331113o.
+.o3313333o.oo33333o......o333333o.o333313oo.
+.o1231233o.o2o1233o......o3321o2o.o3321321o.
+.o1131133o.o1o12o3o......o3311o1o.o3311311o.
+.ooooooooo.oooooooP......oooooooo.ooooooooo.
diff --git a/parts_pl_src/body/pl_trilobite.txt b/parts_pl_src/body/pl_trilobite.txt
new file mode 100644
index 0000000..a386b7f
--- /dev/null
+++ b/parts_pl_src/body/pl_trilobite.txt
@@ -0,0 +1,46 @@
+# pl_trilobite: from pixellab_src/pl_trilobite/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (32, 26) (from part/probe)
+# back at (32, 40) (from part/probe)
+# tail at (50, 51)
+........oo..................oo........
+.......o3o.....oooooooo.....o3o.......
+......o33o...oo11111111oo...o33o......
+.....o32o..oo111111111111oo..o32o.....
+....o322ooo3331111111111333ooo222o....
+...o322ooo23b321111^11123b22ooo223o...
+..o3322oo22222233333333222222oo2222o..
+..o333oo2222222222222222222222oo332o..
+.o3223o222221112222222111122222o3222o.
+.o3222o222222111122221111222222o2222o.
+o2323o22222oooo112222111oooo2223o3232o
+o2232o2222ocbbco1122211ocbbco223o2222o
+o2223o222ocwwabco12221ocwwabco22o3222o
+ob222o322obwwcabo12221obwwcabo22o222bo
+ob222o222obaccabo22222obaccabo22o222bo
+ob222o211ocbaaaco22222ocbaaaco12o222bo
+ob222o2112ocaaco3222222ocaaco312o222bo
+.ob222o2112oooo322222222oooo312o222bo.
+.ocb22oo22122222211111222222122o22bco.
+..oob22oo322111111AB1111112233o22boo..
+.ooooo2oooooo221111111122oooooo2ooooo.
+.o3o33oooo33ooo23222222ooo33oooo33o3o.
+o33o3333o33322oooooooooo33333o3333o33o
+a3ooo333o33222333333333322233o333ooo3a
+ooooooooo33333111111111133333ooooooooo
+..o32333o32222333333333322223o33322o..
+.o323333o33222111111111122223o333322o.
+.o2oooooo33333333333333333333oooooo1o.
+..oo2223o33222222222222222233o3222oo..
+.o222333o33333111111111133333o332322o.
+o112oo33oo333333333333322222oo33oo211T
+o12ooooooo332211111111112222ooooooo21o
+1oo.ooo22o333333333333333333o32ooo.oo1
+.....o212oo3332222222222223oo322o.....
+.....o12oooo33311111111233oooo32o.....
+.....o1ooo33o333333333333o33ooo2o.....
+.....ooo.o33o333322222333o33o.ooo.....
+.........oa3ooo33222223ooo3ao.........
+..........oooooooooooooooooo..........
+...............oooPoooo...............
diff --git a/parts_pl_src/body/pl_trilobite_b.txt b/parts_pl_src/body/pl_trilobite_b.txt
new file mode 100644
index 0000000..8c7ac78
--- /dev/null
+++ b/parts_pl_src/body/pl_trilobite_b.txt
@@ -0,0 +1,62 @@
+# pl_trilobite_b: from pixellab_src/pl_trilobite_b/base.png (variant of pl_trilobite) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 33)
+# head_top at (32, 5)
+# back at (32, 40)
+# tail at (50, 51)
+................ooo^oo................
+.............ooo333333ooo.............
+............o222222222233o............
+..........oo31111112222233oo..........
+.........o321111111122222333o.........
+........o32111111111122222333o........
+.......o3211111111111122222333o.......
+......o222111111111111122222333o......
+......o221111111111111122222333o......
+.....o32211111111111111222223333o.....
+.....o32211111111111111222222333o.....
+....o3322211111111111112222223333o....
+....o3322221111111111112222223333o....
+...o333222222111111111222222333333o...
+..o3333222222221111122222222333333oo..
+oo3133333222222222222222222333333333oo
+ob1113333222222222222222232333333322bo
+ooo11111333333332222223333333322222boo
+.oo3b1111111111333333322222222223b3oo.
+..ooo33b3111111111111222222223b3ooooo.
+.o3oooooo33cb333cb112a333bb333ooooo2o.
+.o2223o2ooooo33333333333oooooo2o3222o.
+.o3222o22222oooooooooooooo22222o3222o.
+o2323o22222oooo112222111oooo2223o3232o
+o2232o2222ocbbco1122211ocbbco223o3222o
+o2223o222ocwwabco12221ocwwabco22o3222o
+ob222o322obwwcabo12221obwwcabo23o222bo
+ob222o222obaccabo22222obaccabo22o222bo
+ob222o211ocbaaaco22A22ocbaaaco12o222bo
+ob222o2112ocaaco3222222ocaaco312o222bo
+.ob222o2112oooo322222222oooo312o222bo.
+.ocb22oo32122222211111222222122o22bco.
+..oob22oo322111111111111112233o22boo..
+...ooo2oooooo321111111122oooooo2ooo...
+.....ooooo33ooo33222222ooo33ooooo.....
+.......oo33322oooooBoooo33333oo.......
+....oooooo332222222222222233oooooo....
+.ooo333ooooo32222222222233oooooo33ooo.
+o33o3333o33333333333333333333o3333o33o
+a3ooo333o33322333333333322233o333ooo3a
+ooooooooo33333111111111133333ooooooooo
+..o32333o32222333333333322223o33322o..
+.o323333o33222111111111122233o333322o.
+.o2oooooo33333333333333333333oooooo1o.
+..oo2223o33222222222222222233o3222oo..
+.o222333o33333111111111133333o333322o.
+o112oo33oo333333333333322222oo33oo211T
+o12ooooooo332211111111112222ooooooo21o
+1oo.ooo22o333333333333333333o32ooo.oo1
+.....o212oo3332222222222233oo322o.....
+.....o12oooo33311111111233oooo32o.....
+.....o1ooo33o333333333333o33ooo2o.....
+.....ooo.o33o333322222333o33o.ooo.....
+.........oa3ooo33222223ooo3ao.........
+..........oooooooooooooooooo..........
+...............oooPoooo...............
diff --git a/parts_pl_src/body/pl_trilobite_c.txt b/parts_pl_src/body/pl_trilobite_c.txt
new file mode 100644
index 0000000..966ab46
--- /dev/null
+++ b/parts_pl_src/body/pl_trilobite_c.txt
@@ -0,0 +1,59 @@
+# pl_trilobite_c: from pixellab_src/pl_trilobite_c/base.png (variant of pl_trilobite) (pixellab_library.py extract)
+# pivot at (36, 59)
+# aura at (32, 32)
+# head_top at (32, 8)
+# back at (32, 40)
+# tail at (46, 51)
+........oo...............oo........
+.......o2o....ooo^ooo....o2o.......
+......o23o..oo1111111oo..o33o......
+.....o32o.oo11111111111oo.o32o.....
+....o222oo222111111111222oo322o....
+...o322oo22b22111111111b22oo323o...
+..o3233o2221121111111111222o3323o..
+.o3223o222211111111111112222o3222o.
+.o3222o222221111111111112222o2222o.
+o2323o2222oooo11111111oooo222o3232o
+o2222o222ocbbco111111ocbbc222o2222o
+o2222o22ocwwabco1111ocwwabc22o2222o
+ob222o22obwwcabo1111obwwcab22o222bo
+ob222o21obaccabo1222obaccab22o222bo
+ob222o21ocbaaaco2222ocbaaac12o222bo
+ob222o211ocaaco222222ocaaco12o222bo
+.ob222o212oooo22222222oooo12o222bo.
+.ocb22oo21222222111122222222o22bco.
+.ooob2ooo222211111111122222oo2booo.
+.o3o33ooooooo221111122ooooooo33o3o.
+o33o333oo3333oooooooooo33o33333o33o
+o3ooo333o3333333333333333o3333ooo3c
+aoooooooo3333222222223333ooooooooo.
+...o2223o3322111111113333o33333o...
+...o2222o3322111aa1111333o33332o...
+..o223ooo3321111aA1111233o333332o..
+..o22oooo3321111bb1111233oooooo2o..
+..obooooo3321111111111233o2oo..oo..
+..oo..ooo3321111111111233o22o......
+......o2o3321111ab1111133o22o......
+.....o22o3321111ab1111133o22o......
+.....o22o3321111ab1111133o22o......
+.....o22o3322111111111133o222o.....
+.....o22o22221111B1111233o222o.....
+....o222o2222111aa1111233o3222o....
+....o22oo2222111aa1111233oo222o....
+...o222oo2222111bb1111223oo3222o...
+...o222oo2222111111111223o.o321o...
+...o22o.o2222111111111223o..o21o...
+...o32o.o2222111111111222o..o21o...
+..o22bo.o2222111aa1111222o..o211o..
+..o12oooo3322111aa1111222o..o211o..
+..o1ooooo3322111bb1111222oo..o21o..
+..o1o.o3o332211111111122333o..o1o..
+..ooo.32oo33221111111222o32o..oT...
+.....o22oo33322222111222oo32o......
+.....o23ooo3322222222222o.o2o......
+.....o2o.ooo32222222222oo.o2o......
+......oo.o3ooo22222222o3o..oo......
+.........o333o222222oo33o..........
+.........o333oooooooo333o..........
+.........oa33o......o33co..........
+..........ooo........Poo...........
diff --git a/parts_pl_src/body/pl_trilobite_d.txt b/parts_pl_src/body/pl_trilobite_d.txt
new file mode 100644
index 0000000..25d0386
--- /dev/null
+++ b/parts_pl_src/body/pl_trilobite_d.txt
@@ -0,0 +1,50 @@
+# pl_trilobite_d: from pixellab_src/pl_trilobite_d/base.png (variant of pl_trilobite) (pixellab_library.py extract)
+# pivot at (27, 59)
+# aura at (31, 38)
+# head_top at (32, 17)
+# back at (32, 40)
+# tail at (54, 51)
+.............oo..................oo.............
+............o3o.....oooo^ooo.....o3o............
+...........o33o...oo11111111oo...o33o...........
+..........o32o..oo111111111111oo..o32o..........
+.........o322ooo3331111111111333ooo222o.........
+........o322ooo33b321111111123b22ooo223o........
+.......o3322oo22222233333333222222oo2222o.......
+.......o333oo2222222222222222222222oo332o.......
+......o3333o222222222222222222222222o3232o......
+......o3223o222221112222222111122222o3222o......
+......o3223o222232111122221111122222o2222o......
+.....o2323o22222oooo112222111oooo2223o3232o.....
+.....o2232o2222ocbbco1122211ocbbco223o2222o.....
+.....o2223o222ocwwabco12221ocwwabco22o3222o.....
+.....ob222o222obwwcabo12221obwwcabo22o222bo.....
+.....ob222o222obaccabo22222obaccabo22o222bo.....
+.....ob222o211ocbaaaco22222ocbaaaco12o222bo.....
+.....ob222o2112ocaaco3222222ocaaco312o222bo.....
+......ob222o3112oooo322222222oooo313o222bo......
+.....ooob22oo31122222211111222222133o22booo.....
+....o333ob22oo311111111111111112233o22bo333o....
+...o32233ooooo33331111111111111233ooooo33222o...
+..ocaa2233o333ooo333332A2222222ooo333o3332aaco..
+..oaaa2233o333333oooooooooooooo3333333o332aaao..
+.o3cc2223o33222333333333B3333333322333o3221cc3o.
+.o1112233o3222222111111111111111222223o3321112o.
+o3111233oo32222211111111111111111322233o3311113o
+oaa1123oo332222111111111111111111222223oo3111aco
+oaa1133oo33222111111111111111111122222coo3311aco
+o21113ooo3a2221111111111111111111132233ooo33112o
+o21133ooo3aaa31111111111111111111132233ooo33112o
+oca111ooo33aa33111111111111111111332aaaooo111aao
+oca1312oo333233111111111111111111333aaaoo3131aao
+o2113o3o.o333333111111111111111113333bo.o3o3112o
+o3113ooo.o3333333111111111111111333333o.ooo3122o
+.o313o....o33333331111111111112333333o....o313T.
+..oo3o.....o333a33331111111113233333o.....o33o..
+...ooo......oo3c33333333333333bb33oo.......oo...
+............o3ooo3333333333333booo3o............
+............o3333oooo3333333ooo3333o............
+............o222333oooooooooo333322o............
+...........o3112333o........o3333113o...........
+...........oa112323o........o322111ao...........
+............oooooooP........oooooooo............
diff --git a/parts_pl_src/body/pl_urchin.txt b/parts_pl_src/body/pl_urchin.txt
new file mode 100644
index 0000000..8358ea5
--- /dev/null
+++ b/parts_pl_src/body/pl_urchin.txt
@@ -0,0 +1,38 @@
+# pl_urchin: from pixellab_src/pl_urchin/base.png (pixellab_library.py extract)
+# pivot at (29, 58)
+# aura at (31, 44)
+# head_top at (31, 32) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (50, 50)
+...................cc...................
+..............c...oaao...c..............
+.............cao..oyyo..oac.............
+.............oyo..o11o..oyo.............
+........ac...o11o.o12o.o11o...ca........
+........cy2o.o212o3^23o212o.o2yc........
+........o211oo222122221222oo112o........
+....ac...o22233111211211133222o...ca....
+....cy2o.o22113111233311131122o.o2yc....
+....o211oo33212111111111121233oo112o....
+.....o223123o21133333333112o321322o.....
+.....o3311122133221B11223312211133o.....
+.acoooo32122332111111111223322133ooooca.
+.cy1123222232111111111111112322223211yc.
+..o322o32232111111111111111123223o223o..
+...o3o332321111111111111111112323333o...
+..ooo32233111ooo11111111ooo11123223ooo..
+ba1113223211owooo11A111owooo1113223111ab
+co322o2o211oowwoo111111owwooo11332o223oc
+..oo332o211oo3o3o111111o3o3oo112o333oo..
+...oo233211132o2311111132o231112o32oo...
+..o122o32111122211111111222111123o221o..
+.c2223o3211111111c1111c1111111123o3222c.
+.ccoooo33211111111cccc11111111233oooocT.
+....o33o332211111111111111112233o33o....
+....o23o333322111111111111223333o32o....
+...c233oo3333322222222222233333oo332c...
+...ccoo3ooo333333333333333333ooo3oocc...
+......o3obcoo33333333333333oocbo3o......
+.......ooacooccoccooooccocboocaoo.......
+.........oo.oacoaco..ocaocao.oo.........
+.............oo.oP....oo.oo.............
diff --git a/parts_pl_src/body/pl_urchin_b.txt b/parts_pl_src/body/pl_urchin_b.txt
new file mode 100644
index 0000000..55e0afd
--- /dev/null
+++ b/parts_pl_src/body/pl_urchin_b.txt
@@ -0,0 +1,39 @@
+# pl_urchin_b: from pixellab_src/pl_urchin_b/base.png (variant of pl_urchin) (pixellab_library.py extract)
+# pivot at (31, 56)
+# aura at (31, 42)
+# head_top at (31, 24)
+# back at (31, 38)
+# tail at (52, 50)
+.....................^c.....................
+....................ozao....................
+...............c....ozzo....c...............
+..............cac...o11o...czc..............
+..............ozo...o12o...ozo..............
+........bcc...o11o..o22o..o11o....cb........
+........czao..o212oo3333oo312o..ooac........
+........ocz1o.o233331bc333332o.o11ao........
+.........o212oo33211cbb311233oo212o.........
+....ac....o22331ccccbaabcccc32322o....ca....
+....caoo..o333111cbaaaaaabc311233o..ooac....
+....oc11oo33111111caaaabbc11111133oo11co....
+.....o211o311a1111baaaaaac1111a1333112o.....
+......o22331aa111caccabbbbc111a313322o......
+.bcoo.oo33111113cc32cBbc2ccc211o11233o.oocb.
+.ca12ooo32a2113c21112bb1112cc31122233oo21zc.
+..o2112322co132111112bc1111112322oa332112o..
+...o322o2221321111111cc1111111232oo33223o...
+....o3322223211111111A11111111123222233o....
+.ooooo322233111ooo11111111ooo111232223ooooo.
+ca111333223211o1ooo111111o1ooo111322a33111ac
+co22333223211oo11oo111111o11ooo113o2233223oc
+..oo3332ao211oo3o3o111111o3o3oo112o2223ooo..
+...oo3223o211132o2311111132o231112ooc23oo...
+...oo322332111122211111111222111123oa23oo...
+..o1233233211111111c1111c1111111122oo2321o..
+.ca2333ao33211111111cccc11111111233323332aT.
+.ccoo33o3333221111111111111111223333333oooc.
+...oo3333333332211111111111122333333333oo...
+....oo333o3333332222222222223333333333oo....
+.....oooooo3333333333333333333333oooooo.....
+..........ooooo33333333333333ooooo..........
+..............oooooooPoooooooo..............
diff --git a/parts_pl_src/body/pl_urchin_c.txt b/parts_pl_src/body/pl_urchin_c.txt
new file mode 100644
index 0000000..3541032
--- /dev/null
+++ b/parts_pl_src/body/pl_urchin_c.txt
@@ -0,0 +1,45 @@
+# pl_urchin_c: from pixellab_src/pl_urchin_c/base.png (variant of pl_urchin) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (32, 41)
+# head_top at (31, 21)
+# back at (31, 38)
+# tail at (46, 50)
+..................^c...................
+.............cc...cao...cc.............
+.............cc...oyo..oac.............
+.......cc....oyoc.o2o..oyo.............
+.......cbc...o22co323oo22o..oca........
+........cyo.oo33c33333322o.oybc........
+........o22o333cac33223333o31bo........
+........o22333232332222a23322o.........
+...cco...3332223332222cac2333o...occ...
+...cayooo3322a2222222cacc22333oooycc...
+....o2223322cacc222223abc22223331yo....
+....o3333222bcac222222333222223223o....
+.....oo32222bb331111222222222cc3oo.....
+.....o3cc2223331111112222222aca3oo.....
+ccooooaca3222111111112222223acc33oooocc
+cc2233cca32222111111222222233ac33321ybc
+..o3333c3322221111122222222233323333o..
+...o33333222222222B222222222222233oo...
+...o3322222222222222222222222222333o...
+..oo33222222222o2222222222222222333oo..
+cc123322222222oo222A222ooo22222333322cc
+cc333322223223o2222222o333o22232ac333cc
+..oo333322oooo2222222222222o2232cbaoo..
+...o33aa322222222222222222222232ac3o...
+...o3aca322222222oooo2222222222oc33o...
+...oo3cc32222222o2223o2222222223333o...
+..c3233o3222222222222222222222333332o..
+.ccc33333322222222222222222223333o33ac.
+.ccooo33333322222222222222233333oooocc.
+.....oo33333322222222222333333333T.....
+.....o2333caa333333333333oaac3o333o....
+....oy23o3bcao33333333333oacc3oo2ao....
+...cb3oooobcc333333333333occ2oooocbc...
+...cco..o33333o3333o33o33333o3o..occ...
+........o33oooo22ooo22oooooocao........
+.......ocacoo3o2yooo22oo33oocabo.......
+.......oa3oo33oaco.ocaoo32o.ooao.......
+.......oooo.oooac...caooooo.oooo.......
+...............cc...Pc.................
diff --git a/parts_pl_src/body/pl_urchin_d.txt b/parts_pl_src/body/pl_urchin_d.txt
new file mode 100644
index 0000000..138353e
--- /dev/null
+++ b/parts_pl_src/body/pl_urchin_d.txt
@@ -0,0 +1,60 @@
+# pl_urchin_d: from pixellab_src/pl_urchin_d/base.png (variant of pl_urchin) (pixellab_library.py extract)
+# pivot at (31, 58)
+# aura at (32, 32)
+# head_top at (31, 5)
+# back at (31, 38)
+# tail at (46, 50)
+...................^c...................
+..................oaao..................
+..............ac..oyyo..ca..............
+..............oyo.o21o.oac..............
+..........ac..o13oo23oo31o...ca.........
+..........cyo.o2233233322o..oyc.........
+..........o13o33332222233ooo2yo.........
+......ac..o223332222222233o22o...a......
+......cyo.o322222222222223323o..ca......
+.......a1oo33211112222222233ooo3yc......
+.......o323321111122222222233o32o.......
+....ac..o33221111122222222223333o.ca....
+....cy2oo3222211122222222222233ooozc....
+.....31232222221222222222222233o33o.....
+.....o32322112222222222222222233o3o.....
+..ac..o3221112222222222222222233ooo.ca..
+..cy2o332211122222222222222222333oo3zc..
+...312322211222222222222222222233o333o..
+...o22322222222222222222222222233o33o...
+....o33222222222222222222222222333oo....
+.aooo32222222222222222222222222233ooooca
+.cy12322222222222222222222222222333o33zc
+..o22322222222222222222222222222333333o.
+..oo322222222222222222222222222233333o..
+...o32222222oooo22222222oooo2222233oo...
+.ooo3332222o1oooo222222o1oooo222233oooo.
+by12333222oo11ooo222222o11oooo22233o33zc
+.o32333222oo3oo3o222A22o3oo3oo22233o33o.
+..oo3332221o2oo2o222222o2oo2o122233ooo..
+...o3332222122221222222122221222233oo...
+..o33332222211112222222211112222233oooo.
+ac123332222222222c2222c222222222333o333a
+cc3333322222222222cccc2222222222333o33oc
+..ooo33222222222222B222222222222333ooo..
+...o333322222222222222222222222233333o..
+..o23333222222222222222222222222333333o.
+ab333o3332222222222222222222222333o333zc
+ccoooo3332222222222222222222222333oooocc
+....oo3333222222222222222222223333oo....
+....o333332222222222222222222233333o....
+...o33333332222222222222222223333333o...
+..by33oo333222222222222222223333oo33zc..
+..bb3ooo333332222222222222233333ooo3zc..
+..bco.o3o3333222222222222233333o3o.occ..
+......o33333333222222222233333oo3o......
+......o33oo333333322222333333ooo33T.....
+.....cy3oooo3333333333333333oooo3ac.....
+.....cco..o333333333333333o33o..occ.....
+..........o33oo3333333333oo33o..........
+..........caooo33o3333o33ooo3ao.........
+..........ao..o33oo33oo3bo..oac.........
+..........c...cao.o33o.oao...cc.........
+..............cc..oaao..cc..............
+...................Pc...................
diff --git a/parts_pl_src/body/pl_velvetmite.txt b/parts_pl_src/body/pl_velvetmite.txt
new file mode 100644
index 0000000..273cc97
--- /dev/null
+++ b/parts_pl_src/body/pl_velvetmite.txt
@@ -0,0 +1,47 @@
+# pl_velvetmite: from pixellab_src/pl_velvetmite/base.png (pixellab_library.py extract)
+# pivot at (23, 60)
+# aura at (31, 42)
+# head_top at (31, 27) (from part/probe)
+# back at (32, 36) (from part/probe)
+# tail at (49, 46) (from part/probe)
+....................oo....................
+...................o33o...................
+...................o33o...................
+................ooo3333ooo................
+..............oo332oooo233oo..............
+.............o3332ocbcco2233o.............
+...........oo2222ocacabco2222oo...........
+..........ocboo211oo^ooo212oobco..........
+.........ocacbo211111212121obcaco.........
+........ooacbo22111111111112oaccoo........
+........obooo2211111111111212ooobo........
+.......o2oo31211221212121112113oo3o.......
+......o323321121oo33333333211232223o......
+......o3322322oo1121211211333213233o......
+......o32232o3111111111111112322223o......
+.....o32332o21111o211112o11112o23233o.....
+.....o3332o2211113211B123111122o2323o.....
+.....o332o3221111131111311112222o333o.....
+....o333o322221111111111111222223o333o....
+....o333o3322ooo2111111112ooo2232o333o....
+....o33o3222oaaao22111121oaaao2233o3oo....
+....o33o222oawwooo121212ooowwao223o33o....
+....o33o322owwowoo22A222oowowwo223oo3o....
+....o3o3322owwoooo222222oooowwo2323o3o....
+....o3o3322owwoooo222222oooowwo2233o3o....
+....oo33332owwabao223322oabawwo23333oo....
+...oooo33323owwaao22oo22oaawwo33333oooT...
+..o223o333323oooo22oooo22oooo323333o322o..
+.o3123oo333aa322222occo222223aa333oo3213o.
+o21233ooo333332222233332223223333ooo33212o
+o3233oo3o333333233222222333333333o3oo3323o
+o323oo223o33332o11o2332o11o33333o322oo333o
+.o33o1133oo3o33o21o3223o12o33o3oo3212oo3o.
+.ooo2123oooooo33oo2o33o2oo33oooooo3212ooo.
+...o3233o.o222o33oo3333oo33o222o.o3323o...
+...o323o.o3123ooo33333333ooo3213o.o323o...
+....o33o.o2123oo.oooooooo.oo3211o.o33o....
+.....oo..o323oo............oo323o..oo.....
+.........o323o..............o323o.........
+..........o33o..............o33o..........
+...........oP................oo...........
diff --git a/parts_pl_src/body/pl_velvetmite_b.txt b/parts_pl_src/body/pl_velvetmite_b.txt
new file mode 100644
index 0000000..ba571cb
--- /dev/null
+++ b/parts_pl_src/body/pl_velvetmite_b.txt
@@ -0,0 +1,63 @@
+# pl_velvetmite_b: from pixellab_src/pl_velvetmite_b/base.png (variant of pl_velvetmite) (pixellab_library.py extract)
+# pivot at (40, 60)
+# aura at (32, 35)
+# head_top at (31, 4)
+# back at (32, 36)
+# tail at (52, 46)
+.....................^o......................
+....................o33o.....................
+....................o33o.....................
+.................ooo3333ooo..................
+...............oo333oooo333oo................
+..............o3332obabbo3333o...............
+............oo2322ocacaaco2233oo.............
+...........obaoo211oooooo212ooabo............
+..........obacao211111212121oacabo...........
+.........ooacao21111111111112oabcoo..........
+.........oaooo2111111111111212oooao..........
+........o3oo32211111111111111112oo3o.........
+........o332222111111111111112222233o........
+.......o3322221111111111111111222233o........
+.......o3222221111111111111111222223o........
+......o332221211111111111111111222233o.......
+......o332211211111111111111111223233o.......
+......o3222122111111111111111112222333o......
+.....ooo22222221111111111111112222233ooo.....
+.....obbooo22222221111111121112222ooccoo.....
+.....ooobbaoooo22222222222222oooooaacooo.....
+....oooocccaaaaaaaaaaaaaaaaaaaaabbcccooo.....
+....oooooccccccccccaaacccccccacccccccooo.....
+....oooocccccccccccacacccccccccccccoooooo....
+...ooooocccccccccoaccaccccccccccccccocooo....
+...ooooccccaoccccocccccccccccccccacoooooo....
+...o3ooccccaccacooocccccccccccccooooooooo....
+...o33ooooccccccccococccccccccoooooooo333o...
+..o3333332oooooooooooooooooooooooo2233333o...
+..o3333322222oaaao22222222oaaao2222223333o...
+..o333322222oa1wooo222222ooow1ao2222233333o..
+.o3333322222o1wowoo222A22oowow1o22222333233o.
+.oo223322222o1woooo222B22oooow1o2222233333oo.
+.o3223322222o1woooo222222oooow1o22222333323o.
+o31333332222o1wabao222222oabaw1o22222332332oo
+o233333322222o1waao22oo22oaaw1o3222233322332o
+ooo22333322223oooo22oooo22oooo322222333322ooo
+.o2233223222aa222222obbo222222aa22233333223o.
+.o22322332222222222233332222222222233233322o.
+o22oo2232222222222222222222222222223322o3323o
+o3o3o2331232222222222222222222223221321o2332o
+oo33o2o31322122222222222222222222331331o32oo.
+.o2oooo31o22132222222222222222222231331o32T..
+.o233oo33o221322222222222222222332333o2o32o..
+.o2333o33o331322222322223222231332333o3333o..
+.o2233o33333332322332223321223133333oo3323o..
+.o223oooo333332o13332233332233233333ooo322o..
+.o333o33o333o33o123332233322o333333o23o333o..
+..o33o223oo3oo33223332233313o3oo3oo312o33o...
+..ooo2123ooo3ooo323333333o13oo3o3oo3212ooo...
+....o3233ooo32oo333o3333o333o333ooo3323o.....
+....o333o.o3123ooo2o3333o33oo3213o.o333o.....
+.....o33o.o2123oooo3ooooo3ooo3211o.o33o......
+......oo..o323oo.oooo...ooo.oo323o..oo.......
+..........o333o..............o333o...........
+...........o33o..............o33o............
+............oo................Po.............
diff --git a/parts_pl_src/body/pl_velvetmite_c.txt b/parts_pl_src/body/pl_velvetmite_c.txt
new file mode 100644
index 0000000..c7d2952
--- /dev/null
+++ b/parts_pl_src/body/pl_velvetmite_c.txt
@@ -0,0 +1,52 @@
+# pl_velvetmite_c: from pixellab_src/pl_velvetmite_c/base.png (variant of pl_velvetmite) (pixellab_library.py extract)
+# pivot at (31, 57)
+# aura at (32, 33)
+# head_top at (31, 18)
+# back at (32, 36)
+# tail at (55, 46)
+..........ooooooo...................oooooo..........
+.......ooo3322223ooo.............ooo222233ooo.......
+......o3bbb222222ccco..........oocc222222bbb3o......
+....ooobaaab21122caacoo......oocaac21112baaab3oo....
+....o33baaaa111112ccc33o....o32ccc211111aaaab23o....
+...o332baaab111111122233o..o332221111111aaaab233o...
+..oo3222bba11111111122233^.o3221111111111bbb22233o..
+..o332222211111aaaa111223oo322111aaa1111111222233o..
+.o3322222211111aaaaa111223322111aaaa11111112222333o.
+.o3322222221111aaaaa111122221111aaaa11111122222233o.
+.o332222bbb1111aaaab1111122211111bbb111112bbb22233o.
+oo33222baaab1111bbb1111111211111111111112baaab2233oo
+o333322baaab2211111111111bb11111111111122baaab22333o
+o333322baaab222111111111aaaa1111111112222baaab22333o
+o333322cbaac222211111111aaaa1111111122222baaab23333o
+o3cc3222ccc2222222211111aaaa11111222222222ccc223333o
+ocbac2222222222oooo221111aa111122oooo22222222223333o
+ocbac322222222oaaaao221111111122oaaaao2222222223ccco
+.ocac32222222oa1woooo2211111222oooowwao22222223cbco.
+.occ33222222oa1wwowooo22111122oowooowwao2222223cbco.
+.o3333322222o1wwoowooo22211222oowooo1ww1o222233ccco.
+.oo333322222o1wwoooooo2222A222oooooooww1o2222333co..
+..o333332222o1wwoooooo22222222oooooboww1o22233333o..
+..oo33333222o1wwbbooco22222222ocoocbbww1o22333333o..
+...o33ccc222o1wwabooao2222B222oaooabbww1o2233333o...
+...ooccaac222owwaabbao22333222oabbabbw1o2233ccc3o...
+....o3caac322o1wwaaaao222oo322oaaaabw1o2233cbbco....
+.....ocbac3322o1wwaao222oooo222oaaaw1o22233cbbco....
+.....oocc333322ooooo2222occo2222ooooo323333cbco.....
+......o333333aaa32222222obbo222222223aa33333boo.....
+.....o3o333333322222222223322222222233333333o33o....
+....o313o333cc33222222223333322222223333333o3212o...
+...o3123o33ccbc3332222222222223322233cccc33o33213o..
+...o3233oooocbbc3332o11o22222o11o233cabbcoooo3323o..
+...o333o333occcc3333o21o3222oo12o333cabbc333oo323T..
+...o33o33233occ333333o32o222o2oo3333cbboo3213o33o...
+....ooo2123ooooo333333oo32222oo333333bboo3312oooo...
+......o2233o.o333333333332223333333333o.oo322o......
+......o323o.oo123333cc333332333333o3213o.o333o......
+.......o33o.o2123o3cbbc3333333ccc3o3213o.o33o.......
+........oo..o223ooocbbcc33333cbbcooo323o..oo........
+............o323o.oooccc33333cbboo.o333o............
+.............o33o...ooc3333333co...o33o.............
+..............oo.....oo3333333o.....oo..............
+.......................oo333oo......................
+........................oPooo.......................
diff --git a/parts_pl_src/body/pl_velvetmite_d.txt b/parts_pl_src/body/pl_velvetmite_d.txt
new file mode 100644
index 0000000..3245ae7
--- /dev/null
+++ b/parts_pl_src/body/pl_velvetmite_d.txt
@@ -0,0 +1,63 @@
+# pl_velvetmite_d: from pixellab_src/pl_velvetmite_d/base.png (variant of pl_velvetmite) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 29)
+# head_top at (31, 4)
+# back at (32, 36)
+# tail at (40, 46)
+..................^o..................
+.................o32o.................
+.................o32o.................
+...............oo3333oo...............
+.............oo33oooo33oo.............
+............o332ocbcco233o............
+..........oo222ocbcbbco233oo..........
+.........ocboo21oooooo12oobbo.........
+........obcbo221111212112obcco........
+........oooo22111111111212oooo........
+.......o2o212112121212212112o2o.......
+......o32221121o333333321123223o......
+......o332322oo1211112133321233o......
+......o323233111111111111232223o......
+.....o3232o2111o311112o1112o2323o.....
+.....o332o221111311113111222o333o.....
+....o333o22221111111111122222o333o....
+....o333o322ooo11111111ooo222o333o....
+....o33o222oaaao211112oaaao222o3oo....
+....o33o22oa1woo121212oow1ao22o33o....
+....o33o22o1wooo221222ooow1o22oo3o....
+....o3o322o1wooo222222ooow1o223o3o....
+....o3o333o1wbco222222ocbw1o223o3o....
+....oo33323o1wbo22oo22obw1o32233oo....
+...oooo33323oooo2oooo2oooo32333oooo...
+..o223o333bb22222ocAo22223bb333o322o..
+.o2133oo3333222222333222233333oo3312o.
+o3233oo3333333222222222233333o3oo3323o
+o323oo22o33333323232233333333322oo323o
+.o33o112oo333333333333333333o3311oo3o.
+.ooo2123ooooo333333333333ooooo3212ooo.
+...o3233oo222o3333333333o222oo3323o...
+...o323oo2123oo3333B33ooo3212oo32oo...
+....o33oo112oo3oooooooo3o3211oo33o....
+.....oo.o223o33o......o3oo322o.oo.....
+........o323o33o......o33o323o........
+.........o33o3o.......o33o33o.........
+..........oo23o........o32oo..........
+...........o2oo........o32o...........
+...........o2o.........o32o...........
+..........o22o..........o32o..........
+..........o13o..........o32o..........
+..........o13...........o31T..........
+..........o1o...........o31o..........
+..........o2o...........o32o..........
+..........o33o..........o32o..........
+..........o33o..........o23o..........
+..........o33o..........o2o...........
+..........o33o..........o2o...........
+...........o3o.........o32o...........
+...........o23o........o32o...........
+...........o33o........o23o...........
+...........o33o........o33o...........
+..........o333o........o333o..........
+.........o1233o........o3321o.........
+.........o233o..........o332o.........
+..........ooP............ooo..........
diff --git a/parts_pl_src/body/pl_ventangler.txt b/parts_pl_src/body/pl_ventangler.txt
new file mode 100644
index 0000000..841231c
--- /dev/null
+++ b/parts_pl_src/body/pl_ventangler.txt
@@ -0,0 +1,40 @@
+# pl_ventangler: from pixellab_src/pl_ventangler/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 44)
+# head_top at (34, 32) (from part/probe)
+# back at (38, 34) (from part/probe)
+# tail at (46, 51)
+...................oooo...............
+................ooo223bo..............
+..............oo2233333booo...........
+............oo223333333bo3ooo.........
+..........oo2223333333bbo3bbo.....oo..
+........oo22223333333^ooo3booo...o12o.
+.......o21123333322223223ooo3o..o123o.
+......o211111222222222222B3o3o..o233o.
+.....o2211112222222222bb33bcoooo2o332o
+....o22111122222222222bab3baco2122o33o
+....o222222222222222222bb33bco2233o33o
+...oca222222222222222222233333o3333o3o
+...cab22222222222222a2222333bbc333oo3o
+...o211222222222222ba222bbb3baco33oo3o
+...o31112322332111222222bab3cbco3o333o
+...ooo2123333211112333222bb333oo3o33o.
+..oowooo2333321223ooo3222233bbcoo333o.
+..o3woo1o3333oooooA1o3222233baco.o3bo.
+..o3wo3w13333o1woowwo3222bbccbco..oo..
+.oo33www322223woo3wwo322babc3ooo......
+o2oa23332222223wwwwo32223bcooooo......
+o3oaa22222222223333aaa2333o222bbo.....
+obo2222222222222222aaa2332o33b33o.....
+obo32ooo333333322222222322oobbb3co....
+ooo3oo1oowoowbooooo2222332o22233bT....
+.o3ooooococcoocowooo2233o3oo3bbbo.....
+..oo2ococbbbbbbcoccoo333oo32b333o.....
+...o22owcbbabbbwbc222o333ooo2b3bo.....
+...oo2221oow1oo22222233333oooabo......
+....o223222222222223333333oo.oo.......
+.....o22233333333333222223o...........
+......oo222222222222222ooo............
+........ooo22222222oooo...............
+...........oooooooP...................
diff --git a/parts_pl_src/body/pl_ventangler_b.txt b/parts_pl_src/body/pl_ventangler_b.txt
new file mode 100644
index 0000000..a6b5d39
--- /dev/null
+++ b/parts_pl_src/body/pl_ventangler_b.txt
@@ -0,0 +1,55 @@
+# pl_ventangler_b: from pixellab_src/pl_ventangler_b/base.png (variant of pl_ventangler) (pixellab_library.py extract)
+# pivot at (31, 57)
+# aura at (32, 32)
+# head_top at (34, 9)
+# back at (38, 34)
+# tail at (42, 51)
+...........................^ooo..................
+........................ooo2223o.................
+......................oo2223333booo..............
+.....................o213333333bbooo.............
+....................o2233333333bbo33oo...........
+................oooo22333333333bbo3bbo.......oo..
+..............oo222o2333322223333o3boo......o12o.
+............oo2222233332222222333333ooo....o133o.
+...........o222222222222222222223333ooo....o133o.
+..........o22221112222222222222bbb33ccoo..o2233o.
+.........o222211112222222222222bbbc3cbco.o113333o
+........o2222221122222222222222bbbc3cbc3oo133333o
+.......o222211222222222222222222bbc33cc3o2233333o
+......obb22211222222222222222222222333333oo33333o
+......obb322222222222222222222222222333ccco33333o
+.....obbbb2222222222222222222222222bb33cbcoo3o33o
+.....o2233222222222222222232222222bbbc3cbcoo3o33o
+.....o2333212222222222123333222222bbbc3cccoooo33o
+....o223oo32122222222223ooo32222222bbc33ooo3oo3o.
+....o223o1o32232232223oo11o333222222233oooo3oo3o.
+....o23o111o32o33322oo11111o33222222233cccc3o33o.
+....o2o111o1ooo333ooo1oo111oo3222222233cbcc3oobo.
+....o2o11ooo1o33333o11ooo111o32222bbbcccccc3ooo..
+....o2o11ooo1o33333o1ooooA11o32222bbbccc3333o....
+....o2o111oo1o22222o1ooo111wo32222bbbcc33333o....
+...oo23o1111o3222223o111111o322B222bb333ooo3o....
+..oboaa33333322222223o1111o32a2222222332223oo....
+.o2boaaa2222222222222333333aaaa2222223221233o....
+oo22o2aa222222222222222222aaaaa22222332222bc3o...
+obb2o3222222223333332222222aa22222223322bbbc3oo..
+ocb2o33222233oooooooo3322222222222223322bb233co..
+o3223o32222ooccccccccoo32222222222223322222bcco..
+o3333o3322ooccccbbcbbccoo322222222233o3322bbc3o..
+o3c33o3322occcbaaaaaao11oo22222222233o33333333o..
+.obb3oo3322oo22222222o11bo222222223333oo33b33bo..
+..ooooo333222222222222oo222222222333333oo3bb3o...
+.......o3332222222222222222222223333333oooooo....
+.......o33333222222222222222223333333322o........
+........o333332222222222222223333333322oo........
+.........oo333333222222223333333333322o..........
+..........o33333333333333333333333322o...........
+...........oo22333333333333333333223o............
+.............ooo223333333333322222oT.............
+...............ooo2233333322222ooo...............
+.................oooo3333oooooo..................
+.....................oo33o.......................
+......................o333o......................
+.....................o3333oo.....................
+.....................oooPooo.....................
diff --git a/parts_pl_src/body/pl_ventangler_c.txt b/parts_pl_src/body/pl_ventangler_c.txt
new file mode 100644
index 0000000..f493672
--- /dev/null
+++ b/parts_pl_src/body/pl_ventangler_c.txt
@@ -0,0 +1,49 @@
+# pl_ventangler_c: from pixellab_src/pl_ventangler_c/base.png (variant of pl_ventangler) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 40)
+# head_top at (34, 19)
+# back at (38, 34)
+# tail at (50, 51)
+...................ooo....................
+..................o112o...................
+.................o3112o^..................
+.................o31222oo.................
+................o3222222oo................
+.............ooo332222223ooooo............
+............obb3332222223ooaaao...........
+..........oo2222223222233332bbo....oo.....
+........ooba211112233332222222oo..o22o....
+.......oaab2211111222222222222aboo323o....
+.......oaab2211111122222222222babo223o....
+.......obb22222222222222222222baabo2oo....
+......o3322222233222222232222a22bc3ooo....
+.....obb22caa222233333332222aa22233ooo....
+.....oab23222112222333322211122323cao.....
+.....oab2333321122222222211133332bcbo.....
+.....ob223oooo2122o22232112oooo32ab3o.....
+.....o3223o11oo323o3333223oB11o32ab3o.....
+....occ223owwwoooo33333ooooowwo3223bbo....
+....obc223o1woowoo33333owoo2wwo3223bao....
+....oab22332111o22211122oowwwoo322bbao....
+....oab2223333322222222222ooooo222acbo....
+....ocb22122322233oooo332223332222acco....
+....oo322223213ooo1ooA3ooo22222222b33o....
+...o233222232221oowooo1oo1o22322223oooo...
+..o2223322322o2woowooowoowo22332223o22o...
+.oba22o32322ooowooooooooowoo223232o222ao..
+ooa222o22323oooooooooooooooo223222o222abo.
+o2222oo22323ooooooooooooooooo23223o22222oo
+oaa23oo2232oooooooooooooooooo22223o3222b3o
+obb33o32332oooooooooooooooooo222233o32bb3o
+ob333o32332oooooooooooooooooo232233o33b33o
+o333oo33332ooooocccoooccccooo232233oo333bo
+.o33oo332o2oooocbbbbccbbbcoo3232333ooo3bo.
+..oo.o332o22owccaabbbbbbbcco22o2333o..oT..
+.....o332332owccaaabbbbbbcwo23o233o.......
+......o333o221cwccbbbbbbwc12233233o.......
+.......o333o22cwccwccwccw3222oo33o........
+.......o33oo3222223oo2222223ooooo.........
+........ooooo33212111122233ooooo..........
+.........oooooo3333333333oo3ooo...........
+..........ooooooooooooooooooo.............
+..............ooooooPoooo.................
diff --git a/parts_pl_src/body/pl_ventangler_d.txt b/parts_pl_src/body/pl_ventangler_d.txt
new file mode 100644
index 0000000..b23f22b
--- /dev/null
+++ b/parts_pl_src/body/pl_ventangler_d.txt
@@ -0,0 +1,41 @@
+# pl_ventangler_d: from pixellab_src/pl_ventangler_d/base.png (variant of pl_ventangler) (pixellab_library.py extract)
+# pivot at (31, 61)
+# aura at (31, 44)
+# head_top at (34, 27)
+# back at (38, 34)
+# tail at (46, 51)
+.................oo.oo^o...............
+................o2oo223ao..............
+...........oo..o22o322aabooo...........
+...........o2oo3222222bbb333oo.........
+..........oo2232212222223333bo.....oo..
+.........o32121211121112223bboo...o12o.
+........o23211111111112222333bo..o112o.
+......oo3222111111111222abB233o..o112o.
+......oa2222111111112122ab22222oo11222o
+.....o2b21211111111122222222a333112233o
+.....o222121111111211122222222o322233bo
+.....o2221211121222111112222233o323333o
+.....o22222111222222222122a22bbo333333o
+....o211222212222222222222b323bc33333bo
+....o321123222321112222222223333o3333co
+....ooo2123323211122233222222333o3333o.
+...oowooo2333321223ooo32222222333o33bo.
+...o3woo1o3333oooooA1o32222332333oo3bo.
+...o3wo3w13333o1woowwo3222223333o..oo..
+..o223www322223woo3wwo3222233333o......
+.o22223332222223wwwwo32222233112o......
+.o2222222222222233333222222321112o.....
+oa23222322222222222222222223212111o....
+oc3323ooo3333333333222223323212232o....
+.oo32oo1oowoowboooo32221333o32222oT....
+..o33oooococcoocowooo222233o33222o.....
+...o32ococbbbbbbcoccoo23233o33232o.....
+....o22owcbbabbbwbc222233233o3a3bo.....
+....oo2221oow1oo222222233333ooaco......
+.....o3222222222222232333333o.oo.......
+......o23222222223223332333o...........
+......o3o323323323o233o33oo............
+.......o.o3o33oo3oo33o.oo..............
+..........o.oo..o.ooo..................
+...................Po..................
diff --git a/parts_pl_src/body/pl_vine.txt b/parts_pl_src/body/pl_vine.txt
new file mode 100644
index 0000000..e578157
--- /dev/null
+++ b/parts_pl_src/body/pl_vine.txt
@@ -0,0 +1,48 @@
+# pl_vine: from pixellab_src/pl_vine/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (31, 22) (from part/probe)
+# back at (42, 32) (from part/probe)
+# tail at (50, 47)
+..................oooooo................
+...............oooo11o11oo..............
+............oo3o22o111oo11o..oo.........
+...........o21o1122^111o112oo22o........
+..........o11211122co111311o323o........
+.........o111111122c3o123212o33o........
+........o211111112222oo23o12oo3o........
+........o1111111122cc2o33o22o3o.ooo.....
+.......oo1111111222o22o33o22o3ooaabo....
+.......oo1111111223222o3o333o33oocbo....
+.......oo1211112233222ooo333o33o3oo.....
+.......oo1211122o32223oo333o323o3o......
+.......o.o21122o..o233oo3oo3333oo.......
+.......oao2223o.cc2223ooo33333B3o.......
+.......o3o2233ooo2222o1oo33333o3o...oo..
+.......o322222222222o11oo3333o33o..o2o..
+........o1oooooo1ooo11oooo3oo323o.o12o..
+.........oo1122oo1111o3o33332233o.o123..
+..........oooo211oooo33o3332323o..o123..
+........oooo33ooo33oo323o333o33o..o12o..
+...oo..o2112oooo2222o22233ooooo...o12o..
+...o2oo3211222o2212232233233oo3o..o323o.
+...o23o322123ooo2212Ao3333oooo33o.o323o.
+oooo23o32o3o322ooo333ooooo112o23oo33o3o.
+o222o3ooo111111122ooo1122o112o22oo33333o
+o3333oo321112111122o11122o12o3o2ooo33o3o
+.oooooo32111211122o11122o11o2o3oaabooo3o
+...o33o32222222ooo121123o11o3o3occco3o3o
+..oo223o33322oo2o112222o2223oo33cco33oTo
+..oo322ooo3oo33o211232o3223oaaboooo33oo.
+.oo1o223ooo333o332233o33333oacco33o33oo.
+.o1o33o2122oooo33333o3333oooccco33o22oo.
+.oo331111111oooooooooooooo33ooo33o322oo.
+..o3211211122o2111222oo11223o3223o2233o.
+..oo31121112o11111122o111123o2222o22ooo.
+..oo3313123311112122o111122o22223o2ooo..
+...oo3333o222111o2o31111o2o22223o3oooo..
+....oo33o32222233o3111122o32223o33ooo...
+.....ooo3o3223ooo3111133o32233o333oo....
+.......oooooo3oo3333333o33333o3ooo......
+..........ooooooo3333oo333ooooo.........
+................oooPoooooooo............
diff --git a/parts_pl_src/body/pl_vine_b.txt b/parts_pl_src/body/pl_vine_b.txt
new file mode 100644
index 0000000..827bc3f
--- /dev/null
+++ b/parts_pl_src/body/pl_vine_b.txt
@@ -0,0 +1,50 @@
+# pl_vine_b: from pixellab_src/pl_vine_b/base.png (variant of pl_vine) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (31, 17)
+# back at (42, 32)
+# tail at (50, 47)
+............ooooooo^o...................
+..........oo222222222oooo...............
+.........o111111112222o11oo.............
+........o11111111112222o111o............
+.......o2111111111122223o111o...........
+.......21111111111112222o211oo..........
+......o21111111111112222o3111oo.........
+......o111111111111122222o3113o.........
+......o111111111111222222o31133o........
+.....o2111111111111222222o31113oooo.....
+.....o2111111111112222223o32113oaaao....
+.....o2111111111112222223o321c11oaao....
+.....o22o111111oo22222233o32o11cboo.....
+.....o22o11111oooo2222233o33o11cboo.....
+.....o22o11111ooo2222233oo22o32cbo......
+.....o222222222222222333o3222oB22oo.....
+......o2222222222222333o333223cco33.....
+.......o33322222223333o33232233o32oo....
+......oooo33333333333o3322o2233o32o1o...
+.....o1c33oo333oooooo33212o2o33o32o21o..
+....ob1c3333ooo3333oo21122o333oo322o3o..
+...obb1cooooo33333o211122oo33o233222oo..
+...ob2c22112ooo31oo22222o3333o11o2223o..
+...oco2111122oo31ooA3333o3ooo1112oo23o..
+..ooo3211111111ooooooooooo311111o1bcoo..
+oo2oo3211oooo1111111o211222o1111o1b2oo..
+o223o331o112co111111o1111111o112o2bboo..
+.o33o33o1bc12o11111131ooo1111o222c22o...
+..oo3o3o1bc12o1111o21o211o111o22oocoo...
+..oc33oo2bc12o311o11o21bb2o1333oaao33o..
+.o12o33oo222o3332222o21bb2o3oo3oaaoo33T.
+obb1o32ooooo33333333o21bb2ooaacoaao333o.
+obb1o11222o3333333333o3223ooaaaooo33ccoo
+ob12o111122oooo3333333o33oooaaao333o311o
+o22o21111111111ooooooooooo32ooo3233c1bbo
+.oo321111ooo1111111111211132222331oc1bbo
+.o333311o111oo12111111111obbo11132oc2bbo
+..o33o1o1bb12o1o11111111o3111o11222o22o.
+...o3o3o1bb12o121111111o31bbb2o22233ooo.
+....oo3o2bb13o2o1111111o31bbb2o22333oo..
+.....oo3o112o3333o33222o31bcb2o3333oo...
+.......ooobb333333o33333o3112o33ooo.....
+.........oooo33333oo33333o333ooo........
+.............ooooooPooooooooo...........
diff --git a/parts_pl_src/body/pl_vine_c.txt b/parts_pl_src/body/pl_vine_c.txt
new file mode 100644
index 0000000..94cea5d
--- /dev/null
+++ b/parts_pl_src/body/pl_vine_c.txt
@@ -0,0 +1,54 @@
+# pl_vine_c: from pixellab_src/pl_vine_c/base.png (variant of pl_vine) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (33, 40)
+# head_top at (31, 15)
+# back at (42, 32)
+# tail at (49, 47)
+..................ooo................
+..................oao....oo..........
+.................^aco...oao..........
+............ooooooacooooaco..........
+...........o22222o1112ocaco..........
+.........oo111111c3111o2cco..........
+........oo1111111co1111222o..........
+........o1111111222o111o111ooooo.....
+.......o111111112c2o221o1113aaco.....
+.......o111111222223o31o1113acco.....
+.......o111112o22223o33o1113cco......
+.......o11111obo2233o3o331133o.......
+.......o11123obo213o3333322o22o......
+.......o11123ob2123oo22232o222o......
+.......o111222223oo..o223o3222ooo....
+.......o11o222oooo....o2333222aaoo...
+........o2222o........o2233222acco...
+........oooooo........o2333223ccoo...
+.....................o33333223ooo....
+.....................o113o32B3o......
+....................o311322o3co......
+...................o11232222oo.......
+.................oo1111222233o.......
+..........ooooooo11311222223o........
+........oo111111o111o22233oo.........
+.......o1111o111o1111o223cao.........
+......o1111113111o111133bcaoo........
+.....o1111122322123A233boooooo.......
+....o2111111o3332333333ooooo33o..ooo.
+....o211111122oo333ooooo333o33ooo22o.
+....o21111221111ooooo33222oo233o223o.
+....o22111311111o111123111o1233o233o.
+...oo32233111111o111123111o113o333o..
+..o22o332111111o1111231112o113o333oo.
+.o111o33o21111o21122231112o233oooo3T.
+o2111ooo33322o111122o3112o2333ooo33oo
+o2111oooo333oo22222o33222o233o33o33oo
+o21oo1111oooo33333o333333oooo333o22oo
+o22oo111122oooooooooooooo3o3333o322oo
+o3332o11122o1111222o111223o2222o2233o
+oo332o1112o11111122o11112o22222o22ooo
+ooo33o113o11112122o111112o22223o2ooo.
+.ooo33oo221111o133111122o22223oo33oo.
+..oo33oo2222233o3111122o22233o33ooo..
+...ooooo222333o3111122o22223o333oo...
+....oooo3333oo3333333o333333oooo.....
+........oooooo3333333o3333ooo........
+..............ooooPooooooo...........
diff --git a/parts_pl_src/body/pl_vine_d.txt b/parts_pl_src/body/pl_vine_d.txt
new file mode 100644
index 0000000..87cbfc7
--- /dev/null
+++ b/parts_pl_src/body/pl_vine_d.txt
@@ -0,0 +1,63 @@
+# pl_vine_d: from pixellab_src/pl_vine_d/base.png (variant of pl_vine) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 35)
+# head_top at (31, 5)
+# back at (42, 32)
+# tail at (48, 47)
+............oooooo.oooo...............
+...........o211222^1111oo.............
+..........o11111122o11111o.oo.........
+.........o111111122bo1111oo22o........
+........o1111111122boo1121o23o........
+........o111111112222o12o1233o........
+.......oo1111111122bbo31o22o3o........
+.......oo111111122222o33o22oo.ooo.....
+.......oo111111222222o3o32233oaaco....
+.......o3o11113oo2222o3o33o33obbco....
+.......oao211oobbo223oo333o33o3oo.....
+.......o3o222oobb222ooo33o333o3o......
+.......o322222222222o1ooo3333oo.......
+........owooooowoooo11o33333o3o.......
+.........oo222oo11111oo3333o33o.......
+..........ooo1111111ooo33oo323o.......
+.............ooooooooo33332233o.......
+..............o3333ooo3332323o........
+............oo33333o31o333o33o........
+...........o3223oo32111o333oo.........
+..........oo2112o331111o3ooo..........
+..........o221121131111o3oooo.........
+..........o211o111o2223oooo22o........
+..........o311o1112o22ooooo22o........
+...........o32o1122233oooo222oo.......
+..........ooooo2222ooooo222223o.......
+.........o113o333ooooooo222222oooo....
+........o1113ooooo3oo111212o2ooaaco...
+........o11o111oooooo111212o3Boaaco...
+.......o32311111o111o111223ooooacco...
+.......o3311111o1111o11132ooaacooo....
+........o31111o1111Ao121333oaabo......
+........oo312321111o21333ooobbbo......
+.........oo33311133o3333oo33ooo.......
+........o33oo33333o333oo3333ooo.......
+.......o31333ooooooooo333333o22o......
+.....oo3111133o3333333333o33222o......
+....o2o1111113o3333o33333ooo222oo.....
+...o22o1113333o3333o333oo112o22oo.....
+.ooo33o22311111ooooooooo3111o22oo.....
+oaaboooo31111111122o1111o111o22ooo....
+oabcoaaco11111111oo11111o111o22oooo...
+obccoaaco21111122o11112o1112o33oo33o..
+.ooo3acco3231333o111112o112333o3o33T..
+...o3ooo3o3o23ooo11132o111333oo33o33o.
+..oo322oooooo333o1233o22233oo3o33o33o.
+..o33oo211oooo33333333233oooo3333o22oo
+..o33111111222oooooooooooo3oo233oo22oo
+..o31111111132111222oo11223o3223o22o3o
+..o33111111o11111122o111123o1122o22oo.
+..oo331313311112122o111122o11123o2ooo.
+...oo333o11211132oo1111o2o21123o3oooo.
+....ooo3o1112233o3111122o32123o33ooo..
+.....oooo2223ooo3111133o32233o333oo...
+.......ooooo3ooo333333o33333o3ooo.....
+..........oooooo3333oo333ooooo........
+...............oooPoooooooo...........
diff --git a/parts_pl_src/body/pl_volcano.txt b/parts_pl_src/body/pl_volcano.txt
new file mode 100644
index 0000000..afff8b3
--- /dev/null
+++ b/parts_pl_src/body/pl_volcano.txt
@@ -0,0 +1,41 @@
+# pl_volcano: from pixellab_src/pl_volcano/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 45)
+# head_top at (32, 30) (from part/probe)
+# back at (31, 39) (from part/probe)
+# tail at (49, 52)
+................oooo................
+...............ozyyao...............
+............coczaaaaaocoo...........
+...........yazcaccccacazzo..........
+.........oyacaaccc^ocaacayo.........
+.........oayccaccccccaccyao.........
+........ozazyaoyyyyyaoayzazo........
+........oacazazzzazzaaazzaao........
+........oa3aacyzacazza3azcao........
+.......oac3ac2aac2caac2cac3ao.......
+.......oc2ca22aa111aa122ba2co.......
+......oc32a211ac111cc1112c23co......
+......oc33a211ac111cc1112c23co......
+.....oa112c223bc1B1bb222ba1b2ao.....
+.....a3322c311222111c1112b12a3o.....
+....o3332bb211111121111112b322ao....
+....o3322ab212221111222112b3223o....
+....o3322bc11ooo1111ooo112b2233o....
+....o3322111o1221112221o11a1233o....
+...o3c12121o111121A21111o1b12233o...
+...oa112b1oo1woo1111wo12oo1c21c3o...
+..oac31c23o21woo1111woo12o3cb12aao..
+..oc333b23o21ooo1111ooo12o22a33cao..
+..o3332b22o22bob2113bob22o32a233co..
+.oo3333z22o11322111122211o23c3333oo.
+o1o3333z32o11111122111111o23c3333o1o
+o1o3333322o221112cc211122o22z333331T
+o11o3333322o2222caac2222o2223333o11o
+o313o3333332oo22222222oo2233333o313o
+o333oo333332222oooooo222233333oo333o
+.ooo..oo33333332222223333333oo..ooo.
+........oo3333333333333333oo........
+.......o23ooo3ooooooo33ooo32o.......
+......o212233o........o332212o......
+.......oooooP..........oooooo.......
diff --git a/parts_pl_src/body/pl_volcano_b.txt b/parts_pl_src/body/pl_volcano_b.txt
new file mode 100644
index 0000000..b2c5595
--- /dev/null
+++ b/parts_pl_src/body/pl_volcano_b.txt
@@ -0,0 +1,61 @@
+# pl_volcano_b: from pixellab_src/pl_volcano_b/base.png (variant of pl_volcano) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 37)
+# head_top at (32, 6)
+# back at (31, 39)
+# tail at (49, 52)
+..............oooo^ooo..............
+............ooxzzxxxxxoo............
+...........oxxccccccccxxo...........
+...........oxccccccccccxo...........
+...........o3zxxccccxxx3o...........
+...........o3222a11z2223o...........
+...........oa222cz1c222zo...........
+...........oaa22czyc22zzo...........
+...........o3322czzc2z33o...........
+...........o3322cbzc2223o...........
+...........o3322cbz322233o..........
+..........o33322cbz322233o..........
+..........oa3322cbz312333o..........
+.........oaaaa22cbz311133xo.........
+.........o332222xbb3111axzo.........
+.........o332222xbb3133z22o.........
+.........o322322xbb33ax123o.........
+.........o322322xbbbx22123o.........
+.........o322322ybbb222223o.........
+........oxa33222cbzb22233azo........
+........o3ax3222cbzcxxxzza3o........
+........o332y332cbzc2222233o........
+........o33222a3cbzc2222233o........
+.......oo332222zcbzc2222223oo.......
+......oa332322222bzc22222233xo......
+......oaaa3322222bzc1122223axo......
+......o332zaaaxxxbzc112223axxo......
+......o332222222xbzc2222ax333o......
+......o332222122xbzc233z22333o......
+......o322222222ybzb2zz222233o......
+.....o33222222112bzb222222233o......
+.....o33222222112zAb222222233oo.....
+....oa3322222222czzb222222333aao....
+....ozz3222xxxxxcBzzxxxxxxaaa33o....
+....o33za3211111czbc11111222a33o....
+....o3311zy11111czbc11112212333o....
+....o3311bbb1222czbc22212212333o....
+....o33111111oooczbcooo11111233oo...
+...ob3321111o122czbb221o1111233azo..
+..oxz333211o1111cabb1111o12223zz2o..
+..o3azz322oo1woocabbwo12oo22azz22o..
+..o333xxzbo21woocaabwoo12o2z22222o..
+..o3332a22o21ooocaabooo12oz222222o..
+..o3322222o22bobcaacbob22oz222222o..
+.oo3o22222o11222czbc22211o2222222oo.
+o1o3322222o11111czbc11111o2222232o1o
+o1o3333222o22111czbc11122o2222332o1T
+o11o3333222o2222cbac2222o2223333o11o
+o313o3332332oo22cbac22oo2223333o313o
+o333oooo3332222ocbaco222233333oo333o
+.ooo..oo33333332cbac2333333ooo..ooo.
+........oo333333cbab333333oo........
+.......o23ooo3ooaaaaoo3ooo32o.......
+......o211233ocaaaaaaco332112o......
+.......oooooP..........oooooo.......
diff --git a/parts_pl_src/body/pl_volcano_c.txt b/parts_pl_src/body/pl_volcano_c.txt
new file mode 100644
index 0000000..e34458f
--- /dev/null
+++ b/parts_pl_src/body/pl_volcano_c.txt
@@ -0,0 +1,50 @@
+# pl_volcano_c: from pixellab_src/pl_volcano_c/base.png (variant of pl_volcano) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 41)
+# head_top at (32, 17)
+# back at (31, 39)
+# tail at (54, 52)
+.....................oo^o.....................
+....................ozyybo....................
+................oooozbbbbbooooo...............
+...............oybbcbccccbcbbzzo..............
+..............oybbbbccccccbbbbbzo.............
+.............oybccbbcccccccbbcbyo.............
+.............obzyccbcccccccbccybo.............
+............ozbbzybozyyyyybcbzzbzo............
+............obccbzbzzzbbzzbbbzzbbo............
+............obccbbcyzbccbzzb2bzcbo............
+...........obc2cbc2bbc22cbbc2cbc2bo...........
+...........oc32cb22bb1111bb122bb2bo...........
+..........oc332b211bc1111cc1112c23coo.........
+.........o3c322b211bc1111cc1112c23coo.........
+........ob32222c233bc1111bb222bb13c3bo........
+........obb3332c3112221111c1112b13cb3o........
+........o33bo2bb2111111121111112b33booo.......
+.......o111cc2bb2122211111111112b33o11o.......
+......o1311b32bc11ooo11111ooo112b2c1111o......
+......o1111b31111o13311111331o11b1c11311o.....
+.....o31111331112211131113111111b1331111o.....
+.....o331113111121aoa11111aoa311b1131113o.....
+.....o33b133111121aoo1B111aoo11111131133o.....
+.....oo3c332111111ooo11111ooo11111133333o.....
+....oo3o3b31b11113bob31A13bob311111b333boo....
+....o11233b111221133311111333112211133b21o....
+...o111123b112oo211111111111112oo211bb3111o...
+..o3b21122b112ooo2221111111222ooo211b211113o..
+..o321322b3b12ooo1ooooooooooo1ooo212b211111o..
+..o333b2b13311ooo1oo1111c12oo1ooo1123211113o..
+..o3333b113311ooooooooooooooooooo1133231233o..
+.oo3333b3333211oooooocccccoooooo1123c333133oo.
+o1o3333b33333211oo1obbbbbbbc1oo11233cb33333o1o
+o13o33b3333b33221o1bb1bbb1bb1o112o1113b333o21o
+o22o33b333b312o211ooooooooooo122o11113b33oo22o
+o323o3333bo1111o322211111112222o211133ocoo323T
+o3333o333c331112o333222222222oobb113333co3333o
+.oooo.ooob331311obo333ooooooo2223b3333oo.oooo.
+........oc333313b2332111113o33333b333oo.......
+.........oo33333b3o33133123o33333b33o.........
+...........oo333b3oo3333333o3333oooo..........
+...........o3oooooooo33333oooooo333o..........
+..........o312233o..oooooo..o3322113o.........
+...........oooooP............ooooooo..........
diff --git a/parts_pl_src/body/pl_volcano_d.txt b/parts_pl_src/body/pl_volcano_d.txt
new file mode 100644
index 0000000..7485649
--- /dev/null
+++ b/parts_pl_src/body/pl_volcano_d.txt
@@ -0,0 +1,64 @@
+# pl_volcano_d: from pixellab_src/pl_volcano_d/base.png (variant of pl_volcano) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 30)
+# head_top at (32, 3)
+# back at (31, 39)
+# tail at (38, 52)
+..............oo^o..............
+.............ozyybo.............
+...........cocbbbbbcoo..........
+..........ybzcccccbbzzo.........
+.........obcbccccccbcbo.........
+.........oyccccccccbcyo.........
+........ozzyboyyyybobzbo........
+........obbzbzzbzzbbbzbo........
+........obbbczbcbzzcozco........
+.......obcbc2bc2cbbcobobo.......
+.......oc3b22bo12bb12bcco.......
+......oc33211co11cb112c3co......
+......oc33211co11cb112o3co......
+......o213211cc11bb22bcb3o......
+.....oc32321121111c112o2bbo.....
+.....oc32b211111111112b22bo.....
+.....oc22b211111111112b223o.....
+.....ob22c111211111112b223o.....
+....ob222c111221111112b2b3bo....
+....o332bb211111121112b13b2o....
+....o332bb2122111122112b322o....
+....o322bc11oo1111oo112b322o....
+....o322111o12211221o12b223o....
+....o32211o1222112221o1b123o....
+...o3c221oo2111111112oob1223o...
+...oc12b1o21ao111aoo12o1c21co...
+..obo2c23o21oo111aoo12o2cb12bo..
+..oc33b23o22bo21Aaob22o22b33bo..
+..o333b22o112211112211o22b23co..
+.oo333z22o111111111111o23c333oo.
+o1o333z32o111112211111o23c333o1o
+o1o333322o22112cc21122o22z333o1o
+o12o333322o222cbbc222o222333321o
+o32o3333222o22222223o2233333o23o
+o33oo33332222oooooo22233333oo33o
+.oo.ooo333222222222222333ooo.oo.
+....o3oo3333332B22233333oo3o....
+....o3oooo33333333333ooooo3o....
+...o22o..oooooooooooooo..o32o...
+...o22o..o33o......o33o..o32o...
+...o22o..o33o......o33o..o32o...
+...o22o..o33o......o32o..o22o...
+...o22o..o23o......o22o..o12o...
+...o211o.o22o......o21o.o112o...
+...o311o.o12o......o21o.o113o...
+....o21o.o12o......o21o.o12o....
+.....oo..o12o......o21o..oo.....
+.........o22o......o22o.........
+.........o22o......o22o.........
+.........o33o......o33T.........
+.........o33o......o33o.........
+.........o33o......o33o.........
+.........o33o......o33o.........
+.........o33o......o33o.........
+.........o33o......o33o.........
+........o223o......o322o........
+.......o2123o......o3212o.......
+........oooP........oooo........
diff --git a/parts_pl_src/body/pl_walrus.txt b/parts_pl_src/body/pl_walrus.txt
new file mode 100644
index 0000000..a0dc8af
--- /dev/null
+++ b/parts_pl_src/body/pl_walrus.txt
@@ -0,0 +1,44 @@
+# pl_walrus: from pixellab_src/pl_walrus/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 43)
+# head_top at (31, 26) (from part/probe)
+# back at (35, 28) (from part/probe)
+# tail at (48, 46) (from part/probe)
+.............oooooooo...................
+..........ooo11111111oo.................
+.........o2111111111111oo...............
+........o1111111111^11111o..............
+.......o111111111111111121o.............
+......o3211111113332111Bb21o............
+.....o111211111311112111b21o............
+....o31113111132111112111221o...........
+....ooooo311113ooooo22111222o...........
+....oo1booooo23oo1c2o311bb221o..........
+...o21oocbbbcooobob1o3311b221o..........
+...o2ocboaacabbco3131113222221o.........
+...ocbaocccobaabboo11111323221o.........
+..ocbaaoooooaaaaabbo1111323321o.........
+.oobaaabooobaaaaaabcoo133333221o........
+obbbaaaabobaaaaabcbcccoo3333221o........
+.obcaabbcocbbbabbbccco3333o3221o........
+..obcbbccoccbbbcbbccoco333o22221o.......
+.obcccccooocccbccbccco3333o2222a1o......
+..oocccocccooccccccoco333o32322b213.....
+...ocooobaabooococAcoo33o333322221o.....
+...ooo33o3333o3ooooco3ooo33o3222221o....
+.....o23oo333o12o3ooooo333o33322222o....
+.....o12oooooo12ooooo3333o3333232222T...
+.....o12o3oooo12o333333oo33333232222o...
+.....oo2o3333oo2o3333oo33333o3233223o...
+.....ooooo33333oo33oo3333333o33o32b3o...
+.....o3o33oooooo3oo33333333oo33o33b3o...
+.....o33o333333333333321112o33o3333o....
+.....o333oo22222333oo212233o3o33c33o....
+....o21133ooo33333oo33333333o33c33oooo..
+...oo22113o33ooooo3o33111223o33333o311o.
+.oo1111223oo3333333o21122233o3333o33322o
+o321311133o.oo33333o22111223o33oo333333o
+o313233333o...oooooo311111111oooooooooo.
+.ooooooooo.........o3113213223o.........
+....................o332312332o.........
+.....................Poooooooo..........
diff --git a/parts_pl_src/body/pl_walrus_b.txt b/parts_pl_src/body/pl_walrus_b.txt
new file mode 100644
index 0000000..0d8922f
--- /dev/null
+++ b/parts_pl_src/body/pl_walrus_b.txt
@@ -0,0 +1,44 @@
+# pl_walrus_b: from pixellab_src/pl_walrus_b/base.png (variant of pl_walrus) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (31, 23)
+# back at (35, 28)
+# tail at (48, 46)
+.............oooooo^...................
+..........ooo1111111oo.................
+.........o111111111111oo...............
+........o111111111111111o..............
+.......o1111111111111111o..............
+......o2111111113331111B1o.............
+.....o12111111131113111111o............
+....o212111111322111211111o............
+....ooo211111132ooo11111112o...........
+....o1o21111112owc231111112o...........
+....owo21111112oocw311111122o..........
+...o23c331111113bbw311111322o..........
+..o3acaaac111111333333111322o..........
+..o31obboo111111111333113322o..........
+..o11occo21111111113331133222o.........
+oo111133211111o1111111113322aco........
+.oo21122111112o1111111133322aaao.......
+...o21oooo1113111111222o33222baco......
+....oo2111oo2111112222o3322222b22o.....
+.....o222111111122222o3332222222bco....
+......oo2222222222oAo33222222222bbo....
+.......ooooooooooo333322222222222bbo...
+.......o333333333333322222222222222o...
+.......o2233333333322222222222222222T..
+.......o2223333333222222222222321112o..
+.......o33222222222222222223232211122o.
+.......o33o22222222321112223232211112o.
+......o223o32222222o211122o33o2221122o.
+......o212oo3222222o211122o33o2222222o.
+......o2123oo322223o211122o33o3222222oo
+......o2123ooo32223o211122o33o3322223oo
+.....o33123o.oo3333o211122o333o333333oo
+....o211133o.oooo33o21112oo33ooo33333oo
+...o313113o.o3oooooo22112oo3o32322333o.
+...o131333o..oooooo111112oooo2323333o..
+....oooooo.......o1311312o..oooooooo...
+.................o1313133o.............
+..................oPooooo..............
diff --git a/parts_pl_src/body/pl_walrus_c.txt b/parts_pl_src/body/pl_walrus_c.txt
new file mode 100644
index 0000000..f718bdf
--- /dev/null
+++ b/parts_pl_src/body/pl_walrus_c.txt
@@ -0,0 +1,49 @@
+# pl_walrus_c: from pixellab_src/pl_walrus_c/base.png (variant of pl_walrus) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 41)
+# head_top at (31, 18)
+# back at (35, 28)
+# tail at (52, 46)
+...............ooooo^o.....................
+...........ooo31122221ooo..................
+..........o22111111122221o.................
+.........o2112221111112221o................
+........o211111111111122b21o...............
+.......o31121112122221122b21o..............
+......o113212211221113122222o..............
+.....o21113111221112223222221o.............
+.....ooo11131311122oo22222b21oo............
+.....oooo223132222oo3o3222b2221o...........
+.....oowco2313222owo1o32B222222oo..........
+.....oowboooooooocobwo32222222221o.........
+....o213obcccbbooo2131122222222222oo.......
+....o2ocbobbboabbco22222223222322221o......
+.oo.oocaaoccooaaabco222oo232232221111o.....
+obo.ocbaacooocaaabbco22oc33232221111b1o....
+oboocbaaabcocbaaaaacco3obo322222111bb11o...
+oabcbaaaabcocbbaabaaccobbo322222111b112o...
+oaaaabaabbcoccbbaaaaacbaco22222221111122o..
+ocbbbbbbbccocccbbcacaaacco222322222222b2o..
+.ocbccbccco3ooccbccbbbcco2222332222222222o.
+..ooccccoo333oocccccccco322223o3222222122o.
+.o22oooo3333333oooooooo22222333oo2222112bbo
+.o222222322223333332A22222233233oo22112bb2o
+.o3222332211222223322223333332333o2211bb22o
+o2b333211111111112233333333322233o221bb22bo
+o2bb11aa111111111112bbb2222222233o2111122bo
+o22bb11a11111111111bb32222222223o211112223o
+o22bb21aa111111111bb222b22222223o21111222T.
+o2b2bb11111111111bb322bb22222233o22311222o.
+o2b22bb111111111bb322bb222222333o22312222o.
+.ob22cb22222222bbc22bb2233332333ooo222232o.
+.o3222bb2222222bb22bb223211122333o323o2oo..
+.oo3222b222222bb222b22321111223333oooooo...
+.o3o3333b222222222bb2o221111222o33333oo....
+.o23o333b33222222bb33o221112222o33333oo....
+..o33ooo333333333b333o222222223o3333o32o...
+..oo333oooo3333333333o22333222o3333o3332o..
+.o3223333oooo33333333oo2222222ooooo33333o..
+.o313133333o.oooooooooo2222222oooooooooo...
+..ooooooooo..........o323223223o...........
+.....................o331321331o...........
+......................Poooooooo............
diff --git a/parts_pl_src/body/pl_walrus_d.txt b/parts_pl_src/body/pl_walrus_d.txt
new file mode 100644
index 0000000..e186589
--- /dev/null
+++ b/parts_pl_src/body/pl_walrus_d.txt
@@ -0,0 +1,50 @@
+# pl_walrus_d: from pixellab_src/pl_walrus_d/base.png (variant of pl_walrus) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (31, 17)
+# back at (35, 28)
+# tail at (54, 46)
+....................oo^ooo.....................
+...............ooooo331111ooo..................
+............ooo11322223211111ooo...............
+..........oo21113211111332111111o..............
+.........o22111321111122233211111oo............
+........o21111321111112221bo3111111o...........
+.......o21111321111111222221o2111111o..........
+......o33111321111333112bb221o111111o..........
+.....o2112213111321113112b2221o111122o.........
+....o22221o1311o22222232222221oo111122o........
+....o2ooo2o1311322ooo23222222223111122oo.......
+....oocwoo313113oowc2oo222Bb2223o11112o2o......
+....oo1bboooooo3obob1oo322bb2223o11122o21o.....
+...o222oobbbbccoobbb1222o222222332222o321o.....
+...o21obbc222bbbbo2121122o23322o33ooo32211o....
+...oobaaoccccoaaaboo22222o23o3oo33321o2221o....
+...obaaaooccooaaaabco2222o33o321o31111o221o....
+..obaaaaaooooaaaaabccoo23o33o222332111o2211o...
+..obaaaaabobaaaaabbccccoo333o22233211132221o...
+..obcaaabbocbbbbbbbbcccoo333322233211132b22o...
+..occcbbbcoccbbbbcccccco3333322233222132b23o...
+..ooocccccoocccccoooocco33o3322o33222132223o...
+...o1ooccooooocco222oco33oo33o2o332222o2333o...
+..oo122oobbbbboo22112ooA3oo33ooo333223333ooo...
+..o11133ob2222bo211w2o333o333oo333333333o33oo..
+..o11133oo22223o221w2oo3o3333ooo333333oo3222o..
+..ow123oo3o22233o21wwooo3o333333o33333o322211o.
+..ow123oooo33333o21wwo33o33o22222o333o22211b1o.
+..o1123o33ooooooo21w1o3333o2211222o33o22111b1o.
+..oo122o3333333oo211o3333o22111122o33o2211121T.
+..o2o12ooo333333o212o33oo321111122o3o32211112o.
+..o2oo23o3oooooo3223ooooo321111b22o3o32221123o.
+..o22oooo333333o333o333oo321111123ooo33222bc3o.
+..o3333ooo333333ooo333ooo3o3333323ooo3o222233oo
+..o112333o333333333333ooo3211122o3oooo3o333333o
+..o1123333oo3ooooooooo33o21111122oooooo3333333o
+..oo223333ooo33333333333o21111122ooo.oo3333333o
+..o2ooooo33oooo3333o3333oo2111122oo...oooo3333o
+.o22223333oo.oo33333333oooooooo3o3o...o3333333o
+o322312333oo...oooooooooo21111223oo..o333o2333o
+o12323333ooo......oooooo111111123oo..o33333233o
+.oooooooooo...........o13213132233o...oooooooo.
+......................ow233232333o.............
+.......................Pooooooooo..............
diff --git a/parts_pl_src/body/pl_weevil.txt b/parts_pl_src/body/pl_weevil.txt
new file mode 100644
index 0000000..5cd2d31
--- /dev/null
+++ b/parts_pl_src/body/pl_weevil.txt
@@ -0,0 +1,39 @@
+# pl_weevil: from pixellab_src/pl_weevil/base.png (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (34, 43)
+# head_top at (34, 30) (from part/probe)
+# back at (36, 31) (from part/probe)
+# tail at (49, 39) (from part/probe)
+..................oooooooo............
+...............ooo3caa22223ooo........
+..ooo......oooo33333o^21112aaoo.......
+..o12o....o12o33322223oB1111aa3o......
+..o223....o223o33221112o21111223o.....
+..o333o..oo333oo33211112o21111223o....
+...oo23o.o3o33o3oo3211122o21112123o...
+.....o23o3ooo23o3oo3211222o22222223o..
+......o23o333323333o322212o3a22222cco.
+.......o21232o322333o322223oaa2222aco.
+........o33212o33233o332223oaa2223aco.
+.......oo221112233333o32233o32223333To
+.......owo11111oowo33o33333o333333333o
+.......o2o11112ow3wo3o33333o333333333o
+.......oo21111oooowo3o33333o333333333o
+......o21xx111o3o3wo3A33333o333333333o
+.....o1x1111122o3wo3oo3333o333c33333co
+....o111111332222o33o3o333o33ccc333cco
+...o111123333o23oooo3ooooo333ccc3333co
+..o11123333oowooo223o33oo3333ccc33333o
+.o1x13333oo33o3233oo3333oo33333333333o
+o21133ooo..oo333oo33333333o333333333o.
+oaa33o...ooooooo33322233333oo333333o..
+o1a3o...o22333oo222222ooo333ooooooo3o.
+oaco...oa233333o33322o333o3o333oo3322o
+occo...o233ooooooo333o3223oo3323o333ao
+.oo....o23o.o33o.ooooo3212oo333a3oo32o
+.......o33o.o3o..ooo.oo2a2ooo3323oo33o
+.......o23o..oo.......o322o..o323o.o3o
+........oo............o322o..o333o..oo
+.......................o33o...o32o....
+.......................o32o....oo.....
+........................Po............
diff --git a/parts_pl_src/body/pl_weevil_b.txt b/parts_pl_src/body/pl_weevil_b.txt
new file mode 100644
index 0000000..9f1b23a
--- /dev/null
+++ b/parts_pl_src/body/pl_weevil_b.txt
@@ -0,0 +1,50 @@
+# pl_weevil_b: from pixellab_src/pl_weevil_b/base.png (variant of pl_weevil) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (35, 38)
+# head_top at (34, 18)
+# back at (36, 31)
+# tail at (52, 39)
+........................oooo.............
+.............oo...ooo^oo3xx1o............
+...........oox1ooocbbbbb3311o............
+..........oxx1133cccccbba3333ooo.........
+..........o121333111cccaaab11113oooo.....
+..........o33331111111ccaaab111131x1o....
+.........oo3333111111111caaab111311x1o...
+........oo222333311111111caaab1131311o...
+........o2223xx11311111111caaaa113313o...
+.......o33231111x131111111ccaaa111333o...
+......oxx3231133x1311111111caaaa11233o...
+.....o1x13232231332111221111caaa112223o..
+.....o11332233333311121x1111caaa112222o..
+..oooo31333oo3331111311xx311ccaab222223o.
+..o12oo333o12o222111311Bx311ccaab222223o.
+..o223o333o223o22211321223111caaab222223o
+..o333o333o333oo3322322223222caaab2232xxo
+...oo23o333o33o3oo322322322222caab22311xo
+....oo23o3ooo23o33o32233222222caab223311o
+....o1o23o322323322o3222222222caab223322o
+....o33o21232o322322o322222222cbbb223333o
+.....o33o33212o33222o3A2232222cbbb23333o.
+.....o3oo221112222222o3223xx32cbbb33333T.
+.....o3owo11111oowo22o33333132cbbb33333o.
+.....o3o2o11112ow2wo2o33332333cbbb33333o.
+......ooo21111oooowo2o33333333cbbb333313o
+......o21xx111o2o2wo2o33333333cbbb33331xo
+.....o1x1111122o2wo3oo33333333cbbc333111o
+....o111x11222222o33o3o3333333cbbc333132o
+...o11x122223o23oooo3o33333333cbbc33313o.
+..o11122223oowooo113oo33333333cbbc3333oo.
+.o1x12223oo33o2133ooo33332x133cbbc333oo..
+o21122ooo..oo333oo223333321133ccc333oo...
+oaa22o...ooooooo3333333333333cccc33oo....
+o1a2o...o22333oo332222ooo333ooooooo3o....
+oabo...oa233333o33322o333o3o332oo3322o...
+obbo...o233ooooooo333o2113oo3212o332ao...
+.oo....o23o.o33o.ooooo2212oo332a3oo32o...
+.......o33o.o3o..ooo.oo2a2ooo3222oo33o...
+.......o23o..oo.......o322o..o322o.o3o...
+........oo............o322o..o333o..oo...
+.......................o33o...o32o.......
+.......................o32o....oo........
+........................Po...............
diff --git a/parts_pl_src/body/pl_weevil_c.txt b/parts_pl_src/body/pl_weevil_c.txt
new file mode 100644
index 0000000..a0cd900
--- /dev/null
+++ b/parts_pl_src/body/pl_weevil_c.txt
@@ -0,0 +1,38 @@
+# pl_weevil_c: from pixellab_src/pl_weevil_c/base.png (variant of pl_weevil) (pixellab_library.py extract)
+# pivot at (35, 58)
+# aura at (33, 41)
+# head_top at (34, 27)
+# back at (36, 31)
+# tail at (58, 39)
+...................oooooooo^oooooooooooooooo........
+...oo.......oo..ooo3333322bbb222222bb2222bb2oo......
+..o12o.....o12oo33333222222bbb222222bb2222b222o.....
+..o223o....o223o333332111122bbb222112bb2222b212o....
+..o333o....o333oooo3332111122Bbb221112bb211bb112o...
+...oo23o...oo333333o333211112bab221111ba2111bb22o...
+.....o23o.o333231133o333111122aab221112ab211bb222o..
+......o23oo31o3331113o33211122bbb222222bb2212bb22o..
+.......o313311o3331113o3321222bbb222222bb2222bb22oo.
+.......oo31111333111133o3222222bbb222222bb2222b2221o
+.......o33111111ooo1113o3322222bbb222222bb2222b2233o
+......owo111111owwwo113o3322222bbb222222bb2223b3333o
+.....owoo11111owwwwwo113o322222bbb222222cb3333c3333T
+.....owoo1111owwooww1o13o3333333bb333333cc3333c333o.
+.....o1o21111owoooow1o13o3A33333cc333333cc3333c333o.
+.....oo211111o11oow11o13o3333333cc333333cc3333c33o..
+.....o21111113o11111o333o3333333cc333333cc333cc33o..
+....o1111113333o111o333o3333333ccc33333ccc333c333o..
+...o111113333333ooo3333o3333333ccc33333cc3333c33o...
+..o211133333ooo3333333o33333333cc333333cc333co3o....
+..o1113333oo3333333333o3333333ccc33333cc3333c3oo....
+.o31133ooo..ooo333333o33333333cc333333coo33coo......
+.o1133o.....oo3oooooo33333oo33cc3oo33co33ooo........
+obab3o.....o23o3333333333o33occ3o33o3o3322o.........
+obbco.....ob233oo33333333o322ooo3322ooo32bo.........
+ocbco.....o233oooooooooooo3212oo333bo.o332o.........
+.ooo......o23o.o33o......o32b2ooo322o..o33o.........
+..........o33o.o23o.......o322o..o32o..o32o.........
+..........o23o..oo........o322o..o33o...oo..........
+...........oo.............o333o...o2o...............
+...........................o22o....o................
+............................Po......................
diff --git a/parts_pl_src/body/pl_weevil_d.txt b/parts_pl_src/body/pl_weevil_d.txt
new file mode 100644
index 0000000..a579cfd
--- /dev/null
+++ b/parts_pl_src/body/pl_weevil_d.txt
@@ -0,0 +1,45 @@
+# pl_weevil_d: from pixellab_src/pl_weevil_d/base.png (variant of pl_weevil) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (34, 41)
+# head_top at (34, 22)
+# back at (36, 31)
+# tail at (53, 39)
+....................o^ooo................
+.................ooo22222oooo............
+..............ooo222222222222oo..........
+............oo22221112211122222oo........
+...........o222221111111112212222o.......
+.........oo2222111bbb1111111121222oo.....
+........o322222111bbb11111111112222oo....
+........o2222221111b11111111111122233o...
+..ooo..o222oo222111111111111bbb112233o...
+..o13o.o22o13o222111211B1113bbbb122233o..
+..o333o322o333o2221121122113bbbb112233o..
+..o333o2222333o2222221222221cbbb112233o..
+...oo33o222333o322222221222212211122233o.
+....oo33o2o3o33o3o322211222222211122223o.
+....o3o33o333333333o22222222222112222233o
+....o22o21232o3223333222222222222222233o.
+....o322o33212o33233o2222bbb222222223333o
+....o22oo221112233333o222bbb22222222bcc3T
+.....32owo11111oowo33o222ccc22222222bcc3o
+....o33o3o11112ow3wo3A22222222222222ccc3o
+....o33oo21111oooowo3o322222222222233c33o
+.....oo21xx111o3o3wo3o322222222222333333o
+.....o1x1111122o3wo3o3332222222223333333o
+....o111111332222o33o333223222bb3333333o.
+...o111123333o23oooo333332322bbbb333333o.
+..o11123333oo3ooo333333333333bccc333333o.
+.o1x13333oo333333333323333333cccc33333o..
+o21133ooo333333333333333333333c3333333o..
+oba33o..o3333333333333333333333333333o...
+o1b3o...oo33333333333333333333333333o....
+obco...ob3o333333333333333333333333ooo...
+occo...o333o3333333333333333333333o3bo...
+.oo....o33o.oo333333333313333333ooo33o...
+.......o33o.o3oo33333333b333o3oo3oo33o...
+.......o33o..oo.oooo33o333oooo333o.o3o...
+........oo..........ooo333o..o333o..oo...
+.......................o33o...o33o.......
+.......................o33o....oo........
+........................Po...............
diff --git a/parts_pl_src/body/pl_wisp.txt b/parts_pl_src/body/pl_wisp.txt
index 8f77362..f5097b4 100644
--- a/parts_pl_src/body/pl_wisp.txt
+++ b/parts_pl_src/body/pl_wisp.txt
@@ -1,9 +1,9 @@
# pl_wisp: from pixellab_src/pl_wisp/base.png (pixellab_library.py extract)
# pivot at (30, 60)
# aura at (31, 42)
-# head_top at (32, 21) (from part)
-# back at (30, 40) (from part)
-# tail at (44, 48) (from part)
+# head_top at (32, 21) (from part/probe)
+# back at (30, 40) (from part/probe)
+# tail at (44, 48) (from part/probe)
..............oooooo..............
............oo222^23ooo...........
..........oo11112222233o..........
diff --git a/parts_pl_src/body/pl_wisp_b.txt b/parts_pl_src/body/pl_wisp_b.txt
new file mode 100644
index 0000000..89414f4
--- /dev/null
+++ b/parts_pl_src/body/pl_wisp_b.txt
@@ -0,0 +1,56 @@
+# pl_wisp_b: from pixellab_src/pl_wisp_b/base.png (variant of pl_wisp) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 36)
+# head_top at (32, 11)
+# back at (30, 40)
+# tail at (54, 48)
+...................oooo^ooo...................
+.................oo22222233oo.................
+................o222112222333o................
+...............o22111122222333o...............
+.........ooooooo21111122222233oooooo..........
+.......oo222222221111222222233333333oo........
+......o2211111222211222222223332222333o.......
+......o2111111112222222222233322222233o.......
+.....o21111bb11112222222222222222222333o......
+.....o211aabb111112222222222b2222222bc3o......
+....o2211bbbb111122222222222bb22222bbcc3o.....
+....o2211bbb1112222222222222b222222bbbcco.....
+....o222211111222222222222222222222bbbcc3o....
+....o2222222212222222222222222222222bbcc3o....
+....o33322222222222222222222222222222bc33o....
+...oo333332222222222222222222222222222333oo...
+..oo2222222222222oo32222223oo2222222223333oo..
+..o211222bb22222o11o322223o11o2222222232233o..
+.o2111122bb2222o1ww1o2222owww1o2222222222333o.
+.o2111122222222owwwoo2222ooww1o2222222222233o.
+o22111222222222owwooo2222ooww1o2222b32222233o.
+o22111222222222owwooo2222ooww1o2222cc22222333o
+o222122222222222o11o322223o11o222222222222333o
+o2222222222222222oo32222223oo222222222222bc33o
+o22222aa2222222222222ooo2222222222222222abcc3o
+o3222aabb22222222222ooAoo222222222222222bcccco
+o3322bbbbc2222222222ocbbo222222222222222bcccco
+.o322bbbbc222222222222222222222222222222cccco.
+.o332bbbbc2222222222222222222222bb2222223ccco.
+..o322ccc222222222222B2222222222bbc2222333coo.
+..o33222222222b222222222222222222c2222233cco..
+..oo3322222222cc2222222222222222222222233co...
+..ooo333222222232222222222222332222222333coo..
+.oo3o3333322223322222222222233332222cc333o3oo.
+.o113oo333333333322222222223333333333333o33co.
+o1223ooo3333333333322222223333333333333oo333co
+o122oo3ooo3333c333333333333333o333333oo3oo333o
+oc3oo22333oooooo3333333333333oooooooo3333oo3cT
+.ooo112233o33333ooo33333333ooo3333o3332333ooo.
+..oa1122co22223333ooooooooo33c33233oo332233o..
+..oa2223oo21123oo123333333333o332223oo33223o..
+...o33ooo211223o2122233322223oo32222ooo33oo...
+....ooooo11223co112223o322a22oo322b22ooooo....
+.......ob22223oo122b33oo222a23oo22bb2oo.......
+........o3333ooo22233ooo222a23ooo33b2o........
+.........oooo..o3333oo.oo3333oo.ooooo.........
+................oooooo..ooooo3o...............
+...............o12233o...o32233o..............
+...............o3333o.....oo333o..............
+...............ooooP.......ooooo..............
diff --git a/parts_pl_src/body/pl_wisp_c.txt b/parts_pl_src/body/pl_wisp_c.txt
new file mode 100644
index 0000000..ab4fa45
--- /dev/null
+++ b/parts_pl_src/body/pl_wisp_c.txt
@@ -0,0 +1,64 @@
+# pl_wisp_c: from pixellab_src/pl_wisp_c/base.png (variant of pl_wisp) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 38)
+# head_top at (32, 3)
+# back at (30, 40)
+# tail at (45, 48)
+................o^................
+...............o33................
+...............o33o...............
+...............o23o...............
+...............o23o...............
+...............o23o...............
+..............o2233o..............
+..............o1223o..............
+..............oa223o..............
+.............oaa2233o.............
+.............o122223o.............
+.............o12222bo.............
+............o21222bbo.............
+............oaa222233o............
+............oaaa22233o............
+...........o212222223o............
+...........oa122222223o...........
+...........oa222222223o...........
+..........o122222222abbo..........
+.........o2112222222abboo.........
+.........o21222222222233o.........
+........o211222333322233bo........
+.......o21122oooooooo223bo........
+......o2112oo3333333oo32b3o.......
+......o212ooo3222223ooo233o.......
+......o21oo11o32223o11oo33bo......
+.....o12oo1111o222o1111oo3bo......
+.....o12oo111oo222ooo11oo333o.....
+....o21ooo11ooo222ooo11o3o33o.....
+....o22o3o11ooo222ooo11o3o33o.....
+....o22o33o11o32223o11o33o33o.....
+....o22o323oo3222223oo323o33o.....
+....o32ooa22222ooo22222ao333o.....
+.....o22o32222ooooo22233o33o......
+.....o322o3222obaao222co33co......
+......oo22oo3222A2223oo33oo.......
+......oboo22o333333co33ooobo......
+......ooaoaaoooBooooobbooboo......
+.....o3ooaoaaabbbbbbboobboooo.....
+....o123obaocbaaaabbcbbboo323o....
+...oa23ooobabooooobaabbooo3a23o...
+..oa2233o3obaaaaaaabboo3oo3222o...
+..o22oooo23oobbbbboooo33oooo223...
+..o23o.o3223ooooooo33c3ccoo.o33o..
+..o3oo.o2222333333323c33coo.ooco..
+...oo..o2222322232223c333co..oT...
+......o32222322222223c333cco......
+.....o321223b22222222o3333coo.....
+....o3212223b11223222o33323coo....
+...o32122233b112232222o33323coo...
+..o31122233ob1122322a2ooc3323coo..
+.o3223222b3o21222332212o3c3323coo.
+o3333b22b33o22223332aa2oo3c33333co
+ooooo22bbooo122233332aa3o3o33ooooo
+....o33oooo322223oo322a23ooooo....
+....oooo..o32223ooooo2223o........
+...........o333oo...oo333o........
+...........ooooP.....ooooo........
diff --git a/parts_pl_src/body/pl_wisp_d.txt b/parts_pl_src/body/pl_wisp_d.txt
new file mode 100644
index 0000000..b95d843
--- /dev/null
+++ b/parts_pl_src/body/pl_wisp_d.txt
@@ -0,0 +1,60 @@
+# pl_wisp_d: from pixellab_src/pl_wisp_d/base.png (variant of pl_wisp) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 33)
+# head_top at (32, 7)
+# back at (30, 40)
+# tail at (46, 48)
+.............ooooo^oooo.............
+..........ooo2222222333oo...........
+.........o222222222222233oo.........
+........o211122222222222233oo.......
+......oo111112222222222222333o......
+.....o311111122222222222222333o.....
+....o21111112222222222222222333o....
+....o11111122222222222222a222333o...
+...o221111222222222222222a222333o...
+..o222112222222222222222222222333o..
+..o2222222222222222222222222223333o.
+.o22a22222222222222222222222223333o.
+.o22a22222222222222222222222222333o.
+.o22a22222222222222222222222222bb3o.
+o222222222222222222222222222222bb33o
+o2222222oooo322222222223oooo2223bbbo
+o222222o111oo3222222223o1111o2233bbo
+o22222o11wwooo22222222owwoo11o233bbo
+o2222o11wwwoooo222222oowwooo11o33b3o
+o2222o1wowwoooo222222oowwooo11o3333o
+o2222owwooooooo222222ooooooo1wo3333o
+o2222owwooooooo222222ooooooc1wo333co
+o3222owwoooooco222222occoooc1wo33cco
+o32222owooccaco222222occccacwo333cco
+.o32223occccco22222222oocccwo333cco.
+.o32aaa3ooooo3222222222ooooo3aaacco.
+.o32aaaa2222222222A222222222aaaacoo.
+..o3aaaa22222222222222222222aaaaoo..
+...o3aaa222222222ooo22222222aaaao...
+....ob22222222222222222222233b33o...
+.....o332222222222222222333coooo....
+......ooo3332222222222333ccooo......
+.......obooo333333333333ooooo.......
+.......obbobooooBoooooooboobo.......
+......o2obaoaaabbbbbbbbobbbo3o......
+.....o123obaobbaaaabbccbbbo333o.....
+....oa223oobaboooooobaabooo3223o....
+...oa223oo3obaaaaaaaabbooooo322ao...
+..o2223ooo33oobbbbbbbooo33ooo322o...
+..o223o.o3223oooooooo3333coooo223o..
+..o33oo.o2222333333332333cooo.333o..
+...ooo.o322223222222223333b3o.ooT...
+......o3222223222222223333b33o......
+.....o3212223c2222322233o33333o.....
+....o32122233c1122322233o333333o....
+...o33122233oc1122322223oc3323b3o...
+...o3122223oo21123322a23oc3322bc3o..
+.oo223322b3oo21223o322a23oc3322233o.
+.o3333b3bbooo22223o32aa23oob33222oo.
+..oooo33ooo.o2223ooo32aa3o.o33ooooo.
+.....oooo..o22223o.o322a2o.oooo.....
+...........o2223o...o32223o.........
+...........o333oo....oo333o.........
+............ooP.......ooooo.........
diff --git a/parts_pl_src/body/pl_wolverine.txt b/parts_pl_src/body/pl_wolverine.txt
new file mode 100644
index 0000000..202dc91
--- /dev/null
+++ b/parts_pl_src/body/pl_wolverine.txt
@@ -0,0 +1,49 @@
+# pl_wolverine: from pixellab_src/pl_wolverine/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 40)
+# head_top at (31, 21) (from part/probe)
+# back at (32, 30) (from part/probe)
+# tail at (49, 48) (from part/probe)
+...............oo.....................
+.............oo3o.ooo.................
+......ooo...oo33ooccooooooo...........
+.....o213o.oo223cc^cco1112o...........
+.....o3113ooo12322cco111332o..........
+.....o3313oo31122cco1113aa2o..........
+.....o3b3o22322112o111obaa3o..........
+.....o3boo113211112113obaa3ooo........
+.....o33o111211111122oaba33oco........
+......oo11112111111122oa333oooo.......
+......oo1112c1111111122333ooccco......
+.....oo111121111111111222oocccco......
+.....o1111121111111B2122333occoo......
+....oooo112c321112oocc222ooocccco.....
+....oc3oo22cc221oo2occ222222ocoo......
+....oo3o1ooccooobo1occ21122ooccco.....
+...o211o1o2113co311o321222oocccco.....
+...oo111oaaa1133oo3211112223ocoo......
+....oo231aaac11222oo111112oooccooo....
+....o22o1ooo1111oo1o211222co2223oo....
+....oo2c11o1113o111o2122oooo21112co...
+.....oo2boooooo211oa22222oc211221coo..
+......oooa211113ooA222ooooc2211122co..
+......ocooo22222222oooocccc32221122co.
+.....o22ccoooooooooccccoccccc211112co.
+....o3222coo3ccc3333cc33ooco21112122o.
+...o21112cco3a133313oc33cooo111113122o
+...o21112ccco2131o1oac33ccoo211122ccco
+..oo1112o3ccooo1o3o33o3cco31112o11c2co
+.oo111122o2coo3o33333333o2111111oo33oo
+.o32112o22oooo333313o32o2231111112o3T.
+o311322ooooooc31311a322ooo212111122oo.
+o222ooooaooocc33133o322oao223111122o..
+o2ooooaoooocc3o3333o322oooooo212222o..
+ooooaooaoooc3ccoccco3222oaaooo32323o..
+ooaoaoooooo333ccoooo3222oaooaooo33oo..
+.oaooaooo.oo33ccoooooc33ooooaaooooo...
+..ooooo....oocccco..ooccccooaooaoo....
+..........ooocccco...oocccoooooao.....
+........oooo3ccco....oo22coo..oo......
+.......oaoaooccoo...oooooooo..........
+.......oooooooo.....oaoaoaoo..........
+....................Poooooo...........
diff --git a/parts_pl_src/body/pl_wolverine_b.txt b/parts_pl_src/body/pl_wolverine_b.txt
new file mode 100644
index 0000000..60e6b56
--- /dev/null
+++ b/parts_pl_src/body/pl_wolverine_b.txt
@@ -0,0 +1,54 @@
+# pl_wolverine_b: from pixellab_src/pl_wolverine_b/base.png (variant of pl_wolverine) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (32, 36)
+# head_top at (31, 13)
+# back at (32, 30)
+# tail at (52, 48)
+...................ooo.^ooooo....................
+.................ooo3oo22occcooo.................
+.........ooooo..oocc3o3cccccccccooooooooo........
+.......ooo1123ooo3c3cccccccooooooo3333333oo......
+......o33o3111ooc233cccccco1113o33333333333o.....
+.....o331o33111oo213333cco111333o33111113333o....
+....o3111o3bo33o221133cco1112ba3o111111113333o...
+...o31111o3bcoo21233113o1111oba2o111111111bbbo...
+..obb1111o3bco1112311113113ocaa2o1111111aaabbbo..
+.obbaa111o33o1111311111113obca33o111111aaaaabbbo.
+.obaaa1111oo311113111111133ob23o311111aaaaaabbbo.
+.obaaaab11oo11113c1111111133333o31111aaaaaaaabbo.
+obbaaaab11oo111131111111111333oo31111aaaaaaaabbbo
+o311aaab1oo11111311111111113322o31111aaaaaa11333o
+o311aaabco211111311111112333322o3311aaaaa1111333o
+o3111babcooo1113c33111ooocc333ooo331aaab11111333o
+o3311baaoccooo23cc33ooo1occ333333o31aaab11111333o
+o33311bboo3o1oooccooobowBcc31133oo33bab111113333o
+oo3311bo311o1oo2113coc1woc11333ooc3bbb311113333oo
+.o33333oo111oobba1132oo311111333co3bbb333333333o.
+.oo3333boo1322bbbc11222oo111113ooocb3333333333oo.
+..oo3333o33c21ooo1111oo1o211333coocccc3333332oo..
+...oocccoo3c211o1113o11wo2123oooocccccc3333ooo...
+....oocccoo2booooooo11woA22333ooccc3113cccccco...
+....oc33ccoocb2111113oo2222ooooocc3111133cccco...
+....oc333ccoooo2222222223oooccoocc311111133cco...
+....oc3333coo2coooooooooo33bcccoccc11111133cco...
+...oc11333coo3cc3cccccbb333occcooccc33111133co...
+...o31111ccoo33o22b33b3133c333ccoooc31111133co...
+...o311113cco33o322133313oc333cccoo311111133cco..
+..o3311113cco333o13131o1obc333ccco3311113133cco..
+..o32111122cco33coo11o3o33b333ccoo3211111333cco..
+..o212111323coo3c33oo33333333ccco31111111133co...
+..oo311111ccoooc3333333113o333co311111113o33oo...
+...o3111113cooo3c33113113bo3113o333111111333o....
+...o3111333cco313c3311113o31113ooo311111133oT....
+...o3111333oo3111c333333b311113oao313111133oo....
+...o31313oooo31113ob333bo311113ooo332111333o.....
+...o33o33oboo31113cocccco311113oooo3oo13333o.....
+...oo3ooooobo31133ccooooo311113coacooo3333oo.....
+....ooooaooooo333cccccooo33111ccobooacoo33o......
+.....oaooaoooooccccccoo..oc333ccooooacooooo......
+......oooo....ooccccco...ooccccco.ooaooboo.......
+.............oo3ccccco....occcccco.oooobo........
+...........ooooo1cccco....o3111cco....oo.........
+...........oaoboocccoo...oooooooco...............
+...........ooooooooo.....oaoboaooo...............
+.........................Poooooo.................
diff --git a/parts_pl_src/body/pl_wolverine_c.txt b/parts_pl_src/body/pl_wolverine_c.txt
new file mode 100644
index 0000000..58d2482
--- /dev/null
+++ b/parts_pl_src/body/pl_wolverine_c.txt
@@ -0,0 +1,53 @@
+# pl_wolverine_c: from pixellab_src/pl_wolverine_c/base.png (variant of pl_wolverine) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 39)
+# head_top at (31, 15)
+# back at (32, 30)
+# tail at (49, 48)
+...............oo....................
+......ooo.....o3o.^oo..oooo..........
+.....o322o...occooccooo222o..........
+.....o3322o.oo3cccccco22233o.........
+.....o3o223oo32333cco222oa3o.........
+.....o3bo23o332333co222oaa3o.........
+.....o3bc3o223322223223oaa3o.........
+.....o3bco322322222223obaa3o.........
+.....o33o3222222222222oba33o.........
+......o33222ba222222222333o..........
+.......o3222aa22222222223oo..........
+......oo1322b2222111122233o..........
+......oo111222221112222233oo.........
+......ooo113222113oo3222333o.........
+.....oco1o132231oo1o32222333o........
+.....ocowoo3223ocowo3222233o.........
+......3a1oo1113o323B32222333o........
+.....o3aa3311113333aa112233oo........
+.....o3aa3caac11111aa11333oo.........
+......o313cccc111111113333oco........
+.......o331cc11111113333ooccco.......
+........o311111111133ooocc3333o......
+........oo1cccc1113ooccccc32223o.....
+.........o11111113o33cccc3222223o....
+........oco33333oo3333occ3222222co...
+........occooooo33A311occc2222222co..
+.......o3cco3333333111occc32222223o..
+......o322co313331111occocc3222223co.
+.....o3222cco3311111oc33occc3222223o.
+....o32222cccoo11o3obc333oco3222323o.
+...o322223ccco3oo3333c333coo22222323o
+...o31113cccoc3333111c333coo311133cco
+...o2223o3ccoc3111111o333o32223o11c3o
+.oo222233o3ooc3111113o33o3222222oo33o
+.o33223o33oocc311111o32o3332222223o3T
+o322333ooooocc311113332ooo323222233o.
+o333ooooboo32c33333o332oao333222233o.
+o3ooooaoooo323o3333o322oooooo323333o.
+ooooaoobooo32ccoccco3222oabooo33333o.
+ooboaoooo.o333ccoooo3222obooaooo33oo.
+.oboobooo.oo33ccoo.ooc33ooooabooooo..
+..ooooo....oocccco..ooccccoobooboo...
+...........oocccco...oocccooooobo....
+........oooocccco....oo33coo..oo.....
+.......obobooccoo...oooooooo.........
+.......oooooooo.....oaoboaoo.........
+....................Poooooo..........
diff --git a/parts_pl_src/body/pl_wolverine_d.txt b/parts_pl_src/body/pl_wolverine_d.txt
new file mode 100644
index 0000000..18efd4d
--- /dev/null
+++ b/parts_pl_src/body/pl_wolverine_d.txt
@@ -0,0 +1,49 @@
+# pl_wolverine_d: from pixellab_src/pl_wolverine_d/base.png (variant of pl_wolverine) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 40)
+# head_top at (31, 19)
+# back at (32, 30)
+# tail at (49, 48)
+...............oo.......................
+.............oo3o.^oo...................
+......ooo...oo33ooccooooooo.............
+.....o213o.oo223ccccco1112o.............
+.....o3113ooo12322cco111332o............
+.....o3313oo31122cco1113ba2o............
+.....o3b3o22322112o111obba3o............
+.....o3boo1132111c2113obaa3ooo..........
+.....o33oc1121111c122obba33oco..........
+......oo1c111111c11122ob333oooo.........
+......oo1c11111c1111122333oocooo........
+.....oo211c111c1111211222oooooaoo.......
+.....o2112c11221111B222222ooaooooo......
+....oo2o1122121112oocc222ooboocbboo.....
+...oco2oooo22221oo2occ222obbocaaaaoo....
+..ooao2o1oo222ooco1occ211obocaaaaacco...
+..oaoo2o1o21122o211oca12obooaaaaaacco...
+.ocaoo1aoobbb133ooc1a211obocaaaaaaacco..
+.ocboo12c1bab11222ob1111obocccaaaaaacoo.
+.occo2b2111c11111c1c1112ooboccaaaaaacoo.
+occcoo22112oooo11111c1222obboccaaacccoco
+obcccooo22o1111oo11112222oobocccccccacco
+ooaaccoooc222221ooA222ooooooboocaaaccoo.
+..ooooocooo22222232ooooccco3occcooooo...
+...oooocccoooooooooccccoccoo3oooo22co...
+..ocacco2coo3ccc33a3cc33ooooocccaooco...
+..ocaacoocco3b233a13oc33cooococaaaccoo..
+.ocaacccbocco2131o1obc33ccocccaaaaccco..
+.oaaacooccooooo1o3o33o3ccoooccaaaaccco..
+ocaacooboocooo3o33333333o211ocaaaacco...
+ooooo12ooooooo333313o32o22311oaaaaccT...
+o311322ooooooc31311b322ooo2111oaacoco...
+o222oooobooocc33133o322oao22311oocco....
+o2ooooaoooocc3o3333o322oooooo2122ooo....
+ooooaooboooc3ccoccco3222oabooo32322o....
+ooboaoooooo333ccoooo3222obooaooo33oo....
+.oboobooo.ooooooooooooooooooabooooo.....
+..ooooo...ocaaaaco..ocaaacoobooboo......
+..........oooooooo..ooooooooooobo.......
+........oooaacooo....obbbcco..oo........
+.......oboboaoooo...oooooooo............
+.......oooooooo.....oaoboaoo............
+....................Poooooo.............
diff --git a/parts_pl_src/body/pl_wombat.txt b/parts_pl_src/body/pl_wombat.txt
new file mode 100644
index 0000000..6a8ce1d
--- /dev/null
+++ b/parts_pl_src/body/pl_wombat.txt
@@ -0,0 +1,43 @@
+# pl_wombat: from pixellab_src/pl_wombat/base.png (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 41)
+# head_top at (30, 27) (from part/probe)
+# back at (40, 27) (from part/probe)
+# tail at (52, 43) (from part/probe)
+........ooo.......o..oo....ooo............
+......oo122o....oo2oo22oooo112o...........
+.....o112222oooo222222222o12222o..........
+....o22o2ooo1111111^1222o12ooB22oo........
+....o23oo11111111111112o12o33222o1oo......
+....o23o11111111111111122oc32222o121o.....
+....o2o111111111111111122obc2222o112ooo...
+.....o11111111111111111122oc2222o22222o...
+.....o1111111211111111111222212o22222oo...
+....o1111211121111111111112222oo2222233o..
+....o222221113o2111111111122ooo2222222o...
+....ooooo21112oooo22222211222222222222o...
+....o1o3o211122o1oooooo2112222222222223o..
+....o1w3o222222o1o33oo21112222222222223o..
+....o1aco2ccc22ococc1o11112222222222233o..
+....oo11ocbbbc2obab11o11112222222222223o..
+....o2oocbaabb22o111o211112222222222223o..
+....o22cbaaaabc22ooo2A11122222222222223oo.
+....o2111bbbbbb222211122222222222222222o3o
+...o1111111111112222222212222222o222223o3T
+..o1111111111112222222222222o1112o22233o3o
+.o111111111111122222222211oo11111o22233o3o
+.o1111111111112223oo222232oo111112o2223o3o
+o111111111111222oo3222222o2o111122o2233oo.
+o211111111122222o2222222o22o111112o3233oo.
+oooo22222222222222o222oo222o111122o3333o..
+.o3oo333ooo22222oo22o332222o211222o333o...
+.o33333333o3222ooooo2222222o221222o333o...
+..oo333333322oo333322222222o222222o33oo...
+...oooooooooo33322222222222o222222oooo....
+...o33oo2222222222222222222o2o222oo3o.....
+....oo..ooo2222222222222222ooo22oo33o.....
+..........ooooooooooooooooo33oooo333o.....
+..........o333o........o22233o...ooo......
+.........o333o..........o2233o............
+.........oooo..........o2222o.............
+........................Pooo..............
diff --git a/parts_pl_src/body/pl_wombat_b.txt b/parts_pl_src/body/pl_wombat_b.txt
new file mode 100644
index 0000000..d95e979
--- /dev/null
+++ b/parts_pl_src/body/pl_wombat_b.txt
@@ -0,0 +1,45 @@
+# pl_wombat_b: from pixellab_src/pl_wombat_b/base.png (variant of pl_wombat) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (32, 41)
+# head_top at (30, 23)
+# back at (40, 27)
+# tail at (54, 43)
+.................o......oo...................
+...............oo1o.^ooo22oo.................
+........oooo..o111o112212222ooo..............
+.......o223ooo1111112111222o223ooo...........
+......o3322o11111111112222o12333ooo..........
+.....o33oo221121111122222o23ooB33ocoo........
+.....o333211112112122222o23o33333oc22oo......
+.....ooo322122211222212233oc33333occ22oo.....
+.....o11122122112222111233occ3333o2cc233o....
+....oo112222222222221222113oc3323o2cc223o....
+...o1112222222222222222211223322o322cc23co...
+...o222222322223322222222212323oo322cc23co...
+...o2333333222233222222222222ooo3222cc22cco..
+..o12ooooo322223oo333333222222333222222bc3o..
+..o12o2o3o322223o2oooooo222222333222222bc33o.
+.o122o1w3o322223o1o33oo3222222223222222bc33o.
+.o222o1bco333333ococc1o22222223333222cc333co.
+o222aao11o333333ocac11o22222211332222cc233cco
+o32aaa2oo32222233o111oaaaa222222332222223cc3o
+.32aaa232111122233oooaAaaaa222333322222ccc3o.
+o32aao211111122223332aaaaaa222233332222cc333o
+o22ao2111111122223322aaaaaa22233223322333333T
+o32o21111111122223332aaaaaa22332122o32223333o
+.o2o212111122222333322aaaa223321112o3323333o.
+.oo2222222222223333o3222222333211122o323333o.
+.o3222222222223333o33222223333212122o323333o.
+.o3332222333233333o3322233333o222122o33333o..
+.oo3o3322ooo333333o3333333333o222222o33333o..
+.oo3o3333o3333333o33333333333o322222o33333o..
+.o3o333333333333o333333322333o322223o3333o...
+..o3o333333333oo3333322222233o332233o333oo...
+..o33ooooooooo333333322223233o333333o33oo....
+...o33o3333333333333323223333o33333oooo3o....
+....oooo3333333333333332333333o3333oo333o....
+........oo333333333333333333333ooooo3333o....
+.........o3333333333333333o3333o....oooo.....
+........o33333oo3oo3o333ooo3333o.............
+.........ooooo..oo.o.ooo.o33333o.............
+..........................Poooo..............
diff --git a/parts_pl_src/body/pl_wombat_c.txt b/parts_pl_src/body/pl_wombat_c.txt
new file mode 100644
index 0000000..75e8e40
--- /dev/null
+++ b/parts_pl_src/body/pl_wombat_c.txt
@@ -0,0 +1,55 @@
+# pl_wombat_c: from pixellab_src/pl_wombat_c/base.png (variant of pl_wombat) (pixellab_library.py extract)
+# pivot at (35, 59)
+# aura at (32, 34)
+# head_top at (30, 12)
+# back at (40, 27)
+# tail at (57, 43)
+........oooo.......................................
+.......o1222o.........^o..oooo..ooooo..............
+......o11222o.....oooo2ooo233ooo11222o.............
+.....o12222ooooooo222222222222o1122222o............
+....o123oooo21111111111111111o12oooo22oooooooo.....
+....oooo1111111111aaaa111111o11o3322222o11222oo....
+..oo111111111111111a31111111o2oo2222222o222222o....
+.o1111111111111111111111111122ob2222222o222222o....
+.o1111111111111111111111111112obb222222o222222oo...
+.o11111111111a11111111111111112ob222222o222222oo...
+.o11111111111a111111111111111122222222o2222222oo...
+.o11111111111111111111111111112222222oo22bb222o3o..
+.o1111111111111111111111111111222222oo22babb22ooo..
+.o11111111111111111111112211112222oo2222bbbbb2oo...
+.o1oo11111112111111111112311112222222222bbbbb2oo...
+.o12oo11111121221111112ooo211122222222222bbb22o3o..
+.o12oooo1112212211112oooo2211122B222222222b222o3o..
+.o12o1coo22o212o222oooc1o211112222222222222222o3o..
+.o12o11coooo222oooooocc1o211112222222222222222o3o..
+.o11owwooco222222ocooawwo211112222222222222222o3o..
+.o11oawbbboccccc2obbbawwo211112222222222222222o3o..
+.o112owwo21111112ooawwwo2211112222222222222222o3o..
+.o1112oo11111111122oooo221111122222b2222222223o3oo.
+.o1a11o11111111111222222A1ab312222222222222222o3o3o
+.o111o1111111111111211111aabb12222222222222222o3o3o
+.o11o11111111111111231111abb112222222222222222o3o3o
+.o1o11111111111111222o111bbb1122221111o2222222o3o3o
+.oo22222222222111122232111b111222o11111o2222c3o3o3o
+o211122222211121122222o2111111222o111112o222cco3o3o
+o223322222222223122222o211111122o1111111o22ccco3o3o
+o22oo222223oo213222222o221111122o11111112occcco3oo.
+o22oo222223oo223222222o221111122o11111112occcco3oo.
+.o2222222222o22322223o2221111122o11111122occcco3oT.
+.oo3222222222233222oo22222111122o11111222o3cc3o3o..
+.ooo333333333322ooo2222222111122o11111222o33c3oo...
+.o1boooooooooooo2222222222b11122o11111222o3333oo...
+.o1bab2222222222222222222abb1122o22111222o3333oo...
+.o1bbb222222222222222222aabb1122o22111222o333oo....
+.o1bbb222222222222222222abbb1122o22222222o33oo.....
+.o11b2222ab2222222222221bbbb1122o22222222oooo......
+.oo112222222222222b222211bb11122o222222o2o3o.......
+..oooo33333222222222222111111222o2o2222oo33o.......
+......ooooooooooooo22222222222ooooo222oo333o.......
+.........o33333ooooooooooooooo2223ooooo3333o.......
+.........o22233o..........o2222222o....oooo........
+........o22223o............o22222o.................
+........o2233o.............o12222o.................
+........ooooo.............o11122o..................
+...........................Poooo...................
diff --git a/parts_pl_src/body/pl_wombat_d.txt b/parts_pl_src/body/pl_wombat_d.txt
new file mode 100644
index 0000000..a7705b8
--- /dev/null
+++ b/parts_pl_src/body/pl_wombat_d.txt
@@ -0,0 +1,49 @@
+# pl_wombat_d: from pixellab_src/pl_wombat_d/base.png (variant of pl_wombat) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (30, 19)
+# back at (40, 27)
+# tail at (54, 43)
+..................oo..oo......................
+......ooo......o.o2oo^2oooo...................
+.....o112o...oo1o222222233ooo.oooooo..........
+....o22212ooo1o1112221113333oo111223o.........
+....o23o22321111112111112233o1122222o.........
+...o23333211111111211122222o212333223o........
+...o23332111211111111121122222o333323o........
+...o2332211121111111121122222o3333323o........
+...o3332221121111111111222222o3323323o........
+...o33222111111211111122222222oB23323oo.......
+....o2222221121211212222222222333322o2ooo.....
+...o22222222122211222222222222233323o2233o....
+...o2111122212221222111112222223333o33233o....
+..o212331122222222211222211222233oo3332233o...
+..o223oo3122222222133ooo331122233333322223o...
+..o23occo22222222223occco33122223333322233o...
+..o3owwooo222222223owwoooo33222233333222233oo.
+.o2o1wwooo22222222ocwwooo1o3222233333222223o..
+.o2o1ooooo32222223occoooo1o22222333332222333o.
+.o2o1ooooo32222223ooooooc1o22222233332223333o.
+o22owcoobo33333223ocoooocwo22222333332222333o.
+o222owcccoaaaaa323occooAwwo222223333322222333o
+oo223oooobaaaaab333occccwo2222223333322223333o
+oo222333baaaaaaab333ooooo32222233333222333333o
+oo322223bacaacbab3323333322222233333222233333o
+.o332223bacaacaab3322222222223333333223333333T
+.oo33223baabbaaab3322222222233333333232223333o
+..o33323obbcobbbo332222222233333332222223333o.
+...oo3333ooooooo3333222223333333332222223333o.
+....ooo3333aaab33333333333333333332222233333o.
+......ooo33333333333333333333333332222333333o.
+........ooooo333333333333333333333333323333oo.
+.........o333oooooo3333333322233o3333333333o..
+.........o3333333333333333222233o3333333333o..
+.........o31333o3333333322212233o333333333o...
+.........o311333o33333o322112233o333333333o...
+..........o21333oo3333o32112223o333333333o....
+..........o322233ooo33o32122233oooo333333o....
+...........o22233oooooo3222223oo..o333333o....
+...........o32223o..ooo3222233o....oooooo.....
+............o2323o...o3333323o................
+.............oooo....o333333o.................
+......................Pooooo..................
diff --git a/parts_pl_src/body/pl_worm.txt b/parts_pl_src/body/pl_worm.txt
index e67a76b..28ccade 100644
--- a/parts_pl_src/body/pl_worm.txt
+++ b/parts_pl_src/body/pl_worm.txt
@@ -1,9 +1,9 @@
# pl_worm: from pixellab_src/pl_worm/base.png (pixellab_library.py extract)
# pivot at (28, 60)
# aura at (31, 43)
-# head_top at (29, 24) (from part)
-# back at (40, 35) (from part)
-# tail at (48, 47) (from part)
+# head_top at (29, 24) (from part/probe)
+# back at (40, 35) (from part/probe)
+# tail at (48, 47) (from part/probe)
...........ooooooo..................
.........oo1111^11oo................
.......oo11111111112oo..............
diff --git a/parts_pl_src/body/pl_worm_b.txt b/parts_pl_src/body/pl_worm_b.txt
new file mode 100644
index 0000000..8eb72bc
--- /dev/null
+++ b/parts_pl_src/body/pl_worm_b.txt
@@ -0,0 +1,50 @@
+# pl_worm_b: from pixellab_src/pl_worm_b/base.png (variant of pl_worm) (pixellab_library.py extract)
+# pivot at (36, 60)
+# aura at (31, 41)
+# head_top at (29, 18)
+# back at (40, 35)
+# tail at (48, 47)
+..............oo...................
+............o^2o...................
+......o...oo123o.oooo..............
+.....o2o.o21223oo222o..............
+.....o1ooo122232222o...............
+.....o11o2222222223oo..............
+.....o21222bb22222222oo............
+.....o21122bb2223322223o...........
+.....o3212222233o3222222o..........
+....ooo32222233o3222232oo..........
+...oc2o332223oo3222223223o.........
+..oaa22oo323o3222222a23333o........
+..o222222ooo22222322aa3333oo.......
+.o21123222322111223222333o3o.......
+o222223222322222222322333oo........
+o32223o222o32222233o323o33o........
+oooooo22223ooooooooo3233o3o........
+o1ow3o22222o1w3o1o332c33ooo........
+oo13o222222o1oo11o322c3oBco........
+o3oo31112222ooooo322333ocoo........
+o3ao21o1o2223223aaa333occco........
+.o3o22ooo2222222223333oacoo........
+..oo3222222222233333ocaco3oo.......
+..oco2222222223333ooaaco333o.......
+..occo2222222ooAooaacco33333o......
+..oocboooooooccaaaccoo333333o......
+.o33ocaaaaaacaaaccco333333333o.....
+.o23oocccccbbccoooo22223o3333o.....
+ob2o33ooooooooo3333222b3o3333o.....
+o22o22222222222222o222b3o33333oo...
+o23o22112222222222o22223o33333ooT..
+o23o22122222222222o22223o33333o12o.
+o2o222222222222222o22223o33333o223o
+oco222222222222222oo223o333333oo23o
+.oo22222221222222223ooo333333o3223o
+..o32222222222222222333333333o2233o
+..o3222222222222222233333333o33333o
+...o322222222222222322222333o3333oo
+...o333322222222223322bb233o33333o.
+...o333333333333333222bb233o3333o..
+....o333oo33333333o2222223o333oo...
+.....o3333ooooooooo3222223oooo.....
+.....o33333o.......o322223o........
+......ooooo.........Pooooo.........
diff --git a/parts_pl_src/body/pl_worm_c.txt b/parts_pl_src/body/pl_worm_c.txt
new file mode 100644
index 0000000..4f1b7e4
--- /dev/null
+++ b/parts_pl_src/body/pl_worm_c.txt
@@ -0,0 +1,64 @@
+# pl_worm_c: from pixellab_src/pl_worm_c/base.png (variant of pl_worm) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (31, 38)
+# head_top at (29, 14)
+# back at (40, 35)
+# tail at (48, 47)
+.......oo.......................
+.......oo.......................
+......o2o.......................
+......o2o.......................
+.....o22o.......................
+.....o12o.......................
+.....o123o......................
+.....o123o......................
+.....o223o......................
+.....o2233o.....................
+.....o3233o.....................
+.....o32233^....................
+.....o32233oooo.................
+....oo332333322oo...............
+...o3333333322223o..............
+..o322333322222223o.............
+..o222222222222222o.............
+.o31232223221112222o............
+o322232223222222232o............
+o3333o222o3222223o2o............
+.oooo32223ooooooo323o...........
+.o1oo22222o13o1o3223o...........
+.ooo221222ooo11o2223o...........
+.obo22o2222oooo22223o...........
+.abo2232222222aa2223oo..........
+...o3222223332222233oo..........
+....o33333o333222233oco.........
+.....ooooo3333222233oco.........
+.......o3333322222ooaco.........
+......oo33332222ooaaco..........
+.....ocoo3222oooaaacoco.........
+.....occcoooocaaaccocco.........
+.....obcaaaaaaaccooccoB.........
+.....occccaaaooooccccoco........
+....ocaaoooooaaaacccocco........
+....ocaaaaaaaAaccoccccoo........
+...occoaaaaaaooooaaccco.........
+...ocacooooooccaaaccoo3o........
+....ocaaaaaaaaaccooo333o........
+....oocbbbaaaccoo33o333o........
+...o33ooooooooo3o223o33o........
+..o223o333333222o223o3oco.ooo...
+..o23o3222222222o223o3ocoo222o..
+.o223o2222222222o222oocco22122o.
+.o223o2222222222o222occco22212T.
+.o22ooo22222222oo222oacoo222123o
+.o22occooooooooco222occo3o22223o
+o222ocaaaaaaaaaco222ocoo32o2223o
+o222occaaaaaaaao2122oo3o322o233o
+o223ooccccaacaco2223o33o3233233o
+o323oooooccccooo3323o33o3333333o
+.o33oo333oooo333o33o333o333333o.
+..oo.o33o33333333oo333o333333o..
+......o33oo333o33333oo.oooooo...
+.......o333ooooo3223o...........
+......o3223o...o3113o...........
+......o3333o...o3333o...........
+......ooooo.....Pooo............
diff --git a/parts_pl_src/body/pl_worm_d.txt b/parts_pl_src/body/pl_worm_d.txt
new file mode 100644
index 0000000..f4dafd6
--- /dev/null
+++ b/parts_pl_src/body/pl_worm_d.txt
@@ -0,0 +1,50 @@
+# pl_worm_d: from pixellab_src/pl_worm_d/base.png (variant of pl_worm) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 41)
+# head_top at (29, 18)
+# back at (40, 35)
+# tail at (48, 47)
+................oo..................
+...............^1o..................
+..............o111o.................
+..........o...o113o.oo..............
+.........o1o.o1133oo1o..............
+.........o12oo1133o11o..ooo.........
+....oo...o13oo1133113oooaao.........
+....oaao.o33113333133oocaao.........
+....oacco11111111113occcabo.........
+....obbc1111111111111ccbbo..........
+.....ob111111111111111bboooo........
+.....o111111111111111112o11o........
+....o1111111121111121112313o........
+...o2111211121111111211133o.........
+..o2111121112111111112123oooooo.....
+..o22213o112o32222122o323ocoaao.....
+..oooooo11112ooooooooo313ococao.....
+..o1o13o11111o113o1o33233occobo.....
+..oo13o211111o1oo11o3113ocBcoo......
+..o3oo21111111ooooo32133oacoo.......
+..o3ao11o1o1112222aaa333oacoooo.....
+...o3o11ooo111222112333oacco111o....
+....oo3111111122233333oacco1113o....
+....oco2222222223333ooacco3333o.....
+....ocoo2222222ooAooaacco3333o......
+....ooccoooooooccaaaccco3333o.......
+...o22occccccccaaaaoooo3333ooooo....
+..o2122occcccaaccoo112o333oc111o....
+..o11123oooooooooo21112o3occ133o....
+..o32223o33333333o32222ooccc33oooo..
+.o3oooooo33111111ooooooocaccoo1112T.
+o113o12ooo322111o12oo13oaacoo21112o.
+o13oo12occooooooo12oo12oacco3o21123o
+o2o.o2ocaaaaaaaco2oco12occo3o2o1113o
+.oo.o2occaaaaaaao2oao2occo33o22o133o
+.....oocccaaaaaaacccoocco333o22o233o
+.....o3ooccccacccaacccoo3333o33o233o
+.....o333ooocccccccooo33333oo33o333o
+.....o332223ooooooo31113333oo33o333o
+......o3311111111111113333oco33o33o.
+.......o33311111111123333oco33o33o..
+.......oo33333333333o33ooco3oo.ooo..
+........ooo3333ooooo.ooccooo........
+..........ooooP........oo...........
diff --git a/parts_pl_src/body/pl_wyrm.txt b/parts_pl_src/body/pl_wyrm.txt
index de7c734..a991f27 100644
--- a/parts_pl_src/body/pl_wyrm.txt
+++ b/parts_pl_src/body/pl_wyrm.txt
@@ -1,9 +1,9 @@
# pl_wyrm: from pixellab_src/pl_wyrm/base.png (pixellab_library.py extract)
# pivot at (31, 60)
# aura at (30, 40)
-# head_top at (27, 20) (from part)
-# back at (34, 30) (from part)
-# tail at (44, 45) (from part)
+# head_top at (27, 20) (from part/probe)
+# back at (34, 30) (from part/probe)
+# tail at (44, 45) (from part/probe)
.............oooooooo......................
..........ooo2222^2aaoo....................
........oo321111222223co...................
diff --git a/parts_pl_src/body/pl_wyrm_b.txt b/parts_pl_src/body/pl_wyrm_b.txt
new file mode 100644
index 0000000..418bd32
--- /dev/null
+++ b/parts_pl_src/body/pl_wyrm_b.txt
@@ -0,0 +1,56 @@
+# pl_wyrm_b: from pixellab_src/pl_wyrm_b/base.png (variant of pl_wyrm) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 36)
+# head_top at (27, 12)
+# back at (34, 30)
+# tail at (45, 45)
+...............oo..ooo.....................
+..........oo.oo13^o113o....................
+..........ooo11332113oooo..................
+.........o3o1113211332113oo................
+.........o33113211333333311oo..............
+........o13113311331111333333o.............
+.......o3131131133113111133ooo.............
+.......o31311333133333311133o..............
+.......o313133333oooo33333113o.............
+........o3333oooo222aoo3333313o............
+........oo333211222223co3113333o...........
+.......o32332222222222bco3113ooo...........
+......o21122223322222223co3113o............
+......o22222ooo3223222a3aco311o............
+.....o32223oow322233322233o3313o...........
+....o211223obw1222o23332c3o3333o...........
+...o2222222221122o222332c3co3ooo...........
+...o32232322222oo.o2323323bo3o.............
+...oo333aaooooo....o22332c3o33o............
+...ocooooac........o2223B33o33o............
+..oco....obo...coo.o222323co33o............
+..ob......oaacco...o231233co3oo............
+.oao.......oooo...o2112233o33o.............
+.acco.............o111223co31o.............
+oooao............o2111233co31o......oooooo.
+...oo...........o313A2233o331o...ooo333333o
+...............o3111223co333o...o32233oooo.
+..............o31111233co133o..o2232oo.....
+.............oo21112233o31o...o2232o.......
+.............o21322233o33o....o223o........
+.......ooo..o31112233oo3oo...o2232o........
+......o222o.o1111oo33ooo.....o2232o........
+......o3o22o2111o22o23oo.....o2232o........
+......owo2oo132o2o2223o......o2233o........
+......oowoo1111ooo233o.......o32232T.......
+.......oo.o11111owooo.........o22c3o.......
+..........o11112oo33o.........o2233o.......
+.........ocb11122333o.........o21332o......
+.........occccc22233co.......o3213c3o......
+.........ocaaaa22223co.......o21ac33o......
+.........ocaaaab222333oo...oo3122332o......
+..........ocaaab2222c3aaooo322ac3c33o......
+..........obaabb32222222aa2aa12c332o.......
+..........obcbbcb33222c2a22ac233332o.......
+...........obbbbbb3332222c2223c332o........
+............obbbbbbc3333333c333223o........
+............oobbbbbcbb33333333223o.........
+.............oobbcbbbbbc2222223oo..........
+...............oobbbbbbcccc2ooo............
+.................ooooPoooooo...............
diff --git a/parts_pl_src/body/pl_wyrm_c.txt b/parts_pl_src/body/pl_wyrm_c.txt
new file mode 100644
index 0000000..508e8b8
--- /dev/null
+++ b/parts_pl_src/body/pl_wyrm_c.txt
@@ -0,0 +1,59 @@
+# pl_wyrm_c: from pixellab_src/pl_wyrm_c/base.png (variant of pl_wyrm) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 38)
+# head_top at (27, 15)
+# back at (34, 30)
+# tail at (45, 45)
+.........................oo...............
+.......................oo3o...............
+.....................oo23o................
+....................o223o.................
+...................o213o..................
+..................o1233o..................
+.................o213a3o..................
+................^21233co..................
+...............o2a23a33o..................
+..............o22a33a33o..................
+.............o212333333bo.................
+...........oo22a33333b33o.................
+.........oo2222222222333o.................
+.......oo321111222222233ao................
+......o32112222222222223a3o...............
+.....o21122223322222222233o...............
+.....o22222ooo32232222a233o...............
+...oo22223oow322233322a233ao..............
+..o1112223ocw1222o23322223ao..............
+.o11222222221122o2223322233o..............
+o2322222222222oo.o232322ac3o..............
+o222222ooooooo....o22332aco...............
+.oooooo...........o2223B23o...............
+..................o222323co...............
+..................o231233co...............
+.................o2112233o................
+.................o111223co................
+................o2111233co.........oooooo.
+...............o31322233o.......ooo333333o
+..............o3111223co.......o32233oooo.
+.............o31111A33co......o2232oo.....
+............oo21112233o......o2232o.......
+............o21322233o.......o223o........
+......ooo..o31112233o.......o2232o........
+.....o222o3o1111oo33o.......o2232o........
+.....o3o22o2111o22o23o......o2232o........
+.....owo2oo132o2o2223o......o2233o........
+.....oowoo1111ooo233o.......o32232T.......
+......oo.o11111owooo.........o22c3o.......
+.........o11112oo33o.........o2233o.......
+........o2111122333o.........o21332o......
+........o2322322233co.......o3213c3o......
+........o2111122223co.......o21ac33o......
+........o211112222333oo...oo3122332o......
+.........o211122222c3aaooo322ac3c33o......
+.........o2212232222222aa2aa12c332o.......
+.........o33333233222c2a22ac233332o.......
+..........o2222223332222c2223c332o........
+...........o22222223333333c333223o........
+...........oo2222332233333333223o.........
+............oo2232222232222223oo..........
+..............oo32222322222ooo............
+................ooooPoooooo...............
diff --git a/parts_pl_src/body/pl_wyrm_d.txt b/parts_pl_src/body/pl_wyrm_d.txt
new file mode 100644
index 0000000..38e25a7
--- /dev/null
+++ b/parts_pl_src/body/pl_wyrm_d.txt
@@ -0,0 +1,49 @@
+# pl_wyrm_d: from pixellab_src/pl_wyrm_d/base.png (variant of pl_wyrm) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (30, 40)
+# head_top at (27, 19)
+# back at (34, 30)
+# tail at (45, 45)
+.............ooo...........................
+...........oo111o^oooo.....................
+..........o21222o21111o....................
+........oo212222o322221o...................
+.......o212222322o32222ooo.................
+......o21222333333o2222o1o.................
+......o22223ooo333o322o321o................
+.....ooo223oow2333oooo3222o................
+....o112o33obw2333oo3222221o...............
+...o12o2333333333oo3oo222ooo...............
+...o2222oo33333ooo333oooo31o...............
+...oo333caooooo...o333o3331o...............
+...obooooab.......o333o1B31o...............
+..obo....obo...boo.o33o1331o...............
+..oa......oaabbo...o233ooooo...............
+.oao.......oooo...o3123133o................
+.abbo.............o3333133o................
+oooao............o3333o233o.........ooooo..
+...oo...........o311132ooo.......o1122222oo
+...............o22ooo123oo......o12233ooooo
+..............o31222o123o......o1223oo.....
+.............oo333231o33o.....o2223o.......
+.............o212333A3oo......ooooo........
+.......ooo..o212223oo3o......o2123o........
+......o122o3312222o31oo......o2123o........
+......o2o33o3333oo1o33o......o2223o........
+......owo3o2123o2o12o3o......o33ooo........
+......oowoo2222ooo23oo.......oo2123T.......
+.......oo.o22223owooo.........o2123o.......
+..........o12223oo33o.........o22233o......
+.........o3oooo33333o.........ooo233o......
+.........o21222o2233oo.......o212o33o......
+.........o21222o233o32o......o2122o3o......
+.........o21222o2oo322ooo.ooo212223oo......
+..........o12oo3o33222o11o111o222333o......
+..........ooo322o3222o322o2222o2233o.......
+..........o212223o322o2222o22223333o.......
+...........o222233o22o2222o2222o33b........
+...........oo122o33oo32222o2223o33o........
+............oo1o3333o33332o3333o3o.........
+.............oo32333o33333o3333oo..........
+...............oo23ob3333o33ooo............
+.................ooooPoooooo...............
diff --git a/parts_pl_src/body/pl_x_bagworm.txt b/parts_pl_src/body/pl_x_bagworm.txt
new file mode 100644
index 0000000..35f200e
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bagworm.txt
@@ -0,0 +1,46 @@
+# pl_x_bagworm: from pixellab_src/pl_x_bagworm/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 42)
+# head_top at (32, 27) (from part/probe)
+# back at (34, 32) (from part/probe)
+# tail at (48, 49) (from part/probe)
+..................oooo..................
+................ooyyyboo................
+............ooooyyb33bbyoooo............
+...........ooyz3y33oooobbbbooo..........
+.........oo3333zooccccoo33cyyyo.........
+........oyy33bboaooooooaob333yyo........
+.....oooyc3cccoooaob^oaooobbo3yyoo......
+.....ozo3obbooooccbaabccoooobb3zzyo.....
+......zzocooo3oobaaaaaaboo3ooob3yzyo....
+.....zz3boo33oobaooaaooaboo33oobz2zyo...
+...o2zy3bo331oobo1oaao1oboo13oobcz2yyo..
+..o2zzybo3331oobaocaacBaboo13ooob3z2yo..
+..ozzy3ooo33o1oocbaooabcoo1o33oooc3oyyo.
+.ozoo3booo32131boocbbcoob1312oooob3oo...
+...obooo33o2111ooaooooaoo1112o33oozyo...
+..oybooo332211111o1111o1111122333ooyyo..
+..ob3oo33222ooo1111111111ooo22233ooobo..
+.ob3ooo3322o111o11111111o111o2233ooo3bo.
+.ob3coo332o11oo1o111111o1oo11o233oobobo.
+.oc33oo332o1o1ooo111111oo1oo1o233ooco3o.
+.ozoboooo2o1ooooo111111ooooo1o2ooooc3bo.
+.oybooooo2oa1oo1o111A11o1oo11o2ooooyybo.
+..ozyooo332oaaao22111122oaaao233oooyyo..
+..ozyooo3322ooo22o1111o22ooo2233ooyzo...
+..oo3bbo3ba222222oooooo222222ab3oybczyo.
+..oy33yoo333222222222222222233oooyoz2o..
+..oyz3yoooo333222222222222333oooobo32o..
+..ozyzcyoooo3o33332222333333ooooy3o23o..
+...oyyzyooooooooo333333oooooooooyoz2T...
+...ozyy3yooo33oooooooooooo33oooz3333o...
+....ooy3yooo313o33333333o313oooz3z3o....
+....o3cb3cco312o33333333o213o3y3zzoo....
+.....oob3y3co23ooooooooooo2ob33czoo.....
+......ooo33booooo3oooooooooob3ocoo......
+....oooooccb33bbzo3byyyoooobobbooooo....
+.2oozzz33oo3bbooyy3333oyyc3ooooo3zzyo22.
+22oyyzzzozzooozz333o3b33obbooozzoz33yo22
+.22ooooozzzzzzoooccccoooooozzzzzzoooo22.
+....222oyyz2zoo22oooooooo2ooz2yyyo222...
+......22ooooo222222P22222222ooooo22.....
diff --git a/parts_pl_src/body/pl_x_bagworm_b.txt b/parts_pl_src/body/pl_x_bagworm_b.txt
new file mode 100644
index 0000000..7887e33
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bagworm_b.txt
@@ -0,0 +1,49 @@
+# pl_x_bagworm_b: from pixellab_src/pl_x_bagworm_b/base.png (variant of pl_x_bagworm) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 40)
+# head_top at (32, 18)
+# back at (34, 32)
+# tail at (51, 49)
+..................oooo^oooo.................
+...........ccc..ooxx2o22223oo...............
+..........cbaboo322222o333cb2ooo............
+..........cbbb3232222xxo3babc223oo..........
+..........ccc332232xx22oobbbco3222ccc.......
+........ooxx2333332xxooo22cb323323babc......
+.......o3322233xx32222o22233323332bbbc......
+......o33oo2o2xxx3oo32o2oo3xx2oo3333bc......
+......oobbbo222x2oaooooooao2x2o222o333o.....
+.....ooobabb2222oooaobboaooo2ooxxx2o233o....
+...cco3obbb323ooooccbaabccooooo2xx22323o....
+..cbab33bbxxooo3oobaaaaaaboo33o22x2o3333o...
+..cbco2232xxo33oobaooaaooaboo33ooocbo3222o..
+..cbx3333222o31oobo1oaao1oboo13oocabb3322o..
+..o3xx32332o331oobaooaaoBaboo13oocbbc3333o..
+..o3233223oo33o1oocbaooabcoo1o33occccoo333o.
+.o33333ccooo32131boocbbcoob1312ooooxx2ooxx2o
+.oxx33bbac33o2111ooaooooaoo1112o33oxx2o22xxo
+.oxx23cbbc332211111o1111o111112233ox22o2222o
+.o2223cccc3222ooo1111111111ooo22233oooo22ooo
+ox33233co3322o111o11111111o111o2233ooxxoooco
+oxxx3333o332o11oo1o111111o1oo11o233oo2xxoooo
+o2223223o332o1o1ooo111A11oo1oo1o233oo222occo
+o2232222ooo2o1ooooo111111ooooo1o2oooo32obbbo
+oo33322oooo2oa1oo1o111111o1oo11o2ooooooobbbc
+.ox33332oo332oaaao22111122oaaao233oo2x3occcc
+.ox2o222xo3322ooo22o1111o22ooo2233o2x22oooo.
+.o22o22xxo3ba222222oooooo222222ab3o2222o22o.
+.ooooo2xx2o333222222222222222233oooo222o22o.
+..cboo222oooo333222222222222333ooxxxo22o22o.
+..cboooooo22oo3o33332222333333oooxxx2ooo2o..
+..cboobbc322ooooooo333333oooooooo2223ooooT..
+...oocbab333oo33oooooooooooo33ooo222ox2oo...
+....ocbbbo33oo313o33333333o313oooooo2x2o....
+....ooooooooooo2ooooo33xxxxo2oo3occo222o....
+.....oo22o22o2oooxxx2ooxxxx2oo33cbacooo.....
+......o22o32o33332x22332xx22223ocbbcooo.....
+......ooooooo3x23322occ2222o22ox2cccoo......
+....oozzooooo3223ooocabboooo33o33ooozyo.....
+....oyyzzzoooo33322ocbbbox223oooozoz33yo....
+.....ooooo33zzoooo2obbboo22ooozzz33oooo.....
+.........oyyz2zoooooooooooo..oz22yyo........
+..........ooooP...............ooooo.........
diff --git a/parts_pl_src/body/pl_x_bagworm_c.txt b/parts_pl_src/body/pl_x_bagworm_c.txt
new file mode 100644
index 0000000..4f1c0f9
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bagworm_c.txt
@@ -0,0 +1,64 @@
+# pl_x_bagworm_c: from pixellab_src/pl_x_bagworm_c/base.png (variant of pl_x_bagworm) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 35)
+# head_top at (32, 3)
+# back at (34, 32)
+# tail at (45, 49)
+................o^o...............
+...............o11o...............
+.............ooo111oo.............
+.............2oo111o2o............
+............o2o1111o2o............
+............o221121221o...........
+...........o32211211212o..........
+...........o32211211212o..........
+..........o3222121112122o.........
+.........o21121121112112o.........
+.........o211211211121122o........
+.........o211211211111122o........
+........o3212211211111111oo.......
+.......o3311211121111112oco.......
+.......o321121112111111occco......
+.......o3111211121111oobbcco......
+......oco113111121oooaacccoo......
+......occo131111oobbaabbco32o.....
+......ocbbo311oobbbbbbboo232o.....
+......occbooobaabbbbboo21232o.....
+.....o2ooobbbbbbbbboo2221212oo....
+.....ooobbbbbbbbooo1112212122o....
+....ocbbbbcbbbooo321111212122o....
+...occcbbboooocbbooo1112121222o...
+...occcooo22oobbbabboo12221212o...
+...oooo3222222oobabbbbooo22212o...
+...o33322o22o111oobbbbbaaooo12o...
+...o2332o21o2o1111ooobbbbbbboooo..
+...o2332o1o1oo111111ooobbcbbbcco..
+...o2322o1oooo11111Boooooobbbcco..
+...o2333oaoooo111111o2oo22ooccco..
+...o23332oaao22111122oaaao23oooo..
+...o23o322oo22o11A1o22ooo223o22o..
+..o333oba22222oooooo222222aao22o..
+..o133o33222222222222222233o22oo..
+..o1331o333322222222222333o2oocco.
+..o11313oo333332222333333o3occcco.
+..o3121312ooo333333333ooooobcccco.
+..o3221312o33ooooooooo33ocbcccoo..
+..o332111o313o333333oo313occcooo..
+...o32211o313o11oooobo113ocoo31o..
+...o32211o333oooaabbbo113oo3331o..
+...o3121ooooobbbbbbbboo1o223131o..
+...ooooobbbaaabbbbbbo2ooo213131o..
+..occbbbaabbbbbbbooo31222113113o..
+..occccccbbbbbooo33311221113113o..
+..occccccbbooo3333111122111313T...
+..occcccooo3333113111121113113o...
+...ooooo3333313113111221113113o...
+....o332331131131311122113313o....
+....o333133131133311311113313o....
+...ooo3331313113331331113313ooo...
+..oyyoo33133131333133113333ooyyo..
+.oxyyzooo3333313331311333ooooyyyo.
+oxxyzoyxyoo3331133331333oyyyozxyxo
+.ooooyyyyyyoo33333312oooyxyyyoooo.
+....oxxy1yooooooooooo..oyy1xxo....
+.....ooooP..............ooooo.....
diff --git a/parts_pl_src/body/pl_x_bagworm_d.txt b/parts_pl_src/body/pl_x_bagworm_d.txt
new file mode 100644
index 0000000..3a2a4d1
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bagworm_d.txt
@@ -0,0 +1,51 @@
+# pl_x_bagworm_d: from pixellab_src/pl_x_bagworm_d/base.png (variant of pl_x_bagworm) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (32, 17)
+# back at (34, 32)
+# tail at (52, 49)
+.......................ooo...................
+.....................o^xyo...................
+....................oyyxyo...................
+................oo..oyxyo..ooooo.............
+...........ooooooyooyxxzoooxxyzo.............
+...........ozyyyybyzxxyzzzyxyyo..............
+..........oooozxyyyyxxyzyyxxyaooo............
+........ooxxyyzzxxyyyyyyyyyyyyxxxooo.........
+......ooyyyyxxxyyyyyxyyyyyyyyxxxyyyzzo.......
+......ooozzzyyxyyyyzyxyyyyyyxyyyyzoooo.......
+......oyyyyyyyyyyyyzyxyyzyxyyyyyyyyyyo.......
+....ooxxxxyyyyzxxyozyxyzozxyyzyxyxxxyyo......
+...oyyyyyyyxyyzxyzcozxyocozyxzyxyyyyzzzo.....
+..ozzzzzyyyxzzzxyobbozyoabozxzzyxyyyyzzzo....
+..ooozyxxyyxzozyocaooozooaboyzoyxyyxxxoo.....
+...oyyxyzyyxzozzobo1oaoo1obozzoayzyzxxxxo....
+..oyyyzzyyyzo3oaobaocaacBabozooayzyyyzzxyo...
+..oyzzzyxyyzo33ooocbaooabcoooo33ozzxxzzayo...
+.ozbbzyyxyyo32131aoocbbcoob13123ozzxxxzbbbo..
+.oooyyyyxyzoo2111ooaooooaoo1112o3zzxxxxyooo..
+..ozyyzyyzo32211111o1111o11111223ozxxzzyyo...
+.ozyybyyzzo222ooo1111111111ooo222ozzxybyyyo..
+.oyyyzyyzo322o111o11111111o111o223ozxxybbybo.
+obbbbyyyzo32o11oo1o111111o1oo11o23ozzxyzbbbbo
+oooyyyyyzo32o1o1ooo111A11oo1oo1o23ozzxyyyooo.
+.oaybxybooo2o1ooooo111111ooooo1o2ooozxxbyyo..
+.oabzxyzooo2oa1oo1o111111o1oo11o2ooozyxzbyo..
+.oabyyyyoo332oaaao22111122oaaao233oozyyybbbo.
+obbbyyyyyo3322ooo22o1111o22ooo2233oyyyybybbo.
+oooybyyxyo3ba222222oooooo222222ab3oyxyybycbo.
+.obbbybxyyo333222222222222222233ooyxxyybybo..
+.obbbybyyxyoo333222222222222333ooyxxybybbbo..
+.obbbybyyxxyyoo3333322223333oooyyyxxybybbbo..
+.ooobbbyyyxxyyyoooo333333ooooyyyyyyyybybobT..
+...obbbybyyyyyyyyyooooooooyyyyyxyyzyybbbooo..
+...obobbbyyyzyxyxxyyyyyyyyxyxxyxxybbybbbo....
+...obobbbyybbyyyyyyxyyyxyyxyyxyyxybbybbbo....
+....ooobbbybbyybzyzxyyyxybyyyybbyybbbboo.....
+......obbbbbbybbzybyyzzyybbyybbbybbbobo......
+......oobboobbbbbybyybbybbbybbbbbobboo.......
+....oozzoooobbobbbbbbzbbbbbbobbcoooozzo......
+....oyyzzzozoboobbobbbbbobbbobbozzozzzxo.....
+.....ooooozzzoozobbobbboobboooozzzzoooo......
+.........oxyz3zoooo.obbo.oo.ooz3zyxo.........
+..........ooooo......oP.......ooooo..........
diff --git a/parts_pl_src/body/pl_x_basilisk.txt b/parts_pl_src/body/pl_x_basilisk.txt
new file mode 100644
index 0000000..6b6727d
--- /dev/null
+++ b/parts_pl_src/body/pl_x_basilisk.txt
@@ -0,0 +1,50 @@
+# pl_x_basilisk: from pixellab_src/pl_x_basilisk/base.png (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (31, 41)
+# head_top at (34, 23) (from part/probe)
+# back at (32, 38) (from part/probe)
+# tail at (49, 49) (from part/probe)
+...................oooo.....................
+.................oo3211ooo..................
+.................o11311132o.................
+................o1111211131o................
+................o33111211112o...............
+...............o3113113111312o..............
+...............o21123121^1312o..............
+...............o11113222233223o.............
+...............o11112322333333o.............
+...............o111123333oo3333o............
+.......oo..ooooo1112233oo22oo33o.oo.........
+......o11oo1b22o312333o331b11o3oo11o........
+......o21o111b2o311233331b1113o2112o........
+......o3o1ooob1231123321b1ooo3o1122o........
+......ooo2oaaob132123211coaaoo3o22oo........
+.....o11ooaaaoc31322313cooaaao3o3311o.......
+.....o22ooaaoao31233113ocaoaao3o2112o.......
+......oooobaooo31133113obooabo3o222o........
+.......o13obcoo11111111obocbo311ooo.........
+......o3113ooo2111111111oooc31113o...o......
+......o3o1111111111111111222112o3o...co.....
+......o3bo111113211112B111111ooa3o...obo....
+.......obaoo111331113311111ooaabo....obbo...
+........oaaaooo111111111oooaaabo.....ooo3o..
+...ooo...oabcccooooooAoocccbaao......o11oo..
+..o212o...ooccbbbbbbbbbbbcccooo....oo312o3o.
+..o2122ooo33ooccbbbbbbbbcccoo33oo.o1132oooo.
+.oooo211223333ooccbbbbboooo333211o311122211o
+o11131112112333cooooooocc333321113211122211o
+o111132123333o3cccccccccc333332113223112333o
+oc331122233ooocccccccccccc3o333333o21112cco.
+.oc13112ooo..ocbbccccccbcc33ooo333oo1133cbo.
+.obc333o..oooocbbbbbbbbbbcc33ooooo1oo33Tooo.
+.oooooo..o122ocbbbbbbbbbbcc3321o11111oo33o..
+........o1b11ocbbbbbbbbbbcc311b1o1113333o...
+.......o1b112occbbbbbbbbccc3111b1o333333o...
+.......o111233occcbbbbcccc3331111o3333oo....
+.......o2123333occccccccco3333212o33oo......
+.......oo33333ooocccccccooo333333ooo........
+.....oo1333333o..oooooooooo3333332o.........
+....ob22123133o...........o3313213bo........
+...obccbc3bc23o...........o32cb3cbcbo.......
+....oobccobcoo.............oocbocbooo.......
+......oo..oo.................Po..oo.........
diff --git a/parts_pl_src/body/pl_x_basilisk_b.txt b/parts_pl_src/body/pl_x_basilisk_b.txt
new file mode 100644
index 0000000..54574b7
--- /dev/null
+++ b/parts_pl_src/body/pl_x_basilisk_b.txt
@@ -0,0 +1,56 @@
+# pl_x_basilisk_b: from pixellab_src/pl_x_basilisk_b/base.png (variant of pl_x_basilisk) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (32, 38)
+# head_top at (34, 12)
+# back at (32, 37)
+# tail at (53, 49)
+.....................oooo.....................
+...................oo3211^oo..................
+...................o11311132..................
+..................o111121113o.................
+..................o3311121111o................
+.................o311311311122o...............
+.................o211231211132o...............
+.................o1111322223323o..............
+.................o1111232333333o..............
+.................o11112333333333o.............
+.........oo..ooooo1112233332oo33o.oo..........
+........o11oo1b21o311333332b11o3oo11o.........
+........o2oooooc1o31123333booo331122o.........
+........ooo2oooo323212332cooooo3322oo.........
+.......ooooooaaoc33322323coaaoo3322ooo........
+.......o22ooaaooo31333313oooaao332212o........
+.......ooooobaooo31233113ocoabo33222oo........
+.......ooooooaooo31133113oooaoo33ooo33oo......
+......ocoo13ooooo11111111oooco313oo33ccco.....
+.....o3bo3313ooo1111111111ooc111o3o3bb133o....
+....o11bo3a11111132111123111111oa3obb11133o...
+...o3111coa3o111133111331111oooaaocb1111233o..
+...o13112coaao33221111111oooaaaao3b11133333o..
+..o111313cooabccccooooooooccbaao331111311333o.
+..o3111133ocoocbbbbbbbbbbbbbcooo331111111133o.
+..ob311233oc33oocbbbbbbbbcccooco3321111133cco.
+..obbc233ooc3333occbbbbBbooo3cco33311133bbcco.
+...oocc3o33c31333ooooooAo3333ccco33322bbbooo..
+..o33ooco3bb11313333333333111b3coo333ccoo33o..
+.obo1333o3c111311113311113111bc33oocco333oooo.
+.obo1133o3c1113111131111131111b133oo3331ob113o
+.obob23o333313321113111133311bb1333o3311ob11co
+o13obcco31b333133113111333333333333o33bbobbbco
+obo313co3bb111113333333111311bc1133occbbob113o
+oco1133o3bb113111111111111311bbc133o2111ob1b3o
+oo11112o3bc113111113111111311bbc133o1111ob13co
+o111o32o33c1131111131111123111bc33o11311o3113o
+.o11oo3o33c3323311133111333333bc33o11o111oooo.
+.o311ooo33c1131133333333113111bc33o33o11113oT.
+..oo33o3o3c3131111131111113111cc333ooo11311o..
+....ooo33o3c23211113111111311cc33333o22o33oo..
+......o323oc33331113211113333cc33313ooooooo...
+......o1133oo33332233222333333333111o333oo....
+.......obb333oo333333333333o333311bcoooo......
+........obbccccoo333333333ooccccbbcco.........
+......oo1333333o.ooooooooo.o3333333o..........
+.....ob33123133o...........o3313213bo.........
+....obccbc3bc33o...........o33cb3cbcbo........
+.....oobccobcoo.............oocbocbooo........
+.......oo..oo.................Po..oo..........
diff --git a/parts_pl_src/body/pl_x_basilisk_c.txt b/parts_pl_src/body/pl_x_basilisk_c.txt
new file mode 100644
index 0000000..e658ed8
--- /dev/null
+++ b/parts_pl_src/body/pl_x_basilisk_c.txt
@@ -0,0 +1,50 @@
+# pl_x_basilisk_c: from pixellab_src/pl_x_basilisk_c/base.png (variant of pl_x_basilisk) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (31, 41)
+# head_top at (34, 18)
+# back at (32, 38)
+# tail at (52, 49)
+...................oooo.....................
+.................oo3211o^o..................
+.................o11311132o.................
+................o1111211131o................
+................o33111211112o...............
+...............o3113113111312o..............
+...............o2112312111312o..............
+...............o11113222233223o.............
+...............o11112322333333o.............
+...............o111123333oo3333o............
+.......oo..ooooo1112233oo22oo33o.oo.........
+......o11oo1b22o312333o331b11o3oo11o........
+......o21o111b1o311233331b1113o2112o........
+......o3o1ooob1231123321b1ooo3o1122o........
+......ooo2oaaob132123211coaaoo3o22oo........
+.....o11ooaaaoc31322313cooaaao3o3311o.......
+.....o22ooaaoao31233113ocaoaao3o2112o.......
+......oooobaooo31133113obooabo3o222o........
+.......o13obcoo11111111obocbo313ooo.........
+.......o113ooo2111111111oooc3113o....o......
+.......o211111111111111112221123o....co.....
+........o3111113211112B1111111oo3....obo....
+.........ooo1113311133111111ooccco...obbo...
+........obccooo1111111111oooccccco...ooo3o..
+...ooo..ocbbbccooooooAooocccccbbo....o11oo..
+..o212o..obccbbccbccccccccbbccoo...oo312o3o.
+..o2122ooooobbcccbcbbbcbbccbboooo.o1132oooo.
+.oooo211223obbccbbcbbbcbbbcoo3311o311122211o
+o11131112112oooobbbooocbboo3321113211122211o
+o111132123333o33ooo333ooo33o332113223112333o
+oc331112233ooo33333333333133o33333o21112cco.
+.oc13112ooo..o111133311111333oo333oo1133cbo.
+.obc333o..oooo1b11111111c1333ooooo1oo33oooT.
+.oooooo..o122o1c1111111c1133111o11111oo33o..
+........o1b11o11c1111111113111b1o1113333o...
+.......o1b111o31111111c11231111b1o333333o...
+.......o1c1113o331111111333111c11o3333oo....
+.......o2111333o333333333333111c1o33oo......
+.......oo33333ooo3333333oo3331112ooo........
+.....oo1333333o..ooooooo..o3333332o.........
+....ob22123133o...........o3313213bo........
+...obccbc3bc23o...........o32cb3cbcbo.......
+....oobccobcoo.............oocbocbooo.......
+......oo..oo.................Po..oo.........
diff --git a/parts_pl_src/body/pl_x_basilisk_d.txt b/parts_pl_src/body/pl_x_basilisk_d.txt
new file mode 100644
index 0000000..e8c2063
--- /dev/null
+++ b/parts_pl_src/body/pl_x_basilisk_d.txt
@@ -0,0 +1,51 @@
+# pl_x_basilisk_d: from pixellab_src/pl_x_basilisk_d/base.png (variant of pl_x_basilisk) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (32, 41)
+# head_top at (34, 17)
+# back at (32, 38)
+# tail at (55, 49)
+......................oooo......................
+....................oo3322^oo...................
+....................o11322233o..................
+...................o1112322232o.................
+...................o33222322223o................
+..................o3113223222323o...............
+..................o3113323222323o...............
+..................o21123333333333o..............
+..................o21223333333333o..............
+..................o22223333oo33333o.............
+..........oo..ooooo222333oo33oo333ooo...........
+.........o21oo2b33o31333o332b22o33o12o..........
+.........o32o222b3o31233332b2223o3113o..........
+.........o3o2ooob233223322b2ooo3o2233o..........
+.........ooo3oaaob23323322coaaooo333oo..........
+........o22ooaaaoc3233323cooaaao3o3322o.........
+........o32ooaaoao3233323ocaoaao3o3223oo........
+.........oooooaooo3222223obooaoo33oooo33o.......
+.........o322oooo322222222ooooo2233o3333o.......
+........oo3o222222112221122333222o3o3331oo......
+.......o2o3bo222213122133122222oob3o322112o.....
+......ob12obbo2222322233222222oaabo32221111o....
+.....o2b222obaoooo222222B22oooaabo222221bb1o....
+....o32b2223oabcccooooooooobccbbo3222222bb22o...
+....o32222323ooccbbbbbbbbbbbccoo332222222222o...
+...o2b222332233ooccbbbbbAbbcco333222322222222o..
+...o22223o3222333oobbbbbbbooo3332223332222bb2o..
+..o2b223o3322222333ooooooo3332222223o33222bb23o.
+..obb223o32222222bbcccccccbb222222223o33222222o.
+.o322233o322222cbbbbbbbbbbbbb22222223o332222bb3o
+.ob22233o32222cbbbbbbbbbbbbbbb22222233o32222bb3o
+o3222233o3222bbbbbbbbbbbbbbbbbb2222333o32222333o
+o3222223o3322bbbbbbbbbbbbbbbbbbc223333o22222223o
+o3222222o3333bbbbbbbbbbbbbbbbbbc33333o222222223T
+o333222o322333bbbbbbbbbbbbbbbc3322333o233223233o
+.o3323o3222233ccbbbbbbbbbbbbc3322223333o322333o.
+..o333o22b22333cccbbbbbbbccc33222b233ooo333333o.
+...o33o2222233oocccccccccccc332222b23ooo3333oo..
+....ooo333223333ooccccccccco332223b33o..oooo....
+.......o33333333o.ooooooooo.o33333333o..........
+.......oo3333333o...........o33333333o..........
+......ob33233233o...........o3323323bo..........
+.....obccbc3bc33o...........o33cb3cbcbo.........
+......oobccobcoo.............oocbocbooo.........
+........oo..oo.................Po..oo...........
diff --git a/parts_pl_src/body/pl_x_bison.txt b/parts_pl_src/body/pl_x_bison.txt
new file mode 100644
index 0000000..f039cd9
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bison.txt
@@ -0,0 +1,46 @@
+# pl_x_bison: from pixellab_src/pl_x_bison/base.png (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 41)
+# head_top at (29, 26) (from part/probe)
+# back at (33, 35) (from part/probe)
+# tail at (49, 45) (from part/probe)
+.................ooooo...................
+.............oo.oyyyyboo.................
+............ozcoyyy3bboo.................
+........oooocyb3yyybbbbooo...............
+........cyybcy3yyyyyy3bby3oo.............
+.......oobyybyyyyy^ybcbb33bo.............
+.....oo3yyyyyyyyyyybbcc3bbo..............
+.....obbbyyyyyyyyyyyy3cc33bo.............
+......obyybyyyyyyyybbbbc3333o............
+..o..obzybyyyyyybzyycccccob33o...........
+.obo.o33bzyyyyyybz3y3cccoboc3o...........
+.oaoobbbbz3yy3bybc3b3bcboaaocbo..........
+oa1oobbccb3y33b3bobbcbobo11booo..........
+oa1ooccocb333ccbbocccbcbo11boc...........
+oa11ooo3obbbbcobo333ocBo111bozcoo........
+oba11ao33obbcc3o33223ba11aaboz111oo......
+.obaab3113obcc3321112baaaabbozz1111o.....
+.obbbo21113oc31111112bbbbbbobb111112.....
+..oooo3211133111112323ooooobbb111111o....
+.o3233co3111111123ooc3c3221oo3b111111o...
+o22cccowo3211123owcAo3cccc322ob112221o...
+o2aabc33o3222223co3w33ccbaab2o2222222oo..
+.oaabc3w23222222321w333obaaaob22232a2o3o.
+..oooca33a11111a3333a33coooob3b22322aobzo
+...occ32ba11111aa222333bcobbbbc223222oT3o
+....oc33baaaaaaba32233ccbo33bb2233223oc3o
+....occ3boaaaaooa3333ccoco323b3333233ocbo
+.....occcaobbboaa333ccboo3223c333c33o.oo.
+......obccbbbbbbcoccccbo33113c333333o....
+......oooccooooooccobco332113c33o333o....
+........occcooocccbocco32112a33o33333o...
+........oobcbbccbcboco3321a23ooo33333o...
+........ooocbbbbbcboco3322233o..o333o....
+.........o3ob3bbocbooo332233o...o333o....
+.........o33obboooooooo33333o...o333o....
+..........o33ooooooocco3333o...ocobco....
+..........o3333o...occo3223o...ocobco....
+.........obobcco....oocobbco...ooooo.....
+.........obobcco.....ocobbco.............
+..........ooooo.......Poooo..............
diff --git a/parts_pl_src/body/pl_x_bison_b.txt b/parts_pl_src/body/pl_x_bison_b.txt
new file mode 100644
index 0000000..d6e3218
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bison_b.txt
@@ -0,0 +1,43 @@
+# pl_x_bison_b: from pixellab_src/pl_x_bison_b/base.png (variant of pl_x_bison) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (29, 24)
+# back at (33, 35)
+# tail at (51, 45)
+...............ooo^.......................
+...........oo.oyy3cooo....................
+..........oyybyyy33yy3o...................
+........oocyyyyyyyyy3ccoo.................
+.......oyyyyyyyyyyyb33bcco................
+......ocyy3yyyyyyyycc33cco................
+..o...oyybyyyyyyy3yycc3cco................
+.obo.o3ybyyyyyyy333y3cccobo...............
+.oao.o3bby3yyyby3c3333ccoaao..............
+oa1o.o3obbbyyybbbocbc3cco11boooo..........
+oa1ooocobc3yy3cbbo3ccbcco11bobbcoo........
+oa11ooc3ocb33cobc333ooBo111bocbbc1oo......
+oba11ao33obbcc3c33223ba11aabocbbc111o.....
+.obaab3113cbc33321112baaaabbocbbbc112o....
+.obbbo21113cc31111112bbbbbbo13cbbc1112o...
+..oooo3211133111112323ooooo113cbbb1112oo..
+.o2233co3111111123ooc3c3221oo1ccbbc111o1o.
+o22cccowo3211123owcwo3cccc322occbbc111o1o.
+o2bbcc33o3222223co3w33cccbbb2o2cccc111o1o.
+.oaabo3w23222222321wA33obaaao22cccc111o1o.
+..oooob33b11111b3333b33coooo222ccccb11o2o.
+.....o32ba11111ab222333c3222323cccc111o3T.
+.....o33baaaaaabb32233o33222333ccc3111o3o.
+......o3boaaaaoob3333o33211133cccc311ooc3o
+.......ocaobbboab333o332111133cccc311oocco
+........oobbbbbbcooo33321111o3ccc3322oocco
+........o33oooooo33333321111ooccc3333o.ooo
+........o333333333333o311111oocco3333o....
+........o333oo3333333o21111ooccoo33333o...
+.........o3333oo333ooo22111oooo..o3333o...
+.........o33333o.ooooo32222o33o...o333o...
+..........o3333o....oo33223o33o...o333o...
+..........o333o....oco3222oocco..ocobco...
+..........o233o....oco3222oocco..ocobco...
+.........obobco.....obobbcoooo...ooooo....
+.........obobco.....obobbco...............
+.........ooooo......Pooooo................
diff --git a/parts_pl_src/body/pl_x_bison_c.txt b/parts_pl_src/body/pl_x_bison_c.txt
new file mode 100644
index 0000000..2c0703f
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bison_c.txt
@@ -0,0 +1,48 @@
+# pl_x_bison_c: from pixellab_src/pl_x_bison_c/base.png (variant of pl_x_bison) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 40)
+# head_top at (29, 19)
+# back at (33, 35)
+# tail at (52, 45)
+...........ooo...oo^oo.....................
+...........oybo.oyyyyyo....................
+........ooooyybobyyyybboooo................
+.......oyyybyyybyyyyyyybbbyo...............
+......ocbyyyyyyyyyyyyyyyyyco...............
+.....ocbyyybyyyyyyyyybbyyybboo.............
+....oyyyyyybyyyyyyyybbbbyyyyyyo............
+....oyyyyyyyyyyyyyyyyyyyyyyybyo............
+....obyybyyyyyyyyyybyyyyyyyybco............
+...obyyybbyyyyyyyybbbyyyybbyybbo...........
+..oyyyybbbyyyyyyybbbbzyyyzbbyyyco..........
+..oobyyyyyyyyyyyyybyyyyybboyyyyyoo.........
+..obobyyyyyyyyyyyyyyyyyyzo3oyycbo1ooo......
+..o3obyyyyyyyyyyyzyyyyyyzo33oycco1111o.....
+.o31obybyyzyyyyyybyyyybybo11bozbo11113o....
+.o31obbbyzbyyyyyybbbyybbbo11boyyco11b11o...
+.o311obbzbbbyyybzbcbbbbBo111boyyzo111111o..
+.ob31bobbbcbbybbbbcccoob1133bozbbo1111111o.
+.oob33booocbbbbboo2223b3333bbozzco11111b1o.
+oyobbbo1y22obbbo211y11bbbbbbozzbbo11111113o
+oyyoooo21112ooo21111312ooooobzzbzo111b1113o
+oco2123co3112221113oAc2c3111oozzzo31111133o
+.o11cccowo3111113owcwo2cccc211obbo31111b33o
+.o1bbcc32o3111113co2w32cccbbb1obco3111bbb3o
+.ooaabc2w12111111211w223obaaaobbo331111bb3o
+.ozooccb22byyyyyb2332b23coooobzzo311b11131o
+.ozzbbc31ba11111ab111223bbbbzzcbo311111113T
+.ooczzc32baaaaaabb31122cbzzzzbcbo311111313o
+..obzzbc3boaaaaoob3333cbbzzzzzco3111b11333o
+..obczzbccaobbboab333cbbzzzzczco3111b1333o.
+..obcczbbccbbbbbbcocccbzzbzzcbco331133333o.
+...ooczbbzbcooooocbbbzzzzbzzboo333333b33o..
+....ocbbbzzbcccccbbzzzzzzzccc3c3333b333o...
+.....occbczczzbbzzzzczczbbboo3c3333333o....
+......occczbczzcbzzzcbcccco332c33333ooo....
+.......ooobbobzbbbbbcccooo3322c333c33o.....
+..........oooobbbbbbccco33332ooooo332o.....
+...........o33occcccoooo3322oo..ocobco.....
+...........o233oooooocco2112o...ocobco.....
+..........obobcco....oocobbco...ooooo......
+..........obobcco.....ocobbco..............
+...........ooooo.......Poooo...............
diff --git a/parts_pl_src/body/pl_x_bison_d.txt b/parts_pl_src/body/pl_x_bison_d.txt
new file mode 100644
index 0000000..c768653
--- /dev/null
+++ b/parts_pl_src/body/pl_x_bison_d.txt
@@ -0,0 +1,46 @@
+# pl_x_bison_d: from pixellab_src/pl_x_bison_d/base.png (variant of pl_x_bison) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (31, 41)
+# head_top at (29, 21)
+# back at (33, 35)
+# tail at (51, 45)
+.................o^ooo..oo...............
+.............oo.oyyyybooao...............
+............ozcoyyy3aboaco...............
+.....oo.oooobyb3yyyaabbcco...............
+.....oacoyybby3yyyyyy3bay3oo.............
+.....ocbobyyayyyyyyyabba33bo.............
+.....oo3yyyyyyyyyyybabb3bbo.ooo..........
+.....obbbyyyyyyyyyyyy3bb33bocao..........
+......obyyayyyyyyyyaaaab3333cco..........
+..o..obzybyyyyyyazyybbbbbob33o...........
+.oao.o33bzyyyyyyaz3y3bbboaob3o.ooo.......
+.oaoobabbz3yy3byab3a3abboaaobboaao.......
+oa1oobabbb3y33b3bobabaobo11boooaco.......
+oa1oocbobb333bbbboccbbcbo11bocbaco.oo....
+oa11ooo3obaaabobo333ocBo111bozcccoaao....
+oba11ao22oaabb3o32113ba11aaboz222baco....
+.obaab2112obbc2221112baaaabbozz12aco.ooo.
+.obbbo11112ob21111111bbbbbboaa111cc2oaao.
+..oooo2111122111111212oooooaaa111111baco.
+.o2123co2111111112ooc2c3221oo3a1c111bco..
+o22cccowo3111112owcwA2cccc211oa1c1a12o...
+o2aabc32o3111112co2w32cbbaaa1o1c11111oo..
+.oaaac2w12111112211w223oaaaaoa11121a1o3o.
+..oooca22a11111a2222a23coooob3b1121b1obzo
+...obc22aa11111aa111223bcobbbbb112111ob3T
+....oc22aaaaaaaaa21122ccbo22bb1133112oc3o
+....obc3aoaaaaooa2222ccoco212b33331c2oobo
+.....obccaoaaaoaa222ccao22112b333c2ao.obo
+......obccaaaaaacoccbcao22112c333322o.obo
+......ooobcooooooccoabo321112c33o333o..o.
+........obccooocbcbobbo31111a33o33332o...
+........oobcbbbcbcbobo3211a12ooo33332o...
+........ooobbbabbbbobo3211122o..o333o....
+.........o3ob3abobaooo331122o...o332o....
+.........o33oaaoooooooo33222o...o222o....
+..........o33ooooooocco3322o...ocoabo....
+..........o2333o...occo2112o...ocoabo....
+.........oaoabco....ooboaabo...ooooo.....
+.........oaoabco.....oboaabo.............
+..........ooooo.......Poooo..............
diff --git a/parts_pl_src/body/pl_x_cactus.txt b/parts_pl_src/body/pl_x_cactus.txt
new file mode 100644
index 0000000..6aa55f8
--- /dev/null
+++ b/parts_pl_src/body/pl_x_cactus.txt
@@ -0,0 +1,38 @@
+# pl_x_cactus: from pixellab_src/pl_x_cactus/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 45)
+# head_top at (31, 34) (from part/probe)
+# back at (31, 37) (from part/probe)
+# tail at (38, 52) (from part/probe)
+.................oo.................
+............o....oo....o............
+...........oaoooo22ooooao...........
+...........o323332233323o...........
+..........o12312311322323o..........
+.........o1131131^13222323o.........
+......ooo11311131111311co23ooo......
+......ob11131113111131oaaoc3bo......
+.......o113111311B123caabaaco.......
+.......o1131113111113oabbba3o.......
+......o213111131111223obbbbo3o......
+.....o32231ooo31111123ooobbc23o.....
+....ob2223oa11o111123o111obo22bo....
+.....o322oawwooo1111oooww1o223o.....
+......o22owwoowo1111owoowwo23o......
+......o22owwoooo1112oooowwo33o......
+.....oo32oaw3o3o1A11o3o3w1o33oo.....
+...oo3o323o1wwo111112oww1o333o3oo...
+..o223oo332ooo32obbo23ooo333oo322o..
+.o113ooo33o222322oo223222o3oooo311o.
+o21233o.o3o33233222233233o3o.o33212o
+o322o3o.o33o333332233333o33o.o3o223o
+.o333o..obooo33o3333o33ooobo..o333o.
+..ooo...oo.oooooo33oooooT.oo...ooo..
+.............oooooooooo.............
+..............ococcooo..............
+............oooccccocooo............
+..........oobbcccbccoocboo..........
+........aobbccoobbcbooccbboa........
+......aaaoooooobzoobbooooooaaa......
+......aaaaaaaaaooaaooaaaaaaaaa......
+........aaaaaaaaaPaaaaaaaaaa........
diff --git a/parts_pl_src/body/pl_x_cactus_b.txt b/parts_pl_src/body/pl_x_cactus_b.txt
new file mode 100644
index 0000000..30c486a
--- /dev/null
+++ b/parts_pl_src/body/pl_x_cactus_b.txt
@@ -0,0 +1,61 @@
+# pl_x_cactus_b: from pixellab_src/pl_x_cactus_b/base.png (variant of pl_x_cactus) (pixellab_library.py extract)
+# pivot at (31, 58)
+# aura at (32, 33)
+# head_top at (31, 4)
+# back at (31, 37)
+# tail at (38, 52)
+.............oo^ooo.............
+............ob11123o............
+...........o3b1212b3o...........
+..........o1221212331o..........
+..........o3b322123b3o..........
+.........o123322123c33o.........
+.........o123332123333o.........
+.........o123332123333o.........
+.........o1233122233b1o.........
+.........o1b33122233b1o.........
+.........o1b33322233b1o.........
+.........o1b33222233b1o.........
+.........o1b33222133b1o.........
+.........o1b33122133b1o....ooo..
+.........o1b33122133b1o...o133o.
+.........o3b33122133b1o..o11333o
+..ooo....o3c33223133b1o..o11233o
+.o111o...o3c33222133b2o..o11233o
+o1233o...o3c33222133b2o..o1123bo
+o13323o..o3c33222233c2o..o1123bo
+o1b323o..o3c33222233c2o..o1123bo
+o1b323o..o3333122233c2o..o1123bo
+o3b333o..o3333yy2233c2o.o31123bo
+o1b333o..o3333yy223322ooo311233o
+o1b323o..o33331y2233b2o33212333o
+o3b323o..o3c33122233b22222133c3o
+o2b323oo.o3c33222233b22223333co.
+o2c3233ooo3c33122233b2222333coo.
+o33313223o3b33122233b233333co...
+.o333222222b3322A233b233ccco....
+.o3c3332222b33222133bcooooo.....
+..occ333222b33222133obboc.......
+...occ33332b3312223cbbbbbo......
+....oc3c332b331B233cbcccbo......
+.....ooooo3b33122113ccccbo......
+.........ooo33111113ooobbc......
+........oaaao311111oaaaoco......
+.......oawwooo1111ooowwao.......
+.......owwoowo1111owoowwo.......
+.......owwoooo1111oooowwoo......
+......ooaw3o3o1111o3o3wao3oo....
+.....o11oawwo111111owwao3311oo..
+....o1133ooo31occo13ooooo33111o.
+...o1123oo3c311oo113333o.oo1111o
+...o113o.o3c33111133333o..o3111o
+..o111o..o3333211233233o...o221o
+..o111o..o3c3321123c233o...o322o
+..o1113o.o333331133c33o.....ooo.
+..o3133o..o3c331133c33T.........
+...o13o...o3c333333c33o.........
+...oo3o...o3c333333c3o..........
+..........ooc333333c3o..........
+........oococ33333333ooo........
+.......obccco333333coccbo.......
+.......ooooooooPooooooooo.......
diff --git a/parts_pl_src/body/pl_x_cactus_c.txt b/parts_pl_src/body/pl_x_cactus_c.txt
new file mode 100644
index 0000000..bc39d3b
--- /dev/null
+++ b/parts_pl_src/body/pl_x_cactus_c.txt
@@ -0,0 +1,43 @@
+# pl_x_cactus_c: from pixellab_src/pl_x_cactus_c/base.png (variant of pl_x_cactus) (pixellab_library.py extract)
+# pivot at (30, 59)
+# aura at (32, 41)
+# head_top at (31, 23)
+# back at (31, 37)
+# tail at (41, 52)
+........................^o........................
+...................o....oo....o...................
+..................oooooooooooooo..................
+..................o3oooo22oooo3o..................
+..................o323332233323o..................
+.................o12311311322322o.................
+.............oooo1131131113222323oooo.............
+.............ooo11311131111311co23ooo.............
+.............oo11131113111131oaaoc3oo.............
+..............o1131113111123caabaaco..............
+.............o11131113111113oabbba3o..............
+............o3113111131111223obbbbo22o............
+...........ob21131111311111231obbbc223o...........
+...........o321131ooo31111223ooobbo222bo..........
+............o1213oaaao11B112oaaaoc2223o...........
+............o121oawwooo1111ooowwao222o............
+............o111owwoowo1111owoowwo222o............
+..ooooooooooo121owwoooo1111oooowwo223ooooooooooo..
+.o1111112333o322oaw3o3o11A1o3o3wao233o3332111111o.
+o11111112223o3223oawwo111111owwao3233o33111111111o
+o3111113333oo33232ooo32obbo13ooo33233oo3333111113o
+.o33333oooooo33232222322oo11311133233oooooo33333o.
+..ooooo.....o33233222332221131112323oo.....ooooo..
+............oo3323222232222231112323oo............
+............oa3333222232222232223333bo............
+............ooo33o32223222232222333ooo............
+..............o333o2223322232233333o..............
+...............o33o332333233223o33o...............
+...............obo3o333o3333333oobo...............
+...............oo.oo333o33o333oo.oT...............
+...................oooooooooooo...................
+.....................ococcooo.....................
+...................oooccccocooo...................
+.................oobbcccbccoocboo.................
+................obbccoobbcbooccbbo................
+................oooooobyoobboooooo................
+......................oP..oo......................
diff --git a/parts_pl_src/body/pl_x_cactus_d.txt b/parts_pl_src/body/pl_x_cactus_d.txt
new file mode 100644
index 0000000..72d3e5b
--- /dev/null
+++ b/parts_pl_src/body/pl_x_cactus_d.txt
@@ -0,0 +1,53 @@
+# pl_x_cactus_d: from pixellab_src/pl_x_cactus_d/base.png (variant of pl_x_cactus) (pixellab_library.py extract)
+# pivot at (33, 59)
+# aura at (32, 35)
+# head_top at (31, 13)
+# back at (31, 37)
+# tail at (41, 52)
+.................o......^o......o..................
+.................o......ooo.....oo.................
+...............ooboooooo22ooooooboo................
+...............oo3233333223333323oo................
+...............oo3233333223333323oo................
+..............o11233123311332223233o...............
+............oo1113111311113322223323oo.............
+............oo1113111311113322223323oo.............
+........oooo11133111131111113111coo233oooo.........
+........oob11113311113111111311obbbocc3bbo.........
+........ooo111333111331111123ooobbboccoooo.........
+..........o111311113311111223ccbbbbbbbcoo..........
+..........o111311113311111113oobccccbb3oo..........
+........oo213311111331111122233occccbbo33o.........
+........oo213311111331111122233occccbbo33o.........
+.......o3322331ooooo31111111233oooobbbc223o........
+.....oob222233oaaaaoo11111223ooaaaaocco222boo......
+.....oob222233oaaaaoo11111223ooaaaaocco222boo......
+.......o3322ooawwwoooo111111oooowwwaoo2223o........
+........oo22oowwwooowo111111owwooowwoo233o.........
+........oo22oowwwooowo111111owwooowwoo333o.........
+........oo22oowwwooooo111111oooooowwoo333o.........
+.......ooo32ooaww3oo3o111A11o33o33waoo333oo........
+....ooo3oo32oooaa3oooo111111oooo31aooo333o3ooo.....
+....ooo3oo3233oaawwoo111B1111ooww1ao33333o3ooo.....
+...o2223ooo3333ooooo31111111133oooo2333ooo3222oo...
+.oo1133oooo33332222331oooooo1332222233ooooo33111o..
+.oo1133oooo3333222233122ooo22332222233ooooo33111o..
+o1112333oo.o33o33323322222222332333233o..o3332112oo
+o3322oo3oo.o333oo33332222222233333o333o..o3oo2223oo
+ooo333oooo.occoooo33333333333333oooocco..oooo333oo.
+.oo3333o...obboooo333o333333o333oooobbo...o33333o..
+...oooo....ooo.oooooooooooooooooooo.ooo....ooooo...
+..................oooooooooooooo...................
+..................o3333333333o3o...................
+.................o33o33333333o33o..................
+................o333o311111133o33o.................
+................o13o3111111113o31o.................
+...............o113o3111111113o311o................
+...............o113o3111111113o311T................
+...............o13oo3311111133oo31o................
+................ooo.o33221333o.ooo.................
+....................o3o3333o3o.....................
+....................o33oooo33o.....................
+...................o113o..o311o....................
+..................o1113o..o3111o...................
+..................oooooo..Poooo....................
diff --git a/parts_pl_src/body/pl_x_chili.txt b/parts_pl_src/body/pl_x_chili.txt
new file mode 100644
index 0000000..99691cf
--- /dev/null
+++ b/parts_pl_src/body/pl_x_chili.txt
@@ -0,0 +1,48 @@
+# pl_x_chili: from pixellab_src/pl_x_chili/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 42)
+# head_top at (31, 30) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (37, 53) (from part/probe)
+..................ooooo..........
+.................o3yyy3o.........
+................o311333o.........
+................oy123oo..........
+...............o31y3o............
+...............oyy3o.............
+............ooo3yy3ooo...........
+...........oyyy3yy3o33oo.........
+.........ooy1y3yyy3o3333o........
+........oy11113yyy3333333o.......
+.......oz11113y333333o3333o......
+.......oooooo3yy^yy33ooooooo.....
+........o3333o3yyyy3o33333o......
+........o211223oyy3o333333o......
+.......oa1111123ooo332333b3o.....
+.......oaa11112233322323bbbo.....
+.......oa1111122222222333bbo.....
+.......o2211122222222223333o.....
+.......o22oo2222222222ooo33o.....
+.......o32oooo222222ooooo33o.....
+.......o3ocoooooo2ooooooco3o.....
+........3o1wooooo3ooooow1o3o.....
+........oowwoowoB22owoowwo3o.....
+........oo1wcoooA22ooocw1o3o.....
+.......oo3o11co22223oc11o33o.....
+.....oo2222ooo2222222ooo3333oo...
+....o22222aa2222ooo2223bb33333o..
+...o223oo2aa22oobbboo23bb3oo323o.
+..o223o.o22222222222223333o.o323o
+..o22oo.o21222223332333333o.oo22o
+ooo2223oo1222222222323333o.o2222o
+o2o333oo12222222223233333o.oo333o
+o32oo3o11222222223233333o...o3ooo
+o3322222222222323233333o.........
+o33332222223332323333oT..........
+.o33333333o23333333333o..........
+..oo33333o223o33333o333o.........
+....ooo33o23o333ooo.o32o.........
+.......ooo23oooo....o32o.........
+.......ooo33o.......o33ooo.......
+......o22233o.......o33222o......
+.......ooooP.........ooooo.......
diff --git a/parts_pl_src/body/pl_x_chili_b.txt b/parts_pl_src/body/pl_x_chili_b.txt
new file mode 100644
index 0000000..9bd456a
--- /dev/null
+++ b/parts_pl_src/body/pl_x_chili_b.txt
@@ -0,0 +1,48 @@
+# pl_x_chili_b: from pixellab_src/pl_x_chili_b/base.png (variant of pl_x_chili) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (32, 42)
+# head_top at (31, 21)
+# back at (31, 41)
+# tail at (43, 53)
+..................ooooo............
+.................o32y23o...........
+................^311333o...........
+................o2133oo............
+...............o31y3o..............
+...............o223o...............
+...........oooo3223oooo............
+..........o1y2232233333o...........
+.........o11233233333333oo.........
+........o1123112y2y3yy3333o........
+.......o11331112322y3223333o.......
+......o2133113y132223o222333o......
+......o2222oooy132223oo22233o......
+......ooooo33o212223o33oooooo......
+.....o22222223o2223o322333333o.....
+....obb11111222oooo322222233c3o....
+...obb1b1111122233322222222ccco....
+...o2b1111112222222222222222cc3o...
+..o2211111oo22222222222oo222333o...
+..o2221112oooo2222222oooo2222333o..
+..o211112ocoooooo2oooooo3o222333o..
+.o2221112o1wooooo2ooooow1o2223333o.
+.o2222222owwoowoB22owoowwo2222333o.
+.o2222222o1wcooo2A2ooocw1o2222333o.
+.o22222222o11co22222oc11o22222333o.
+.o2o2222ab2ooo22ooo22ooo2bb2222o3o.
+.oo1232abbb2222obbbo2222bbbb2o22oo.
+.oo22322bb2222o22222o2222bb223o22o.
+.o12o3222222222222222222222223o32o.
+.o23o22222222222222222222222333o22o
+o22o32222222222222222222222233o322o
+o222o3222222222222222222222333o322o
+o223o3323222222222222223223333o323o
+.o23o333322222222222222323333o.ooo.
+..oo.oo333322222222222333333T......
+.......oo33332222322333333oo.......
+.........oo333333333333ooo.........
+.........o33oo333333oo33o..........
+.........o23o.oooooo.o32o..........
+.......ooo23o........o32ooo........
+......o22233o........o32222o.......
+.......ooooo..........Poooo........
diff --git a/parts_pl_src/body/pl_x_chili_c.txt b/parts_pl_src/body/pl_x_chili_c.txt
new file mode 100644
index 0000000..e4cafaa
--- /dev/null
+++ b/parts_pl_src/body/pl_x_chili_c.txt
@@ -0,0 +1,61 @@
+# pl_x_chili_c: from pixellab_src/pl_x_chili_c/base.png (variant of pl_x_chili) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 34)
+# head_top at (31, 8)
+# back at (31, 41)
+# tail at (35, 53)
+...............oooo......
+..............oxxx3o.....
+.............^x1333o.....
+.............ox13oo......
+............ox13o........
+..........ooox2ooo.......
+.........oxx3x2o33oo.....
+.......ooxx3xx2o3333o....
+......ox1113xx23o3333o...
+.....o31113x33333o333o...
+.....ooooooxxxx33oooooo..
+......o21122ox3o33333o...
+.....oa111122oo33233b3o..
+.....oaa11122332232obbo..
+.....oa1111222222233bbo..
+.....o2211122222222333o..
+.....o22oo22222222oo33o..
+.....o22ooo22222oooo33o..
+.....o2ocooooooooooco3o..
+.....o2owwooo32owoowo3o..
+......oo1wcoo22oooc1o3o..
+......o2o11o2222oc1o33o..
+......o12oo222222oo333o..
+......o1aa222oo222bb33o..
+.......oc322occo22c333o..
+.......o12222222223333o..
+........o122222222333o...
+.........o2222223333o....
+.........o222A23333o.....
+.........o122222333o.....
+.........o122223333o.....
+........o21222223333o....
+.......o1222222233333o...
+......o12oo21222233332o..
+.....o123oo212222333o33o.
+.....o13o..o1B222333oo33o
+.....o23o..o12222233oo32o
+.....o333o..o1222233oo33o
+.....o33o...o1222333oo33o
+......oo....o1222333oooo.
+..oo.......o12223333o....
+.o22o......o12223333o....
+.oaao.....o122222333o....
+o22o......o122233333o....
+o22o.....o122232333o.....
+o222o..oo122222333o......
+o3222oo11222223333o......
+o3332222222233333T.......
+.o333222222333333o.......
+..oo333333o333333o.......
+....oo3333o33ooo32o......
+......oooo33o..o32o......
+........oo33o..o33oo.....
+.......o2233o..o3322o....
+........oooP....oooo.....
diff --git a/parts_pl_src/body/pl_x_chili_d.txt b/parts_pl_src/body/pl_x_chili_d.txt
new file mode 100644
index 0000000..251f34c
--- /dev/null
+++ b/parts_pl_src/body/pl_x_chili_d.txt
@@ -0,0 +1,61 @@
+# pl_x_chili_d: from pixellab_src/pl_x_chili_d/base.png (variant of pl_x_chili) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 35)
+# head_top at (31, 8)
+# back at (31, 41)
+# tail at (45, 53)
+................oooooo........
+...............o3222y3o.......
+..............^y11yyy3o.......
+.............o321y3333o.......
+.............oy2233ooo........
+............o311y3o...........
+............oyyy3o............
+............oyyy3o............
+........oooo3yyy3oooo.........
+.......oyyy33yyy33333oo.......
+.....ooy1y3yyyyy3333333o......
+....oyy1113yyyyy33333333oo....
+...oy111113yyyyy333333333oo...
+..o3111113y333333333o33333o...
+..ooooooo3yyyyyyy333oooooooo..
+...o33333o3yyyyyy33o3333333o..
+..o2221122o3yyyyy3o33333333o..
+.o3221112223oyyy3o3323333333o.
+.oaa111111122oooo333233333b3o.
+oaaaa11111122333322232233bbbbo
+oaaaa11111122222222223233bbbbo
+oaaa1111111222222222223333bbbo
+o2221111111222222222222333333o
+o2222211112222222222222333333o
+o2222oo2222222222222222oo3333o
+o2222oooo222222222222oooo3333o
+o222ocooooo22222222oooooco333o
+o22occ12ooooo2222oooooo11co33o
+o22o111ooooooo22ooooooo111o33o
+o22o1wwoooowo32A3owwooowwwo33o
+o22owwwoooooo2222oooooowwwo33o
+o22o1wwccoooo2222ooooccww1o33o
+o222o1waaccoo22223occaaw1o333o
+o2222owwaaao222222occcwwo3333o
+o22aaaooooo22222222ooooobbb33o
+o32aaaa2222222Boo222222abbb33o
+o33aaaa222222occco22222abbb33o
+.o3222222222ocaaao2222223333o.
+.o3332222222222222222223333oo.
+..oo3333322222222222333333o...
+....ooo3333333333333333ooo....
+.....oooooooooooooooooooo.....
+....o33333333333333333333o....
+..oo2223o333333333333o3233o...
+.o22223oo322222222333oo3222o..
+.o2223o.o122222222233o.o3222o.
+.o2233o.o222222222233o.o2222o.
+.o32o3o.o322222222333o.o3o33T.
+..oooo.o23322222233333o.oooo..
+.......o123o333333o323o.......
+.......o2233oooooo3223o.......
+.......o3333o....o3233o.......
+......o2233o......o2233o......
+......o2233o......o3233o......
+.......oooP........oooo.......
diff --git a/parts_pl_src/body/pl_x_clam.txt b/parts_pl_src/body/pl_x_clam.txt
new file mode 100644
index 0000000..d9258a7
--- /dev/null
+++ b/parts_pl_src/body/pl_x_clam.txt
@@ -0,0 +1,46 @@
+# pl_x_clam: from pixellab_src/pl_x_clam/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (30, 22)
+# back at (29, 45) (from part/probe)
+# tail at (47, 51) (from part/probe)
+..............ooooo.............
+..........oooo^2222oo...........
+........oo22322aa1222ooo........
+......oo2223211111122o22oo......
+.....o32112311111112332223o.....
+....o3211131111111123112a22o....
+...o23111231111111231111112oo...
+..o23111123111111123111111233o..
+..o231a1132111111223111111232o..
+.o3321111322111122o21111a12322o.
+.o2322212323333332o21111112322o.
+o32322333c3cccccc3cc33111332123o
+o32323cccooooooooooccc312332123o
+o322occoooooooooooooocc33321223o
+o33ccooooooo3333333ooooc3o22223o
+o33coooooo33333333333ooo3c32233o
+o3coooooo33222222333333oocc33c3o
+o3oooooo3221111112233333oocc333o
+o3ooooo32111111111122333ooocc33o
+o33occo2o2o1111111o3o2333oooc33o
+.o33co2321o11111A322o32333oooc3o
+.o333o21ooo1111113ooo12333oooco.
+..o33o21o3o1111111o3o12233oo33o.
+...ooo21121111111112112223o2oo..
+.....oaaa11bbBbbc111aaa233oo....
+..oooo3211baaaaaac31122333oooo..
+.occo1o22occccccbbco22222oo3cco.
+oaco32o32ccbbbbbccc223o112oooc3.
+o1ao333o33cbaaabbc3333o222ooc33o
+o211ooooo33cccccc3333oo33oo1123o
+o223211yaaooooooooaaaa11o223223T
+o323211123111111123111111223233o
+.o332a112321111112321111223323o.
+.o33322223221aa112322122223333o.
+..o3o32222321111222o2222233o3o..
+...o3o3c22322222222o322c3333o...
+....oo33333332222333o33333oo....
+......oo333o3333333c3o33oo......
+........ooooo33333333ooo........
+.............ooPooooo...........
diff --git a/parts_pl_src/body/pl_x_clam_b.txt b/parts_pl_src/body/pl_x_clam_b.txt
new file mode 100644
index 0000000..d9b9d43
--- /dev/null
+++ b/parts_pl_src/body/pl_x_clam_b.txt
@@ -0,0 +1,63 @@
+# pl_x_clam_b: from pixellab_src/pl_x_clam_b/base.png (variant of pl_x_clam) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 31)
+# head_top at (30, 4)
+# back at (29, 45)
+# tail at (47, 51)
+.....................o^ooooo.....................
+....................oc11111co....................
+...................o311111123o...................
+............ooooooo211yyyy1233oooooo.............
+...........o21113cc211yyyy122ca22112o............
+..........oca1111cb211yyyy122ca21111co...........
+..........oc11yy12a211yyyy122c111yy113o..........
+..........o211yy12a211yyyy122c111yy113o..........
+.......oooo311yy12a221yyyy122a11yyy1233oo........
+......oc23cc211yy2aa21yyyy122a11yy1123c2ooo......
+.....o12223a21yyy2ca21yyyy12ba1yyy112c31111o.....
+....o11a112aa1yyy22a21yyyy12ba1yyy12cc11yaao.....
+....o1ayy12ca11yy12a11yyy112a11yyy12c211yya2o....
+....o11yyy22a21yy12a11yyy112a11yyy22c21yyy12o....
+....o31yyy22a21yyy2a11yyy112a1yyy12c211yy113o....
+....o311yy12aa2yyy2a111yy112c1yyy12c21yyy113oo...
+...o3c311yy1ca21yy2aa11yy122c1yyy13c2yyy113cco...
+..o33a321yyy2aa1yy23a111112b21yyy2c22yyy223c2co..
+.o322aa311yy2ca11y23b111112b21yy22c2yyy12ca2222o.
+.o2222aa21yy22b21112b111112c21yy23c2yy122ca2211o.
+o2a1122aa11112b21112b211112321112321yy12ca2211aco
+o2ayy113a21112cc2112c2111123211133111113a221y1a2o
+o221yy113aa1112cc112c211122321123211122cc22yy112o
+o321yyy133a11123c112cc1112232113321112cc22yyy112o
+o33111y113ca1123c112cc2112231113321122c211yy1133o
+.occ11yy12caa112c2123c222233112321112cc211111cco.
+.o3ca11yy123a112cc223c22223311332112cc221112ccoo.
+.o23ca111113aa22cc222c22A2321133212cc321111cccoo.
+o2112ca311123a2223322cc222322332222cc21112ccc22o.
+o21y11ca22122332233222c222c2233222cc22122cc3122o.
+o21yy123cc222232223222c223c22c222232222a3331123o.
+o2211y11ccc2223c223cbbbbbbcbbc22233222233211123o.
+.oc2111122cc2223c2bb333333333c22c32222c2211123o..
+..oc3221122cc2223c332222233333bb32223322212333o..
+...occ222122332bb321111112233333b2233222222cco...
+....oocc3322233b3111yyyyy1123333bbb32222233oo....
+......oo333223b3o3o1yyyy11o3o233oob32233cco......
+........oc332bo331o111111322o3233oc32333oo.......
+.........oc33b21ooo1111113ooo1233occ333o.........
+..........oc3o21o3o1111111o3o12233oc33o..........
+...........ooo21121111111112112223o3co...........
+.............oaaa11aaBaab111aaa233ooo............
+..........oooo3211aaaaaaab31122333oooo...........
+.........obbo1o22obbbbbbaabo22222oo3bbo..........
+........oabo32o33bbaaaaabbb223oy12ooob3..........
+........o1ao333o33baaaaaab3333o222oob33o.........
+........o211ooooo33bbbbbb3333oo33oo1123o.........
+........o2232yyaaaooooooooaaaay1o223223T.........
+........o3232111231yyyyy1231yy111223233o.........
+.........o332a112321111112321111223323o..........
+.........o33322223221aa112322122223333o..........
+..........o3o32222321111222o2222233o3o...........
+...........o3o3b22322222223o322b3333o............
+............oo33333332222333o33333oo.............
+..............oo333o3333333b3o33oo...............
+................ooooo33333333ooo.................
+.....................oooPoooo....................
diff --git a/parts_pl_src/body/pl_x_clam_c.txt b/parts_pl_src/body/pl_x_clam_c.txt
new file mode 100644
index 0000000..a90b02a
--- /dev/null
+++ b/parts_pl_src/body/pl_x_clam_c.txt
@@ -0,0 +1,44 @@
+# pl_x_clam_c: from pixellab_src/pl_x_clam_c/base.png (variant of pl_x_clam) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (32, 41)
+# head_top at (30, 24)
+# back at (29, 45)
+# tail at (51, 51)
+........................oooo....................
+...............oooo...oo2yy2oo..................
+.............oo2yy1oo^32yyy122o.................
+............o21y111233321yy1123ooooo............
+........ooooo22222223222222222332112o...........
+......oo2b23322222223111222223321yyy2o..........
+.....o222233211111231yy11223332221yy12o.........
+....o2yy1231yyyy1131yaay12231112221122o.........
+...o2yyy121yybby1331yyyy123111112222233ooo......
+..o2byy1231yybb11311yyy112311yy12233333322oo....
+.o21yy11321yy1113311yy111321yyb1123211232222o...
+.o21111232111111332111112311yyy11231yy1132112o..
+o22222233221111233211111231111111231yyb12321b2o.
+o23bbbbbbb22222ccbb22222331111112231yy112232223o
+obbboooooobbbbcoooob333333221111223111112232223o
+obbcccooooooooo3333oobbbbbb2222223311111b2332b3o
+.ooobcccboooo2ooo2222oooooobb333333221122233333o
+....oobbbocco2o1o211122231oooobbbb3222222bbbboo.
+......oooooo32ooo11111113ooo33ooooobbbbbbooooco.
+..........oo21o3o111111A1o3o123333ooooooocccccbo
+........oooo21111111111111111222333oooooocccba2o
+....oooobbbo2aa111bbbbbb111aaa23333ooooocccba33o
+..ooabccbcco21111baaaaaab31122322o3ooccocaaa133o
+.oaabccccco2o211obbbBbbbbbo2233y12oooocca21123o.
+oyaccccccco1o332bbbbbbbbbb2223o212oooaaa321223o.
+oyyyaccccco22o333bbaaabbb33333o2ooaaay1132223o..
+o311aaaaccooooo333bbbbbb333333aaa32yyy123223oo..
+o3211232yyaaaaooooooooooaaayyy112321112233boo...
+.o3b223211111231yyyyyy1332yyy11123221123333o....
+.o3322322b1112321y111112311yyab123222333ooT.....
+..oo22332211223211aa111231111bb223323b3o........
+...o33o32221223221111222321122233333333o........
+....oo3o33b22233222122233322222333333oo.........
+......ooo3333333322222333333b333o33oo...........
+........oo33333o333333333o333333ooo.............
+..........ooo333o33333333o33333o................
+.............ooooo333b333oooooo.................
+.................ooooooPo.......................
diff --git a/parts_pl_src/body/pl_x_clam_d.txt b/parts_pl_src/body/pl_x_clam_d.txt
new file mode 100644
index 0000000..a76ce10
--- /dev/null
+++ b/parts_pl_src/body/pl_x_clam_d.txt
@@ -0,0 +1,63 @@
+# pl_x_clam_d: from pixellab_src/pl_x_clam_d/base.png (variant of pl_x_clam) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 37)
+# head_top at (30, 5)
+# back at (29, 45)
+# tail at (44, 51)
+.............ooo............
+............^21o............
+............oy1co...........
+...........o2y1bo...........
+...........o211boo..........
+..........o1222boo..........
+..........o1y12boo..........
+.........o21yy1bo3o.........
+.........o11yy1o33o.........
+.........o11yy1o33o.........
+........o221y11o333o........
+........o321112o333o........
+........o331112o332o........
+.......o2233312o332o........
+.......o211133co332o........
+.......o21yy23o33333o.......
+.......o21yy12o33333o.......
+.......o21yy12o33322o.......
+......o3111y12o33322o.......
+......o3211111o33222o.......
+......o3321111o332222o......
+.....o22233211o332222o......
+.....o21113321o332123o......
+.....o21yy123co332123o......
+....o321yy113oo3321333o.....
+....o321ay112o33333322o.....
+....o32111112o33333311o.....
+....o3322112co3323321a2o....
+...o22322223co332232111o....
+...o2123223co32222321y1o....
+...o112333co332222331y12o...
+..o32223cco3322222232112o...
+..o3333coo33222222232212o...
+..o33cco33111A1222232222o...
+..o3coo321yyyy11222332a2o...
+..oco33111yyyyy112223223o...
+..oc32o3o1yyyy11o3o23333o...
+...o3331o111111322o3233o....
+...o21ooo1111113ooo123oo....
+...o21o3o1111111o3o123oo....
+..oo211211111111121123ocoo..
+.ocoaaa11bbBbbc111aaa3o33co.
+ocoo3211baaaaaac311232o333ao
+oco3o22occccccbbco223y2o33ao
+ooo3o33ccbbbbbccc223o223ob2o
+oao33o33cbaaabbc3333o2oo223o
+o23oooo33cccccc33oooao11323o
+o2311aaooooooooooaaay11232T.
+.o3211231aaaaa123yy1112233o.
+.o3b11231111111232111223oo..
+..o32223221aa11232212c33o...
+...o322o321112222o22233o....
+....oc23o22222223oo333o.....
+....oo33o3322b3233oo3o......
+......oo3o332233333oo.......
+........oo333333ooo.........
+..........oooPoo............
diff --git a/parts_pl_src/body/pl_x_dragturtle.txt b/parts_pl_src/body/pl_x_dragturtle.txt
new file mode 100644
index 0000000..7c20408
--- /dev/null
+++ b/parts_pl_src/body/pl_x_dragturtle.txt
@@ -0,0 +1,50 @@
+# pl_x_dragturtle: from pixellab_src/pl_x_dragturtle/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 39)
+# head_top at (31, 20) (from part/probe)
+# back at (31, 33) (from part/probe)
+# tail at (48, 48) (from part/probe)
+...................oooooo...................
+................oocaaooaacoo................
+..............ooaabbo22obbaao...............
+.........oo..obbabbo2^22obbabco..oo.........
+........o22oooobccoo2222oobbaoooo22o........
+........o321223ooo22122223ooo222123o........
+.........o32a122332211222333222123o.........
+.........o332a1223221122223221a233o.........
+........obo3322a22322222232212233obo........
+........obo3b322a2322222322a223a3obc........
+.......obbo33ooo222322223222ooo33obao.......
+.......cabboo111o2232222322o111ooccao.......
+......obbco3o1wooo33322333ooow1o3ocbao......
+......obcco221wowo33333333owow133occao......
+......cbco2222wcooo322233ococw3233ocbc......
+.....oabco22213bbbo222223obbb32233ocbao.....
+.....oabco22a21222322B223322222a33ocbbo.....
+.....obco3o2222222321221232222233o3ocbo.....
+.....oco333o22222321122113322233o332oco.....
+.....o32b33o22333o2o2222o2o33333o322a2o.....
+....o212ab33o3222o22222222o2333o332a212o....
+...o212223333o3222o222222o333oo333322212o...
+..o2122233o332oo322ooA3oo33oo2233o33222a2o..
+..oa2223oo333222oo3333223oo2222333ooa2222o..
+.o2222aboo333122222oooooo222221333ocb22222o.
+.o22223oco3a31112222222222221113b3oco33222o.
+o322223cc33331111122222222111113b33cc332223o
+o3222aocco333111111111111111111333ocbob2223o
+o322223obo333221111111111111122333obo322223o
+o322223obo333112211111111112211333obo322223o
+o332223oboo33111122222222221111333obo322233o
+.o33333obbooo211111111111111112o3obbo3T333o.
+.o13o31ooco33o3211111111111123o33oboo13o31o.
+.o1o.o1o.co223oo321111111122oo322oc.o1o.o1o.
+..o3..o3.o221233o2222222222o332122o.3o...o..
+.........o222223o322222222oo322212o.........
+.........o2222233322222222o3322222o.........
+.........o3222233oo222222oo3322223o.........
+........o3333333oooooooooooo3333333o........
+........33222223o..........o32233333........
+.......o33333333o..........o33333333o.......
+.......o13o13o1o............o1o31o31o.......
+.......o1oo1oo1o............o1oo1oo1o.......
+........o.3o.3P..............o3.o3.o........
diff --git a/parts_pl_src/body/pl_x_dragturtle_c.txt b/parts_pl_src/body/pl_x_dragturtle_c.txt
new file mode 100644
index 0000000..bfbc673
--- /dev/null
+++ b/parts_pl_src/body/pl_x_dragturtle_c.txt
@@ -0,0 +1,51 @@
+# pl_x_dragturtle_c: from pixellab_src/pl_x_dragturtle_c/base.png (variant of pl_x_dragturtle) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 39)
+# head_top at (31, 16)
+# back at (31, 33)
+# tail at (52, 48)
+......................oo^oooo...................
+..................oooo2222222ooo................
+................oo21111111112222oo..............
+..............oobaab1122222222bbbbo.............
+.............obbaaab2222222222babb2oo...........
+............o2baabbb2222222222bbbb222o..........
+...........o22bbbb22222222222222222222o.........
+..........o22112222222222222222222222bbo........
+..........o22122222222222222222222222bbbo.......
+.........o222222212222222222222223222bbbo.......
+........o3bb22232211222222222211223222bb3o......
+........obaab2233332123222222122333222223o......
+.......o3babb223ooo322322223223ooo32222233o.....
+.......o2bbbb223o11oo332222333o11o32222233o.....
+......o32bbb2223owowoo2222233owowo32222bc33o....
+......o322222222owcoco2222223oocwo2222bac33o....
+......o3222222222occco2122223ccco32222bbc33o....
+......o32222222222333221B22233333222222bc33o....
+......o322bb22222222322112223o3222222222333o....
+......o22baab2222222o22212223o32222222223333o...
+.....o222bbbb2222222o32212233o32222222233333oo..
+....o2222bbbb22222222o321223o3322222222233333oo.
+...o211222222223333333o21223o33333322222222233o.
+...o333333333333ooooooo2A223ooooooo333333333333o
+....oooooooooooo333322o22233o33333ooooooooooooo.
+....oo333333o333211111o22233o11112333o33333cco..
+....obb22233o332111111o2223o111111233o33222bbo..
+....oab2233oo3311111111o223o111111133oo3322bbo..
+...oba2223oco3311111111o233o111111133obo322223o.
+...o2222a3oco3311111111o333o111111133obo3a2223o.
+...o3222a3oco3311111111o33o1111111133obo3a2223o.
+...o322223oco3321111111o33o1111111233obo322223o.
+....o33333ocooo311111111oo1111111223obbo33333T..
+....o13331oco33oo11111111111111112o3occo13331o..
+....o1o.o1oo33333o211111222221112o333ooo1o.o1o..
+.....o.ooooo322233o2111111111112o33222o.o...o...
+....ooo3333o3112233o22111111122o332112o.........
+oooo2223333o3122233o22222222222o322222o.........
+o3333333333o3222333oo33333333oo333222bo.........
+.ooooooooooo3333333ooo333333ooo333333bo.........
+...........o3333333o..oooooo..o33322233.........
+..........o33333333o..........o33333333o........
+..........o13o13o1o............o1o31o31o........
+..........o1oo1oo1o............o1oo1oo1o........
+...........o..o..P..............o..o..o.........
diff --git a/parts_pl_src/body/pl_x_dragturtle_d.txt b/parts_pl_src/body/pl_x_dragturtle_d.txt
new file mode 100644
index 0000000..8cb8fef
--- /dev/null
+++ b/parts_pl_src/body/pl_x_dragturtle_d.txt
@@ -0,0 +1,52 @@
+# pl_x_dragturtle_d: from pixellab_src/pl_x_dragturtle_d/base.png (variant of pl_x_dragturtle) (pixellab_library.py extract)
+# pivot at (39, 60)
+# aura at (31, 39)
+# head_top at (31, 17)
+# back at (31, 33)
+# tail at (52, 48)
+.................ooo..ooo....................
+................obabo.o1o....................
+.............oooobaab^21o..ooo...............
+.............obaab33b2112oo12o...............
+...........oooabbo22321222113ooo.............
+.........oobab33221222122212122oooo..........
+........o22ooo22321222222112222oo22o.........
+........o32222o22222122212122331223o.........
+........oo321223332212212223222223oo.........
+........oo332222232212212222222233oo.........
+.......obbo3321122322121222211233o22o........
+......obabo3333212322222231123333o222o.......
+.....obabbo3oooo211322223112ooo33o233o.......
+.....oabco23o111o3133222323o111o32222o.......
+....obccc212o1wooo33332233ooow1o21122o.......
+....oobb112231wowo33332333owow132211oo.......
+....oab3322223wcoco322223ococw3222322o.......
+...oaaboo212223ccco312223occc3322233oo.......
+...obccco221222222331B22333332222123oco......
+...oobcco322222223321221233322222213occo.....
+...obccoo32221223o21122112o3222113133ocbo....
+..oacco33o2322223o2o2222o2o32212231322obbo...
+.oabo2233o2322223o33333333o322132333211obo...
+.obo11123333231233o333333o33221323332221oco..
+..o12222333o2312133ooAooo3333213233322221oo..
+.oo2122233oo231313333333332323233o3332112oo..
+.o21222333o23323233312223323233333o3322122oo.
+.o2222233o322333333312223223233233o33222211o.
+o1222223oc3222323331312232333322233o3332221o.
+o2212133o33222223233322333322222133oo3221221o
+o3113133o322112222223333332221222133o312212o.
+o3233133oo22122222122333222221222133o313212o.
+o3233233oo2213222212222222222112313co313232o.
+.o33323oco3313212211222212222312313co33323T..
+.o13o31oco332321222112211212231233oco13o31o..
+.o1ooo1oco333331232211211212232333oco1ooo1o..
+..o.ococo222o3331322212221223333333ococo.o...
+....occco21223o33332321222233o32322occco.....
+.....occo211233o333333223333o322222ooco......
+......oco3212233oo33333333o33322121oooo......
+......oo323232333oo333333ooo3321131o.........
+.......o313332333ooo3ooo3oo333322233o........
+.......o333333333o.oo...o.o333333333o........
+.......o13o13o13o..........o31o31o31o........
+.......o1oo1oo1o............o1oo1oo1o........
+........o..o..o..............P..o..o.........
diff --git a/parts_pl_src/body/pl_x_hedgehog.txt b/parts_pl_src/body/pl_x_hedgehog.txt
new file mode 100644
index 0000000..a4fea36
--- /dev/null
+++ b/parts_pl_src/body/pl_x_hedgehog.txt
@@ -0,0 +1,48 @@
+# pl_x_hedgehog: from pixellab_src/pl_x_hedgehog/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 40)
+# head_top at (32, 22) (from part/probe)
+# back at (32, 36) (from part/probe)
+# tail at (47, 38) (from part/probe)
+....3............23....22............3....
+.....oo.....2....22....23....2.....oo.....
+.....occo...22...2a2..2a2...23...occo.....
+......obao..2a2..ab2.^oab..2a2..oabo......
+.......obbo22ao.3o1o2oo1o32oa2.obbo.......
+........bbbo2b1o2o1o2o11o2o1c.obbb........
+..2322..obbbob12o311oo113o21cobbbo..2222..
+...22a222o232o312322o32132133332o222a22...
+....2a311ob11232222132122213312bo112a2....
+.....2b2333321221221221221221233332b2.....
+......ob3oo33212212122121121233oo2b2......
+.23222oooyyo33222b222222b22233oyyooo22332.
+..2zb33byyyybo3222b2222b1222obyyyyb33ba2..
+...22boaacccyaoo22o3222o223oaycccaaob33...
+....2obyabbccybo222o32o222obyccbbaybo2....
+2222o3byabbcobbo2223333222obbocbbayb322232
+..b333byyabcob32212333321223bocbayyb333b3.
+...oboobyyabc32211122B2121223cbayyboobo3..
+...1222obyya222111212212111222ayybo2221...
+..122222oooo211111111111111113oooo22T221..
+31..bb33333211acca133331bcca11233333bb..13
+...2ooo333211a111b33yA33b111a112333oo22...
+...2o22222111c11bacyyyycaba1c11122222o2...
+..2o1122211ayc1ooacyyyycaoo1cya1112211o2..
+.3aabboo321yazc11ccyyyycc11cza312ooobbaa3.
+.3222oo2223333acccacbbcacccz33y1223oo2222.
+...2o22221baa3111bacaacab111aaa112222o2...
+..2o1123o2333a111bbboobbb111a3312o2221o2..
+.2aabboo2123a1111oobbbboo1111a3212oobbaz2.
+.22222o212111111112obbo211111111212o22222.
+....2o2233o212111112oo211111212o2222o2....
+....ob333o3221221111111111221223o222bo....
+....bbboo333221121111111121122333oobbb....
+..ocooo2o333322222111111222123333o2oooco..
+....o32obbo33o12o22222222o21o33obbo22o....
+.......222o3o22o2222222222o22o3o222..3....
+.........22oo2o223222222323o2oo22.....3...
+...........2oo3o3333333333o3oo2........3..
+.........22ob333oooooooooo333bo3..........
+.........3oyyab3o23222222o3bayyo2.........
+.........3obbooo2.3......2ooobbo2.........
+..........32222P..........222222..........
diff --git a/parts_pl_src/body/pl_x_hedgehog_b.txt b/parts_pl_src/body/pl_x_hedgehog_b.txt
new file mode 100644
index 0000000..e118704
--- /dev/null
+++ b/parts_pl_src/body/pl_x_hedgehog_b.txt
@@ -0,0 +1,51 @@
+# pl_x_hedgehog_b: from pixellab_src/pl_x_hedgehog_b/base.png (variant of pl_x_hedgehog) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 38)
+# head_top at (32, 18)
+# back at (32, 36)
+# tail at (53, 38)
+......o............22....22............o......
+.......oo.....2....222..222....2.....oo.......
+.......occo...222.22a22^2a22.222...occo.......
+........obbo..2a22ooaooooaoo22a2..obbo........
+.........obbo22aooo3133331oooob22obbo.........
+..........bbboob1o3313333133o1boobbbo.........
+....2222.2obbbob12o31133113o2133bbbb2.2222....
+.....22a22oo23333233113321331332223oo2ba2.....
+......2a322oc113322321331222133223b332b2......
+.......2b3333321321221321221231233322bb2......
+.....22oob333332122221222212212333332boo2.....
+...222oo333oo33312213122221221333oo3323o22.2..
+...2abo33ooyyo33222b332222b22333oyyoo233ob2...
+...22ob3obyyyybo3222b3222b2223obyyyybo233o2...
+....2o32oabcccyboo22o3323o323obycccbao233o2...
+...2o33obybbbccybo333o333333obyccbbbybo233o2..
+...2o32obybbbcobbo3233333323obbocbbbybo233o2..
+...2o32obyybbcob33222333322233bocbbyybo233o2..
+..2o3322obyybbc3231222232221323cbbyybo22233o2.
+..2o32222obyyb222111223322111223byybo222223o2.
+..2o322211oooo311111122B21111113oooo2122223bo2
+.2ob322212o33211bcca232232bccb1123o22122223oo2
+2.bo322212o3311b211b33yA33b112b113o22122223oT.
+.22o322212o2111c21bbcyyyycbba2c111o22112223o2.
+..2o322212o11byc2oobcyyyycboo2cya1o21112233o2.
+..2o322212o21ybac22ccyyyycc22cyb33o21112233o2.
+..2o3322122o3333acccacbbcaccca332o221112233o2.
+.2ob3322112oaaa3111bacbbcab111ba2o221122233o2.
+.2oo3322112o233a111bbboobbb111a33o211222233o2.
+..2oo3322122o3a1111oobbbboo1111bo211122233oo2.
+...2o3322112o32111112obbo211112o2211122233o2..
+...2o33222112o32111112oo211112o21111222233o2..
+..2obo33221112oo221111111112oo21111122233bo2..
+..2bbo3322221122o2222222222o2211111222333ob2..
+...222o3b32221122oooooooooo2111112222233o222..
+.....2o333222211122222222221111122223333o2....
+.....2boo33322211111111111111122222333oo2.....
+.....2cbooo33222221111111111222222333oob3.....
+.....2222oo333222222222222222222333b3o2b3.....
+.........2ooo332222222222222233333obo2........
+.........2aooo333333333333333333ooooa.........
+..........222oo33333333333333333oo222.........
+............222oooooob333333oooo22............
+...............22ooooooooooo2222..............
+.................22222P22222..................
diff --git a/parts_pl_src/body/pl_x_hedgehog_c.txt b/parts_pl_src/body/pl_x_hedgehog_c.txt
new file mode 100644
index 0000000..f10feb6
--- /dev/null
+++ b/parts_pl_src/body/pl_x_hedgehog_c.txt
@@ -0,0 +1,45 @@
+# pl_x_hedgehog_c: from pixellab_src/pl_x_hedgehog_c/base.png (variant of pl_x_hedgehog) (pixellab_library.py extract)
+# pivot at (32, 59)
+# aura at (34, 42)
+# head_top at (32, 26)
+# back at (32, 36)
+# tail at (50, 38)
+..............................o...........
+............................oo............
+...........................o1o............
+.........................oo1o.............
+.......................ooo12o.............
+...................oo^o33323o.............
+............oo...oob3332oo33oo.......o....
+............oao.ocb3322ozzo333o...ooo.....
+............oboo3b3222ozzzbo2bb3oo22o.....
+............oo3bb3223ozccbzobb33322o......
+............o32b2222ozccbbzocb22333o......
+...........o3bb22222obcbbbzb2222233o......
+..........o22bb2211112cbbzzo22222333o.....
+..........o12b221111111bzzbo2222b233o.....
+.........oc112211cc11112bbo3222bbb23co....
+.........owc1111cwwc1B11333222bbbb2bc3oo..
+.........o1c222c1ow1c11123322bbb2bbb3322o.
+.........ooazzzc1ow1c11111332bb222b2233T..
+.......oobzxzzzbc11cc11112332222222223o...
+....oooaaxzzzzzz1ccc111111332222222223o...
+oooozxzzzzzzzzzz11111211113222222bb22bo...
+ozzzzzzzzzzzzzzz1111111A13322b22bbb2bco...
+ooobbbbbbbbbccz11111111123222bbbb2bccc3o..
+...oooooobbc321111111121322222bb22bc3333o.
+.........oo333211111222322222222222333oooo
+...........oo3332222233211322222223333o...
+............oo3333333311111322222bc333o...
+............o33333321111111o222bbccccco...
+............o3333311111311ao22bbc3ccco....
+.............o33111111131b2o22bc333cco....
+.............o3331111113a22o22233333o.....
+..............o333111113223o2o3333oo......
+...............o33311113223o3o3233oo......
+................oo33321ob33333o323o.......
+................o3o3333o2c333ooo33o.......
+...............oo33ooooo23oooo.o33o.......
+..............oaab3o..oo23o..ooby3o.......
+..............ooooo..ooycbo..oooooo.......
+.....................Pooooo...............
diff --git a/parts_pl_src/body/pl_x_hedgehog_d.txt b/parts_pl_src/body/pl_x_hedgehog_d.txt
new file mode 100644
index 0000000..5f0e1f1
--- /dev/null
+++ b/parts_pl_src/body/pl_x_hedgehog_d.txt
@@ -0,0 +1,48 @@
+# pl_x_hedgehog_d: from pixellab_src/pl_x_hedgehog_d/base.png (variant of pl_x_hedgehog) (pixellab_library.py extract)
+# pivot at (31, 59)
+# aura at (32, 39)
+# head_top at (32, 21)
+# back at (32, 36)
+# tail at (52, 38)
+.................oo......ob.................
+......o.....o....o3o....o2o....o......o.....
+......oo.....bo..o22o..o32o..obo....ooo.....
+.......cco...o3ooo213o^313o.o2o...ocbo......
+.......oaao..o21oo31133213oo22o..oaao.......
+........oaaooo2133311331133212oooaao........
+.........oaao331123213311321133oaabo........
+....obo..ocaa333113211311311132aaboooooco...
+.....c33oooba223112211311211321abb3o333c....
+.....o33222321122112112112122111332223bo....
+......o3331232112212212122121112311133o.....
+...ooooo33oo22211322212122211222oo1333ooo...
+..cb31111oyyoo2211322111221122ooyyoo22233bo.
+...oo333oyyyyao21112111222122oayyyyb33333o..
+...ooo2oaacccyaoo21221122122oaycccaao33oo...
+..o3222ayabbccyao2222212122obyccbbayao2ooo..
+.c33333ayabbcoaao1222222122obbocbbayao2223o.
+.ooo333ayyabcoa32112212212123bocbayyao3333co
+...o321oayyaac32111221B1111123baayyao223oooo
+..o31111oayya222111121211111223ayyao21113o..
+.o3113332oooo211111111111111113oooo1133223T.
+o33333221111111acca133A31acca11211111333333o
+..oo3211112221a111b33yy33b111a1122211113oooo
+...o3113332111c11aacyyyycaaa1c11122222113o..
+..o223332211ayc1ooacyyyycaoo1cya111233322o..
+..3333321111yazc11bcyyyycc11cza31111123o33o.
+.oooo3321232333acccacbbcacccz33y1222111oooo.
+.o..o322332aaa3111bacaacab111aaa11222112o.c.
+...o3223311333a111baaooaab111a3311123322o...
+...o323321123a1111ooaaaaoo1111a3211123323o..
+...o33o3113321111112oaao21111111231123o33o..
+...cooo31332111311112oo211111211123123oooc..
+...o.oaa33211122112111211121123111332ao..o..
+.....aaco31123311221112111221133113ooabo....
+....ocooo32233312321123111232133313ooobo....
+....oo..o3233331332123322123313o333o..oo....
+........o333oo323o212333222o333oo33o........
+........c3oo.o3233o12333332oo33o.o3c........
+........co...oo33oo32333o33o3ooo..oc........
+............ob3o3ooo333ooo3o33bo............
+...........oyyaboo..o33o..oobayyo...........
+...........obbooo....Po....ooobbo...........
diff --git a/parts_pl_src/body/pl_x_ibex.txt b/parts_pl_src/body/pl_x_ibex.txt
new file mode 100644
index 0000000..939c734
--- /dev/null
+++ b/parts_pl_src/body/pl_x_ibex.txt
@@ -0,0 +1,46 @@
+# pl_x_ibex: from pixellab_src/pl_x_ibex/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 40)
+# head_top at (32, 24)
+# back at (31, 41) (from part/probe)
+# tail at (43, 47) (from part/probe)
+.........oooo..............oooo.........
+.......oo22xxoo..........ooxx22oo.......
+......o2322xa3xo........oxx3xx232o......
+oo....o2cb32oxxxo..o^..oxxxxc3bc2o....oo
+o2o...o23ob33xxbcoo1oooobbyx3boc3o...o2o
+o2o..o3cooo332cx2oo111o32xc3boooc3o..o2o
+o22o.o3bbo.obc322o13111o222cboobb3o.o22o
+.o32obcoo...ob3231113213o23bo..oocbo22o.
+.o3c23bbo...ooo21111112313ooo..obb32o3o.
+..obbbbo...o3311111111111123o...obbbbo..
+...oooo....o3211111111111123o....oooo...
+......ooooo232211111111111233ooooo......
+.....o3311123321111111111223311133o.....
+.....o3aa3333oo32111111123oo333aa3o.....
+......obaaoo3o1o322222223o1oooaabo......
+........oooo3o1ao2211122oa1ooooo........
+...........o3o1oo2111112oo1oo...........
+...........o33oo311111113oo3o...........
+...........o3211112111211122o...........
+..........o3332111aoAoa111233o..........
+.........oo32332211Bo11122332o.oo.......
+........o3oo2o333o1obo1o33o32oo1o.......
+........o23oo3o3ooo111ooo32o2oo2o.......
+.......o2233o3o2333ooo33332o2o3o........
+.......o1223o3o232322223232ooo2o........
+.......o1222ooo232221123232o3321o.......
+......o2123222o3323211232o3o3o2To.......
+......o222o212oo333211232o3o2o22o.......
+.......322o2112o3o3222333oo32o22o.......
+.......o22o22122oo32233o3o332o33o.......
+.......o333o22233oo2333oo3323333o.......
+........333o333333o333ooo333o33o........
+........o333o2223ooo3oo3332o333o........
+........oab3o2112ooooooo311obaao........
+........oaaboo223oooo..o322obbbo........
+.......o13bbooyaao.....oaayoo331o.......
+......oaca3ooababb.....ababao3acao......
+......o2o2boo2o23o.....o32o2o32obo......
+......ooooooo2o23o.....o32o2oooooo......
+............oooooP......ooooo...........
diff --git a/parts_pl_src/body/pl_x_ibex_b.txt b/parts_pl_src/body/pl_x_ibex_b.txt
new file mode 100644
index 0000000..96c195d
--- /dev/null
+++ b/parts_pl_src/body/pl_x_ibex_b.txt
@@ -0,0 +1,53 @@
+# pl_x_ibex_b: from pixellab_src/pl_x_ibex_b/base.png (variant of pl_x_ibex) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 37)
+# head_top at (32, 17)
+# back at (31, 41)
+# tail at (52, 47)
+...........oooo..............oooo...........
+.........oo22xxoo..........ooxx22oo.........
+........o2322xacxo........oxxcxx232o........
+..oo....o2oc32oxxxo..o^..oxxxxo3co2o....oo..
+..o2o...o2cocc3xxcooo1ooooccxx3coo3o...o2o..
+..o2o..o3ooooc32ox2oo111o32xo2coooo3o..o2o..
+..o22o.o3cco.oco322o13111o222ocoocc3o.o22o..
+...o32ocooo...oc3231113113o23co..oooco22o...
+...o3o23cco...ooo21111112313ooo..occ32o3o...
+....occcco...o3311111111111123o...occcco....
+.....oooo....o3211111111111123o....oooo.....
+........ooooo232211111111111233ooooo........
+.......o3311123321111111111123311133o.......
+.......o3bb3333oo32111111123oo333bb3o.......
+........ocaaoo3o1o322222223o1ooobaco........
+.........ooooo3o1ao2211122oa1oooooo.........
+.......oob33oo3o1oo2111112oo1oo333boo.......
+.....oo3ba333o33oo311111113oo3o333aa3oo.....
+...oo111baa33o3211112111211122o33aaa111oo...
+...ob1111aa333332111ao3oa11123333aaa111bo...
+..obb2111bb33333322111o1112233213bb1111abo..
+..o2bb1111bb3113o33o1oco1o3332133bb111ba3o..
+..o3bbb111bb111123ooo111ooo311111bb111bb3o..
+..o33bb22332111111333oAo32211111133311bb3o..
+.o1133333331111111112233211111111133333332o.
+.o11321123o21111111112311111111112o2211312o.
+.o31311123o3211111111231111111112oo2111313o.
+o311311233oo321111112B32211111323oo31113113o
+o31123333oo3o3322222233332222223o3o33223111o
+o3111333ooo33o33333333333333333o33ooo333112o
+o1111133o.o32333332111311133333233oo3313112o
+o1111123o..o323233111131111331233o.o3311112o
+o111112o...oo2223333333333333133o...o311112o
+.o111113o...o322231111311133223oo..oo11111T.
+.o111111o...oo32331111311133333o...o111111o.
+.o1111332o..o333333333333333333o..o1331111o.
+.o11113o3o.o32233321113111233113o.o3oo1111o.
+.o31313oo..o32113332222222331113o..oo31313o.
+..o33o33o..o31113233333333331113o..o33333o..
+...ooooo...o3112223oooooo3233133o...ooooo...
+............o333233o....o332333o............
+...........o333323o......o322333o...........
+...........obaaabbo......obaaaaao...........
+..........oo131abbo......obb2131oo..........
+..........o2c2c2cco......occcc2c2o..........
+..........o3o3o3cco......occcc3o3o..........
+..........ooooooooP......ooooooooo..........
diff --git a/parts_pl_src/body/pl_x_ibex_c.txt b/parts_pl_src/body/pl_x_ibex_c.txt
new file mode 100644
index 0000000..a4dddfc
--- /dev/null
+++ b/parts_pl_src/body/pl_x_ibex_c.txt
@@ -0,0 +1,49 @@
+# pl_x_ibex_c: from pixellab_src/pl_x_ibex_c/base.png (variant of pl_x_ibex) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 39)
+# head_top at (32, 19)
+# back at (31, 41)
+# tail at (46, 47)
+.....................oooo...............
+...................o^333o...............
+..................o2233oo...............
+.........oooo....o3133oo...oooo.........
+.......oo22xxoo.o21233oooooxx22oo.......
+......o2322xacxoo2133312223cxx232o......
+oo....o2oc32oxxoo2133113333oo3co2o....oo
+o2o...o2cocc3o32321211222222ocoo3o...o2o
+o2o..o3ooooco3332312122111123oooo3o..o2o
+o22o.o3ccooo333333121331111112occ3o.o22o
+.o32ocooo.o2211133321333233311ooooco22o.
+.o3o23ccoo222ooo33331133o333322occ32o3o.
+..occcco.o2ooo222233313322233oooocccco..
+...oooo..o3o332112223222112333oo.oooo...
+......o312333332112222211233332133o.....
+.....o3333333oo33222222233oo333333o.....
+.....o3bb3333o1o333333333o1o323bb3o.....
+......ocao333o1ao3322233oa1o322obo......
+........o3233o1oo3222223oo1o3322o.......
+.......o222333oo322212223oo333322oo.....
+.....oo22233ba2222211122222ab323223o....
+.....o333233baa221aoAoa122aab322333o....
+......oo22322bb31111o21113bb33322oo.....
+......o333322331112Bo221113323332o......
+......o333223311222ooo231113223322o.....
+......o33o2232123oob33o3311332o332o.....
+......o3oo2332223bb222bbo11332oo32o.....
+......o33o2332333bb222b2o31232o3o2o.....
+......oo2o3332331bb111b2131232o3o2o.....
+......ocaoo3323312b111b2133233o2boT.....
+......oa33ooo233133111121332o3o2ao......
+......ob33o3o333133211221333oo3abo......
+......obaco33o3332331222233o3ocaco......
+......ocacoo3o33o233133333o33ocaco......
+.......o3coo33o3o333133333o3ooc3o.......
+........ooo3o3o3o333333o3o3o3ooo........
+........ooo3o32ooo3333oo332ocaao........
+........oaaboo223oo33ooo322occbo........
+.......o23ccooxaaooo3o.oaaxoo331o.......
+......o2c23ooababb.ooo.bbabaoc2c2o......
+......o3o3coo3o3co.....oc3o3oc3oco......
+......ooooooo3o3co.....oc3o3oooooo......
+............oooooP......ooooo...........
diff --git a/parts_pl_src/body/pl_x_ibex_d.txt b/parts_pl_src/body/pl_x_ibex_d.txt
new file mode 100644
index 0000000..1043eea
--- /dev/null
+++ b/parts_pl_src/body/pl_x_ibex_d.txt
@@ -0,0 +1,46 @@
+# pl_x_ibex_d: from pixellab_src/pl_x_ibex_d/base.png (variant of pl_x_ibex) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 40)
+# head_top at (32, 25)
+# back at (31, 41)
+# tail at (45, 47)
+.........oooo..............oooo.........
+.......oo22xxoo..........ooxx22oo.......
+......o2322xabxo........oxxbxx232o......
+oo....o2cb22oxxxo.o..3.oxxxxc2bc2o....oo
+o2o...o2bobb3xxbco2o^2oobbxx3boc3o...o2o
+o2o..o3cooob32c22o2221332xc2boooc3o..o2o
+o22o.o3bbo.obc3333212112332cboobb3o.o22o
+.o22obcoo...ooo3112111121133o..oocbo22o.
+.o2c22bbo..3322211211121122233.obb22o3o.
+..obbbbo....332221121121222333..obbbbo..
+...oooo...o3222222121212222222o..oooo...
+......oooo333311122212221113333ooo......
+.....33311123332112212211333321122o.....
+.....33aa3333oo33122222133oo333aa3o.....
+......obaao23o1o332222233o1o33oabo......
+........oo222o1ao3222223oa1o322oo.......
+.........o222o1oo2222223oo1o3223........
+........o21133oo322212223oo33112o.......
+........321233322231113222333312o.......
+........3221123321aoAoa123322222o.......
+.........3211223311Bo1113322112o........
+.........32131233o1obo1o33221123........
+.........323311233o111o332212123........
+.........3333112233ooo2222212333........
+........o33332222122222112232333o.......
+.......o3333323221221221232333333o......
+.......3323332323122122123333333oT......
+.......o2233333233221222233333332o......
+......o22232233333322233233322322o......
+......o31232133333322333233222322o......
+......o3123o11233333333333212o322o......
+......o3322o11222333333332212o333o......
+.......o3233o122333333333211o333o.......
+.......o33a3o11233oo3oo32211o3a3o.......
+........oaa3oa113ao.o.oaa22aoaao........
+.......oaaaaoaa1aao...oaa2aaoaaao.......
+......o2c22coaaaao.....oaaaaob2c2o......
+......o2o2bco2o2bo.....ob2o2ob2obo......
+......ooooooo2o2bo.....ob2o2oooooo......
+............oooooP......ooooo...........
diff --git a/parts_pl_src/body/pl_x_lionfish.txt b/parts_pl_src/body/pl_x_lionfish.txt
new file mode 100644
index 0000000..30f9a43
--- /dev/null
+++ b/parts_pl_src/body/pl_x_lionfish.txt
@@ -0,0 +1,49 @@
+# pl_x_lionfish: from pixellab_src/pl_x_lionfish/base.png (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (32, 41)
+# head_top at (31, 25) (from part/probe)
+# back at (32, 35) (from part/probe)
+# tail at (50, 37) (from part/probe)
+....................oo......................
+...................ob1co....................
+..................o3313bo...................
+..................o331333o..................
+................oo3321333ooo................
+...............ob3o221323o3bo...............
+...............o33o221322o33o...............
+..ooo.........o333o22^322o333o.........ooo..
+..ob3o........o322o221322o223o........o3bo..
+..ob23o.......o222o221322o222o.......o32bo..
+..o322o......oo22233213233222oo......o223o..
+..o3222o....ob33223o2232o32233bo....o2223o..
+...o2212o...o33o323o2232o323o33o...o2122o...
+...o3221o...o32o333o3233o333o23o...o1223o...
+.ooo22212o..o323o33o3233o33o323o..o21222ooo.
+ob33b2221o...o33o3cbb23bbc3o33o...o1222b33bo
+o3322b2211o...o3oc2ab23ba2co3o...o1122b2233o
+o32112b2212o..ooba1ab3Bba1aboo..o2122b21123o
+o321112b222o..obaa1ab33ba1aabo..o222b211123o
+.oo1a213o322oobbbb22boob22bbbboo223o313aToo.
+.o2oaa22o332oobbbb22bbbb22bbbboo233o23aao2o.
+.o22ca222o33ob322bb2bbbb2bb223bo33o222ac22o.
+.oo22ob233o3o32212b22bb22b21223o3o332bo23oo.
+ob3323ob233o33211122bbAb22111233o332bo3233bo
+o3222333o33o33221112b22b21112233o33o3332223o
+o332aabb3ooob33oo2222222222oo33booo3bbaa233o
+.oo31abb33obb331ooo322223ooo133bbo33bba13oo.
+.o3323ob33oab33wo1o222222o1ow33bao33bo3233o.
+.o32122333oab33ow1222222221wo33bao33322123o.
+.o3322333oobb322222211112222223bboo3332233o.
+..o33babb33oca2222221111222222aco33bba333o..
+..o332aboooocc32a222oooo222a23ccooooba233o..
+...o3333333ooc3ba22o2222o22ab3coo3333333o...
+...oo3b333ooooobb3222222223bbooooo333b3oo...
+....oooooo333oooo3333333333oooo333oooooo....
+.......o3333o33oooc333333cooo33o3333o.......
+......o333bo333oo.ooc33coo.oo333ob333o......
+.....o33abb33bbo....oooo...ocbb33bba33o.....
+.....o321a333bbo............obb233b123o.....
+.....o33332acoo..............ooca23333o.....
+.....ocoo322o..................o223ooco.....
+......o333oo...................ooo333o......
+.......ooP........................ooo.......
diff --git a/parts_pl_src/body/pl_x_lionfish_b.txt b/parts_pl_src/body/pl_x_lionfish_b.txt
new file mode 100644
index 0000000..7fa0e9b
--- /dev/null
+++ b/parts_pl_src/body/pl_x_lionfish_b.txt
@@ -0,0 +1,55 @@
+# pl_x_lionfish_b: from pixellab_src/pl_x_lionfish_b/base.png (variant of pl_x_lionfish) (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (32, 38)
+# head_top at (31, 12)
+# back at (32, 35)
+# tail at (54, 37)
+.........................^oo........................
+.........................o3o........................
+.........................o12o.......................
+..................o......o12o....oo.................
+.................o3oo...o212o...o3o.................
+.................o31o...o2123o..o13o................
+.................o212o..o2123o.o113o................
+..........oo.....o211o..o2133oo212bo.....oo.........
+..........o3o....ob313o.o2233oo21bbo...oo3o.........
+..........o21oo..obb23oo32333o323bco..o212o.........
+..........o2212o.o3b33oo33333o3233oo.o2123o.........
+..........o3221ooo3333oo33333o3333o.o32133o.........
+..........o3b322ooo333oooo33oo3333o.o323bo..........
+...........obb323ooooooobb3bboooo3oo3323bo..........
+...ooooo...oc3333oobbb11bb3bb11bbooo3333bo..ooooo...
+...o2111oo..o33oo22bbb11bb3bb11bbb22oo33o.oo2213o...
+...o332223o.ooo32111bb12baab221bb11133oooo322233o...
+....o3b3323ooocbb111bb22baab22bbb1112b2ooo323c3o....
+.....obc333o32bbab12bb22baab22bb2211babbo3333co.....
+.....oo333oo32bbbb222b222bbb22bb222bbbab3o333oo.....
+......oo3o33222cc2222bb22bb222b2222bbbbbc3oooo......
+.ooooooooo322222222222b22bbb22222222cccc233ooo.ooooo
+o321123oo322bb222222222222bb222222222222b333oo22123o
+.o333333o322bb222211122222B2222211122222b233o33333o.
+..o3b33o3322222222111122222222211112222222233o3c3o..
+...o333ocbb2222222111112222222111112222222cc3oooT...
+....oooocbac222223o2111222A222111oo322222cbacooo....
+.ooo33occbbc222223ooo22322222322ooo322222cbbcco3ooo.
+o31123o3cbbc2222231ooo33222223oooo13222222bbcco3212o
+o33333o3ccc2222223wo1o332222233o1ow32222223ccco3333o
+.ooo3oo33222222223ow1233222223331wo32222222333oo3oo.
+....oo332222b222222222222111222222222222b22c33ooo...
+.....o3322222222aa22222211111222222aa222222c33o.....
+.....o33c222222aaaa222221111122222aaaa22222333o.....
+.....o33c322222aaaa22222ooooo22222aaaa22223333o.....
+.....o3333bbab222aa2222o22222o2222aa222bb23333o.....
+......o333bbabc22222222222222222222222aabb333o......
+......o333cbbbc22222222222222222222222bbbc333o......
+.......o333cbbc22222222222222222222222cbbc33o.......
+........o333cc333222222222222222222233ccc33o........
+.........o33333333cbb2222222222233333333333o........
+..........oo33333ccccc32222222333cc333333oo.........
+...........oooo33ccccc3333333333ccc333oooo..........
+..........oocc3oooccc33333333333cc3ooocc3o..........
+..........o2bc3333oooo333333333oooo333cb2o..........
+..........o2123333o...ooooooooo...o333212o..........
+..........o32233oo.................o33222o..........
+..........o333oo....................oo333o..........
+...........ooP........................ooo...........
diff --git a/parts_pl_src/body/pl_x_lionfish_c.txt b/parts_pl_src/body/pl_x_lionfish_c.txt
new file mode 100644
index 0000000..a59e8af
--- /dev/null
+++ b/parts_pl_src/body/pl_x_lionfish_c.txt
@@ -0,0 +1,64 @@
+# pl_x_lionfish_c: from pixellab_src/pl_x_lionfish_c/base.png (variant of pl_x_lionfish) (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (32, 35)
+# head_top at (31, 3)
+# back at (32, 34)
+# tail at (53, 37)
+.........................^o.........................
+........................o3bo........................
+........................o33o........................
+........................o33o........................
+.......................ob333o.......................
+.......................o3323o.......................
+.......................o3223o.......................
+.......................o3213o.......................
+....................oo.o3213o.oo....................
+...................ob3oo3213oo3o....................
+...................ob3oo2213o33bo...................
+...................o333o2213o333o...................
+...................o333o2213o323o...................
+...................o323o221o3223o...................
+...................o322o221o3223o...................
+...................o322o221o3223o...................
+.................oooo22o221o2223ooo.................
+..oo.............o3oo22o321o222333bo...........ooo..
+..o3o............o33o223o21o222o33bo...........obo..
+..o33o...........o33o323o21o222o223o..........o3bo..
+..o322o..........o32oo23o21o22oo22o..........o333o..
+..o3212o.........o323o32o21o22o212o..........2233...
+...o221oo........oo22o32o21o2oo21o..........o123o...
+ooooo221o.........o313o2o31o3o22oo.........o122ooooo
+ob33oo221o.........o13o2o31o3o22o.........o122oo33bo
+o3322oo211o........o33o3o32o3o2oo........o112333333o
+o332223b311o.......oo3o3o32oo33o........o112b332233o
+.o322223b321o.......o33oo32oo33o.......o222b311123o.
+..oo22223b321o......o33oo32oo33o......o222bb21113o..
+..ooo22b13b311o.....ooooo32ooooo.....o222bb22b1ooo..
+.o33333b222bo22o....oocbb32bbcoo....o212oc22bb333bo.
+.o33223bb2233o32o..ooc1ab3Bba1coo..o323o322bb22223o.
+..o32212bb233oo33oooba1ab3Aba1abo.o333o332bb22223oo.
+...oo2222bbc333o33obaa1abooba1aaboo3oo333bb32223o...
+.....o3222bc3333oobbbb22boob22bbbbooo333bb3223oT....
+......oo2233c333oobbbb22bbbb22bbbboo333b3323ooo.....
+.....ob32b333cc3ob322bb2bbbb2bb223bo3cc3332222bo....
+.....o3322b33333o32112b22bb22b21123o33333b2222oo....
+......ooo33cb33o33211122bbbb22111233o333bb33oo......
+........ooo3cc3o33221111b22b11112233o3cb3oooo.......
+.........ob3333ob33oo2222222222oo33bo33333bo........
+.........o3333obb331ooo322223ooo133bbo3333o.........
+..........oooooab33wo1o322222o1ow33baooooo..........
+..............oab33ow1332222221wo33bao..............
+..............obb322222211112222223bbo..............
+...............oca2222221111222222aco...............
+...............occ32a222oooo222a23cco...............
+...............ooc3ba22o2222o22ab3coo...............
+..............ooooobb3222222223bbooooo..............
+............oo333oooo3333333333oooo333oo............
+...........o3333o33oooc333333cooo33o3333o...........
+..........o333bo333oo.ooc33coo.oo333ob333o..........
+.........o33abb33bbo....oooo...ocbb33bba33o.........
+.........o321a333bbo............obb233b123o.........
+.........o33333acoo..............ooca33333o.........
+.........ocoo312o..................o113ooco.........
+..........o333oo...................ooo333o..........
+...........ooP........................ooo...........
diff --git a/parts_pl_src/body/pl_x_lionfish_d.txt b/parts_pl_src/body/pl_x_lionfish_d.txt
new file mode 100644
index 0000000..7daf68a
--- /dev/null
+++ b/parts_pl_src/body/pl_x_lionfish_d.txt
@@ -0,0 +1,49 @@
+# pl_x_lionfish_d: from pixellab_src/pl_x_lionfish_d/base.png (variant of pl_x_lionfish) (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (31, 41)
+# head_top at (31, 18)
+# back at (32, 35)
+# tail at (53, 37)
+.....................^o.....................
+....................o12o....................
+...................o1123o...................
+...................o1123o...................
+...............oo.o111233o.oo...............
+...............o1oo111322oo1o...............
+...............o12o221322o31o...............
+..ooo.........o112o221322o212o.........ooo..
+..ob3o........o222o221322o232o........o3bo..
+..ob33o.......o222o221322o232o.......o33bo..
+..o332o......oo22233213233232oo......o233o..
+..o3322o....o333233o2232o323333o....o2233o..
+..oo2212o...o33o333o2232o323o33o...o2123oo..
+...o3221o...o32o333o3233o333o23o...o1223o...
+oooo22212o..o323o33o3233o33o323o..o21222oooo
+oab3c2221o.ooo33o3ccc33ccc3o33ooo.o1222c3bao
+ocab3c2211oo12o3oc2bc33cb2co3o31oo1122c2baco
+occa13c2212o213oca1ac3Bca1acoo22o2122c21acco
+occ1113c222o333caa1ac33ca1aaco23o222c2111cco
+ooo1a313o322o33ccc22c1cc22cccc3o223o313a1ooT
+.o2obb22o332oocccc22c12c22ccccoo233o23bbo2o.
+.o22cb222o33oc322cc2c23c2cc223bo33o222bc22o.
+ooo22oc233o3o32212c222322c21223o3o332co23ooo
+oaac23oc233o33211122cA3c22111233o332co32caao
+occc2333o3o123221112c33c21112232o33o3332ccco
+occcabcc3oo2233oo2222332222oo3321oo3ccbaccco
+ooo31bcc33oo1331ooo322223ooo13313o33ccb13oo.
+.o3323oc33o1233ao1o322222o1oa3321o33co3233o.
+.o32122333o3233oa1322222221ao3323o33322123o.
+.o3322333oo3332222221111222222333oo3332233o.
+..o33bbcc33ocb2222221111222222bco33ccb333o..
+..o332bcoooocc32a222oooo222a23ccoooocb233o..
+...o3333333ooc3ca22o2222o22ac3coo3333333o...
+...oo3c333ooooocc3222222223ccooooo333c3oo...
+....oooooo333oooo3333333333oooo333oooooo....
+.......o3333o33oooc333333cooo33o3333o.......
+......o333co333oo.ooc33coo.oo333oc333o......
+.....o33bbc33cco....oooo...occc33cbb33o.....
+.....o321b333cco............occ233b123o.....
+.....o33333bcoo..............oocb33333o.....
+.....ocoo322o..................o223ooco.....
+......o333oo...................ooo333o......
+.......ooP........................ooo.......
diff --git a/parts_pl_src/body/pl_x_loris.txt b/parts_pl_src/body/pl_x_loris.txt
new file mode 100644
index 0000000..a3d2496
--- /dev/null
+++ b/parts_pl_src/body/pl_x_loris.txt
@@ -0,0 +1,44 @@
+# pl_x_loris: from pixellab_src/pl_x_loris/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 39)
+# head_top at (34, 24) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (43, 54) (from part/probe)
+...ooo............ooooooooo...........ooo...
+.oo321oo........oo222221^22oo.......oo112oo.
+.o221112o.....oo2212221222222o.....o211112o.
+o2oo21112o..oo2222221212122123oo..o21111oo2o
+ooooo21112oo22221132223222111233oo21111ooooo
+oooooo21111122222113123121122223311111oooooo
+.ooocco211133222221111111112222331111occooo.
+.o33acco2113322222211111112222233311occa33o.
+.o33aaco3133222222211111122222223312ocaa33o.
+.o33aacoo33322oooo22111112oooo22333oocaa33o.
+.o33aacco3322occcoo211112ooccco2233occaa33o.
+.o3333coo332oaowwwoo1111oowwwoao233ooc3333o.
+..o333cco332oaowwwoo1111oowwwoao233occ333o..
+..oo333oo332oaowwwoo1111oowwwoao233oo3333o..
+...oo333o332oaoooooo1111ooooooao233o333oo...
+....oo33o332oaoo2ooo1111ooo2ooao233o33oo....
+.....ooooo322occcco211A12occcco223ooooo.....
+.........o3322oooo21b11b12oooo2233o.........
+.........oo332222222oBco112222233oo.........
+..........oo33222223oooo31222233oo..........
+...........oo333222222222222333oo...........
+............oooooo22222222oooooo............
+...........o33o222o333333o222o33o...........
+..........o3332222oo3333oo2222333o..........
+..........o3a222222o3223o222222a3o..........
+..........o3222222oo3112oo2222223o..........
+...........oo222222o1111o222222oo...........
+............o2222oo211111oo2222o............
+.............ooooo21111112ooooo..oooo.......
+.............o3222223113222223o.o2222o......
+............o122222222222222223o222222o.....
+............o221122222222221122o2To2222o....
+............oa2a12233333322122aoooo2222o....
+.............o31222oooooo22213oo2222222o....
+............oo33222o....o22233oo222222o.....
+...........o3212222o.....o222212oo222o......
+..........oo2o2o222o.....o222o2o2oooo.......
+...........oooooooP.......oooooooo..........
diff --git a/parts_pl_src/body/pl_x_loris_b.txt b/parts_pl_src/body/pl_x_loris_b.txt
new file mode 100644
index 0000000..b4b2b05
--- /dev/null
+++ b/parts_pl_src/body/pl_x_loris_b.txt
@@ -0,0 +1,49 @@
+# pl_x_loris_b: from pixellab_src/pl_x_loris_b/base.png (variant of pl_x_loris) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (33, 38)
+# head_top at (34, 18)
+# back at (31, 41)
+# tail at (54, 54)
+...ooo............oooooo^oo...........ooo....
+.oo111oo........oo1aabbbb11oo.......oo111oo..
+.o321111o.....oo121aabbbb1121oo....o111123o..
+o3oo21111o..oo12121abbbbaa12111o.oo21112oo3o.
+ooooo21111oo2211121aabbbaa12112oo211113ooooo.
+oooooo21111o2211111aabbbb1111122o21112oooooo.
+.ooobbo211o21221111aabbab11112212o212obbooo..
+.o33abbo22o222233312aabab133322222o2obba33o..
+.o33aabo3o2223333311aabb123333322233obaa33o..
+.o33aaboo222333333311abb13333333222oobaa33o..
+.o33aabbo22233oooo331ab233oooo333222obaa33o..
+.o3333boo2233obbboo322b23oobbbo33223ob3333o..
+..o333bo2233ocowwwoo2222oowwwoco3322ob333o...
+..o3333oo233ocowwwoo2222oowwwoco3323o3333o...
+...oo33o3333ocowwwoo2222oowwwoco33332o3oo....
+....o33o3333oaoooooo2222ooooooao33332o3o.....
+.....ooo3113oaoo3ooo2112ooo3ooao31113oo......
+.......o11113obbbbo211112obbbbo311111o.......
+......o2111111333322b11b22333311111112o......
+......o2221111112212obbo21111111111222o......
+.......o211111111112oooA2111111212112o.......
+.......o22211111111122221111111211222o.......
+........oo2212121211111111211212222oo........
+.........oooo22222221B2112222222oooo.........
+.........o333oo222o222222o222oooo33o.........
+........o33333oooo3oooooo2oooo333333o........
+........o33323o222o222222oo22o322332o........
+........o33a222222oo2222oo3222222ao2o........
+........o3o22222222o2111o322222223o22o.......
+.......o33o3322222oo1111oo22222233o22o.......
+.......o32oo3322333o11111o3332233o322o.......
+.......o323oo33333o1111111o33333o3222oooo....
+.......o3223oooooo211111112ooooo33222o322o...
+.......o3322333211111111111112333323oo2222o..
+........o322233221111111111122333223o322223o.
+........o322233322111111111223332223o3o22223o
+.........o32223o2212122122222332223oooo22223T
+.........oo3222oo2222222222oo32223oo33222233o
+..........o332333oo222222ooo333233o33222333o.
+...........o333333ooooooo33333333oo333333oo..
+..........oo2212333o.....o3332122oooooooo....
+..........oo2o2o233o.....o332o2o2oo..........
+..........ooooooooP.......oooooooo...........
diff --git a/parts_pl_src/body/pl_x_loris_c.txt b/parts_pl_src/body/pl_x_loris_c.txt
new file mode 100644
index 0000000..bd6d2dc
--- /dev/null
+++ b/parts_pl_src/body/pl_x_loris_c.txt
@@ -0,0 +1,59 @@
+# pl_x_loris_c: from pixellab_src/pl_x_loris_c/base.png (variant of pl_x_loris) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 29)
+# head_top at (34, 8)
+# back at (31, 41)
+# tail at (38, 54)
+...ooo...........oooooo^oo..........ooo...
+.oo322oo.......oo222322322oo......oo223oo.
+.o321112o.....o222323223222oo....o211113o.
+o3oo21112o..oo32222232222223oo..o21112oo3o
+ooooo21112oo333213223322212333oo21112ooooo
+oooooo211112332211313322112233311112oooooo
+.ooocco2111332333112211112333331112occooo.
+.o33acco21233333331122112333333312occa33o.
+.o33aaco31333333331111113333333323ocaa33o.
+.o33aacoo33333ooo33111123oooo3333oocaa33o.
+.o33aacco3333occco311113oocco3333occaa33o.
+.o3333coo333oaowwoo1111oowwooo333ooc3333o.
+..o333cco333oaowwoo1111oowwooo333occ333o..
+..oo333oo333oaooooo1111ooooooo333oo333oo..
+...oo333o333oaooooo1111ooooooo333o333oo...
+....oooooo33ooobooo1111oooboob33oooooo....
+.....ooooo333ooooo3a11c3ooooo333ooooo.....
+.........oo33333322occo223333333o.........
+..........oo3332223oooo3222a33oo..........
+...........o333222222222222333o...........
+............ooooo33333333ooooo............
+...............oo3333A333oo...............
+...............o33333333333o..............
+..............o322221112222o..............
+..............o2o22111112o32o.............
+.............o22o21111112o322o............
+.............o22o21111112oo32o............
+............o22oo21111112o.o32o...........
+...........o223oo21111112o.o32o...........
+...........o22ooo21111112oo.o32o..........
+..........o223o.o221111123o.oo2o..........
+..........o22o..o222111223o..o22o.........
+.........o32oo..o332222233o..o32o.........
+.........o22o..o2233B22332o...o22o........
+.........o22o..oa223333322o...o22o........
+........o222o..oa223ooo3223o..o322o.......
+........o222o..o222o...o222o...o22o.......
+........o22o..o2223o...o322o...o32o.......
+........o22o..o222o....o3222o..o22o.......
+........o22o..o222o....o3222o.o3222o......
+........o22o..o222o.....o222o.o3222o......
+.......o2222o.o223o.....o322o.o3o22o......
+.......o2222o.oa23o.....o32ao.ooo33o......
+.......o222oo.oa33o.....o333o...o3oo......
+.......o232oo..o33o.....o33o....ooo.......
+.......oo33o...o33o.....o33o..............
+........oo3o...o33o.....o33T..............
+.........oo....o33o.....o33o..............
+...............o33o.....o33o..............
+..............oo33o.....o32oo.............
+.............o2123o.....o3133o............
+............o2o2o3o.....o33o3o............
+............oooooP.......oooooo...........
diff --git a/parts_pl_src/body/pl_x_loris_d.txt b/parts_pl_src/body/pl_x_loris_d.txt
new file mode 100644
index 0000000..1282fe6
--- /dev/null
+++ b/parts_pl_src/body/pl_x_loris_d.txt
@@ -0,0 +1,55 @@
+# pl_x_loris_d: from pixellab_src/pl_x_loris_d/base.png (variant of pl_x_loris) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 32)
+# head_top at (34, 12)
+# back at (31, 41)
+# tail at (50, 54)
+........oo............oooooo^oo...........ooo........
+......oo21oo........oo222222222oo.......oo223oo......
+......o31112o.....oo2222222222222o.....o211123o......
+.....o3o21112o..oo2222222222222223oo..o21112oo3o.....
+.....oooo21112oo22222132223222122233oo21112ooooo.....
+.....ooooo21111222222113233221122223311112oooooo.....
+......ooooo211122233331122221123332331112oooooo......
+....ooooocco2123333333311221123333333312oocboooo.....
+...o3333ooco3233333333321111133333333323occoo222o....
+..o3333333ooo33333oooo33111123oooo33333oocoo22222o...
+..o3333233oco3333occcoo311113ooccco3333occo3232223o..
+..o333o333oco333oaowwwoo1111oowwwoao333occo333o323o..
+.ocaa33ooocoo333oaowwwoo1111oowwwoao333oco3oo333acco.
+.ocaaccoo3cco333oaowwwoo1111oowwwoao333oco3ooocaacco.
+.ocaacco333oo333oaoooooo1211ooooooao333oo333oocaacco.
+o3311313oo33o333oaoo3ooo2112ooo3ooao333o333oo3132233o
+o2311311oo333o333occcco311113occcco333o33ooo31132232o
+o1311311oooooo3333oooo32c11c23oooo3333oooooo31132232o
+o2311231o3112oo333333322occo223333333ooo3113o1232232o
+o333122o3111133ooo222223oooo3222223oo22311112o332332o
+o32332o3311112322ooo222222A2222233oo322211113o33333o.
+o323322232111232222ooo22222222oooo32223211133333332o.
+o33332223333333222222233333333322222233333332112332o.
+.oo33331223333332211112223322111111223333332122333o..
+...oo3332222223o311111111232111111123o3222222333oo...
+....oo333111333o31111111123111111112oo3331113333o....
+.....oo33333333ooo11111112311111111ooo33333333oo.....
+.......oo333333oooo111112333211112oooo333333oo.......
+.........oooooooooo33333333333333ooooooooooo.........
+................oo2233331B311333222oo................
+.................o32333111311133223o.................
+..................o332o33333333233o..................
+...................o32o1112112323o...................
+...................o2232112113223o...................
+...................o2223222223223o...................
+..................o22223222222222o...................
+.................o1122222222222221o..................
+................o212212222233211211o..oooo...........
+................o21311223oo33211131o..o223o..........
+................o22312223ooo2211133o...o222o.........
+................oo212223o..o2222213o...o2223o........
+................oo22323o....o322323o...o2223o........
+.................o3332oo.....o32333oooo22233T........
+.................ocaaaco.....ocaaaco23222333o........
+.................occccco.....occaaco3333333o.........
+................oo22223o.....o32222oo33333o..........
+...............o2212223o.....o3222123ooooo...........
+...............o2o2o233o.....o332o2o2o...............
+...............oooooooP.......oooooooo...............
diff --git a/parts_pl_src/body/pl_x_moai.txt b/parts_pl_src/body/pl_x_moai.txt
new file mode 100644
index 0000000..b02fa03
--- /dev/null
+++ b/parts_pl_src/body/pl_x_moai.txt
@@ -0,0 +1,46 @@
+# pl_x_moai: from pixellab_src/pl_x_moai/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 41)
+# head_top at (30, 23) (from part/probe)
+# back at (30, 42) (from part/probe)
+# tail at (40, 50) (from part/probe)
+.....oooooooooo......
+....ocacaaaacbco.....
+...ooaaca^abbbcoo....
+..oboaacaaacabcoco...
+..obcaacaccacccoco...
+..obaoacccccccocco...
+..obccooooooooccco...
+..ocoo332222o3ooco...
+..o332111111223ooo...
+..o3zxxzzzzzzzbcoo...
+..o233333bb333323o...
+..o233333bb333333o...
+.oz131o13zz31o1o2bo..
+.oz1c1oo3xx3oo1c2bo..
+.oa11cc33xx33cc12bo..
+.oc11112bxxb32111co..
+oac1111zzxxzb2111cbo.
+oac113bzxxx1zb311cbo.
+oac113bbcccccb321czo.
+oac1z333cccc233b1czo.
+oac1zb3occAcoo3b1czo.
+o3b2zzzb3Boocbbb2b2o.
+.oo2z3xxbbbbaz3b2oo..
+..o2z3333333333b2o...
+..o2zzbbbbbbbbbb2o...
+..o2zzzzzzzzzbbb2o...
+.oo2zzzzzzzzbzbb2oo..
+o32obzbzzbzbbbbboo3o.
+o312obzzbzzbcbbo3333o
+o1112ooo3333ooo3223To
+o1z112223333222212c3o
+o1z11z12222222211233o
+o321zzz111111111c233o
+.oo3332211b11c11b2oo.
+.ocxxaa32111zb23ooo..
+.oz3333zo2223ooooo...
+.o333333oooooo3o3o...
+..o33333o33oo333o3...
+333ooooo3333oooo3333.
+..33333333P3333333...
diff --git a/parts_pl_src/body/pl_x_moai_b.txt b/parts_pl_src/body/pl_x_moai_b.txt
new file mode 100644
index 0000000..5e66f8c
--- /dev/null
+++ b/parts_pl_src/body/pl_x_moai_b.txt
@@ -0,0 +1,55 @@
+# pl_x_moai_b: from pixellab_src/pl_x_moai_b/base.png (variant of pl_x_moai) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (31, 38)
+# head_top at (30, 11)
+# back at (30, 42)
+# tail at (49, 50)
+............oooo^ooooooo............
+...........ocaccaaaacaaco...........
+..........ooaaccaaaaaaacoo..........
+.........oaoaaccaaacaaacoco.........
+.........oaoaaccaccaccccoco.........
+.........oacaaccaccaccccoco.........
+.........oaaoacccccccccocco.........
+.........oaccooooooooooccco.........
+.........ocooooo2222oooooco.........
+.........ooo211111112223ooo.........
+.........oozxyzzzzzzzzzaboo.........
+.........ooooooooaao3ooocoo.........
+.........o2ooooooaaoooooc3o.........
+.........o2oocoooaaooccoo3o.........
+........oz1o1o21ozzo1oo1o2ao........
+........oz1cwooooxyoooowc2ao........
+........oz11ccoooxxooccc12ao........
+........oc111122axxa332111co........
+........oc111122axxa322111coo.......
+.......oac11113zzxxza22111cao.......
+.......oac11oaazxxxxzaao11cao.......
+.......oac11oaaacccccbao21czo.......
+.......oac1zoocccccc3oooa1czo.......
+.......oac1zaoooccccoooca1czo.......
+.......oca2zzzbaoooocbaaa2aco.......
+........oo2zoxxxaaaazzzoa2oo........
+........oo2zoxxxaaaazzzoa2oo........
+......oo3o2zoooooAooooooa2o3oo......
+.....o211o2zzaaaaaaaaaaaa2o333o.....
+....o2111o2zzzzzzzzzzaaaa2o3co3o....
+...oo11x2o2zzzzzzzzzaazaa2o33o3o....
+...oa21y2o2zzzzzBzzzaazaa2o333ooo...
+..oyaz2222oazaazzazaaaaaao33o3obao..
+..ocxzao112oazzzazzacbaaoo33o3ayco..
+.oycxaco1112oooooooooooo22233oayoco.
+occzybo211112222oooo2222212c3oayocco
+oyczabo21y112222oooo2222212c3oayyyco
+oyczzboo1y11z1222222222211233oayycoo
+occzzzoo221zzz11111111111c233oyyyoco
+ozzcozooooooo33311c11cc11a2ooobbyycT
+ozzboboooooox3322111zac23ooooobozybo
+obbboooobbbb33cc211113zoooo3oooozbbo
+.obbboo3ab3oozzzo2222ooooc333oobbbo.
+..ooo.o3oa3oooooooooooo33ooc3o.ooo..
+......oo3ocaoooooooooooccooo3o......
+.......o33ooooooooooooooooooo.......
+.......o33333ooo....ooo33ooo........
+.......o33223ooo....ooo323oo........
+........ooooooP......ooooooo........
diff --git a/parts_pl_src/body/pl_x_moai_c.txt b/parts_pl_src/body/pl_x_moai_c.txt
new file mode 100644
index 0000000..16317ae
--- /dev/null
+++ b/parts_pl_src/body/pl_x_moai_c.txt
@@ -0,0 +1,51 @@
+# pl_x_moai_c: from pixellab_src/pl_x_moai_c/base.png (variant of pl_x_moai) (pixellab_library.py extract)
+# pivot at (34, 59)
+# aura at (31, 38)
+# head_top at (30, 15)
+# back at (30, 42)
+# tail at (42, 50)
+.....oooo^oooooo......
+....ocaaaaaaac2co.....
+...oc33aaaaac22cco....
+..ob332aaaaacacccco...
+..oa3caaacccacc2c2o...
+..oaaoacccccccco22o...
+..oaccoooooooooc2co...
+..ocoooo22333ooooco...
+..ooo33221111113ooo...
+..oooy3o33oo3323ooo...
+..ooo33oobbobboo3oo...
+..o3ooooobooooooo2o...
+..o1ooooo2oyooooo2o...
+.oy1ooocooyyoooao3bo..
+.oy1caoaooxxoaoac3bo..
+.o311oooooxxoooo22bo..
+.ob11212byxxb33332bo..
+.oc32113bxxxb31211co..
+o3c1213yyxxxyy3111cbo.
+o3c11obyxxxxxybo11cbo.
+o3c12obbcccccbbo31cyo.
+o3c1yoocccccccoob1cyo.
+o3c1yboocccccoocb1cyo.
+ocb3yyybooAoocbbb3b3o.
+.oo3yoxxbbbbb3yob3oo..
+..o2yooooooooooob3o...
+..o2yybcobbbbbbbb3o...
+..o3yyyoyBobyybbb3o...
+..o3yyyoyyyoyybb22o...
+..o32yyyyyyyoyyb22o...
+..o33yyyyyyyyy2b2bo...
+.oo33cyyyyyyybb2bboo..
+o33o322byyyy2bb2boo3o.
+o313oby2byyyb2bboo333o
+o112oooooooooooo33333o
+o1221333oooo3222313c3T
+o1y11y133333333111333o
+o331yyy1111121111c333o
+.ooooo33111c11c11b3oo.
+.ocxx33c31111yb3oooo..
+.oyooooyo3333oooo2o...
+.oooooooooooooooo2o...
+.oo3ooooooooooo2o2o...
+..o23oooo...oo222o....
+...ooooo.....Pooo.....
diff --git a/parts_pl_src/body/pl_x_moai_d.txt b/parts_pl_src/body/pl_x_moai_d.txt
new file mode 100644
index 0000000..ed08c67
--- /dev/null
+++ b/parts_pl_src/body/pl_x_moai_d.txt
@@ -0,0 +1,55 @@
+# pl_x_moai_d: from pixellab_src/pl_x_moai_d/base.png (variant of pl_x_moai) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (31, 36)
+# head_top at (30, 11)
+# back at (30, 42)
+# tail at (42, 50)
+.......oooo^oooooo.......
+......ocacaaaaabbco......
+.....ooaacaaaabbbcoo.....
+....oaoaacaaaacabcoco....
+....oacaacacccacccoco....
+....oacaacbcccbcccoco....
+....oaaoaccccccccocco....
+....oaccoooooooooccco....
+....ocoooo33333ooooco....
+....ooo32222222333ooo....
+....oozxxzzzzzzzzbboo....
+....o3ooooocbbooooc3o....
+....o3oocoocbboocoo3o....
+...oz2o1o1oczzo1o1o3bo...
+...oz1cwooocxxooowc3bo...
+...o211ccoocxxoocc23bo...
+...oc11113b2xxb33222co...
+..ooc11113bzxxb33222coo..
+..o2c1111zzzxxzb3222cbo..
+..o2c11obzxxxxxzbo22cbo..
+..o2c12obbcccccbbo32czo..
+..o2c2zoocccccccoob2czo..
+..o2c2zboocccccoocb2czo..
+..ocb3zzzbooooocbbb3bco..
+...oo3zoxxbbbbb2zob3oo...
+....o3zoooooAooooob3o....
+....o3zzbbbbbbbbbbb3o....
+....o3zzzzzzzzzzbbb3o....
+...oo3zzzzzzzzz2bbb3oo...
+..o23ozzzzzzzzzbzbboo3o..
+.o222obzbzzbbzbbbbbo333o.
+o22223obzzbBzzbbbbo33333o
+o222223ooooooooooo333333o
+oz2o222333ooooo333323oc3o
+o13o22222333333332223o33o
+o13o222222222222222c3o33o
+o13o2zz22222222222223o33o
+ozbo22z2222222222222cobbo
+ocbo22222222222222z23obo.
+.ooo3222z222c22222zb33oT.
+..oo322222222222c23333o..
+..oobb32222222zzz333c3o..
+...o3b33z2c2222z333b3o...
+....oo3333333333333bo....
+....ooooooooooooooooo....
+....o3ooooooooooooooo....
+....o2z33oo...ooo333o....
+....oz223oo...oo3333o....
+.....ooooP.....ooooo.....
diff --git a/parts_pl_src/body/pl_x_mummy.txt b/parts_pl_src/body/pl_x_mummy.txt
new file mode 100644
index 0000000..86ac241
--- /dev/null
+++ b/parts_pl_src/body/pl_x_mummy.txt
@@ -0,0 +1,46 @@
+# pl_x_mummy: from pixellab_src/pl_x_mummy/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 41)
+# head_top at (33, 25) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (43, 51) (from part/probe)
+...............oooooooo...............
+............ooo11111112oo.............
+...........occao13123oooooo...........
+..........o3aaba333aabbaacco..........
+.........o21oocaaaaa^abaaacco.........
+........o1123caaaaaccooooooooo........
+.......o1123baaacoooo332323333o.......
+.......o13aaacoo333bc323121333o.......
+......o13aaao321111oao213312333o......
+......o3aaoo21111133oao11133233o......
+......obao2111123o111oa31112333o......
+......obo21113oooooo22oc3112233oco....
+......oo211oobbbbbbooooao112223obboo..
+......o212obazzzbbbbooooao32223oobbo..
+......o13oazz1111aBbboooccoo222ooooo..
+......o3oozz111111abboooobo3o22o......
+......o3ooz1111111aabo3oobc33o2o......
+......o1ooab11111aabbo33oob33o2o......
+.......32oba11111abb3o333obo33o.......
+.......o22obaazzbbbbo33112oc33o.......
+........o213bbbbbboA111112ob3o........
+.........o211ooooo3111o322obo.........
+...ooo....o3311111111oob223o....ooo...
+..oaaco...ooo332222222ccoooo...ocaao..
+.oaccoaooo133oooooooooooo3o2oooaoccao.
+oacocaboa2132o33333333obo3o23aobacocao
+.ooccbooc32o2o3322223obbo2o33coocccoo.
+.occcococoooo1113oooaaa33oooocococcco.
+..ocooooo...o311111o33112o..o2ooooco..
+...o.o2oo...o2333111113ooo..o13...o...
+.....o2o....o1113332211123o.o1To......
+......oo...o12211123333oooo.o113o.....
+...........o31123221222233o..o111o....
+..........o11333333ooooo32bo..o11o....
+.....oo...o11123oooooo332aao...313....
+....oaaoooo313oo......o3ba3ooo3313oo..
+...o23aobbo3333o.......o322occa323aao.
+.oo112ooooo333oo.......o3333oooo11oo..
+...oo.....obbbo.........o311o...oo....
+..........oooP...........ooo..........
diff --git a/parts_pl_src/body/pl_x_mummy_b.txt b/parts_pl_src/body/pl_x_mummy_b.txt
new file mode 100644
index 0000000..37a88a6
--- /dev/null
+++ b/parts_pl_src/body/pl_x_mummy_b.txt
@@ -0,0 +1,49 @@
+# pl_x_mummy_b: from pixellab_src/pl_x_mummy_b/base.png (variant of pl_x_mummy) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 40)
+# head_top at (33, 18)
+# back at (31, 35)
+# tail at (52, 51)
+.................ooooo^oo.................
+..............ooo11111111ooo..............
+............o111222111333311oo............
+...........o111111122221111111o...........
+..........o3221111111121111233o...........
+..........o11222211111111321333o..........
+.........o1121112111121111122333o.........
+........o321111113332111111111133o........
+........o111113333111333311111111o........
+.......o11123311111111113333111111o.......
+.......o11321oooo11111111oooo32111o.......
+.......o3311oozaoo111111obzcco3311o.......
+.......o311oo1zooo11111oo1zcco1333o.......
+.......o311oozzoao11111oozzcco1333o.......
+.......o311boaaaco11111ooaaaoo13321o......
+......o1222bboooo1111111ooooo133b11o......
+......o111222bbb211111111bbbb332111o......
+......o1111111b22111B11111b31111111o......
+......o2111111111222222111111122111o......
+.....oooo111111111111111111111111oo3o.....
+....o111oo2111122221111111111121oo333o....
+...o21113o3321111113311111111111o33311o...
+..o112133ooo331111111A33332211ooo331111o..
+..o31123o112oo2111233333333ooo333o1113bo..
+.o11311o3111bbooo1133333ooo333333o2131cbo.
+.o21131o21111bbccooooooo3333333333o3111bo.
+o11213o112211bbb111111111111bcc333oo11211o
+o11111o11111222111111111111bbcc3311o11111o
+o22211o11111111111222221111bcc32111o11211o
+o11111o311111111111111121222cc11111o11111o
+ooooooo3222111111111111111111111111ooooooo
+oaaaaco3331333333111111111111111133ocaaaco
+oaaaocoo331111111332222221111123333ocoaaao
+occaoooo33333331111111111211223333ooooaccT
+.occco.oo221bb1111111111112223333oo.occco.
+..ooo...o111bbc11111111111111233oo...ooo..
+.........o31ccc1113333331111111oo.........
+.........o3oocc33333333331111oo2o.........
+.........o311oooooooooooooooo111o.........
+.........o311111oo......oo111123o.........
+.........o111333o........o333111o.........
+.........o111112o........o311111o.........
+..........oooooP..........oooooo..........
diff --git a/parts_pl_src/body/pl_x_mummy_c.txt b/parts_pl_src/body/pl_x_mummy_c.txt
new file mode 100644
index 0000000..3419a28
--- /dev/null
+++ b/parts_pl_src/body/pl_x_mummy_c.txt
@@ -0,0 +1,60 @@
+# pl_x_mummy_c: from pixellab_src/pl_x_mummy_c/base.png (variant of pl_x_mummy) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 31)
+# head_top at (33, 7)
+# back at (31, 35)
+# tail at (37, 51)
+.........ooooo^oo.............
+......ooo11111112oo...........
+.....occbo11123oooooo.........
+....o3aaba333aabbaacco........
+...o21oocaaaaaaabaaacco.......
+..o1113caaaaaccooooooooo......
+.o1133caaacoooo332323333o.....
+.o33aacooo333cc323121333o.....
+o1aaoo2311111oao213312333o....
+ocao2211111133oao11133233o....
+oco21113oooo111oa31112333o....
+oo211oobbbbboo22oc3112233oco..
+o212obbaaabbbooooao112223occoo
+o13obzz1111bbbooooao32223oocco
+o3ooaz11111abbboooccoo222ooooo
+o3ooa1111111bbbooooco3o22o....
+o1ooa1111111bbbo3oocc33o2o....
+.32oba11111aabbo33ooc33o2o....
+.o21ca11111abbco333oco33o.....
+..o2obbbaabbcco33112oc33o.....
+...o23cccccboo111112oc3o......
+....o21ooooo3111oo22oco.......
+.....o333111111ooc223o........
+......o3o3222222cc3oo.........
+.......ooooooAooooo...........
+......o3o3333333oc3o..........
+.....o332oo1111occ33o.........
+.....o33133111occoo22o........
+....o13o1133Boac23o22o........
+....o13o31113oo113o2bbo.......
+...o113o3311111333oob22o......
+..o331oo1133111133ooba3o......
+..oa13oo2111331113oo2aao......
+.o3a3o.o3331113333o.o23ao.....
+.o13co.o13o2111233o..o13o.....
+.o13o..o3112111o33o..o133o....
+o131o..o33111ooo33o..o113o....
+o3111o.o1333111333o.o1131o....
+o11o2o.o1123333333o.o2o12o....
+o21oo..ob123oo3333o..oo12o....
+.o2o...oab2o..o313o...o3o.....
+..oo...oobco..o313o...oo......
+.......o13co..o3bao...........
+.......o113o..oob1o...........
+.......oa33o..o113T...........
+.......oaaoo..o111o...........
+.......o3aao..o313o...........
+.......o13oo..ooaao...........
+.......o313o..o33bo...........
+.......ooo3o..o312o...........
+......o1133o..o3121o..........
+.....o13313o..o31133o.........
+.....o1133oo..oo3331o.........
+.....ooooo......Poooo.........
diff --git a/parts_pl_src/body/pl_x_mummy_d.txt b/parts_pl_src/body/pl_x_mummy_d.txt
new file mode 100644
index 0000000..0e2fc3f
--- /dev/null
+++ b/parts_pl_src/body/pl_x_mummy_d.txt
@@ -0,0 +1,49 @@
+# pl_x_mummy_d: from pixellab_src/pl_x_mummy_d/base.png (variant of pl_x_mummy) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (31, 38)
+# head_top at (33, 18)
+# back at (31, 35)
+# tail at (44, 51)
+.............ooooooo^oooo.............
+...........oo111111111233ooo..........
+..........o31111111123332222o.........
+........oo1133321133311111222oo.......
+.......o11111113333111111122333o......
+......o3311111111333111113332333o.....
+.....o11223311111111333332222233o.....
+....o1112222333111111113322222333o....
+....o11223332123311111111333222333o...
+...o113331111122233311111111332333o...
+...3331111111123333333111111113oooo...
+..o1111111112oo3ooo3333oo1111111222o..
+..o11111133o222222oo33333o331111222o..
+..o11333o3obbbbbbbboo22333333ooo222o..
+...333333obazzzzbbbbo22222233333oooo..
+..o33222o2zz11111abbbo222222233333ooo.
+..o32222obz111111zabbo2222222333oo22o.
+.o133222obz111111zBabo22222223332222o.
+.o111332o2ab11111aabbo22222331111222o.
+.o21111333cazzzzzabbo3222331111112ooo.
+o23311111333aazzbbAbo33331111111ooo22o
+o11132111111233bbbb33311111111oo32222o
+o21113311111111133331111111ooo2222222o
+o211111331111111113331122333222222222o
+.o3211112332211111111333333222222223o.
+.o33211111133221111111111333333333o3o.
+.o3333211111133333111111111113ooooooco
+.coooo332111111oo333321111111122222oco
+.ao3211233111111ooo2233321111222222oco
+.occ221222332111111o3222ooo33322222co.
+.occ32222ooo331111111oo222233ooooooco.
+..occooo3333oo322111122oooo33oooooco..
+...ooo3ooooo22233322222222ooooooooo...
+.....oo2222222222oooo222222222oT......
+.......oo222222ooo333ooo222222o.......
+.........oooooo33333333ooooooo........
+..........oo333333333ooooooo..........
+..........o3oooooooooooooooo..........
+....oo....o123oo......ooo32o..........
+...311o...o3322o.......o323o..........
+.oo11ooooooa3323.......o333ao.........
+...oo.....oaa3o.........o3aao.........
+..........oooP...........ooo..........
diff --git a/parts_pl_src/body/pl_x_potato.txt b/parts_pl_src/body/pl_x_potato.txt
new file mode 100644
index 0000000..f09539e
--- /dev/null
+++ b/parts_pl_src/body/pl_x_potato.txt
@@ -0,0 +1,47 @@
+# pl_x_potato: from pixellab_src/pl_x_potato/base.png (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 43)
+# head_top at (31, 30) (from part/probe)
+# back at (31, 37) (from part/probe)
+# tail at (46, 45) (from part/probe)
+...................ooo............
+............ooo...oxxo............
+............oxxo.ox2yo............
+............o22yo3y22o............
+.............ooo22ooo.............
+................oo................
+............oooooooooo............
+..........ooyyyzoobzzzoo..........
+.........ozxxxxxyyyyzzcco.........
+.......oozx111xxxxxyyzzycoo.......
+.......ozy111xxx^xyxyyzyzcoo......
+......oczx11xxxxxxxxbzyyycco......
+.....oczxxxxx1xxxxxxzbyyyzcco.....
+.....ocyyx1xxxxxzzxxxyyyyyzco.....
+.....oczyxxxxxxxbbxyyyyyzyzco.....
+....occcyxxxyxzyxxyzyyyyyyzcco....
+....ocyyyyyxyzcyxyyczyyyyyyzco....
+....ozyybbbbbcoyByyocbbbbbyzco....
+...obyyyoooooooyyyyooooooozzzbo...
+...obbyycaoaoocyxxycoaooaczzzbo...
+...obbbbc11oo1cyxxyc1oo11cbzbbo...
+...obbbbbc111cyyyyyyc111cbbbbbo...
+...o3bbaabcccyycoocyycccbaabb3o...
+...o23bbaaabyyocyAcoyybbaabb32o...
+..o32223bbyyyybyyyycyyyybb32223o..
+..o11221122222yyyyyyy2222112211T..
+.o111o2111111122222221111112o111o.
+.o112o11cbz111111111111bbb11o211o.
+o111o321cac111111111111bab123o111o
+o111o322cbc1111111111cbbbb223o111o
+o111o33221ccb11111111cab12233o111o
+o1112o3222cac11111111bbb2223o2111o
+o1112o3322ccc211111112222333o2111o
+o2123oo33322222222222222333oo3312o
+.o33oooo333332222222233333oooo33o.
+..ooo..ooo33333333333333ooo..ooo..
+.......o33ooo33333333ooo33o.......
+......oo2233oooooooooo3322oo......
+.....o311123o........o321113o.....
+.....o21112oo........oo21112o.....
+.....ooooooP..........ooooooo.....
diff --git a/parts_pl_src/body/pl_x_potato_b.txt b/parts_pl_src/body/pl_x_potato_b.txt
new file mode 100644
index 0000000..11a2980
--- /dev/null
+++ b/parts_pl_src/body/pl_x_potato_b.txt
@@ -0,0 +1,62 @@
+# pl_x_potato_b: from pixellab_src/pl_x_potato_b/base.png (variant of pl_x_potato) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 36)
+# head_top at (31, 8)
+# back at (31, 37)
+# tail at (45, 45)
+.................ooo...........
+..........ooo...oyyo...........
+..........oyyo.oy2zo...........
+..........o22z^2z22o...........
+...........ooo22ooo............
+..............oo...............
+...........oooooooo............
+..........ozzzzcccco...........
+.........ozzyyzzzzcbo..........
+........ozy1yyyyyzzbbo.........
+.......ozy111yyyyyzzbco........
+.......oy11yyyyyyyzzbbo........
+......oby11yyyyyyyzzzbbo.......
+......ozy11yyyyyyy3zzzbo.......
+.....obyyyyyyyyyyyz3zzcbo......
+.....obyy1yyyyyyyyy3zzzbo......
+.....obyyyyyyyyyyyyyzzzco......
+.....obzyyyyyyzzyyyyzzzco......
+.....obzyyyyyyzzyzzzzzzco......
+....obbzyyyyyzyyyzzzzzzcco.....
+....obzyyyyyzcyyyczzzzzzco.....
+....obzbbbbbcozyyocbbbbzco.....
+....obzooooooozyyoooooozco.....
+....obzcaoaooczyycoaoaczco.....
+....obac11oo1cyyyc1oo1cbco.....
+....obaac111cyyyyyc11cbbco.....
+....obaaacccyyoocyyccaaaco.....
+....obzaaaayyozycoyyaaaaco.....
+....obzzyyyyyyyyybyyyzzcco.....
+....obzzyyyyyyyyyyyyzzzcco.....
+....obzyyyyyyyyyzyyyzzzzco.....
+...obzz33zyyyyyAzzzzzzzzcco....
+...obzz3azzyyyByyzzzzbbbzbo....
+...obzybacyyyyyyyyyzzbaacbo....
+...obzybbyyyyyyyyyyzzbaacbo....
+...obzzyyyyyyyyyyyzzzzccbbo....
+...obbzyyyyzzyyyyzzzzzzzcboo...
+...o3bzzyyyzzyyyybbzzzzzcb3o...
+...o23zzzzzzyyyyybbzzz3cc32o...
+..o32222zzzzzzzzzzzzzz321222o..
+..o1122122222zzzzzz222211311T..
+.o111o2111111222222111111o111o.
+.o112o1bbb11111111111bbb1o211o.
+o111o31bab11111111111bab13o111o
+o111o32cbb111111111bbbbb23o111o
+o111o3321bbb1111111bab1233o111o
+o1112o322bab1111111bbb223o2111o
+o2123o332bcc2111111222233o3312o
+.o33ooo33222222222222233ooo33o.
+..ooo.oo333322222223333oo.ooo..
+.......oo333333333333ooo.......
+.......o3ooo3333333oo33o.......
+......oo2233ooooooo3322oo......
+.....o311123o.....o321113o.....
+.....o21112oo.....oo21112o.....
+.....ooooooP.......ooooooo.....
diff --git a/parts_pl_src/body/pl_x_potato_c.txt b/parts_pl_src/body/pl_x_potato_c.txt
new file mode 100644
index 0000000..7263508
--- /dev/null
+++ b/parts_pl_src/body/pl_x_potato_c.txt
@@ -0,0 +1,58 @@
+# pl_x_potato_c: from pixellab_src/pl_x_potato_c/base.png (variant of pl_x_potato) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 38)
+# head_top at (31, 12)
+# back at (31, 37)
+# tail at (53, 45)
+........................oooo................
+................oooo...oxxxo................
+................oxxxo.ox2yyo................
+................o222y^3y222o................
+................o222yo3y222o................
+.................oooo22oooo.................
+.....................oo.....................
+................oooooooooooo................
+..............ooyyyyyoozzzzzoo..............
+.............oyxxxxxxyyyyyyycco.............
+...........ooyx111xxxxxxyyyyzyyo............
+..........ozyx111xxxxxxxxyyyyyycooo.........
+.........oczx1111xxxxxxxxxxyyyyzcco.........
+........occzx111xxxxxxxxxxbzyyyyccco........
+.......occyxxxxxx1xxxxxxxxyzyyyyzccco.......
+.......ocbyyx1xxxxxxxbbbxxxyyyyyyycco.......
+.......oczyyxxxxzzzbbxxxzzzyyyyyyyzco.......
+.......oczyyxxxyzzzxxyzzxxbzzyyzyyzco.......
+.....occccyyxxxyxxxxcxcycxxzzyyyyyzcco......
+.....occyyyyyxxxxycccxcycczxxxxyyyyzco......
+.....oczyyycccccccoccycycocccccccyyycco.....
+.....ozyyyycccccccozyyyyzocccccccyyyzco.....
+....obzyyyyyoooooooyyxyyyooooooooyyyzbbo....
+....obzyyyyycaoaoocyxxxyycoaoooacyyyybbo....
+....obbyyyaacw1oo1cxxxxxyc1ooo1wcayyybbo....
+....obbyyaaaacwwwcyxxxxxxycwwwwcaaayybbo....
+....obbyyaaaaacccyxxxyyxxxxccccaaaayybbo....
+....obbyyaaaaaaaxxxxooooxxxxaaaaaaayybbo....
+....obbzyyaaaaaaxxxooBxxoxxxaaaaaayyzbbo....
+....o3bbzyyaaaxxxxooxAxxyoxxxxxaayyzbb3o....
+....o33bbzyyyxxxxxxxxccxxyxxxxxyyybbb32o....
+...o22233bbzyyyyxxxxcyyyxxxxxyyyybb33222o...
+...o1122233bbyyyyyyyyyyyyyyyyyybb3322211o...
+..o111222111122222yyyyyyyyy22222211222111o..
+.o1112o221111111112222222221111111122o2111o.
+.o1112o211111111111111111111111111111o2111o.
+o1111o32111bbb1111111111111111bbb11123o1111T
+o1111o32222bac1111111111111111bab22223o1111o
+o1111o33322cbc11111111111111bbbbb22233o1111o
+o1111oo332221ccb111111111111bab122223oo1111o
+o11112o333222cac111111111111bbb222333o21111o
+o11112oo33222ccc211111111122122233333o21111o
+o21133ooo33332222222222222222223333ooo33122o
+.o333oo.oo3333332222222222222333333o.oo333o.
+..oooo...oo3333332222222222333333oo...oooo..
+..........ooo333333333333333333ooo..........
+..........o33ooo333333333333ooo33o..........
+..........o22233oooooooooooo33322o..........
+.........oo22233oooooooooooo33222oo.........
+........o3112223o..........o3211113o........
+........o212222oo..........oo211112o........
+........oooooooP............oooooooo........
diff --git a/parts_pl_src/body/pl_x_potato_d.txt b/parts_pl_src/body/pl_x_potato_d.txt
new file mode 100644
index 0000000..7cabd5a
--- /dev/null
+++ b/parts_pl_src/body/pl_x_potato_d.txt
@@ -0,0 +1,47 @@
+# pl_x_potato_d: from pixellab_src/pl_x_potato_d/base.png (variant of pl_x_potato) (pixellab_library.py extract)
+# pivot at (26, 60)
+# aura at (32, 43)
+# head_top at (31, 23)
+# back at (31, 37)
+# tail at (48, 45)
+....................ooo.............
+.............ooo...oxxo.............
+.............oxxo.ox2zo.............
+.............o22z^3z22o.............
+..............ooo32ooo..............
+...............oooooo...............
+..............o111222o..............
+...........ooo21212223oooo..........
+.........oo11o12212223o233o.........
+.......ooo211o22212223o2333oo.......
+......o1oo2223o2212233o2333o1o......
+.....o111o3322o2212233o233o211o.....
+....o11222ooooo2212233o33oo2211o....
+...o2122222oooo322223ooooo222122o...
+...o2222223obboooooooobboo322222o...
+...oo22233obxxzbbbbbbzzzboo22222o...
+....oo233obzxxybzxzzcyzzzbo332oo....
+...o33ooobbbbbcozBzzocbbbbbooo33o...
+...o2233oooooooozzzzooooooooo333o...
+...o2223ocaoaooczxxzcoaooacoo333o...
+....ooooocw1oo1czxxzc1oo1wcoooooo...
+...oo331oacwwwczzzzzzcwwwcao3333o...
+...o3231oaaccczzcooczzcccaao3333o...
+..oao32oooaaazzoczAcozzaaaooo33ooo..
+..oaaooo1oozzzzbzzzzbzzzzoo1oooaao..
+.o112ao3211oooozzzzzzoooo1223oa222T.
+.o122co32222o21oooooo22oo2223oa222o.
+.o223oooo222o2211111122oo22oo3oa22o.
+o1o33o321oo2o2222222222oooo223oa2o1o
+o12c3o33222ooo22222222ooo11233oo311o
+o22aoo332222o2oooooooo2oo22233oo322o
+o223oo333222o2222222222oo22333oo322o
+o333ooc33333o3322222223oo33333oo333o
+.o33booc3333o3333333333oo3333ooc33o.
+..obboooca33o3333333333oo33coooccoo.
+...ooo..oobbocc3333333coocoo..ooo...
+........o3ooooocccccccoooo3o........
+.......oo3333oooooooooo3333oo.......
+......o311233o........o332113o......
+......o31223oo........oo32213o......
+......ooooooP..........ooooooo......
diff --git a/parts_pl_src/body/pl_x_puffin.txt b/parts_pl_src/body/pl_x_puffin.txt
new file mode 100644
index 0000000..9332c93
--- /dev/null
+++ b/parts_pl_src/body/pl_x_puffin.txt
@@ -0,0 +1,43 @@
+# pl_x_puffin: from pixellab_src/pl_x_puffin/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 42)
+# head_top at (31, 27) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (40, 53) (from part/probe)
+.............oooooooo.............
+..........ooo22222222ooo..........
+........oo22222222222222oo........
+.......o32222222^222222223o.......
+......o32333222222222223333o......
+......o311y1322222222231113o......
+.....o3111a113222222231a1113o.....
+.....o3111o11132111331113113o.....
+....o3311o13113a1a1a31131b133o....
+....o3331ao11121byb12111oy133o....
+...o333111y11111a1a11111y11133o...
+...o331111111212a1a21211111133o...
+...o33111111yb1oayao1by1111133o...
+..o333311111bb1oayao1bb11111333o..
+..o3333311111bboByaobb111113333o..
+.o32233333111obobybobo1113333323o.
+.o222233333333oobaboo33333333222o.
+o322222o2233333ocboo3333222o22223o
+o3222222o2222222Aoo2222222o222223o
+o32222222o222122222222122o2222223o
+o322222222o1111111111111o22222223o
+o3322222222o11111111111o222222233o
+o33322222222o111111111o2222222333o
+.o3332222222o111111111o222222333o.
+.o333322223oo111111111oo32223333o.
+..o33333333o11111111111o3333333o..
+...o3333ooo1111111111111ooo333o...
+....ooooo11111111111111112oooo....
+...o22ooo2111111111111112ooo......
+...o3333oo21111111111112oTo.......
+....oo333o22221111112222o.........
+......ooooobboooooooobbo..........
+...........obo......obo...........
+.........ooczcoo...oczcoo.........
+........oyzbybzbooozbybzyo........
+........ooooycoooooooycooo........
+...........ooP.......oo...........
diff --git a/parts_pl_src/body/pl_x_puffin_b.txt b/parts_pl_src/body/pl_x_puffin_b.txt
new file mode 100644
index 0000000..1e53576
--- /dev/null
+++ b/parts_pl_src/body/pl_x_puffin_b.txt
@@ -0,0 +1,49 @@
+# pl_x_puffin_b: from pixellab_src/pl_x_puffin_b/base.png (variant of pl_x_puffin) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 39)
+# head_top at (31, 18)
+# back at (31, 38)
+# tail at (44, 53)
+.................^oooo..............
+.............oooo22222ooo...........
+............o322221222222o..........
+..........oo3222111221121oo.........
+.........o32221111111212122o........
+........o3222211111122221222o.......
+.......o322222221111222222222o......
+......o32222222221212222222222o.....
+......o32233322222222222333222o.....
+.....o33223ww33222222223ww32222o....
+....o332231www332222233wwww3222o....
+....o33231wwwww3332223wwwww1322o....
+....o32231wwo3w3333333wwoow13223o...
+....o32231wooow33yyb33wooow13223o...
+....o32231woo2w3by1yb3w2oow13233o...
+....o3321wwwww1oyyyyyo1wwwww1233o...
+....o3321wwwwwooaayaaoowwwwww333o...
+....o33211wwwww1obzbo1wwwwww1333o...
+...o333331wwwwww1ooo1wwwwww11333o...
+..oo22333111wwwww111wwww111133322o..
+..o2122333311111wBwwww111113332212o.
+.o2122223111111111A111111111322211o.
+.o11223311www11111111111ww111o22212o
+o21222311wwwwww1wwwwwwwwwww11o32211o
+o2222311wwwwwwwwwwwwwwwwwwww11o3221o
+o222311wwwwwwwwwwwwwwwwwwwwww11o222o
+o223o11wwwwwwwwwwwwwwwwwwwww111o322o
+o33o21wwwwwwwwwwwwwwwwwwwwwwww11o32o
+o33o111wwwwwwwwwwwwwwwwwwwwwww11o33o
+.oo1111wwwwwwwwwwwwwwwwwwwwwww111oo.
+..o31111wwwwwwwwwwwwwwwwwwwwww111o..
+..o31111w1wwwwwwwwwwwwwwwwww11113o..
+...o311111wwwwwwwwwwwwwww1w111113o..
+...o31111111ww1wwwwwww1ww111111oo...
+....o3111111111w1wwwww111111111o....
+....oo121111111111111111111111T.....
+.....oo2211111111111111111111o......
+.......ooo11111111111111111oo.......
+..........ooooooooooooooooo.........
+..........ocbbbo....obbbco..........
+.........ozzbybao..oaayaazo.........
+.........oooczooo..ooozcooo.........
+............ooP.......oo............
diff --git a/parts_pl_src/body/pl_x_toucan.txt b/parts_pl_src/body/pl_x_toucan.txt
new file mode 100644
index 0000000..36cc7b0
--- /dev/null
+++ b/parts_pl_src/body/pl_x_toucan.txt
@@ -0,0 +1,45 @@
+# pl_x_toucan: from pixellab_src/pl_x_toucan/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 25) (from part/probe)
+# back at (32, 38) (from part/probe)
+# tail at (42, 49) (from part/probe)
+.............ooooo..............
+...........oo22222oo............
+.........oo221111122oo..........
+.....o..oo21111^11112oo..o......
+....oaooo1111111111111oooao.....
+....ozbo11111ooooo11111obzo.....
+....oco21111ozzzzzo11112oco.....
+.....oo2211ozyyyyzzo1122oo......
+.....oooo2ozy11yyzzzo2oooo......
+.....oo11ooz11yyyzzzoo11oo......
+....o3owwozz11yyyzzzzowwo3o.....
+....o3owoozz1yyyyzzzzoowo3o.....
+....o3o2oozz1caaaczzzoo2o3o.....
+....o3o32ozzcaaaaaczzo23o3o.....
+....o33ooozcbaaaaabczooo33o.....
+...ooo333ozcbaaaaabczo333oooo...
+..oo2oo31oocbaaaBabcoo13oo22oo..
+.oo11oo312ocba1113cco21ooo111oo.
+.o1112o322occ311123co22oo21111o.
+oo1112oz22oc3311123co22zo21111oo
+o21112o1yyoc331A123co111o211112o
+o2312oo11yyo3311123o1111oo21132o
+oo32oooc111o3331133o111cooo2o3oo
+.o32oo3c1111o331133o111c3oo2o3o.
+.oo3oo3oc111yo3223o111co3oo3ooo.
+..oooo33oc111o3333o11co33oo3oo..
+..oooo333oc111o33o11co333oooo...
+...oooo333ooyyo33oyoo333ooTo....
+.....ooo3333ooo3ooo3333ooo......
+.....oooo333333o333333oooo......
+...ooooooooo3333333ooooooooo....
+..oo33ooooooooooooooooooo33oo...
+..ooooooooooooooooooooooooooo...
+..oooooobbbooooooooobbboooooo...
+.....oobbbbbooooooobbbbboo......
+....oozzbzzbbooooobbzzbzzoo.....
+...ooccbozzooooooooozzobccoo....
+...ooccoobooooooooooobooccoo....
+.....ooooooooooPoooooooooo......
diff --git a/parts_pl_src/body/pl_x_toucan_b.txt b/parts_pl_src/body/pl_x_toucan_b.txt
new file mode 100644
index 0000000..f430d5d
--- /dev/null
+++ b/parts_pl_src/body/pl_x_toucan_b.txt
@@ -0,0 +1,49 @@
+# pl_x_toucan_b: from pixellab_src/pl_x_toucan_b/base.png (variant of pl_x_toucan) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (31, 18)
+# back at (32, 38)
+# tail at (46, 49)
+................oo^ooo................
+.........o....oo222222oo....o.........
+........oao..o2111111112o..oao........
+........obooo211111111112ooobo........
+........occo21111111111112obco........
+.........oo2111111111111112oo.........
+.........o2111111oooo1111112o.........
+........o2211111oyyyzo1111123o........
+........o222221oy11xyyo122222o........
+........o22ooo2o11xxyyo2ooo22oo.......
+.......o22oow2oy1xxxyyzoww2o2oo.......
+......o212owwooyxxxxyyzoowwo212o......
+......o112owoooyxzzzzyzooowo111o......
+.....o2111o22ooyzx1yyzyoo11o1112o.....
+.....o21111ooozzzx1yyzyzooo11112o.....
+.....o2111111ooczx1yyzooo1111112o.....
+.....o3111111ozocxxyycozo1111122o.....
+.....o3211111ozzozxyzozzo1111122o.....
+....oooo211111ozzoyyzozo1111122o3o....
+...o22ooo211111ozoyyozo111112ooo32o...
+..o111oooo221112ooyBoo211122oooo112o..
+.o2111oooooo2222oooo3312222ooooo1112o.
+o21112o3ooooooooooAooooooooooo3o21112o
+o2111oo333cccooooooooooooccc333oo1112o
+o2112o3333bbccccccccccccccbb3333o2112o
+oo31oo333bbbbbbbccccccbbbbbbb333oo133o
+oo33oo333bbbbbbbbbbbbbbbbbbbb333oo333o
+.o3ooo333cbbbbbbbbbbbbbbbbbbc333ooo3o.
+.ooooo3333cbbbbbbbbbbbbbbbbc3333ooooo.
+..ooooo333cbbbbbbbbbbbbbbbbc333ooooo..
+...oooo333ocbbbbbbbbbbbbbbco333oooo...
+....oooo333ocbbbbbbbbbbbbco333oooT....
+....ooooo333occbbbbbbbbcco333ooooo....
+.....ooooo333ooocccccccoo333ooooo.....
+.....ooooooo3333ooooooo333ooooooo.....
+......oooooooo3333333333oooooooo......
+.......oooooooooooooooooooooooo.......
+........ooooooooooooooooooooo.........
+........oocccooooooooooooccoo.........
+.......oozzczzccooooocczzczzoo........
+......oocccoyzooooooooozyocccoo.......
+......ooccoocooooooooooocooccoo.......
+........ooooooooooPoooooooooo.........
diff --git a/parts_pl_src/body/pl_x_toucan_c.txt b/parts_pl_src/body/pl_x_toucan_c.txt
new file mode 100644
index 0000000..e5ddd6e
--- /dev/null
+++ b/parts_pl_src/body/pl_x_toucan_c.txt
@@ -0,0 +1,53 @@
+# pl_x_toucan_c: from pixellab_src/pl_x_toucan_c/base.png (variant of pl_x_toucan) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (31, 37)
+# head_top at (31, 14)
+# back at (32, 38)
+# tail at (48, 49)
+.................o^ooooo............
+..............ooo2111112o...o.......
+.............oo21111111122ooao......
+............oo11111111111caaco......
+...........oooooo11111111bbbco......
+.........oozzzzzao111oo211cco.......
+........ooz111zzzbo3oo1o11132o......
+.......ooz11zzzzzzco1wowo11123o.....
+......ocazzzzzzzzzcoooowo11122o.....
+.....ocaaaazzzzzzzcoooo1o11112o.....
+....ocaaaaaazzzzzzco1o13211113o.....
+...ocaaaaaaazzzzccc3ooo1111123o.....
+...oaaaaaaaaccccccc31111111223o.....
+..o213aaacccooooozc3111111222o......
+..o1133accoozzzzzcc3111112222o......
+.o21233coocczzcccc3311122222o.......
+.o1133ooocccoooo3333333233ooo.......
+o3133oooooo..oooo3332223oooo........
+o3133ooo......oooo33333ooooo........
+o3133o.........ooyyyyyooooo.........
+o323oo.........ooyyyyyoooooo........
+.o33oo........o3yyyyyy311ooo........
+.o33o.........o3y1111y111oooo.......
+..o3o........o3111A11y11111ooo......
+...oo.......o321111B11111111oo......
+...........o33111111111113111oo.....
+..........o1o111111111111o3111oo....
+.........o31o1cc1111cc111oo3111oo...
+.........o1o31cc111ccc1111o33113o...
+........o31o31cc111ccc1111oo3113oo..
+........o33o31111c11111111oo3333zo..
+........oz3o3111cc111111113o3zzzzo..
+........oz3o3111cc111cy3113ozzzzzo..
+........ooco331111111yy33333oozzcooo
+.........ooo333y1111113333333obzc13o
+..........ooo333yyy11333333333oooooT
+..........oooo33333333331123o3333oo.
+..........o33oo3333333o31113o33oo...
+..........oo3oooo33333o3111oooo.....
+..........ooooooooooooo33333o.......
+...........oooooo.....oo3333o.......
+...........obbbbo......obbbbo.......
+........ooobzzzbooooooobzzzbo.......
+.......oozzbzzzbbooooozzzzzzoo......
+......oocccozccoooooocyzzocycoo.....
+......ooccooccooooooocccoocccoo.....
+........oooooooooPooooooooooo.......
diff --git a/parts_pl_src/body/pl_x_toucan_d.txt b/parts_pl_src/body/pl_x_toucan_d.txt
new file mode 100644
index 0000000..f00da03
--- /dev/null
+++ b/parts_pl_src/body/pl_x_toucan_d.txt
@@ -0,0 +1,46 @@
+# pl_x_toucan_d: from pixellab_src/pl_x_toucan_d/base.png (variant of pl_x_toucan) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 42)
+# head_top at (31, 21)
+# back at (32, 38)
+# tail at (45, 49)
+...............oo^oo................
+.............oo32122oo..............
+............oo2221222oo.............
+...........ooo2221222oooo...........
+.......o..o32o2221222o32o..o........
+......oaoo322o2221222o322ooao.......
+......oyo3322o2221222o3223oyo.......
+......oco3o22o2221222o3223oco.......
+.......oooooooo22222oooooooo........
+.......oooooozooooooozoooooo........
+......ooo11ooyxoooooyyoo11ooo.......
+......ooowwozy11xxxyyyzowwo2o.......
+......o2owoozy1xxxxyyyzoowo2o.......
+.....oo222oozy1caaacyyzoo2o2ooo.....
+....obbo212ozycaaaabcyzo2o22obo.....
+...o22bbo21ozcbaaaabbczoo22ob21oo...
+..o1222boo3ozcbaaaabbczo22ob2221o...
+.o212223boooocbaaaBbbcoooob322212o..
+.o222223boooocba1113ccoooob322222o..
+o3332233boooooc311133coooob3332233oo
+obb3333bbo222ooooooooo222obb33333bbo
+.oobbbbooo2221111A2222222ooobbbbboo.
+..ooooooooo3211111222222ooooooooo...
+..o33ccoo2ooo1111122222oo2oocc22oo..
+.obbb3coo22oooo22122oooo22ooc3bbbo..
+.oo223ooo22o32ooooooo22o223oo3223o..
+..o22oooo32o32222222222o23oooo223o..
+..o33oo22ooo32222222222ooo22oo33o...
+...oooo2222ooo2222222oooo222oooT....
+.....oo222obooo22222ooobo222oo......
+.....ooooo2boo2ooooo23ob3ooooo......
+.....o22222boo22222223ob32222o......
+....o32222booo22222223oobb2223o.....
+....ocbbbboooob22222bboooobbbco.....
+....oooooocccoob222boocccoooooo.....
+.......oocccccoobbboocccccoo........
+......oozzczzccooooocczzczzoo.......
+.....oocccoyzooooooooozyocccoo......
+.....ooccoocooooooooooocooccoo......
+.......ooooooooooPoooooooooo........
diff --git a/parts_pl_src/body/pl_y_ammonite.txt b/parts_pl_src/body/pl_y_ammonite.txt
new file mode 100644
index 0000000..0a34651
--- /dev/null
+++ b/parts_pl_src/body/pl_y_ammonite.txt
@@ -0,0 +1,46 @@
+# pl_y_ammonite: from pixellab_src/pl_y_ammonite/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 40)
+# head_top at (31, 25) (from part/probe)
+# back at (30, 30) (from part/probe)
+# tail at (29, 42) (from part/probe)
+..................ooooo.................
+..............oooocccccoooo.............
+.........ooooo22223bbbc3222oooo.........
+........occco2222223aab32222occooo......
+.......occbbc222111^aaa3111223ccco......
+.......oobbaac2111113aab211122bcco......
+......o223baaa2111112aaa211112abco......
+.....o22223aaaa311111aab11112aab32o.....
+....o2222112aaa3111113ab1111caa3222o....
+..ooco2211113aab31B11ca31111aaa21122o...
+..occc32111113ab31113cb32113aa311122o...
+..ocbac31111123bc2223cc22223aa211122oo..
+..oobaac3111123cc3223c32223cb3111123cco.
+.o2222aac3111223c3223c32223c3111113ccco.
+.o22212bbc322223c33223333oc3221123cbbco.
+.o2221133bc3222o3221111223o222223cabboo.
+.o22211123cc33o3211111111233223cba3222o.
+.o222111123cco2211111111112233cc3321222o
+ooo2211112223o211b111111a112o3321111222o
+occcc3122222o2211111A11111122o211111222o
+ocbbaccc3333o22oooo1111ooo222o221111222o
+ocbbaaabbccco2311To21121oo132o333321222o
+.o3333333333o231o3o2222o3o132occccc3233o
+.o3322222222o2213312222133122o13caaccoo.
+.o3322222223o2121121111211212o1133aabco.
+.o333222233oo2211111111111122o11113bbco.
+.o3332223oooo32212oooooo21223o111123ooo.
+..o2233ooo33oo32131oooo13123o32112233o..
+...oooooo3233oo332222222233ooc3122233o..
+....o3333222co3oo33333333o32oc3222333o..
+....o3332223co23o323oo223o32occ32333o...
+.....o33323bco13o213oo212o21ocbc3333o...
+......o33caaco1oo113oo311oo1ocabo33o....
+......oocbac33o2o11o33o11o2o23cbcoo.....
+.......occo332223ooo22ooo32223occo......
+.......ooo3333323cc3223cc32333oooo......
+..........oo3333cac3223cbc3333o.........
+............oo3occo3333cco33oo..........
+..............oooo3333oooooo............
+..................oPooo.................
diff --git a/parts_pl_src/body/pl_y_ammonite_b.txt b/parts_pl_src/body/pl_y_ammonite_b.txt
new file mode 100644
index 0000000..48748a1
--- /dev/null
+++ b/parts_pl_src/body/pl_y_ammonite_b.txt
@@ -0,0 +1,61 @@
+# pl_y_ammonite_b: from pixellab_src/pl_y_ammonite_b/base.png (variant of pl_y_ammonite) (pixellab_library.py extract)
+# pivot at (31, 61)
+# aura at (32, 36)
+# head_top at (31, 7)
+# back at (30, 30)
+# tail at (53, 42)
+.........................^oo........................
+.........................obo........................
+.........................obo........................
+.........................oao........................
+........................ocaao.......................
+........................oaaao.......................
+........................oaaao..........oo...........
+.............ooo.......ocaaao.........oco...........
+.............oao.......ocaaaco.......oaco...........
+.............oaao......ocbacco......ocao............
+.............ocaao..oooocbbccooooo.ooaao............
+.............ocaacoo22223bbbb32222oocaco............
+.............occccc2222223aaa312222ccaco......ooo...
+....ooo......ocbbbb3211111baa3111123ccco....oocco...
+....occoo...oo3caaac2111112aaa211113bbco..oobaaco...
+.....oaaaoooo223aaaa2111112aaa211113aac3oocaaaao....
+.....ocaaacc22222aaaa311112aaa11112aaac32caaaaco....
+......ocaac2221112aaa311112caa11112aaa3223aaaco.....
+......occcc32211112aaa31112ca31111caa21123aacco.....
+.......occccc2111113aa31112ca32112aaa21112ccco......
+.......occbbb31111113ac2113cc32113aa21111223co......
+..ooooooccbbaa3111113bc3213c322223ab21111233ooooooo.
+..ocaaac3333aaa3111123c3223c32223cc3111113cccccaaco.
+...occac33213aac311123c3B23c32223c3111113cbcccabco..
+....occc322113ccc32223o33222233oc3221123caaccccco...
+.....oo332211123cc333o2221111222o32223ccaaac3cco....
+......o3322111123cc332211111111223223cbaa22333o.....
+......o33221111223co2211111111112233cc32211233o.....
+.....oocccc312222233211a111111a112o33211111223o.....
+...oocccbbaccc3333o2211111A11111122o2211111223coo...
+oooaaaacbbaaaacccco22oooo1111ooo222o3211111223ccaoo.
+ocaaaaccbbba333333o2311oo11121oo132o3333111223caaaco
+oooccccc3333222222o231o3o2222o3o132occccc31223cccooo
+...oooo33221111223o22w33w2222w33w22o3ccaabcc3oooo...
+......o3322211123co212ww211112ww212o133aaabbcco.....
+......o33222123ccco2211111111111122o11133bbbcccT....
+.......o33223aacc3o31212oooooo21213o1111133cccaco...
+.......o333caaac33oo31131oooo13123o321112233occao...
+.......occcbaa33123oo322222222223oo321112233oooobo..
+......occccbb311113o3oo33333333o32o32111223co..ooo..
+......oaaccc321113co23o322oo222o32oc3222233cco......
+.....ocaccc3322213co13o212oo211o21occ32223ccao......
+....occcooo333223cco1oo113oo311oo1occc3333ccabo.....
+....oooo...o3333bc33o2o11o33o11o2o23cc333ooocco.....
+...........oo3ccbc33123ooo22ooo32223cccoo...ooo.....
+............occccc32223cc3223cc32333ccco............
+............ocaacc33323bc3223ca333333bbo............
+............obaaco3333ccc3333cbc3333cbao............
+...........ocabcoo3333cc33333ccc33ooocabo...........
+...........ocaco..ooooo3cccc333ooo...occo...........
+...........ocoo......oooccccooo.......ooo...........
+...........oo...........occo........................
+........................occo........................
+.........................oo.........................
+.........................Po.........................
diff --git a/parts_pl_src/body/pl_y_ammonite_d.txt b/parts_pl_src/body/pl_y_ammonite_d.txt
new file mode 100644
index 0000000..bb2344a
--- /dev/null
+++ b/parts_pl_src/body/pl_y_ammonite_d.txt
@@ -0,0 +1,50 @@
+# pl_y_ammonite_d: from pixellab_src/pl_y_ammonite_d/base.png (variant of pl_y_ammonite) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 39)
+# head_top at (31, 18)
+# back at (30, 30)
+# tail at (51, 42)
+......................o......................
+.....................^bo.....................
+..........oo.....o..ocabo...oo...............
+..........baoo..oco.oacco..oao...............
+.........obabo..ocaooaccooobaao....oo........
+.........obabbo.occ32cccccobaco...obbo.......
+.........obaaboo22222bbbb32bacoo.oaabo.......
+..........ocabc2222223aab3222233obabbo.......
+......oooooccbc3221112aaa3111223cbacco.......
+......oaco3bbaac2111113aab211123bbcco........
+......oca223baaa2111112aaa211112abcoo.oo.....
+.......oc2223aaaa311111aab11112aab323occo....
+..ooo.o3322112aaa3111113ab1111caa3222bcco....
+..obaoo32211113aaa31B11ca31111aaa2112cco.....
+..obbacc32111113aa31113cb32113aa3111223oooo..
+...obbcac31111123ac2223cc22223aa2111223cbabo.
+....occaac3111123cc3223c32223cb3111123ccaabo.
+..oo3222aac3111223c3223c32223c3111113cbcbbo..
+.oba32212bbc322223c33223333oc3221123cabbcoo..
+.obb3221133bc3222o3221111223o222223caab3o....
+..oc32211123cc33o3211111111233223cba3333oo...
+.ooo322111123cco2211111111112233cc332122caoo.
+oaabc2211112223o211b11A111a112o332111122aaco.
+obbaccc3222222o2211111111111122o21111122cco..
+obbccbaccc3333o22oooo1111ooo222o221111222o...
+.oocccaaabbccco2311oo21121oo132o333322222T...
+...o3333333333o231o3o2222o3o132occccc3323coo.
+...o3322222222o2213312222133122o23caabb3bbabo
+...o3322222223o2121121111211212o1133aabcbbbbo
+...o333222233oo2211111111111122o11113bbccbbbo
+....o3333ccccco32212oooooo21223o111122occooo.
+...ocabcaaac33oo22131oooo13123o321122233o....
+..obaaacac33233oo332222222223oo331222333o....
+..obbccc332222co3oo33333333o32oc322223oo.....
+...oooo3332223co23o323oo222o22occ3233cco.....
+.......o33323bco13o213oo212o21ocbc33ccabo....
+......occ33caaco1oo113oo311oo1ocabo33cbbo....
+......ocoocbac33o2o11o33o11o2o23cbcoocbbo....
+.......o.occo332223ooo22ooo32223occo.oooo....
+.........ooo3333323cc3223cc32333oooo.........
+............oo3333cac3223cbc3333o............
+..............oo3occo3333cco33oo.............
+................oooo33333ooooo...............
+....................ooPoo....................
diff --git a/parts_pl_src/body/pl_y_anemone.txt b/parts_pl_src/body/pl_y_anemone.txt
new file mode 100644
index 0000000..66dc47a
--- /dev/null
+++ b/parts_pl_src/body/pl_y_anemone.txt
@@ -0,0 +1,49 @@
+# pl_y_anemone: from pixellab_src/pl_y_anemone/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 40)
+# head_top at (31, 26) (from part/probe)
+# back at (31, 36) (from part/probe)
+# tail at (46, 48) (from part/probe)
+.................oo.................
+..........oo....o33o....oo..........
+........oo32oo.o3223o.oo33oo........
+........o3223o.o2222o.o3223o........
+.....oo.o3oooooo3223oooooo3o.oo.....
+....o32oooo212oo3333oo212oooo23o....
+...o3212oo21113oo33oo31112oo2123o...
+...o32223o211223oooo322112o32223o...
+...o33323o322223o^oo322223o32333o...
+....oo3333o33223o33o32233o3333oo....
+......oo33oo3323oooo3233oo33oo......
+.......oooooo323oooo323oooooo.......
+......o3333oo333oooo333oo3333o......
+.....o33322oo33oo33oo33oo22333o.....
+....o3322222oooo3223oooo2222233o....
+...o3322221222231111322221222233o...
+...o3322221211111111111121222233o...
+..oo33oo22221111111111112222oo333o..
+..oo3oaao22211111B111111222oaao33o..
+..o3ooaao222222111111222222oaaoo3o..
+.oo3oaaao222222222222222222oaaao3oo.
+.oo33ooo222ooo22222222ooo222ooo33oo.
+.oo3322222o111o22A222o111o2222233oo.
+.oo332222o11owwo2222owwo11o222233oo.
+.oo332222o1oowwo2222owwoo1o222233oo.
+..o333222owooooo2222ooooowo222333o..
+..o333222ow2oooo2222oooo2wo222333o..
+..oo333222oww1o222222o1wwo222333oo..
+..oo3333322ooo22222222ooo2233333oo..
+...ooc3cc322222222222222223cc3coo...
+...ooo33cc333oooooooooo333cc33ooT...
+....ooo333333ooo3333ooo333333ooo....
+...ooo333oo33333333333333oo33oooo...
+..oc3o323oo323o3223oo3223oo32oo3co..
+.obooo223oo223o3223oo3223oo322ooobo.
+.ooab323oo3223o3223oo3222oo3323baoo.
+.oac333ooo222oo3223oo32223oo3333cao.
+oacoooooo3223oo2223ooo32223oooooocao
+ocboooocac33ocab22ooooo33caaooooobco
+.ooo.ocao33oobao33oo..oo33ocaoo.ooo.
+.....oacoooocaco3oo....ooooocao.....
+.....ooooo.oacoooo.......oooooo.....
+...........ooooP....................
diff --git a/parts_pl_src/body/pl_y_anemone_b.txt b/parts_pl_src/body/pl_y_anemone_b.txt
new file mode 100644
index 0000000..6ffb089
--- /dev/null
+++ b/parts_pl_src/body/pl_y_anemone_b.txt
@@ -0,0 +1,64 @@
+# pl_y_anemone_b: from pixellab_src/pl_y_anemone_b/base.png (variant of pl_y_anemone) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 32)
+# head_top at (31, 3)
+# back at (31, 36)
+# tail at (40, 48)
+...............^o..............
+..........o...o33o...o.........
+........oo3oo.3223.oo3oo.......
+......o.o3oooo3223oooo3o.o.....
+.....o3oooo12o3333o21oooo3o....
+....o322oo2113o33o3112oo223o...
+....o3323o3222oooo2223o3233o...
+.....oo333o322o33o223o333oo....
+.......o33o332oooo233o33o......
+.......ooooo33oooo33ooooo......
+......o332oo3oo33o33o3233o.....
+.....o32222ooo322oooo22223o....
+....o3322222221112222222233o...
+...oo33o2221111111111222o333o..
+...oo3obo22111111111122obo33o..
+...o3oobo22222111122222oboo3o..
+...o33oo22ooo222222oo222oo33o..
+...o332222211o2222o11o222233o..
+...o33222o1oa3222oaao1o22233o..
+...o33322oooao222oaao1o22333o..
+...o33322o2ooo222oooowo22333o..
+...oo332223w1o2222o1wo22233oo..
+...oo33332ooo222222oo223333oo..
+....ooo3cc33oooooooo33cc3ooo...
+......o33333oo333ooo33333o.....
+.......o3333333333333333o......
+.......o333333cccc333333o......
+.......o332233cccc333333o......
+.......o332222cbbc222233o......
+.......occbbbbcAbcbbbbcco......
+.......o332222cbbc222233o......
+.......o332222cbbc222233o......
+.......o332222cbbc222233o......
+.......occbbbbcBbcbbbbcco......
+.......o332222cbbc222233o......
+.......o332222cbbc222233o......
+.......occbbbbcbbcbbbbcco......
+.......o332222cbbc222233o......
+.......o332222cbbc222233o......
+.......occbbbbcbbcbbbbcco......
+.......o332222cbbc222233o......
+.......o332222cbbc222233o......
+.......o332222cbbc222233o......
+.......occbbbbcbbcbbbbcco......
+.......o332222cbbc222233o......
+......o3332222cbbc222233T......
+......o3322222cbbc2222233o.....
+.....o33332222cccc2233233o.....
+.....o3oo3133223332133323o.....
+...oo32oo2233223oo222oo323oo...
+.ocoo22oo2233223oo322oo322ooco.
+.oob323o32233223oo322oo3323boo.
+.oac33oo322o3223oo3223oo333oao.
+oacooooo223o3223ooo322oooooocao
+.oooocao3oobo33oo..oo3ocaoo.oo.
+....oacooocao3oo....oooocao....
+....ooooooacooo.......ooooo....
+.........oooP..................
diff --git a/parts_pl_src/body/pl_y_anemone_c.txt b/parts_pl_src/body/pl_y_anemone_c.txt
new file mode 100644
index 0000000..6c20c18
--- /dev/null
+++ b/parts_pl_src/body/pl_y_anemone_c.txt
@@ -0,0 +1,44 @@
+# pl_y_anemone_c: from pixellab_src/pl_y_anemone_c/base.png (variant of pl_y_anemone) (pixellab_library.py extract)
+# pivot at (27, 50)
+# aura at (32, 32)
+# head_top at (31, 13)
+# back at (31, 36)
+# tail at (48, 48)
+.......................oo....^oo...oo.......................
+......................o32oo.o223o.o33oo.....................
+.....................o3223o.3222o.o223o.....................
+...................ooo3oooooo223ooooo3o.o...................
+..................o32ooo212oo333oo22oooo3o..................
+.................o321oo21113o33oo3112oo223o.................
+.............ooo.o3333o31122oooo32112o3233o.oo..............
+............o322oooo333o3322o33o3233o333oooo22o.............
+............o2212o..oo3oo332oooo323oo33o.oo2122o............
+............o3222o...ooooo32oooo32oooooo.oo2223o............
+...........ooo3323o.o333oo33oooo33oo3333oo3233ooo...........
+..........o32oo3333o3332oo33o33oo3oo22333o333oo23o..........
+..........o312oo33o332222oooo223ooo222223oo3oo123o..........
+......ooooo3222ooo332221222221113222122223ooo2223ooooo......
+.....o3212o33323oo332222211111111112222223oo32333o2123o.....
+.....o32222ooo33oo3ooo2221111111111222ooo33o33ooo22223o.....
+.....o3332223oooo3oobo2222221111122222obbo3oooo3222333o.....
+......oooo32223oo3obbo2222222222222222obbo3oo322223ooo......
+........ooo3233oo33ooo22ooo2222222oo222ooo3oo3322oooooo.....
+.....oooooooo33oo332222o111o22A22o11o222233oo33oooo322oo....
+....oc22223oooooo33222o11ow13222owo11o22233oooooo32222co....
+...ooc332222233oo33322o1oooo3222oooo1o22233oo333222233cco...
+...occo3322233ooo33322ow2ooo3222ooo2wo22233ooo3333333ooao...
+..oo333oooooooo33o33322oww1o2B222o1wo22233oo33ooooooo333oo..
+.ocbcoooooo22233oo333322ooo2222222oo223333oo333oooooo32bbco.
+ocbo3ocb3222233o33oc3co222222222222223cc3oo3o32222222oo3obco
+oacoooac3333ooo3333o3oc333ooooooooo33cc33o333oo33332bbooobao
+ooo.oacooooo222223ooo33333oo3333ooo33333oo33222oooo3obbooooo
+....oaooobb222233ooo3223oo3323oo3223oo322oo3322233ooocao....
+....oooocbc3333oooo22223oo3323oo3223oo3222ooo333bbbboooo....
+......ocacooooooo322223ooo3223oo3222oo332223ooo333cbo.......
+......oacoooo..obbb233o.oo222oooo3222ooo32bbco.oooocao......
+......oooo....ocbc33ooooo32233o.oo2223ooo33cbco...oooo......
+..............oacoooo..ocbb2oo...o33bbo.oooocao.............
+..............obooo...ocbbo3oo....o3cbco..oooco.............
+..............ooo.....oaacooo......oocao....ooT.............
+......................oacoo.........ocao....................
+.......................ooP...........oo.....................
diff --git a/parts_pl_src/body/pl_y_anemone_d.txt b/parts_pl_src/body/pl_y_anemone_d.txt
new file mode 100644
index 0000000..ac3c43c
--- /dev/null
+++ b/parts_pl_src/body/pl_y_anemone_d.txt
@@ -0,0 +1,61 @@
+# pl_y_anemone_d: from pixellab_src/pl_y_anemone_d/base.png (variant of pl_y_anemone) (pixellab_library.py extract)
+# pivot at (25, 61)
+# aura at (32, 33)
+# head_top at (31, 7)
+# back at (31, 36)
+# tail at (53, 48)
+..................o....o^o....o...................
+................oo3oo.o322o.oo3oo.................
+................o323o.o222o.o323o.................
+..............o.o3ooooo3223oooooo.oo..............
+.............o3oooo31oo3333oo13ooo23o.............
+............o321oo2113oo33oo2112oo123o............
+............o3223o21223oooo32212o3223o............
+............ooo33oo2223oooo32223o33oo.............
+..............oo33o3323oooo3233o33o...............
+...............ooooo323oooo323ooooo...............
+..............o3333o333oooo33oo3333o..............
+.............o33322o33oo33oo3oo22333o.............
+........ooooo3322222ooo3223ooo2222233ooooo........
+.......o21113o3222122221111222212222oo2211oo......
+......o1111333o22212111111111121222222321113......
+.....o211132222oo22211111111112222o222213212o.....
+....o3212322222bo2221111111111222ob2222223123o....
+....o322322222obo2222211111222222ob3222222323o....
+....o322322223oo222oo22222222oo222oo322222323o....
+...o3333322233o222o11o222222o11o22223322223332o...
+..o32333333333222o11owo2222owwo1o222o3333333322o..
+..o222o3333oo3222o1oowo2222owwo1o2222oooo333222o..
+..o212232223o3222owoooo2222oooowo2223o332223212o..
+..o232321223o3322ow2ooo2222oooowo2223o322112322o..
+..o332321223o33322ow1o222222owwo22c33o322212323o..
+..o322322223o333322oo22222222oo22c333oo22222323o..
+.o322232223oo333333333333A3333333333ooo322233223o.
+.o32113333oo.o333333oooooooooo333333o..o333o1123o.
+.o32112oooo...o33223o22233222o32333o....ooo211233o
+o323112333o....o33333111B311233233oo...o333211323o
+o323312323o.....o3333222332223333o.....o323223323o
+o323ooo333o......o32333333333333oo.....o323ooo223o
+o3ocaabcooo......o33321133112333o.......oocbaabo3o
+oocbbbbcco.......ooo3322332233ooo.......occbbbbcoo
+occbbbbcco......o333o33333333o333o......occbbbbcco
+.ocbbbbcoo.....o32233oo3333oo33223o.....ooobbbbco.
+.ocbooo322o....o122333oooooo332221o....o222ooobco.
+.oco3222222o..o21223233o..o32232212o..o2222223oco.
+..o322222322o.o21232223o..o32223212o.o223222223o..
+..o322222o33o.o21322223o..o32222312o.o22o222223o..
+..o322222ooo..o21322223o..o32222312o..ooo222223o..
+...o222322o...o3232222oo..oo3222323o...o223222T...
+...o333333o....o313223o....o322212o....o333333o...
+....oooooo.....o31133o......o33113o.....oooooo....
+...............o33332o......o33333o...............
+...............oooo22o......o23oooo...............
+...............ocbcooo......ooocbco...............
+...............ocbbcco......occbbco...............
+...............oobbco........ocbboo...............
+...............o3oooo........oooo2o...............
+...............o2233o........o33223o..............
+..............o11123o........o32111oo.............
+.............o111133o........o321111o.............
+.............o33333o..........o33333o.............
+..............ooooP............ooooo..............
diff --git a/parts_pl_src/body/pl_y_broccoli.txt b/parts_pl_src/body/pl_y_broccoli.txt
new file mode 100644
index 0000000..8bf2832
--- /dev/null
+++ b/parts_pl_src/body/pl_y_broccoli.txt
@@ -0,0 +1,47 @@
+# pl_y_broccoli: from pixellab_src/pl_y_broccoli/base.png (pixellab_library.py extract)
+# pivot at (19, 60)
+# aura at (32, 40)
+# head_top at (31, 23) (from part/probe)
+# back at (31, 38) (from part/probe)
+# tail at (46, 42) (from part/probe)
+.................oooooooo.................
+...............oo22111123oo...............
+..........ooooo22111111123oooooo..........
+........oo2113b32111^112a23o2211oo........
+.......o2111122c21111121223c221113o.......
+......o221112233c21122222233o322132o......
+.....o2222122223332222223333o3333332o.....
+.....o23222223333cc3bbb33333oo3ooo33o.....
+...ooo2bb3cc3333b2211112333o211111c33co...
+..o223311123o333b21111a123o32111111b333o..
+..o2b11111123o3c2a11111112c32211111b333o..
+..oc211111223oo321111111223c22211112c22o..
+.o332a1122a233o322211122223c322212a2c222o.
+o2332222222333o332221222223c322222223c222o
+o33b2222223333o333222222233c332222333c223o
+o33b3222333333ob33322222a33c33333333oc233o
+o33b3333333b3occ3a33223333cccab33333o3333o
+oa33c3333333ooabc33333333bbaob33333c3333ao
+o323cc3333coo3cabc33B333bbac33ooocc333323o
+.o2233ccccc3333caboooccccac3333ccc333322o.
+..o223333occ3223cab33A3bac3322ccoc33322o..
+...o222ooo.oob222ab2222ba2222oo..ooo33o...
+....ooo.....oo22112222221122oo.....Too....
+...ooo...ooo.oo211111111112oo.ooo...ooo...
+..o111o.o112o.o2o21111112o2o.o211o.o111o..
+..o112o.o322o.o21o111111o12o.o223o.o211o..
+..o31o...oaao.o2oo111111oo2o.oaao...o22o..
+..o33o....oo..o2aa111111aa2o..oo....o32o..
+...oooooo.....o2113oooo3112o.....oooooo...
+.....o11oo....o2113b11b3112o....oo11oo....
+..oooo111oo..oba1113333111a2o..oo111oooo..
+..o113b113o..oba2111111112a2o..o311b311o..
+.o22a1ba22oooo32221111113223oooo32ab1a22o.
+.o2babbbb2o11112a23111132a21111o2bbbbab2o.
+.o3bb22332311222a22211122a22211322222bb2o.
+.o33b3aa32323aaba22222222abaa32322aa2b22o.
+..o33baab22abooocaaaaaaaacoooca32baab23o..
+...o3baab32oo...oooooooooo...ooc2baab2o...
+...o33aa33co..................oc22aa22o...
+....o3333oo....................oo2222o....
+.....oooP........................oooo.....
diff --git a/parts_pl_src/body/pl_y_broccoli_b.txt b/parts_pl_src/body/pl_y_broccoli_b.txt
new file mode 100644
index 0000000..08d6b62
--- /dev/null
+++ b/parts_pl_src/body/pl_y_broccoli_b.txt
@@ -0,0 +1,57 @@
+# pl_y_broccoli_b: from pixellab_src/pl_y_broccoli_b/base.png (variant of pl_y_broccoli) (pixellab_library.py extract)
+# pivot at (44, 60)
+# aura at (32, 34)
+# head_top at (31, 10)
+# back at (31, 38)
+# tail at (40, 42)
+...................ooo^oooo....................
+..................o21111123o...................
+...........ooooooo2111111122ooooooo............
+..........o21112o221111111222o22111o...........
+.........o211112c221111112a22o211113o..........
+........o3211112c222111122222o3111a23o.........
+........o22111223c22212222223c3211122o.........
+.....oooo22212222cc222222223cc3222223ooo.......
+....o322c222222233cccccccc3cc33333333o32o......
+...o2111c323333333c32111122c3333cccc3o3111o....
+..o311113cccccc333c21111a122c3o32112o321112o...
+..o311113c11112b3c2a111111112c2211111c32112o...
+..o3a223c1111122c221111111a123c2111111c32122o..
+..o3222c11111222c2211111112223c2211111c33222o..
+..o322c211112223c3222111122223c22211112c3333o..
+..oc33c2a1122a23c3322212222223c222212a2c333co..
+..ooccc222222233o3322222222233c32222222cccco...
+.o3211c222222333oc33222222b233o33222223c333o...
+.o1112c3222233333o3b332233333o333322233c2111o..
+o21112c3333333b3ooo333333333oo33b33333o321111o.
+o211123o3333333o333o333333oo23oo33333o3221111o.
+o2a12223o3333oo22222oooooo222223ooooo33222112oo
+o22222233oooo322111122222221112223oo333222222oo
+o2222223333oo321111111111111111223o3333222222oo
+o3222333333oo22111o1111A111oo11223o3333332222oo
+o3333333a33o32111oo11111111oo11122o33a3333333o.
+.o33333333oo22111oo11111111oo11122oo33333333co.
+..oc33333ooo22aaa111111111111aaa22ooo333333oo..
+...occoooooo22aaaa1111B111111aaa22ooocccccco...
+....oooooo.oo2aaa111o1111o111aaa2oo..oooooo....
+............o32211111oooo11111223o.............
+.............o322211111111112223o..............
+..............oo22222222222222oT...............
+.....ooo...ooo.oooooooooooooooo.ooo...ooo......
+....o111o.o112o.o2222222222o2o.o211o.o111o.....
+....o112o.o322o.o21o111111o12o.o223o.o211o.....
+....o31o...oaao.o2oo111111oo2o.oaao...o22o.....
+....o33o....oo..o2aa111111aa2o..oo....o32o.....
+.....oooooo.....o2113oooo3112o.....oooooo......
+.......o11oo....o2113b11b3112o....oo11oo.......
+....oooo111oo..oba1113333111a3o..oo111oooo.....
+....o113b113o..oba2111111112a3o..o311b311o.....
+...o22a1ba22oooo32221111112223oooo32ab1a22o....
+...o2babbbb2o11122a23111132a21111o2bbbbab2o....
+...o3bb22332311222a22211122a22211322222bb2o....
+...o33b3aa32323aaba22222222abaa32322aa2b22o....
+....o33baab23bbooocaaaaaaaacooocb32baab23o.....
+.....o3baab33oo...oooooooooo...ooc2baab2o......
+.....o33bb33co..................oc22bb22o......
+......o3333oo....................oo2222o.......
+.......oooo........................Pooo........
diff --git a/parts_pl_src/body/pl_y_broccoli_c.txt b/parts_pl_src/body/pl_y_broccoli_c.txt
new file mode 100644
index 0000000..80d0f2d
--- /dev/null
+++ b/parts_pl_src/body/pl_y_broccoli_c.txt
@@ -0,0 +1,63 @@
+# pl_y_broccoli_c: from pixellab_src/pl_y_broccoli_c/base.png (variant of pl_y_broccoli) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (32, 29)
+# head_top at (31, 4)
+# back at (31, 38)
+# tail at (36, 42)
+..........oo^ooo..........
+........oo111112oo........
+.......o3211111123o.......
+....oooo32111112b3coo.....
+...o1112o311122233o31oo...
+..o211123o32222333o3222o..
+..o2212233o3ccc333o3333o..
+..o3222333o2111c3o21112o..
+..occcc33o211111c3211112o.
+.o21112oo31111112o2211112o
+o3111123o32211222o3221122o
+o31122b3o33212222o322222bo
+o3222233o332222c3o3322233o
+o3322333o32322333o3a33333o
+o3b3333ooo333333ooo33333oo
+.o3333oo3oo3333oo33oo33oo.
+..ooooo33cooooooo333oooo..
+....oooo333o33o333oooo....
+.......oo31o22o13oo.......
+........o31311213o........
+........o31211113o........
+........o33111133o........
+........o1o1111o1o........
+........ooo1111ooo........
+........o21111122o........
+........o211oA112o........
+........o21111112o........
+........o21111112o........
+........o21111112o........
+........ob111111bo........
+........obb1111bbo........
+........o2b1111b2o........
+........o21b11bb2o........
+........o21111112o........
+........o211B1112o........
+........ob111111bo........
+........ob11111bbo........
+........obb111bb2o........
+........o2b111b12T........
+........o21111112o........
+........o21111112o........
+........ob111111bo........
+.......o3b31111bb3o.......
+.......o31b1111b13o.......
+.......o3111111113o.......
+......o211211112211o......
+.....o1112c111133111o.....
+....o1113cooooooo3111o....
+...o2113oo......oo3111o...
+...o223oo........oo313o...
+....o33o..........o33o....
+.....o3o..........o3o.....
+.....o33o........o33o.....
+.ooooo13o........o31ooooo.
+o1111133o........o3311111o
+o31o133o..........o331o13o
+.oooooP............oooooo.
diff --git a/parts_pl_src/body/pl_y_broccoli_d.txt b/parts_pl_src/body/pl_y_broccoli_d.txt
new file mode 100644
index 0000000..852c916
--- /dev/null
+++ b/parts_pl_src/body/pl_y_broccoli_d.txt
@@ -0,0 +1,63 @@
+# pl_y_broccoli_d: from pixellab_src/pl_y_broccoli_d/base.png (variant of pl_y_broccoli) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 29)
+# head_top at (31, 4)
+# back at (31, 38)
+# tail at (45, 42)
+....................oooo^ooooo....................
+..................oo221111123ooo..................
+.................o2211111111223o..................
+............oooooo2211111111223ooooooo............
+..........oo11113c3211111112aa23o22211oo..........
+........oo21111122o2111111212223o2221113o.........
+.......o22211112233o2111222222233oo322133o........
+......o22222122222332222222233333oo3333333o.......
+......o2322222223333oo3cccc233333ooo3ooo333o......
+......o2322222223333oo3cccc233333ooo3ooo333o......
+....ooo2cc33ooo3333c22111112c333o2211111oo33oo....
+...o22332111233o333c211111a1232o3221111111c333o...
+...o221111111223o3o2a1111111122c3222111111c333o...
+...oc21111112223oo32111111112223c2222111112c22o...
+..o232a11122b2233o32221111222223c3222212ba2c222o..
+.oc23232222233333o33222212222223c3222222332c2222o.
+o2223222222223333o33222212222223c32222222223c2222o
+o222c222222233333o33322222222333c33322223333c2233o
+o332c322223333333o2333222222bb33c3333333333oc2333o
+o332c33333333b33ooo3b3322233333occcbb333333o33333o
+obb33o333333333oocco3333333333oo2occ333333o3333obo
+obb33o333333333o222ooo33333333oo22cc333333o33333bo
+o3323oo33333ooc22222oo333333oo222222oooccc3333322o
+.oo2233oooocc22221122oooooooo221112222oo33333222o.
+..oo2233333o222211111222222222111111222oo333222o..
+..o2o222oooo2211111111122A2111111111112oo33333o...
+.o111oo333o22111ooo111111111111ooo11112oo33ooo2o..
+.o11122233o2111ooooo1111111111ooooo1111oo3333222o.
+.o11122233o211oowwooo11111111oow1ooo1112o3222112o.
+.o11122233o211oowwooo11111111oow1oooo112o3222112o.
+.o21222233o211ooooooo11111111oooooooo112o33222b2o.
+.o2222233bo211o2ooo2o11111111ooooo22o112o3332222o.
+..o323333bo211o22oo1o11111111o2ooo22o112o333322o..
+...o3333cco211121112o111111111o1112o1112o3b3333o..
+....o233coo2111boooo1111B111111ooob11112o22332o...
+.....oooooo211baab111112111o11111baab112o2223o....
+..........oo21baaab1111oooo11111baaab12oooooo.....
+...........o221bab111111111111111bbb222o..........
+............o2221111111111111111112222T...........
+.............oo22222211111111122222ooo............
+..............oooo22222222222222ooooo.............
+................ooooooooooooooooooo...............
+...............o322222222222222222o...............
+..............o21122222222222222211o..............
+.............o11122221111111122o2111o.............
+............o11122o211111111112oo2111o............
+............o1112oo2111111111122oo2112o...........
+............o232o.o2111111111122oo3222o...........
+.............oooo.o2211111111222o.oooo............
+.................o21222111112212o.................
+.................o21122222223111o.................
+.................o21113oooo33111o.................
+.................o32223oooo33222o.................
+.................o22223o...o3222o.................
+.................o21123o...o31111o................
+.................o3333o.....o3333o................
+..................oooP.......oooo.................
diff --git a/parts_pl_src/body/pl_y_candle.txt b/parts_pl_src/body/pl_y_candle.txt
new file mode 100644
index 0000000..a5c18c8
--- /dev/null
+++ b/parts_pl_src/body/pl_y_candle.txt
@@ -0,0 +1,43 @@
+# pl_y_candle: from pixellab_src/pl_y_candle/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 45)
+# head_top at (32, 32) (from part/probe)
+# back at (31, 43) (from part/probe)
+# tail at (40, 52) (from part/probe)
+..............oo............
+.............o3o............
+.............o3o............
+.............3o.............
+.............oo.............
+.........oooooooooo.........
+.......oo1111ooo311oo.......
+......o11111111111111o......
+.....o11111111^1111111o.....
+....o111111111111111111o....
+....o111111111111111111o....
+...o11o111oo1111oo111111o...
+...o11o1113o11133o111o11o...
+...o11o11o3o11133o1113o1o...
+...o113oo32o111322o11331o...
+...o1133222o1113222oo331o...
+..o111322222o11322222231....
+..o1113223332oo223332231o...
+...oo132222222222222223oo...
+...o11322ooo2B222ooo2231o...
+...o1132o11oo222o11oo231o...
+...o1132oooooA22ooooo231o...
+...o11322ooo22222ooo2231o...
+...o11332222222222222331o...
+..o111333222ooooo22233311o..
+..o111obc3322222223cb3311o..
+..o111o333333222333333o11o..
+..o11oo33333b333b3333oo11o..
+...oo.ooo3333333333oooToo...
+......oo3oooooooooo3o.......
+...ooo2o3333o111o333oooo....
+.oo113ob2233aooob333ao31ooo.
+o111111oooaoo111ooboo111111o
+o111111111o1111111111111111o
+.oooo11111111111111111111oo.
+.....ooo11111111111111ooo...
+........oooooPoooooooo......
diff --git a/parts_pl_src/body/pl_y_candle_b.txt b/parts_pl_src/body/pl_y_candle_b.txt
new file mode 100644
index 0000000..7df79ee
--- /dev/null
+++ b/parts_pl_src/body/pl_y_candle_b.txt
@@ -0,0 +1,45 @@
+# pl_y_candle_b: from pixellab_src/pl_y_candle_b/base.png (variant of pl_y_candle) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 44)
+# head_top at (32, 22)
+# back at (31, 43)
+# tail at (41, 52)
+...............^o..............
+..............o3o..............
+..............o3o..............
+..............3o...............
+..............oo...............
+..........oooooooooo...........
+........oo1111ooo313oo.........
+.......o11111111111113o........
+......o1111111111111111o.......
+......o11111111111131113o......
+.....o131113311113311133o......
+.....o13113oo3113oo313o33o.....
+.....o3311333313333313333o.....
+.....o2233332313322313333o.....
+....o2222o3223133223333a3o.....
+....o222233223333222222a33o....
+....o2a2222222332222222ac3o....
+....o2a222ooo22222ooo22ac3o....
+...o21b22owwoo222owwoo22c3o....
+..o212c22ooooo222ooooo22333o...
+.o21222222ooo22222ooo2223333o..
+.oa222222bc22oBooo22bb222222o..
+.oaa22222b22222A22222a222322bo.
+oab232222a22222222222a2222322o.
+occ232222a22222222222a2222322bo
+o2b233222a22222222222a222332a2o
+o2b3o322a2222222222222a22332a2o
+o233o332a2222222222222a233o332o
+ob33o333b2222222222222b333o333o
+.ooo.o33ca32222222233ab33o.ooo.
+..b..oo33b33333333333bc3T......
+..b...ooob33333333333c3oo......
+.....o3o3bboooooooooob3oo......
+..ooo13oabb33ooooo333bbo1oo....
+.o11cccbbbbooo333oooobbbc33oo..
+.o33bbawbbbb11111111aaabbc33o..
+..oooob331111111111111133boo...
+......ooo33333333333333ooo.....
+.........ooooooPooooooo........
diff --git a/parts_pl_src/body/pl_y_candle_c.txt b/parts_pl_src/body/pl_y_candle_c.txt
new file mode 100644
index 0000000..9063682
--- /dev/null
+++ b/parts_pl_src/body/pl_y_candle_c.txt
@@ -0,0 +1,61 @@
+# pl_y_candle_c: from pixellab_src/pl_y_candle_c/base.png (variant of pl_y_candle) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 35)
+# head_top at (32, 7)
+# back at (31, 43)
+# tail at (38, 52)
+...............oo...........
+..............^3o...........
+..............o3o...........
+..............3o............
+..............oo............
+..........ooooooooo.........
+........oo1113ooo22oo.......
+.......o1111111111111o......
+......o111111133111111o.....
+.....o11111111111121112o....
+.....o11111211111111122o....
+....o12o112oo111oo111222o...
+....o12o1123o1123o212o21o...
+....o12o22o3o1123o2123o2o...
+....o123oo32o11232o22332o...
+....o1233222o222322oo332o...
+...o111322222o2232222232....
+...o2123222222oo22332232o...
+....oo23222222222222223oo...
+....o12322ooo2222ooo2232o...
+....o1232owwoo22owwoo232o...
+....o1232ooooo22ooooo232o...
+....o12322ooo2222ooo2231o...
+....o1232222222222222331o...
+...o112333222oooo22233311o..
+...o112oab222222223ba3o31o..
+...o22oo3b333222333333o33o..
+....oo.oo3333333a3333oooo...
+.........oooooooooooo.......
+........ooccc3Acccc3oo......
+........o2aac33cccc33o......
+........o2aac22a2cc33o......
+.......o222a22222c2333o.....
+......oo2o2b22222a23o3o.....
+......o2oo2b22222223o3o.....
+.....o22oo2b22222223o32o....
+.....o23oo2c22222223o32o....
+....o23o.o2abB222223oo33o...
+....o23o.o2ac2222233oo32o...
+....o23o.o2222222233oo33o...
+....o3ao.o3b32223b33ooo3o...
+.....oo..o3333333333o.oo....
+.........o233oooo333o.......
+.........o233o..o333o.......
+.........o23o...o323o.......
+........o233o....o23o.......
+........o23oo....o23T.......
+......ooo23ooooooo23o.......
+...ooo2o223o1111o222aooo....
+.oo113oa223aooo3o223bo21ooo.
+o111113oooooo222ooooo211112o
+o12222111133111111111111112o
+.oooo22211111111111111112oo.
+.....ooo11121112221222ooo...
+........oooooPoooooooo......
diff --git a/parts_pl_src/body/pl_y_candle_d.txt b/parts_pl_src/body/pl_y_candle_d.txt
new file mode 100644
index 0000000..8d215e3
--- /dev/null
+++ b/parts_pl_src/body/pl_y_candle_d.txt
@@ -0,0 +1,62 @@
+# pl_y_candle_d: from pixellab_src/pl_y_candle_d/base.png (variant of pl_y_candle) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 36)
+# head_top at (32, 6)
+# back at (31, 43)
+# tail at (39, 52)
+...............o............
+..............^co...........
+..............oco...........
+.............oco............
+.............ooo............
+..........oooooooo..........
+........oo1113o111ooo.......
+.......o111113o111111o......
+......o111111111111111o.....
+......o111111111111111o.....
+......o111111111111111o.....
+......o111131111311331o.....
+......o131113113131331o.....
+......o133313113131331o.....
+......o131113113131331o.....
+.....o1131113113133133o.....
+.....o113111311311111o......
+.....o113111311311111o......
+.....o331111333111111o......
+......oo1111133111111o......
+.......o1111113111111o......
+.......o1111113111111o......
+.......o1111131311111o......
+.......o1111131311111o......
+.......o1111113311111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o111111A111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o1111111111111o......
+.......o11111B1111111o......
+.......o1o13o111o11o1o......
+.......o1oooo111oooo1o......
+.......o1133111111111o......
+.......o1111111111111o......
+......o11111oooo11111o......
+......o11111111111111o......
+......o11111111111111o......
+......o11111111111111o......
+......o11111111111111T......
+.....o1111111111111113o.....
+...oo3o111111111111113oo....
+.oo113o31111111111113o31ooo.
+o111111ooo11111113ooo311113o
+o333331111oooooooo111113333o
+.oooo33311111111111111333oo.
+.....ooo33333333333333ooo...
+........oooooPoooooooo......
diff --git a/parts_pl_src/body/pl_y_dragonfruit.txt b/parts_pl_src/body/pl_y_dragonfruit.txt
new file mode 100644
index 0000000..b15742c
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dragonfruit.txt
@@ -0,0 +1,47 @@
+# pl_y_dragonfruit: from pixellab_src/pl_y_dragonfruit/base.png (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 40)
+# head_top at (31, 28) (from part/probe)
+# back at (31, 32) (from part/probe)
+# tail at (46, 45) (from part/probe)
+..................oooo..................
+.............oo.oo3333oo.oo.............
+.............ocoo33bb33ooco.............
+.............oco33b33b33oco.............
+.........oo..oco33b33b33oco..oo.........
+........oaao.o33o3obbo3o33o.oaao........
+........oaaaoo333ocaaco333ooaaao........
+........oa111o322o3113o223o111bo........
+........o2111222231^11322221113o........
+.......oo2222211111111111122223oo.......
+..oooo.o3o32211111oooo11111223o3o.oooo..
+..oba3oo322211111obaaao111112223oo3abo..
+..ob1133222111111o1B11o1111112223311bo..
+..oc33332ooo1111131111311111ooo23333co..
+...o33322oaao11111222211111oaao22333o...
+...o33322oa113111111111111311ao22333o...
+....oo322o311211111oo111112113o223oo....
+....o3322o32221111oaao11112233o2233o....
+....o322223211111occcco111113322223o....
+..ooo322222221111oooooo111122222223ooo..
+ooc333322o2222ooo22A222ooo2223o223333coo
+oc223332o2112o111o2222o111o2112o233322co
+oc33333oa11132cocc2222cocc23111bo33333co
+.oo3333oaaa3o1owoo2222owoc1o3aabo3333oo.
+...oo33ooooo3wco1c2222co1cw3oooo33ooo...
+....o33333333wwb1a2222aa1ww3333333To....
+....oo33333223www222222www32233333oo....
+....o33333322232222bb22223223333333o....
+...oc33333o33332222222222333o333333co...
+...oc33333o333333333333333333o33333co...
+...occ333oc333333o3333o333333co333cco...
+...ooooooocccoo33occcco33oocccooooooo...
+.......oo3ooo33333oooo33333ooo3oo.......
+.........o3333333o3333o3333333o.........
+..........oo33333occcco33333oo..........
+...........ooo3333oooo3333ooo...........
+...........occooo333333ooocco...........
+...........obbcoooccccooocbbo...........
+..........oaaaco..oooo..ocaaao..........
+..........o1acco........occa1o..........
+..........oooooP........oooooo..........
diff --git a/parts_pl_src/body/pl_y_dragonfruit_b.txt b/parts_pl_src/body/pl_y_dragonfruit_b.txt
new file mode 100644
index 0000000..af0dbbb
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dragonfruit_b.txt
@@ -0,0 +1,59 @@
+# pl_y_dragonfruit_b: from pixellab_src/pl_y_dragonfruit_b/base.png (variant of pl_y_dragonfruit) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (32, 34)
+# head_top at (31, 8)
+# back at (31, 32)
+# tail at (48, 45)
+...................o^oo...................
+..............oo.oo3333oo.oo..............
+..............ocoo33bb33ooco..............
+..............oco33b33b33oco..............
+..........oo..oco33b33b33oco..oo..........
+.........oaao.o33ooobbooo33o.oaao.........
+.........oaaaoo333ocaaco333ooaaao.........
+.........oa111o322o3113o223o111bo.........
+.........o2111222231111322221113o.........
+.........o2222211111111111122223o.........
+.........o22221111111111111122233o........
+...oooo.o3322111111oooo1111112223o.oooo...
+...oba3oo322211111obaabo111111223oo3abo...
+...ob1133222111111o1111o1111112223311bo...
+...oc33332ooo1111131111311111ooo23333co...
+....o33322oaao11111222211111oaao22333o....
+....o33322oa113111111111111311ao22333o....
+.....oo322o311211111oo111112113o223oo.....
+.....o3322o32221111oaao11112233o2233o.....
+....oo322223211111occcco1111133222233o....
+..ooo3322222221111oooooo1111222222233ooo..
+ooc3333222o2222ooo222222ooo2223o2223333coo
+oc2233322o2112o111o2222o111o2112o2233322co
+oc333332oa11132cocc2222cocc23111bo233333co
+.oo33322oaaa3o1owoo2B22owoc1o3aabo22333oo.
+...o3322ooooo3wco1c2222co1cw3oooo22233oo..
+...o3322222223wwb1b22A2bb1ww3222222233o...
+...o33222222222www222222www22222222233o...
+...o3322222222222222bb2222222222222233o...
+..oo3322222222222222222222222322222233oo..
+.oo33332222o112222222222222221o22222333oo.
+.o23333222oc113222222222222311co22233322o.
+ob12333222occo22222222222222occo22233221bo
+ob123332222oo2222232222222222oo222233321bo
+obb333322222222222322223222222222233333bbo
+occooo3322222222222oooo3222222222233ooocco
+ooo.o33322222222222222222222222222333ooooo
+.....o3332222222222222222222222223333T....
+.....o3333222222222222222222222223333o....
+.....o333322222222222222222222223333o.....
+......o33332222222222222222222233333o.....
+......o3333322222222222222222233333o......
+.......o333333222222222222223333333o......
+.......o33333332222222222223333333o.......
+........oo33333333222222233333333o........
+.........oo33333333333333333333oo.........
+...........oo33333333333333333o...........
+............ooo333333333333ooo............
+............occooo333333ooocco............
+............obbcoooooooo.ocbbo............
+...........oaaaco........ocaaao...........
+...........o1acco........occa1o...........
+...........oooooP........oooooo...........
diff --git a/parts_pl_src/body/pl_y_dragonfruit_c.txt b/parts_pl_src/body/pl_y_dragonfruit_c.txt
new file mode 100644
index 0000000..c52112b
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dragonfruit_c.txt
@@ -0,0 +1,46 @@
+# pl_y_dragonfruit_c: from pixellab_src/pl_y_dragonfruit_c/base.png (variant of pl_y_dragonfruit) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 41)
+# head_top at (31, 24)
+# back at (31, 32)
+# tail at (47, 45)
+.............oo..........oo.............
+.............oao........obo.............
+.............oaao......oabo.............
+.........oo..oa12oo^ooo223o..oo.........
+........oaao.o222222222222o.oaao........
+........oaaao22221111111222oaaao........
+........oa2222111cccccc1112222ao........
+........o22211cccc33ccccc111122o........
+.......oo2211ccc333233cccccc122oo.......
+..oooo.o221ccc3332222233ccccc122o.oooo..
+..oaa2oo21cc33cc22222222cccccc11oo2aao..
+..oa11221ccc2cac221B2222cac3ccc12211ao..
+..ob22221cc222c221111122cac233c11222bo..
+...o2221ccc22112111111112c2233cc1222o...
+...o2221cc221111111cab111222233c1222o...
+....o21c32231122111cbc111122233c112o....
+....o21c322111221111c1111122233c112o....
+....o21c32cac11111111112112aac3c112o....
+..ooo21c32cbc11112111112111aac3c112ooo..
+oob2221cc2cc1111aa211111111cc33c11222boo
+ob22221cc2221111ac1A1aa1112223cc112222bo
+ob222211c2222111cc111cbc112223cc122222bo
+.oo22221c222212111111cc11222333c12233oo.
+...oo321cc22212111211111222233c112ooo...
+....o3211cc22211112111122cac3cc1223T....
+....o3221cc3222caa222y222caccc11223o....
+....o22211cc222cbc22222222ccc112222o....
+...ob222221cc22ccb222232223c1122222bo...
+...ob22332211c33333333322cc11223322bo...
+...obb33332211ccccccc333c111223333bbo...
+...ooooo33322211ccccccc111223333ooooo...
+.......oo3333222111111112223333oo.......
+.........o33333222222222233333o.........
+..........oo3333333333333333oo..........
+...........ooo333333333333ooo...........
+...........obbooo333333ooobbo...........
+...........oaabooobbbbooobaao...........
+..........oaaabo..obbo..obaaao..........
+..........o1abbo...oo...obba1o..........
+..........oooooP........oooooo..........
diff --git a/parts_pl_src/body/pl_y_dragonfruit_d.txt b/parts_pl_src/body/pl_y_dragonfruit_d.txt
new file mode 100644
index 0000000..c828a99
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dragonfruit_d.txt
@@ -0,0 +1,48 @@
+# pl_y_dragonfruit_d: from pixellab_src/pl_y_dragonfruit_d/base.png (variant of pl_y_dragonfruit) (pixellab_library.py extract)
+# pivot at (27, 60)
+# aura at (31, 40)
+# head_top at (31, 19)
+# back at (31, 32)
+# tail at (46, 45)
+..................o^o...................
+..................oaaoo.................
+...........oooo..o2222oo.oooo...........
+...........oaaboo222222oooaao...........
+...........oa222o211112o222ao...........
+........oooo3221o21oo12o1223o.ooo.......
+........oaaoo211o2oaab2o1113ooaao.......
+........oa222o111o3113o1111o222ao.......
+......ooo3211oo11o3113o111o2112boo......
+......ooo31111o3133113331o11112o22oo....
+....oo311o31111o33311333o111112o12bo....
+..oo333111o31111o111113o11111oo3223o....
+..ob3311111o3111o111111o1111o333oooo....
+..ob3311113oo333o11B111o333oo3311113oo..
+..oc33211ooo3oooo111111oooo3ooo111133boo
+..oooo333oaa3333o311113o3333aao311133bao
+oo333oooooa113111o3113o211211ao311133bo.
+ob33111o3o311111133ooo31112113o311133o..
+ob33111o3331111113133131112213o3333ooo..
+.o33311o32oo31111311113211123o3oooo22o..
+.ooooo3o3333o333331111322223o333o2222bo.
+oo3223o333311oooo31A113ooooo313oo22223bo
+ob33322oo1111o111o3113o111o3111oo22223bo
+ob33332oa111o2cocco11ococc2o321ao22233bo
+.o33333oaaa3o1owoo2oo2owoc1oo3aaoo323bo.
+.o33333oooooowbo1c2222bo1cwo3ooooooooo..
+..oo33ooo333owwb1a2222aa1wwo333o21T.....
+...oooo31ooooowww222222wwwooo3o2223o....
+...oo3331o3111o2222bb2223o311oo2233o....
+...oo3333o33313oooooooooo32222o2233oo...
+...ob333oo33333o31111111o322223o333bo...
+...obb3o3o33333o32222111o3222233o3bbo...
+...ooooo33o333oo32222222oo322333ooooo...
+.......o333ooo3o33222222ooo33333o.......
+.......ob333o333o333333o333o333bo.......
+.......obbooo333o333333o333ooobbo.......
+.......ooo.oob33o333333o33booooo........
+...........obooooo3333ooooooo...........
+...........obbboooobboooobbbo...........
+..........oaaabo..obbo..obaaao..........
+..........o1abbo...oo...obba1o..........
+..........oooooP........oooooo..........
diff --git a/parts_pl_src/body/pl_y_dungbeetle.txt b/parts_pl_src/body/pl_y_dungbeetle.txt
new file mode 100644
index 0000000..cbc5faa
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dungbeetle.txt
@@ -0,0 +1,37 @@
+# pl_y_dungbeetle: from pixellab_src/pl_y_dungbeetle/base.png (pixellab_library.py extract)
+# pivot at (16, 60)
+# aura at (32, 45)
+# head_top at (32, 35) (from part/probe)
+# back at (31, 35) (from part/probe)
+# tail at (47, 50) (from part/probe)
+..............oooooooo..............
+............oobaaaaaabooo...........
+..........oocaaooooooaaacoo.........
+.........ocbboo332222oooabco........
+........obcoo32222222223obbco.......
+.......occo322221B^122223oocco......
+......occo22221211111122223occo.....
+......oco3221212111111122223oco.....
+.....oco32221212111111122222occo....
+.....oo3322212121111111222223oco....
+.....oo3322222121111112222223oco....
+....oo33oo222212111112222ooo33oco...
+....oo33oooo222221122222oooo33oco...
+....oo33obooo222222222ooobo333oco...
+....oo3oa111oo2222222oo111ao33oco...
+....oo3o111bbbo222A2obbb111o33oco...
+.....o3o11c1obo22222ob1ob11o33oo....
+.....o3o11boobo22222oboob11o33co....
+.....o33o11bbo3222223obb11oo23oo....
+...oooo33oooo322222223ooooo33oooo...
+..o223o333b33222222222233b333o322T..
+..o33ooo3bbb22oooooooo22bb23ooo32o..
+.o33o223o3322o33222233o2233o322o32o.
+.o3o12233oo33o32222223o33oo33221o3o.
+.o3223oooo.ooo23222233ooo.oooo3223o.
+o3o23o.......o2o3333o3o.......o32o3o
+ooo33o.......o3oo33oo3o.......o32ooo
+..o33o.......o2o.oo.o2o.......o33o..
+..o3o.........oo....oo.........o3o..
+.o3oo..........................oo2o.
+.oP..............................oo.
diff --git a/parts_pl_src/body/pl_y_dungbeetle_b.txt b/parts_pl_src/body/pl_y_dungbeetle_b.txt
new file mode 100644
index 0000000..ba3b015
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dungbeetle_b.txt
@@ -0,0 +1,48 @@
+# pl_y_dungbeetle_b: from pixellab_src/pl_y_dungbeetle_b/base.png (variant of pl_y_dungbeetle) (pixellab_library.py extract)
+# pivot at (16, 60)
+# aura at (32, 40)
+# head_top at (32, 19)
+# back at (31, 35)
+# tail at (52, 50)
+.....................oo^oo....................
+..................ooocbbccoo..................
+..............ooooo2ccaaabc1oooo..............
+............ooo111321cccccc13112oo............
+..........oocc1111321111111221111ooo..........
+.........oobbc1111131111111221111ccco.........
+........occabc11111311111112111121cbco........
+.......ocaabb322111133333331111131cabco.......
+......occbbb13333111311111311133311ccc3o......
+......occc23311112231111111312111311112o......
+.....o322132ccc1113111111113311111131123o.....
+....o321113cbac11131111111133111ccc322233o....
+....o321131cbbc1113111111113311cabc132223o....
+...o33211311ccc1113111111113311cbbc1132233o...
+...o3333331111111133111111333111ccc1132233o...
+...o32212311111122233333333231111111113333o...
+..oc221123111132211111B11111133311111132223o..
+..occ31112313311113333333333111122111321223o..
+..ocac11113321132ooooo33ooooo331121133112cco..
+.occac111132133ooo22222222222ooo21333111cccco.
+.occac1113112ooo221121111111133oo2113111cabco.
+.ocbbc111313oo311111211A11111123oo31311cbabco.
+.ocbbc11322oooo111112111111111ooooo3111cbabco.
+.occc222322o3oooo121211111112oooooo2131ccabco.
+..o3222232o33obooo212111111ooobo333o1o33cbbco.
+..o2223332o3oa1w1oo1211121oo1w1ao33o1333ccco..
+..o32cc232o3o111bbbo21112obbb111o33o1333333o..
+..oo3cac32o3o11c1obo22222ob1ob11o33o1323233o..
+...oocbc32o3o11boobo22222oboob11o33o332b23o...
+...ooocc32o33o11bbo3222223obb11oo23o323333o...
+...ooo3c33o333oooo322222223ooooo33oo3333ooo...
+..o213ooo3o3333b33222222222233b333o333oo322T..
+..o1333oooo333bbb22oooooooo22bb23oo3ooo3331o..
+.o1233o33o123o3322o33222233o2233o321o33o3321o.
+.o33ooo3o11233oo33o32111123o33oo33221o3ooo33o.
+.o3o..o3213oooo.ooo23222232ooo.oooo3123o..o3o.
+o3o..o3o12o.......o2o3333o2o.......o21o3o..o3o
+oo...ooo12o.......o3oo33oo3o.......o22ooo...oo
+.......o23o.......o2o.oo.o2o.......o32o.......
+.......o2o.........oo....oo.........o2o.......
+......o2oo..........................oo2o......
+......oP..............................oo......
diff --git a/parts_pl_src/body/pl_y_dungbeetle_c.txt b/parts_pl_src/body/pl_y_dungbeetle_c.txt
new file mode 100644
index 0000000..ea9452c
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dungbeetle_c.txt
@@ -0,0 +1,42 @@
+# pl_y_dungbeetle_c: from pixellab_src/pl_y_dungbeetle_c/base.png (variant of pl_y_dungbeetle) (pixellab_library.py extract)
+# pivot at (16, 60)
+# aura at (32, 43)
+# head_top at (32, 25)
+# back at (31, 35)
+# tail at (47, 50)
+...............ooo^ooo..............
+............ooo2222222ooo...........
+..........oo2222222222222oo.........
+........oo32222211111112222o........
+.......obb32221111111111222coo......
+......o3bbb221111111111112ccc3o.....
+.....o33bbaa111111111111aabbc33o....
+....o3322bbbaa11111111aaabbb2333o...
+...o3332222bbaaaaaaaaaaabb222233o...
+...o3332221bbbbaaaaaaabbbb1222233o..
+..occ322221111bbbBabbb1111122223co..
+..occb22222111111bb111111112222ccco.
+.occbbb22222111111111111112222bbcco.
+.o3cbbb2222221111111111122222bbbc3o.
+.o33cbbooo2222111111111222ooobbcc3o.
+o33322boooo22222111212222oooo2b3333o
+o3332222obooo2222222222ooobo2223333o
+o333222oa111oo22222222oo111ao223333o
+occ3222o111cbbo222A22obbb111o22223co
+occ3322o11c1obo222222ob1oc11o222bcco
+occbb22o11coobo222222obooc11o22bbcco
+occcbb22o11bco22222223obb11o222bccco
+.occcbb22oooo2222222222oooo222bbcco.
+.occcbbb222222222222222222222bbbcco.
+..occc3222222222ooo322222222233cco..
+..oo333322bb22233333o2222bb233333T..
+..oo333333bb2222222222222bb33333oo..
+.o33o3333cbb332222222223cbcc333o32o.
+.o3o1oo33ccc332232223323cccc33o1o3o.
+.o3223oo3ccc333333333333ccccoo3223o.
+o3o23ooooocc333333333333ccooooo32o3o
+ooo33o....ooooo3333333oooo....o32ooo
+..o33o.......o3oooooo2o.......o33o..
+..o3o.........oo....oo.........o3o..
+.o3oo..........................oo2o.
+.oP..............................oo.
diff --git a/parts_pl_src/body/pl_y_dungbeetle_d.txt b/parts_pl_src/body/pl_y_dungbeetle_d.txt
new file mode 100644
index 0000000..e2586ee
--- /dev/null
+++ b/parts_pl_src/body/pl_y_dungbeetle_d.txt
@@ -0,0 +1,43 @@
+# pl_y_dungbeetle_d: from pixellab_src/pl_y_dungbeetle_d/base.png (variant of pl_y_dungbeetle) (pixellab_library.py extract)
+# pivot at (17, 60)
+# aura at (32, 44)
+# head_top at (32, 24)
+# back at (31, 35)
+# tail at (48, 50)
+...................^o.................
+.................oo21o................
+................o2212o................
+...............o221222ooooo...........
+..........ooo..o2212222211o...........
+.........o221oo322122221122ooo........
+.........o32122322121221122111o.......
+......ooo332212222111111222233o.......
+.....o3112232212211111122233333ooo....
+....o3333222221222222122221111122o....
+.....o332222221222221122311112222o....
+....o3111221221222B211221122222222o...
+...o3333322122212212122111222211112o..
+...o3333221112211211122112221222222o..
+..o3322223311222121122111221322223o...
+.o33332233321122212221122213332222o...
+.o333323333321122122212221333332211o..
+..o332223oo333113122222233ooo3223332o.
+..o323223oooo331312223323oooo3222333o.
+.o3233123oaooo331312233oooao3322313o..
+.o333112oa1w1oo3331A33oo1w1ao321332o..
+.ooo3132o111bbbo33333obbb111o323133o..
+..oo3232o11b1obo33333ob1ob11o323133o..
+..oo3332o11boobo33333oboob11o32333oo..
+..oo33333o11bbo3333333obb11o332333o...
+...o333333oooo333333333oooo3333333o...
+..oo3o3333333333331333333333233333oT..
+.o33oo33333331333312221331332333oo33o.
+.o333o3o3333313323132221323333oo33333o
+o3322ooo3333323223232231333333oo33333o
+oc33133o33o3333233333233333o3oo33123bo
+oc33233oooo3333333333333o33oooo33133co
+oco3233o...o3o33o3333333ooo...o33333co
+oooc23co...ooo33o333o33o......o3c3boco
+..occoco......oo.o33ooo.......oco3coo.
+..oco.oo..........oo..........oo.oco..
+..ooP............................ooo..
diff --git a/parts_pl_src/body/pl_y_frilldrake.txt b/parts_pl_src/body/pl_y_frilldrake.txt
new file mode 100644
index 0000000..50406e9
--- /dev/null
+++ b/parts_pl_src/body/pl_y_frilldrake.txt
@@ -0,0 +1,46 @@
+# pl_y_frilldrake: from pixellab_src/pl_y_frilldrake/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 41)
+# head_top at (31, 25) (from part/probe)
+# back at (31, 40) (from part/probe)
+# tail at (49, 51) (from part/probe)
+....................oooo....................
+...............ooo.oaaaao.ooo...............
+..............oaaboaaaabboaaao..............
+.............oaaabbaaaabbbaabbo.............
+............ocaaaabca^obcbaabbco............
+..........ooacaaaabco12ocbbbbbcaoo..........
+..........oaabcaoo33312333oobcbaao..........
+..........oaabco111131231111ocbaao..........
+........occaaao2aa11333311aa2oaaacoo........
+.......oaaccaaoooaa113111aaoooaaccaao.......
+.......oaaabcaooaoaa1121aaoaooacbaaao.......
+.......oaabbbo2oo1ob1111bo1oo2obbbaao.......
+......obaabbb22oboo111111oobo22bbbaabo......
+.......occbbo2b23ao111111oa32b2obccco.......
+.......obbcco3o22111111111122o3ocbbbo.......
+......oabbbbo31oo111a11a112oo13obbbbao......
+......oabbbbbo21oooooooooooo13obbbbbao......
+......oabbbbcco21o1cccccc1o12occbbbbao......
+.......oabccabbco11obaabo11ocbbaccbao.......
+........ocaabbbccoo11B111ooccbbbaaco........
+.........oabbbccco3ooAooo3occcbbbao.........
+...oooo..oabbbcbbo32222223obbcbbbao..oooo...
+...o312o..ooccabbo21111112obbaccoo..o213o...
+....o222o...ooaaao21111112oaaaoo...o222o....
+oooo.o222ooo33ooo3111111113ooo33ooo222o.oooo
+o133332212o22333o2111111112o33331o212233321o
+.oo3333111o21333o2111111112o33321o2123333oo.
+...o333332o3333o112111111211o3332o133333o...
+.oo33333333333oo111222222111oo33333333333oo.
+.o22333333333o3o111111111111o3oo3333333322o.
+..ooooo333ooo33o111111111111o33ooo333ooToo..
+.......oooo11333o1111111111o33311oooo.......
+.........o2223333o11111111o3333122o.........
+.........o2231333oo222222oo3331322o.........
+..........o33333o..oooooo..o33333o..........
+........ooo33333o..........o33333ooo........
+......oo3o223333o..........o333322o3oo......
+......o2o233o233o..........o332o322o2o......
+......ooo13oo13o............o31oo31ooo......
+.........oo..oP..............oo..oo.........
diff --git a/parts_pl_src/body/pl_y_frilldrake_b.txt b/parts_pl_src/body/pl_y_frilldrake_b.txt
new file mode 100644
index 0000000..e95595c
--- /dev/null
+++ b/parts_pl_src/body/pl_y_frilldrake_b.txt
@@ -0,0 +1,57 @@
+# pl_y_frilldrake_b: from pixellab_src/pl_y_frilldrake_b/base.png (variant of pl_y_frilldrake) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (32, 37)
+# head_top at (31, 10)
+# back at (31, 40)
+# tail at (53, 51)
+.....................o^oo.....................
+....................oaaaao....................
+................oooocaaaaco.ooo...............
+...............oaaaobaaaacooaaao..............
+..............ocaaacbaaaacaaaaaco.............
+..............ocaaabcaooaccaaaaco.............
+.............occbaaabo11occaaaccao............
+............oaabbaaabo11occaacccaao...........
+............oaabboo33312333ooccaaao...........
+..........oocaaao111131231111ocaaacoo.........
+.........oaaacao2aa11333311aa1oaaccaao........
+.........oaaabcoooaa111111aaoooacbaaao........
+.........oaabbbooaoaa1111aaoao3ocbaaao........
+.........oaabbo2o3wob1111bow3o3obbbaao........
+........oobbcb22oaoo111111ooao33bbbcco........
+........oabbbo2a13ao111111oa31b3obbbbbo.......
+........oaoobo331111111111111133oboobbo.......
+......oooo1ooo33o1111a11a1111o33ooo3oooo......
+.....oo11132oco31oooooooooooo13obo12223oo.....
+....o3111132obco11o1cccccc1o11obbo1211333o....
+....o3111132obcco111obaabo111obbbo1211133o....
+...ob2111132ooocco1111111111occooo1221113co...
+...obaa11332o33occoo111111ooccoo3o12221acco...
+...o3aaa1332o32aoo3333333333oob33o1222aac2o...
+..o3322abb32o11aaaooooooooooaaa11o32bbaa222o..
+..o21222bb1o311aa111111311111aa112o2bb33333o..
+...o3323333o31aaa111111311111aaa12o3233333o...
+..o3oo333ooo31aaa111111A11111aaa13ooo333oo3o..
+.ooo33ooo3oo33aaa111111331111aaa33oo3ooo33ooo.
+o111o33333ooo3caa2222ooooo222bbb3ooo33333o112o
+o3111o2223o33oooooooo3B333oooooooo3o3322o1133o
+o3112o2233o3133cc331111311113cc3333o3332o1133o
+oba12ooooo33113aa111111311111cc32333ooooo111ao
+obaa2oaaco33111aa333333333333cc22233obbbo1aaao
+ob112oabco33111aa111111311111ac22333occao111ao
+o3112o23ocoo331aa111222322211ac233ooco32o1113o
+o3113oooocccooocc333111111o33bcooocccoooo1113o
+o313o311ooccc3oooooo1222223ooooo3cccoo113o313o
+ooooo3113ooooccccccc3222233ccc33coooo1111ooooo
+.ooo31332o333oooccco3333333cccooo33oo13313ooo.
+.o3111o31o333333ooo3oooooo3ooo332333o13o1113o.
+.o3311oooo311133o3o3c2233c3o3o331113oooo1133T.
+..o3o33o.o311333ooo3b1111b3ooo333113o.o33o3o..
+...oooo..o33333oooo3b2111b3oooo33333o..oooo...
+..........o333obbbo3b2223b3obbbo333o..........
+...........oooo333ooo2223ooo333oooo...........
+.........ooo333333o..oooo..o333333ooo.........
+.......oo3o2233333o........o3333322o3oo.......
+.......o2o223o2233o........o3322o322o2o.......
+.......ooo13oo13oo..........oo31oo31ooo.......
+..........oo..oP..............oo..oo..........
diff --git a/parts_pl_src/body/pl_y_frilldrake_c.txt b/parts_pl_src/body/pl_y_frilldrake_c.txt
new file mode 100644
index 0000000..3cf1453
--- /dev/null
+++ b/parts_pl_src/body/pl_y_frilldrake_c.txt
@@ -0,0 +1,64 @@
+# pl_y_frilldrake_c: from pixellab_src/pl_y_frilldrake_c/base.png (variant of pl_y_frilldrake) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 30)
+# head_top at (31, 3)
+# back at (31, 40)
+# tail at (45, 51)
+.......................oo^ooo.......................
+......................obaaaabo......................
+...............ooo...obbaaaaabo...ooo...............
+.............oobbbooocbbaaaabbcooobbboo.............
+............obaaabcc3cbbbbbbbbc3cbbaaabo............
+...........obaaabbbc32bbbbbbbb23cbbaaaabo...........
+..........obaaabbbbc32bbbbbbbb23cbbbbaabco..........
+..........obbbbbbbbb232bbbbbb223bbbbbbbbco..........
+.......oooo2bbbbbbbb2322bbbb2223bbbbbbbb2oooo.......
+......obbc232bbbbbbb23222bbb2232bbbbbbb233bbbo......
+.....oaabbc2322bbbbb232222222232bbbbbbb33cbbaao.....
+....obaabbb22322bbb22332222222322bbb22232bbbaabo....
+....obabbbbc2332222222322bbc2322222222322bbbbabo....
+....obbbbbbb2232222bb233cbbc232222222332bbbbbbbo....
+....obbbbbbb222322bbbb33cbbc232bbb223322bbbbbbbo....
+...oo322bbbb222232bbbb332cc223bbbb223222bbbbb23oo...
+..occ232222222bb23ccbc333cc233cbb22322222222233cco..
+.obbbc2332222bbb232cccc33c3333ccc2322bb22223322cbbo.
+obabbb2223322bbbc333ccc33cc33ccc2332bbb2223322bbbaao
+oaabbbbb223322ccccc32cc33cc33ccc232cbbb23322bbbbbaao
+oaabbbbb22223322ccc333cc3oo3ccc23c22c2332222bbbbbaao
+obbbbbbb22bbb3332cccc3cco12occ333c22233cb222bbbbbbbo
+ocbbbbb222bbbcc333ccoo33312333ooccc333cbbb222bbbbcco
+.occc222222bbccc333o111131231111oc333ccbbb22222ccco.
+.oo333222322cccc33o21111333311112o33ccccc222222333o.
+.oc22333333333c333oooaa113111aaooo33cc22233333332co.
+ocbbbc22222c333333ooaoaa1111aaoaoo3333333322222bbbbo
+oaabbbb222bbccc3332o3wob1A11bow3oo3333ccbb222cbbbbao
+oaabbbbb2cbbbcccco2oboo111111oobo2oc3cccbbc2cbbbbaao
+oaabbbb222cccc333o2b3bo111111ob3b2o33ccccc222bbbbaao
+obabbb22222333333o32211111111112o3o33333322222bbbbco
+occcc2223333cc333o32o111a11a112o13o33ccc33332222bbco
+.occ2333222bbccc33o21o1oooooo1o13o33ccccc2223332cco.
+..oo3222222bbcc33oco211ccccco111oco33ccab2222223oo..
+..ocbbbbb22bcc333cccoo11122111oo3cc333ccc22bbbbbco..
+..obbbbbbb222233cccc33oooooooocc3cbb333322bbbbbaao..
+..obabbbbb22333cccc3ooo322223oooc3bbb23322bbbbbaao..
+..obabbbb222322bbc3o22331B113333o33bbc23322bbbbaao..
+..ocabbb2233222bcco12222222222221o3cb222332cbbbabo..
+...occbb233222223o2122222222222211o322222332bbbbo...
+....occoo32bbb22o2222o22222222o2222o22ccc233ccco....
+.....ooocbbbbb2o2223o3222222213o3221o2cbbbbcooo.....
+.......ocabbbbo2113oo3122222213oo3211ocbbbbbo.......
+.......ocaabbco1123oo3222222223ooo311ocbbbaco.......
+........obabco1113oco3222222223oco3222occaao........
+.........occco2213oco3322222233oco3222occco.........
+..........ooo222222co3331112333oc212222ooo..........
+............o222222o213333333311o222222o............
+............o2222o3o12233ooo3211o3o2222T............
+............o3232ooo2223o..o3222ooo2323o............
+.............o232o.o2223o..o3222o.o232o.............
+.............o332o.o3333o..o3333..o233o.............
+..............oooo..o333o..o333o..oooo..............
+....................o333o..o333o....................
+...................o2223o..o3222o...................
+..................o21213o..o31212o..................
+..................o23o23o..o32o32o..................
+...................ooooP....ooooo...................
diff --git a/parts_pl_src/body/pl_y_frilldrake_d.txt b/parts_pl_src/body/pl_y_frilldrake_d.txt
new file mode 100644
index 0000000..a827177
--- /dev/null
+++ b/parts_pl_src/body/pl_y_frilldrake_d.txt
@@ -0,0 +1,46 @@
+# pl_y_frilldrake_d: from pixellab_src/pl_y_frilldrake_d/base.png (variant of pl_y_frilldrake) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 41)
+# head_top at (31, 21)
+# back at (31, 40)
+# tail at (51, 51)
+....................o^oo....................
+...............ooo.oaaaco.ooo...............
+..............oaccoaaccbaoccao..............
+.............oaacccaaccbacccbbo.............
+............occcaabccoocccaaccco............
+..........ooacccaabco23occaacccaoo..........
+..........occaaaoo33323333oobaacco..........
+..........occabo222131331222obacco..........
+........oaaccao3aa12333312aa3oaccaco........
+.......oaccaacoooaa223122aaooocaaccco.......
+.......occcaacooaoaa2232aaoaoocaaccco.......
+.......occcaao3o31ob2212bo13o3oaaccco.......
+......ocaaacc33oboo222222oobo33ccaaaco......
+.......oaaaco3b33bo222222ob33b3ocaaao.......
+.......oaaaco3o33222222222233o3ocaaao.......
+......ocaaaco32oo222a22a223oo23ocaaaco......
+......oacccabo31oooooooooooo13obacccao......
+......oacccabco31o1cccccc1o13ocbacccao......
+.......occcabccco11obaabo11occcbaccco.......
+........obbccaaacoo11B111oocbbbccbbo........
+.........obccbaacocooAooo3ocbaaccbo.........
+...oooo..obccbbbcoc33ccc3cocbbbccbo..oooo...
+...o31bo..oobbcccoc22ccc3coccccboo..ob13o...
+....obbbo...oocccoc22bbb2cocccoo...oabbo....
+oooo.occaoooacoooccbb222bbcooocaoooacco.oooo
+o12bbbccaboaaccco2bbb222bbcocccaaobaccbbb21o
+.oobbbcaaaoccbcco2bbb222bbcoccbccoaaacbbboo.
+...ocbcccabccccocb222bbb222coccccbaaacbco...
+.oobbbbcccccccoocb222ccc222coocccbbacbbccoo.
+.o23bbbbcccccococb222bbb222cocooccccbbbc32o.
+..ooooocccooocco33cbb222bbc3occooocccooooT..
+.......ooooaabcco3ccb222cccocccaaoooo.......
+.........oaaacbccoccc333ccoccaacaao.........
+.........oaacacbboo33ccc3oobbcacaao.........
+..........ocbccbo..oooooo..obccaco..........
+........oooccbbco..........ocbbccooo........
+......oobobacbbco..........ocbbccaoboo......
+......o2o22co23co..........oc32oc22o2o......
+......ooo13oo13o............o31oo31ooo......
+.........oo..oP..............oo..oo.........
diff --git a/parts_pl_src/body/pl_y_gull.txt b/parts_pl_src/body/pl_y_gull.txt
new file mode 100644
index 0000000..008ee6a
--- /dev/null
+++ b/parts_pl_src/body/pl_y_gull.txt
@@ -0,0 +1,50 @@
+# pl_y_gull: from pixellab_src/pl_y_gull/base.png (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 39)
+# head_top at (27, 20) (from part/probe)
+# back at (39, 30) (from part/probe)
+# tail at (45, 40) (from part/probe)
+.............oo..oooo......................
+..........o..o1ooo11ooo....................
+..........ooow111ww1oooooo.................
+........o.owww1ww^w11111ooo................
+........oowwwwwwwwww1113ooo................
+......o.2wwwwwwwwwwwww1222ooo..............
+......oowwwwwwwwwwwwwwww13ooo..............
+......ooowwwwwwwwooo2ww22223o..............
+.....oowoowwwww2o3o3owww12oo...............
+..oo.oo3ooo1wwwowwo3owww222ooo.............
+.oooooo3xxxowwwo3oo3owww222oo..............
+oowwxxxxaxxxowwo3222owww2222oo.............
+o3wwwxxxaaxxxow2oooo2w22222ooo.............
+oxxxxxxxxxzazxao1wwww222222ooB.............
+oxxxxaaccoooooooo222222222ooo..............
+oaxxaooccczzbbc3222222222ooooooo...........
+oaabo..occccc33222222223o3333ooooo.........
+.oao...oo2222222222223322322222ooo...oooo..
+.ooo....ooo3222332233222322222222ooooo33o..
+......ooo3223332222222232222222222oo1223oo.
+......o23ww22222111112232222222322ooowwooo.
+.....oo23wwwwwwwwwwww12322222222322oo2o3oo.
+.....o3o3wwwwwwwwwwwA123232222222323oo33oo.
+....oo2ow1wwwwwwwwwwww2o33232232223Too3oo..
+....o22ow1ww1wwwwwwww1123332322323333ooo...
+....o3o2211w1wwwwww1w112oo33233233333oooo..
+....o3o2211111ww111111222o3333322333333oo..
+....o3ooo21211111111211122oo33333o33o33oo..
+....o33oo222112112111212222oo3333oowwo33oo.
+....o33oo22212221221112222222oo3333owwo3oo.
+.....o33ooo22222122222222222222oo333o33o3oo
+.....o33oooo222222222222222222oooo33o33o3oo
+.....o3oo..ooo322222222222223ooo.ooooo33ooo
+.....ooo.....oooooooooooo222oo.......oooo..
+.....ooo.....oo33oooooooo322oo........ooo..
+..............occoo.....oocboo.............
+.............oobboo.....ooaboo.............
+........ooooooobboo.....ooxzoo.............
+.......oxxcbbbcbbboo..oooaabaoo............
+......obboxxzczacooo.oaaaaacaaooo..........
+......oooxzcoxaoooo.oxxxcaxcxxboo..........
+........oooooxo....oxzzcoxaccbbo...........
+............oo.....ooooooxcooo.............
+........................Poo................
diff --git a/parts_pl_src/body/pl_y_gull_b.txt b/parts_pl_src/body/pl_y_gull_b.txt
new file mode 100644
index 0000000..6d307b6
--- /dev/null
+++ b/parts_pl_src/body/pl_y_gull_b.txt
@@ -0,0 +1,53 @@
+# pl_y_gull_b: from pixellab_src/pl_y_gull_b/base.png (variant of pl_y_gull) (pixellab_library.py extract)
+# pivot at (34, 60)
+# aura at (30, 38)
+# head_top at (27, 15)
+# back at (39, 30)
+# tail at (50, 40)
+...............oo.ooo....................
+.............oo33^333ooo.................
+............o332w3ww3w23oo...............
+..........oo23w22222222233oo.............
+.........o3w222222222bb222oo.............
+.........ow2w22w22222bb22223o............
+........o22b2222b222222222223o...........
+.......o322b2222b2w22222wb22wo...........
+.......ow2222222w222w2222b2223o..........
+......o3222222222222222222w223o..........
+......ooo222222wwooo3222222223o..........
+......owoo2w22w3o3o3o2222222233o.........
+......o3ooo1222owwo3o2222222233o.........
+..ooooo3yyyow22o3oo3o2222222233o.........
+oowwyyyybyyyo22o3333o22w2222233o.........
+o3w2wyyybbyyyow2oooo3aaa2222333oo........
+oyyyyyyyyyzbxyzc22222aaa22223B333oo......
+oyyyybbccccccccc22222aaa22233332223o.....
+obyybooccczzcc333222ww222233333222w3o....
+obbco.3occccc33331222222333332w22b223o...
+.obo.o3w333333333333333333322222wb2233o..
+.oooo32223333322222222222222233ww222233o.
+....o3w22222222222222222222222233222233o.
+...o32222222222222222223222222223322233o.
+..oo3222222222222222A2232222222b2333w333o
+..o3222222222222222222233222222b22333333o
+..o32222222222w22222222333222b222333o333T
+..o31222222222222222222333322b2333333o33o
+..o3322222222222222222233333w2w333333o33o
+...o322bb222222222222w223333333333333o3oo
+...o322bb2222222222wb22233o33333333oo33o.
+....o3222w2222222222b222w33oo3333oo3333o.
+....o331222222222222222213333oooo33333o..
+.....o333b2222222222223w33333333333333o..
+.....o333b33w3222222323333333bb333333o...
+......o3333333333333333333333bb33333o....
+.......oo3333333b33333333b33333333oo.....
+........oo333333b3333333333333333oo......
+..........ooo3333333333333333oooo........
+............ooooo33333333ooooo...........
+........ooooooobbooooooooobbbo...........
+.......oyycbbbcbbboo..ooobbcboo..........
+......occoyyzczbcooo.obbbbbcbbooo........
+......oooyzcoyboooo.oyyycbycyyboo........
+........oooooyo....oyzzcoybccbbo.........
+............oo.....ooooooycooo...........
+........................Poo..............
diff --git a/parts_pl_src/body/pl_y_gull_c.txt b/parts_pl_src/body/pl_y_gull_c.txt
new file mode 100644
index 0000000..1547e42
--- /dev/null
+++ b/parts_pl_src/body/pl_y_gull_c.txt
@@ -0,0 +1,61 @@
+# pl_y_gull_c: from pixellab_src/pl_y_gull_c/base.png (variant of pl_y_gull) (pixellab_library.py extract)
+# pivot at (33, 60)
+# aura at (30, 32)
+# head_top at (27, 6)
+# back at (39, 30)
+# tail at (37, 40)
+........o..^o....................
+.......o1oow1oo..................
+......ow1w1w111oo................
+.....o1111wwww123o...............
+....o11111w11w112o...............
+....oow111ooo1w222o..............
+....ooow1ow3owww22o..............
+.oooozzo1o33owww22o..............
+owwzzazzo3ooow2222o..............
+ozzxxxxbbb21112223o..............
+ozzoocxxx22222223o...............
+ozo..occc2222233o................
+.oo...oo3332223o.................
+........o222233o.................
+........o22223o..................
+.......o111223o..................
+.......owww223o..................
+......owwww2233o.................
+.....oowww222233ooooo............
+.....o1ww1w222223222oo...........
+....o3ww1ww22223222222o..........
+....owwwwwww22322222222o.........
+....o11wwwwww23222222222o........
+...o2111wwwww23222222322co..ooo..
+...o2ww1wwwww1332223223Bccooo2o..
+...o2wwwwwwww12o3322322caaoow3o..
+...o21wwwwwww1Ao33322cbccaao23o..
+...o321wwwww1112o33333caacaaooo..
+....o221w11121222oo3333caacaaoo..
+....oo2121121211222o33333aaccaoo.
+......o2212111122222oooo33caccaoo
+......oo3222222222222233oooccacco
+.......ooo3222222222233ooooooooo.
+.......o33oo333322223oo......ooo.
+.......o2333ooo32222oT...........
+........o2333o.o3222o............
+........o2333o.o2222o............
+.........o23o...o222o............
+.........obbo....o22o............
+.........obzbo...obbo............
+..........ozbo...obzbo...........
+..........ocbo....ozbo...........
+..........obbo....ozbo...........
+..........ozbo....ozbo...........
+..........ozbo....ozbo...........
+..........ozbo....ozbo...........
+..........ozbo....ozbo...........
+..........ozbo....ozbo...........
+..........ozbo....ozbo...........
+......ooooozbo....ozbo...........
+.....ozzbbzbbboooozzbo...........
+....ozzcozbbooozzbczbbo..........
+....oooooboo.ozzcozbooo..........
+........oo...ooooobo.............
+.................Po..............
diff --git a/parts_pl_src/body/pl_y_icecube.txt b/parts_pl_src/body/pl_y_icecube.txt
new file mode 100644
index 0000000..ea0fc6f
--- /dev/null
+++ b/parts_pl_src/body/pl_y_icecube.txt
@@ -0,0 +1,42 @@
+# pl_y_icecube: from pixellab_src/pl_y_icecube/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 45)
+# head_top at (32, 34) (from part/probe)
+# back at (33, 39) (from part/probe)
+# tail at (47, 43) (from part/probe)
+............11.............33...........
+........23................3w13..........
+.......3113...............3211..........
+.......3w13................22.111.......
+.......3213...................111.......
+........22..............................
+..21................................33..
+.3w23........333333333333333333....31w3.
+..32......33311122222222211111113..1223.
+........331111322211^1122221www113..22..
+.......31111122222222221111www1113......
+......31w1w1333333111ww11ww1111313......
+..11..3111313333323333311ww1132313......
+......31313333333333333212w113333oo.....
+......323133333333333B33121113333o3w2...
+......323333o13333331o33331113333o2333..
+......o233333o333333o333333w33333oo33wo.
+......o2333oo33322333oo3333w33333o3331o.
+.....3o233o1oo333333oo1o33313333332Too..
+.....3o23o2o1oo3333owoo2o3313333233o....
+.....3o23owoooo2333oAoowo331333223o.....
+....o2o233w33oo112323oowo33133323o..11..
+...321o2333w223222232323233133332o......
+..o122o23223232222223232223133332o......
+..o222o23bbb2222223222bbb23133332o.11...
+...oo2o2wbab2223333222bab23133322o......
+.....oo2w332222322322222233133322o......
+......o2w233222222222222331133232o......
+......o2w13332222222222332w123332o......
+......o3w1o111222222222221112232o2......
+...1122o231o11111111123311w122oo22111...
+21111122o3133322222223313122oo2211111112
+13331w122o33oooooooooo233ooo1111www13331
+...1331w11oo1111111112oo321111111w23....
+......333311111wwww1111111www12333......
+.........1333333333P33333333331.........
diff --git a/parts_pl_src/body/pl_y_icecube_b.txt b/parts_pl_src/body/pl_y_icecube_b.txt
new file mode 100644
index 0000000..c862769
--- /dev/null
+++ b/parts_pl_src/body/pl_y_icecube_b.txt
@@ -0,0 +1,63 @@
+# pl_y_icecube_b: from pixellab_src/pl_y_icecube_b/base.png (variant of pl_y_icecube) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 35)
+# head_top at (32, 11)
+# back at (33, 39)
+# tail at (49, 43)
+..............11.............33..............
+..........33................3w23.............
+.........3113...............3222.............
+.........3w13................32.111..........
+.........3213...................111..........
+..........32.................................
+....21................................33.....
+...3w23........3333333^3333333333....31w3....
+....33......33311122222222211111113..1223....
+..........33111132221111122221www113..22.....
+.........31111122222222221111www1113.........
+........31w1w1333333111ww11ww1111313.........
+....11..3111313333323333311ww1131313.........
+........31313333333333333212w113333oo........
+........323133333333333333121113333o3w2......
+........323333o13333331o33331113333o2333.....
+........o233333o333333o333333w33333oo33wo....
+........o2333oo33322333oo3333w33333o3331o....
+.......3o233o1oo333333oo1o333133333323oo.....
+.......3o23o2o1oo3333owoo2o3313333233o.......
+.......3o23owoooo2333oooowo331333ac3o........
+......o2o233w33oo112323oowo331333abo..11.....
+.....321o2333w2232222323232331333bao.........
+....o122o232232322222232322231333bbo.........
+....o222o23aaa2222223222aaa23133332o.11......
+.....oo2o2waaa2223333222aaa231333b2o.........
+.......oo2w33cbc2322322222233133aabo.........
+........o2w2caaac22222222233113baabo.........
+........o2w1obaccab222222331w12baabo.........
+........o3w313bbbbb111123311112bbbo.....aaa..
+.........oo31333222222233131w122oo13...aaaac.
+..aab....32o33ooooooooAo233ooooo1113..3aaaab3
+.aaaab..31wooo333333111woo3ww1111313..3bbabb3
+3aaaab..3111313333323333311ww1132313...obbbo.
+3bbaab..31313333333333333212w113333oo...ooo..
+.obbbo..323133333333333B33121113333o3w2......
+..ooo...323333o13333331o33331113333o2333.....
+........o233333o333333o333333w33333oo33wo....
+........o2333oo33322333oo3333w33333o3331o....
+.......3o233o1oo333333oo1o333133333323oT.....
+.......3o23o2o1oo3333owoo2o3313333233o.......
+..11...3o23owoooo2333oooowo331333ac3o........
+......o2occ3w33oo112323oowo331333abo..11.....
+.....321ocac3w2232222323232331333bao.........
+....o122occc232322222232322231333bco.........
+....o222o23aaa2222223222aaa23133332o.11......
+.....oo2o2waaa2223333222aaa23133bb2o.........
+.......oo2w33bbc2322322cb233313caabo.........
+........o2w2caaac22222baac33113caabo.........
+........o2w1caaabcb22caaab32w12baabo.........
+........o3w1obabbaa22cbbbc21112bbbo2.........
+.....1122o231oabbbb11ccb3311w122oo22111......
+..21111122o313o32222222o313122oo2211111112...
+..13331w122o33oooooooooo233ooo1111www13331...
+.....1331w11oo1111111112oo321111111w23.......
+........333311111wwww1111111www12333.........
+...........13333333333P3333333331............
diff --git a/parts_pl_src/body/pl_y_icecube_c.txt b/parts_pl_src/body/pl_y_icecube_c.txt
new file mode 100644
index 0000000..f8ce6a9
--- /dev/null
+++ b/parts_pl_src/body/pl_y_icecube_c.txt
@@ -0,0 +1,43 @@
+# pl_y_icecube_c: from pixellab_src/pl_y_icecube_c/base.png (variant of pl_y_icecube) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 44)
+# head_top at (32, 27)
+# back at (33, 39)
+# tail at (49, 43)
+............11.............33...........
+........33................3w13..........
+.......3113...............3211..........
+.......3w13.....3333^3333..32.111.......
+.......3213..333wwwwwww1133...111.......
+........32..o21wwwwwwwwwww233...........
+..21......3322www333332wwwww233.....33..
+.3w23....3122www32222231wwwww22o...31w3.
+..33....32wwwww322222222wwwwwww2o..1223.
+.......31wwwww322w2222233332wwww2o..22..
+......32ww13w232222222222223ww32w3o.....
+......32ww3233222222222212223w2333o.....
+..21.322w2222222222222222w223322333o....
+.....322232222222222222221222322233o....
+....32223222222222222222222222222333o...
+....32w22222222222222B22222222222333o...
+...322w22222222222222222222222222233o...
+...32212222oo22222222oo22222222222333o..
+...3222222o2oo222222oo2o2222222222333o..
+..3322222o2ooo22222owoo2o222222223333T..
+.o2322222owooo22222oAoowo222222222233o..
+o12o22222ow33o22222o3oowo222222232223o..
+o33o3222abo2322222223223bb22222233222o..
+.ooo3222bbb222222232222bbbb22222333322o.
+...o3322bbb222233332222bbbb2222233o332o.
+...o332222222223223222222222222333333o..
+....o332222222222222222222222233333oo...
+....o333222222222222222222222333333o....
+.....33332222222222222222222333332o.....
+.....o3333222222222222222233323333o.....
+......o33333322222222333333333333o......
+...1122o33333332333333333333333oo2111...
+21111122o3233333333333323333ooo221111112
+13331w12o223oooooooooo223ooo1111www13331
+...1331w1ooo2111111112ooo21111111w23....
+......333311111wwww1111111www12333......
+.........1333333333P33333333331.........
diff --git a/parts_pl_src/body/pl_y_icecube_d.txt b/parts_pl_src/body/pl_y_icecube_d.txt
new file mode 100644
index 0000000..01c4df4
--- /dev/null
+++ b/parts_pl_src/body/pl_y_icecube_d.txt
@@ -0,0 +1,64 @@
+# pl_y_icecube_d: from pixellab_src/pl_y_icecube_d/base.png (variant of pl_y_icecube) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 34)
+# head_top at (32, 7)
+# back at (33, 39)
+# tail at (42, 43)
+............111.........332.............
+............111.........3113............
+.......33................22...22........
+......3113....................12........
+......3113.....33333^33333333...........
+.......22....33112222221111113..323.....
+...........33112221111221www113.1113....
+..........311122222111111ww1113..12.....
+.........31ww13333111w1ww111313.........
+.....21..31113333333331ww131313.........
+.........313133333333313w133323.11......
+.........3133333333333331133323.11......
+.....22..3133333333333331133323.........
+.........3233333333333332333323.........
+.........3233333333333332333323.........
+.........3233333333333332333323.........
+.........3233333333333332333323.........
+.....11..3233333333333332333323.........
+.....11..3233333333333332333323.........
+.........3233333333333332333323.........
+.........3233oo33333oo332333323.........
+.........323o11o333oo1o32333323..22.....
+.........32owowo333owo1o2333323.........
+.........32owooo333ooowo2333323.........
+.........323w3oo333ooow32333323.........
+.........3233223333332332333323.........
+.........32bbb3333333bbb2333323.........
+.........32bab3333333bab233332o.........
+.........323333333333333233332o.........
+.........323333333333333233332o.........
+.........323333333333333233332o.........
+.........3233333333A3333233332o.........
+.........321333333333333233332o.........
+.........321133333333333233332o.........
+.........321113333333333233332o.........
+.........321111133333333233332o.........
+.........o21111133311B33233332o.........
+........oo2111111111111323o332o.........
+........oo2111111111111123o2o2o.........
+........oo2111111111111123o2o2o.........
+.......o2o2111111111111113o23oT.........
+.......o2o2111111111111113o32oo.........
+.......o3o2111111111111113o32oo.........
+.......o2o2111111111111113o23oo.........
+........oo21111111111111133oo2o.........
+.........o21111111111111133332o.........
+.........o21111111111111133332o...1.....
+......1..o21111111111111133322o...1.....
+.....1...o21111111111111123322o.........
+.........o21111111111111w23322o.........
+.........o21111111111111w23222o.........
+.........o2w111111111111w22332o11.......
+...111111o2w11111111111ww23322o111111...
+1111111111owww122222wwww1222oo1111111111
+13331ww1111ooooooooooooooooo1111www13331
+...1331wwwww111111111111111111111w13....
+......333311111wwww111wwwwwww11333......
+.........1333333333P33333333331.........
diff --git a/parts_pl_src/body/pl_y_ladybug.txt b/parts_pl_src/body/pl_y_ladybug.txt
new file mode 100644
index 0000000..74de1e6
--- /dev/null
+++ b/parts_pl_src/body/pl_y_ladybug.txt
@@ -0,0 +1,42 @@
+# pl_y_ladybug: from pixellab_src/pl_y_ladybug/base.png (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 42)
+# head_top at (31, 29) (from part/probe)
+# back at (31, 33) (from part/probe)
+# tail at (47, 48) (from part/probe)
+..............oooooooooooo..............
+...........ooocccc23322223ooo...........
+.........oo2222bb2233222cccc3oo.........
+.......oo22222222113312bbbbcc22oo.......
+......o22cc22211111^211aabbbbc222o......
+.....o22cbbb211111122111aabbbb222co.....
+....o22cbbbb2111111221111aabb2222cco....
+...o22cbbbbb211111122111111222222ccco...
+...o22bbbbb11111111B21111111122222cco...
+..o2222bbb2111111112211111111222223cco..
+..o22222221ooo113223322311ooo22222222o..
+.o222222221oboo3211222223oobo222222233o.
+.o222222222oooo2112222222oooo22222bbc3o.
+.o2cbb222222oo2o22222222o2oo22222bbbc3o.
+o3ccbbb2222o32o2oooooooo2o23o2222bbbcc3o
+o3ccbbb222o322ooo222222ooo223o222bbbcc3o
+o3cccbb223o23oo2222222222oo32o222bbccc3o
+o3cccbb22o33o322222A2222223o33o22bbccc3o
+o3ccccb22o3o3b11b222222b11b3o3o222cccc3o
+o33ccc22oooob1oo1b2222b1oo1b3ooo22ccc33o
+o3322222ooo31oo1o122221oo1o12ooo2222333o
+o3332222oo321oooo122221oooo122oo2222333o
+o3333222oo221occo122221occo122oo222333oo
+.o333333oo2221bb12111121bb1222oo333T33o.
+.o223333oo22221111111111112222oo333322o.
+..o2223ooo2aaa111111111111aaa3ooo3222o..
+...o322o3o22aa113o1111o311aa23o3o223o...
+....oooo23o3221111oooo1111223o32oooo....
+......o32ooo3221111111111223ooo33o......
+.....o22oooooo222111111222oooooo22o.....
+.....o23o...oooo32222223oooo...o32o.....
+....o23o....o33oooooooooo33o....o32o....
+....ooo....o223o........o322o....ooo....
+...........o22o..........o22o...........
+..........o23o............o32o..........
+..........ooP..............ooo..........
diff --git a/parts_pl_src/body/pl_y_ladybug_b.txt b/parts_pl_src/body/pl_y_ladybug_b.txt
new file mode 100644
index 0000000..9fa666f
--- /dev/null
+++ b/parts_pl_src/body/pl_y_ladybug_b.txt
@@ -0,0 +1,64 @@
+# pl_y_ladybug_b: from pixellab_src/pl_y_ladybug_b/base.png (variant of pl_y_ladybug) (pixellab_library.py extract)
+# pivot at (24, 60)
+# aura at (31, 32)
+# head_top at (31, 3)
+# back at (31, 33)
+# tail at (48, 48)
+................ooo^oooo................
+..............oo33333333oo..............
+............ooc3333333333coo............
+...........occc3311332233ccco...........
+..........o3ccc1111331113ccc3o..........
+.........o33ccb1111331111bcc33o.........
+........o333caa1111331111bbc333o........
+.......o3332aaa1111331111bbb3333o.......
+.......o3322aab1111331111bbb2333o.......
+......o33221abb1111331111bbbb2333o......
+.....o332221abb1111331111bbbb22333o.....
+.....o322112bbb1111331111bbbb22333o.....
+....o3321112bbb1111331111bbbb222333o....
+....o3321122bbb1111331111bbbb222333o....
+...o33221122bbb1111331111bbbb2223333o...
+...o33221122bbb1111331111bbbb2222333o...
+..o333222222bbb1111331111bbbb22223333o..
+..o333bbbb22bbb1111331111bbbb2222bcc3o..
+..o33cbbbbb2bbb1111331111bbbb222bbccco..
+..o33bbbbbb2bbb1111331111bbb2222bbbcco..
+.o33bbbbbbb2bbb1111331111bbb2222bbbccco.
+.o33bbbbbbb2bbb1111331111bbb2222bbbccco.
+.o33bbbbbbb2bbb1111331111bbb22222bbccco.
+o3332bbbbb22bbb1111331111bbb22222bbcc33o
+o33322bbbb22bbb1111331111bbb22222223333o
+o33322222222bbbb11133111bbb222222223333o
+o332222222222bbb11133111bbb222222223333o
+o332222222222bbb11133111bbb222222223333o
+o332222222222bbb11133111bbb222222223333o
+o332222222222bbb111A3111bbb222222223333o
+o3cbbb2222222bbb222B3222bbb2222222bccc3o
+occbbbb222222bbb22233222bb22222222bcccco
+occcbbbb222ooobb33333333bbooo2222bbcccco
+occcbbbb222oboo3211222223oobo2222bbcccco
+occccbbb222oooo2112222222oooo2222bccccco
+occccbbb2222oo222222222222oo32222cccccco
+o3ccccb2222o322ooooooooo2223o32233ccccco
+o33ccc3322o323oo3333333ooo323o23333ccc3o
+o333333332o33oo2222222222oo33o333333333o
+.o3333333o33o32222222222223o33o3333333o.
+.o3333333o3o3bwwb222222bwwb3o3o3333333o.
+.o333333oooobwoowb2222bwoowb3ooo333333o.
+..occc33ooo3woowow2222woowow2ooo333cco..
+..occcc3oo32woooow2222woooow23oo33ccco..
+...occccoo32woccow2222woccow23oo3ccco...
+...occccoo322wbbw211112wbbw223oo3cccT...
+....occ3oo3222ww11111111ww2223oo333o....
+.....ocooo3aaa111111111111aaa3ooo3o.....
+......oo3o32aa113o1111o311aa23o3oo......
+.......o23o3221111oooo1111223o32o.......
+......o33ooo3231111111111223ooo33o......
+.....o22oooooo322111111222oooooo22o.....
+.....o33o...oooo32222223oooo...o33o.....
+....o23o....o33oooooooooo33o....o32o....
+....ooo....o223o........o322o....ooo....
+...........o33o..........o33o...........
+..........o23o............o32o..........
+..........ooP..............ooo..........
diff --git a/parts_pl_src/body/pl_y_ladybug_c.txt b/parts_pl_src/body/pl_y_ladybug_c.txt
new file mode 100644
index 0000000..65407a4
--- /dev/null
+++ b/parts_pl_src/body/pl_y_ladybug_c.txt
@@ -0,0 +1,40 @@
+# pl_y_ladybug_c: from pixellab_src/pl_y_ladybug_c/base.png (variant of pl_y_ladybug) (pixellab_library.py extract)
+# pivot at (38, 48)
+# aura at (31, 32)
+# head_top at (31, 15)
+# back at (31, 33)
+# tail at (40, 48)
+........................ooooo^oooooo........................
+.....................ooocccc23322233oo......................
+....................oo222bb2233222cccooo....................
+..................oo2222222113312bbbcc32oo..................
+.................o33cc22111112211aabbbc222o.................
+................o33cbb211111122111aabbb222co................
+...............o23cbbb2111111221111abb2222cco...............
+..............o22cbbbb21111112211111222222ccco..............
+..............o22bbbbc111111122111111122222cco..............
+.............o2222bbc2oo113223322311oo222223cco.............
+............oo2322222oooo3322332333ooo22222233oo............
+............o22222222oooo2112222223ooo22222bbc3o............
+............o3cbb22222oo2o22222222o2o32222bbbc3o............
+...........o3ccbbb222o32o2oooooooo2o3o2222bbbcc3o...........
+.........ooo3ccbbb22o322ooo222222ooo23o222bbbcc3ooo.........
+........o22o3cccbb23o33oo2222222222oo3o322bbccc3o22o........
+.......o222o3cccbb2o33oo222222222222oo3o22bbccc3o222o.......
+......o2222o3ccccb2ooo3b11b22A222b11cooo222cccc3o2222o......
+.....o22222o33ccc2oooob1oo1b2B22b1ooaoooo22ccc33o22222o.....
+....o2222bbo332222ooo31oo1o122221oo1o3ooo2222333obb222o.....
+....o2222bbo333222oo321oooo122221oooo23oo2222333obbb222o....
+...o2222bbbo333322oo321occo122221occo23oo222333oobbbb222o...
+..o22222bbcco32333oo3222bb12111121bb123oo333333ocbbbb2222o..
+.o2222223ccc3o232ooo3aaa111111111111aa3ooo3332o33ccc222222o.
+o22333333333ooo322oo32aa113o1111o311a23ooo223oo333333333322o
+ooooooooooooo33oooooo3221111oooo111123oo2oooo3oooooooooooooo
+...........o22333ooooo322111111111123ooo33o3332o............
+...........o33ooo2oooooo222111111222ooooo22ooo3o............
+..........o3oo..o3o...oooo32222223ooo...o33o..o3o...........
+..........ooo..o2oo...o33oooooooooooo....o32o..oo...........
+...............ooo...o223o........oo2o....ooo...............
+.....................o33o..........o3o......................
+....................o23o............o2o.....................
+....................ooo.............PoT.....................
diff --git a/parts_pl_src/body/pl_y_ladybug_d.txt b/parts_pl_src/body/pl_y_ladybug_d.txt
new file mode 100644
index 0000000..f7afbaa
--- /dev/null
+++ b/parts_pl_src/body/pl_y_ladybug_d.txt
@@ -0,0 +1,52 @@
+# pl_y_ladybug_d: from pixellab_src/pl_y_ladybug_d/base.png (variant of pl_y_ladybug) (pixellab_library.py extract)
+# pivot at (28, 59)
+# aura at (31, 35)
+# head_top at (31, 14)
+# back at (31, 33)
+# tail at (47, 48)
+................oooooo^ooooooo................
+.............oooccccc333333333ooo.............
+...........oo3333bbc3333333ccccc3oo...........
+........ooo333222222113312cbbbbcc33ooo........
+.......o333cc22211111133112aabbbbc3333o.......
+......o333cbbb21111111331112aabbbb2333co......
+.....o333cbbbb211111113311111aabb22233co......
+....oo33cbbbbb211111113311111223322223cco.....
+....o33cbbbbbb211111113311111112222222ccco....
+....o33bbbbbb11111111133111111111222222cco....
+..oo3322bbbb2111111111331111111112222223cco...
+..oo33222222ooo111133333333111ooo222222233o...
+.oo332222222oboo322111222222ooobo2222222233o..
+.oo332222222ooooo21112222222ooooo2222222233o..
+.oo3cbb2222222oo2o222222222o2ooo2222222bbc3o..
+oooccbbc22222o22o2ooooooooo3o22o222222bbbc3o..
+oooccbbb2222oo22oooo3333333oo223o22222bbbcc3oo
+oooccbbb2222o33oo32222222223oo33oo2222bbbcc3oo
+ooocccbb222o3ooo33322222222223oooo2222bbccc3oo
+ooocccbb222ooo32222222B22222223oooo222bbccc3oo
+oooccccb223oo322www22222222www22ooo2222cccc3oo
+oo3occcb22oo322wooow22A222wooow22oo2222ccco3oo
+oo33ccc322oo32wooowo22222wooowow23o2223ccc33oo
+oo33333333o322wooooo22222wooooow22o333333333oo
+oo3333333oo322wobcco22222wobboow22o333333333oo
+oo3333333oo3222wbbbw111111wbbbw222oo3333333ooo
+.oo333333oo32222ww111111111www2222oo3333333o..
+.oo333333oo32aaa11111111111111aaa2oo3333333o..
+.oo333333oo322aa1113o1111o1111aa22oo3333333o..
+...o333333o3222111111oooo311111222oooo3333o...
+....o322oooo322111111111111111122oooo2223o....
+.....oooo2oooo222111111111111223ooo22oooo.....
+.......o223oooo322221111112222ooooo22o........
+......o3233ooooooo332222222oooooooo222o.......
+......o333oooo3333ooooooooo3332oooo222T.......
+.....o223oooo222o333333333333322ooooo22o......
+.....o22oo.o222oo322222222222o322o.oo22o......
+.....o23ooo223ooo311111111122ooo22o.oo2o......
+.....o33o.o223ooo211111111112ooo22o.oooo......
+....o23oo.o22oooo311111111122ooo22o..oo2o.....
+....oooo..o22o.o22321111112222oo22o..oooo.....
+...........oo..o222o3222233222o.oo............
+...............o3333oooooo2223o...............
+................o333o....o223o................
+...............o222o......o222o...............
+...............ooooP......ooooo...............
diff --git a/parts_pl_src/body/pl_y_lotus.txt b/parts_pl_src/body/pl_y_lotus.txt
new file mode 100644
index 0000000..abc2701
--- /dev/null
+++ b/parts_pl_src/body/pl_y_lotus.txt
@@ -0,0 +1,44 @@
+# pl_y_lotus: from pixellab_src/pl_y_lotus/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 43)
+# head_top at (31, 29) (from part/probe)
+# back at (31, 41) (from part/probe)
+# tail at (37, 55) (from part/probe)
+.............oo.............
+............oao.............
+...........obabo............
+..........obaabboo..........
+.........ocbaaaabco.........
+........obcbaaaabcbo........
+........obcba^aabcbo........
+.......oobcbaaaabcboo.......
+.......o2bcbabaabcb2o.......
+......o22occabaabco22o......
+......o211occbabbo112o......
+.....o32111occbbo11122o.....
+.....o321111ocbo111123o.....
+.....o22ooo11oo11ooo23o.....
+.....o3o2woo1111oow2o3o.....
+.ooooo3o1ooo2111ooo1o3ooooo.
+obabbco31ooo2112ooo13ocbbabo
+.obabbo33222222222233obaabo.
+..obbcco3322oBoo2233occbbo..
+...oocccoo333223333occcco...
+.....oooooo33A333ooooooo....
+......obbbcooooooccbboo.....
+......obabboo333ocbaabo.....
+......oabbo.o333ooobbao.....
+.......ooo..o333o..ooo......
+............o222o...........
+...........o1222o...........
+...oooo...o2112o............
+.ooa233o.o2112o.....oooooo..
+obaaa23oo2112o.....o22aabbo.
+obba223o21112o.....o32aaaabo
+.oo3333o2122o.....oo322abbo.
+...ooooo2223o...oo2T3333oo..
+.......o32233ooo2233oooo....
+.......o333333222333o.......
+........o3333322333o........
+.....ooooo33333333ooooo.....
+.......ooooooPooooooo.......
diff --git a/parts_pl_src/body/pl_y_lotus_b.txt b/parts_pl_src/body/pl_y_lotus_b.txt
new file mode 100644
index 0000000..0194ccc
--- /dev/null
+++ b/parts_pl_src/body/pl_y_lotus_b.txt
@@ -0,0 +1,54 @@
+# pl_y_lotus_b: from pixellab_src/pl_y_lotus_b/base.png (variant of pl_y_lotus) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 36)
+# head_top at (31, 13)
+# back at (31, 41)
+# tail at (43, 55)
+..............^o..............
+..............oco.............
+.........oo..occco............
+........obo.ocacaco..oo.......
+........obcooaacaco.obo.......
+.......obbcoaaacaaoobbbo......
+....oo.obccoaaacaaaobcbbo.....
+....oboobcoaaaacaaaoccbbo.....
+....obboccoaaaccaabcocbooo....
+....obbaooobaaccaabcocoaco....
+....oabaaoobaaccabbcooabco....
+....oabbaaobbboobbbocaaccco...
+....oaabaabobo11obcoaaacaco...
+....oaabaaboo1111oobaabcaco...
+oooooaaababo211a11obaaccaooooo
+oaaaocaabco2111a112oabcbcoaaao
+oabaaobbbbo1111a112occcccoabco
+oaacacobbco3111a122occccoaccao
+.oaacccocco3211a123occoobcbaco
+.ocaacccooo33211133oooocccbco.
+..occcco221o332233o222occcco..
+...occco2111o3333o11122oooo...
+....ooo221111o33o111123o......
+......o22ooo11Ao11ooo23o......
+......o2o2woo1111oow2o3o......
+..ooooo3o1ooo1111ooo1o3ooooo..
+.ocabbco31ooo2112ooo13occbaco.
+..ocabbo33222222222233ocbaco..
+...occcco3322oBoo2233occcco...
+....oocccoo333223333occcco....
+......oooooo333333ooooooo.....
+.......occccoooooocccboo......
+.......ocbbcoo333ocbbaco......
+.......oacco.o333oooccao......
+........ooo..o333o..ooo.......
+.............o222o............
+............o1222o............
+....oooo...o1112o.............
+..ooa233o.o1112o.....oooooo...
+.obaaa23oo1111o.....o22babco..
+.ocbb222o11112o.....o32baabbo.
+..oo3333o1112o.....oo322bbco..
+....ooooo2113o...oo2o3333oT...
+........o32233ooo2233oooo.....
+........o333333222333o........
+.........o3333322333o.........
+......ooooo33333333ooooo......
+........ooooooPooooooo........
diff --git a/parts_pl_src/body/pl_y_lotus_c.txt b/parts_pl_src/body/pl_y_lotus_c.txt
new file mode 100644
index 0000000..61f9007
--- /dev/null
+++ b/parts_pl_src/body/pl_y_lotus_c.txt
@@ -0,0 +1,49 @@
+# pl_y_lotus_c: from pixellab_src/pl_y_lotus_c/base.png (variant of pl_y_lotus) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (31, 40)
+# head_top at (31, 18)
+# back at (31, 41)
+# tail at (43, 55)
+.............^o.............
+............obbo............
+...........obbabo...........
+..........obbaabbo..........
+.........ocbaaaabco.........
+........oocbaaaabcoo........
+.......obocbbaaabcoco.......
+.......oboccbbabbcobo.......
+.......obooccbbbboobo.......
+.......ocaboooooooaao.......
+......ooccbbaaabaaccoo......
+.....oboooccccbbbbcoobo.....
+.....obo33ooccccooo2obo.....
+.....obboo223222222oabo.....
+.....occaabooooooooaaco.....
+......occbbbaaaaaabbcoo.....
+.....o2oocccccbbbbcco2o.....
+.....o221ooooccooo1223o.....
+.....o22ooo11oo11ooo23o.....
+.....o3o2aoo1111ooa2o3o.....
+.ooooo3o1ooo2112ooo1o3ooooo.
+obabbco31ooo2112ooo13ocbbabo
+.obabbo332222A2222233obbabo.
+..obbcco3322oBoo2233occbbo..
+...oocccoo333223333occcco...
+.....oooooo333333ooooooo....
+......ocbccooooooccbbo......
+......oobbo.o333ooobao......
+.......ooo..o333o..oo.......
+............o333o...........
+............o222o...........
+...........o2222o...........
+...oooo...o2112o............
+.ooa233o.o2112o.....oooooo..
+obaaa23oo2112o.....o22babbo.
+obba222o21112o.....o32aaaabo
+.oo3333o2122o.....oo322bbbo.
+...ooooo2223o...oo2o3333oT..
+.......o32233ooo2233oooo....
+.......o333333222333o.......
+........o3333322333o........
+.....ooooo33333333ooooo.....
+.......ooooooPooooooo.......
diff --git a/parts_pl_src/body/pl_y_match.txt b/parts_pl_src/body/pl_y_match.txt
new file mode 100644
index 0000000..47149cb
--- /dev/null
+++ b/parts_pl_src/body/pl_y_match.txt
@@ -0,0 +1,46 @@
+# pl_y_match: from pixellab_src/pl_y_match/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 38)
+# head_top at (31, 24) (from part/probe)
+# back at (31, 42) (from part/probe)
+# tail at (35, 54) (from part/probe)
+.......oooooo.......
+.....oobbbbbboo.....
+....obaaaaaabbbo....
+...oba111^aaaabbo...
+..oba1111aaaaaabbo..
+.obba111aaaaaaabbco.
+.obbaaaaaaaaaabbbco.
+.obaaaaaaaaaaabbbco.
+ocbaaaaaaaaaababbcco
+ocbbbaaaaaabbbbbbcco
+ocbbboooabbbooobbcco
+occbbo1obbbb1oobbcco
+.ocbboo2bbbbo2obcco.
+.occbooobbbbooobcco.
+..occbbbbbbbbbccco..
+...occcboooocccco...
+....occcccccccco....
+.....occcAcccco.....
+......oooooooo......
+.......oo33oo.......
+.......o3223o.......
+.......o2B23o.......
+.......o11zzo.......
+.....ooo11zzooo.....
+....oo1o11zzo1oo....
+...o21oo11zzoo12o...
+...o2o.o11zzo.o3o...
+..oooo.o11zzo.oooo..
+..oboo.o11zzo.oobo..
+..oboo.o11zzo.oobo..
+...oo..oz1zzo..oo...
+.......oz1zbo.......
+.......ozbbbo.......
+......o2obbo2T......
+......o1oooo1o......
+.....ob3o..o2bo.....
+.....ob3o..o3bo.....
+.....o2oo..oo3o.....
+....ob3oo..ooobo....
+.....ooP....ooo.....
diff --git a/parts_pl_src/body/pl_y_match_b.txt b/parts_pl_src/body/pl_y_match_b.txt
new file mode 100644
index 0000000..8327013
--- /dev/null
+++ b/parts_pl_src/body/pl_y_match_b.txt
@@ -0,0 +1,52 @@
+# pl_y_match_b: from pixellab_src/pl_y_match_b/base.png (variant of pl_y_match) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 34)
+# head_top at (31, 15)
+# back at (31, 42)
+# tail at (35, 54)
+...........oo^ooo...........
+.........ooaaaaaaoo.........
+.......oobaaaaaaaaaoo.......
+......obaaaaaaaaaaaabo......
+.....obaaa111aaaaaaaabo.....
+....oaaa11111aaaaaaaaaao....
+...oaaaa11111aaaaaaaaaabo...
+..obaaaa11111aaaaaaaaaabbo..
+..obaaaaaaa11aaaaaaaaaabbo..
+.obbaaaaaaaaaaaaaaaaaabbbbo.
+.obbaaaaaaaaaaaaaaaaaabbbbo.
+.obbaaaaaaaaaaaaaaaaaabbbbo.
+ocbbaaaaaaaaaaaaaaaaabbbbbco
+ocbbaaaaaaaaaaaaaaaaabbbbbco
+ocbbbaaaaaaaaaaaaaaabbbbbbco
+ocbbbbaaaoooaaaaoooabbbbbcco
+occbbbbbaowoaaaawoobbbbbbcco
+occbbbbbboo2baaao2obbbbbbcco
+.occbbbbbooobbbbooobbbbbcco.
+.occcbbbbbbbbAbbbbbbbbbbcco.
+.occcbbbbbbboooobbbbbbcccco.
+..occccbbbbbbbbbbbbbbcccco..
+...occccbbbbbbbbbbbbcccco...
+....occccccbbbbbbcccccco....
+.....occcccccccccccccco.....
+......ooccccccccccccoo......
+........oooooooooooo........
+...........ooBooo...........
+..........o122oooo..........
+.........o111zzzz2o.........
+........o12z11zzzo2o........
+.......o21oz11zzoo23o.......
+.......o2o.o11zzo.o3o.......
+......oooo.o11zzo.oooo......
+......oboo.o11zbo.oobo......
+......oboo.oz1zbo.oobo......
+.......oo..ozzzbo..oo.......
+..........o1bbbz1o..........
+..........o1booz1o..........
+..........o1o..o1T..........
+..........o1o..o1o..........
+.........ob3o..o3bo.........
+.........ob3o..o3bo.........
+.........o2oo..oo2o.........
+........ob3oo..ooobo........
+.........ooP....ooo.........
diff --git a/parts_pl_src/body/pl_y_match_c.txt b/parts_pl_src/body/pl_y_match_c.txt
new file mode 100644
index 0000000..78ef7e9
--- /dev/null
+++ b/parts_pl_src/body/pl_y_match_c.txt
@@ -0,0 +1,46 @@
+# pl_y_match_c: from pixellab_src/pl_y_match_c/base.png (variant of pl_y_match) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (31, 38)
+# head_top at (31, 21)
+# back at (31, 42)
+# tail at (35, 54)
+.......oo^ooo.......
+.....ooaaaaoboo.....
+....oboaaaaacbco....
+...obao11aaaobbco...
+..oba1oo1aaaaobbbo..
+.obba1ooaaaaaobbcbo.
+.ocbaoaaoaaaaoobcco.
+.ocbooaaoaaaobbocco.
+occbooaaaoacbbbbccco
+ocbobbcbboabbbbbccco
+ocbcboooccbbooobccbo
+obccbowobcbbwooccobo
+.occcoo2bbbco2occbo.
+.occcooobbboooobcco.
+..ocbbcccccbobbbco..
+...occbcoooobccbo...
+....ocbbccccbcco....
+.....occbAccbco.....
+......oooooooo......
+.......oo33oo.......
+.......o3223o.......
+.......o1B23o.......
+.......o11zzo.......
+.....ooo11zzooo.....
+....oo1o11zzo1oo....
+...o21oo11zzoo12o...
+...o2o.o11zzo.o3o...
+..oooo.o11zzo.oooo..
+..oboo.o11zzo.oobo..
+..oboo.o11zzo.oobo..
+...oo..oz1zzo..oo...
+.......oz1zbo.......
+.......ozbbbo.......
+......o2obbo2T......
+......o1oooo1o......
+.....ob3o..o2bo.....
+.....oc3o..o3co.....
+.....o2oo..oo3o.....
+....ob3oo..ooobo....
+.....ooP....ooo.....
diff --git a/parts_pl_src/body/pl_y_match_d.txt b/parts_pl_src/body/pl_y_match_d.txt
new file mode 100644
index 0000000..f7536e4
--- /dev/null
+++ b/parts_pl_src/body/pl_y_match_d.txt
@@ -0,0 +1,57 @@
+# pl_y_match_d: from pixellab_src/pl_y_match_d/base.png (variant of pl_y_match) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (32, 30)
+# head_top at (31, 10)
+# back at (31, 42)
+# tail at (36, 54)
+............oooo^ooooo............
+..........oobbbbbbbbbboo..........
+........oobbbbbbbbbbbbbboo........
+.......obbaaaaaaaaabbbbbbbo.......
+......obbaa111aaaaabbbbbbbbo......
+.....obbaa11111aaaaaaabbbbbbo.....
+....obba1111111aaaaaaabbbbbbbo....
+...obbba1111111aaaaaaabbbbbbbco...
+..obbbbaa11111aaaaaaaabbbbbbbbco..
+..obbbbaaaaaaaaaaaaaabbbbbbbbbco..
+.ocbbbbaaaaaaaaaaaaabbbbbbbbbbcco.
+.ocbbbbbaaaaaaaaaaabbbbbbbbbbbcco.
+.ocbbbbbbbbbbbbbbbbbbbbbbbbbbbcco.
+occbbbbbbbbbbbbbbbbbbbbbbbbbbbccco
+occbbbbbbbbbbbbbbbbbbbbbbbbbbbccco
+occbbbbbbbbcc33333333ccbbbbbbbccco
+occbbbbbb3333333333333333bbbbbccco
+occbbbbb333333311111223333bbbbccco
+occcbbbc3oooo11111112oooo3bbbcccco
+.occcbb3oooooo111111oooooo3bbccco.
+.occcbb3oowooo111A11owooco3bbccco.
+..occcc3oooooo111111ooooco3cccco..
+..occcc3oaoocc111111oooawo3cccco..
+...occc31obbbo111111o333o23ccco...
+....occ312ooo11111111ooo323cco....
+....occ31111111111111112223cco....
+.....occ3111111oooo1111223cco.....
+......occ3311111111111133cco......
+.......ooo33311111111333ooo.......
+..........ooo33333333ooo..........
+.............oooooooo.............
+.............ooo33ooo.............
+............o123B3322o............
+...........o2111122111o...........
+...........o13z11yy131o...........
+..........o12oz11yyzo32o..........
+..........o23oz11yyzoo23o.........
+.........o33ooz11yyzoo33o.........
+.........o3oooz11yyzooooo.........
+.........oboooz11yyzo.oobo........
+.........oboooz11yyzo.oobo........
+..........oo.ozzzzzzoo.oo.........
+............o22zzzz32o............
+............o213zz312o............
+............o213oo311T............
+............o23o..o31o............
+............o33o..o33o............
+............oboo..oobo............
+............o3oo..oo3o............
+...........ob3oo..oo3bo...........
+............ooP....ooo............
diff --git a/parts_pl_src/body/pl_y_mongoose.txt b/parts_pl_src/body/pl_y_mongoose.txt
new file mode 100644
index 0000000..62e20fd
--- /dev/null
+++ b/parts_pl_src/body/pl_y_mongoose.txt
@@ -0,0 +1,42 @@
+# pl_y_mongoose: from pixellab_src/pl_y_mongoose/base.png (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (33, 43)
+# head_top at (34, 30) (from part/probe)
+# back at (31, 43) (from part/probe)
+# tail at (41, 56) (from part/probe)
+........ooo.............ooo...
+.......o322o...........o213o..
+......o3oo22o..........o2oo3o.
+......o3cco1o.........o2obc3o.
+......o3ccco3ooooooooo3occc3o.
+......o3aacoo3322^2233oocaaoo.
+......o3acoo3222a2a2223oocaoo.
+.......o33o32211a1a11223o33o..
+........ooo32222222222133oo...
+.........o322222222222223o....
+.........o32o32222222oo23o....
+.........o322o3222223o223o....
+.........o32ooo22222ooo23o....
+.........o33owo22222owo33o....
+........o133coo21112oob331o...
+.........o32aob2aaa2boa23o....
+......oo.o32aab2ccc2baa23ooo..
+.....o21o.o332223c322233oo21o.
+....o212oo.oooB2A22233oo.o221o
+....o223o2o..oo33333oo..oo322o
+.....ooo2oo.o3ooooooo3o.o2ooo.
+.....o33ooco22333333o33coo33o.
+..o...oooaao233333333o3caooo..
+.oo...occcc33o3222222oooccco..
+.2o....ooooo.o3222222oooooo...
+o2o.........o32222222o........
+o2o........o332222222oo.......
+o32.......o2232222222o2o......
+o32.......o2223222222o22o.....
+o3ao.....o21223322223o212o....
+.c32o...oo22233o333oo3222o....
+.oo32coooo33333ooooo3333T.....
+..o33cooooo333o.....o333o.....
+...oocoooo233o......o33o2o....
+.....oooo2323o......o33232o...
+........ooooP........oooooo...
diff --git a/parts_pl_src/body/pl_y_mongoose_b.txt b/parts_pl_src/body/pl_y_mongoose_b.txt
new file mode 100644
index 0000000..328a41c
--- /dev/null
+++ b/parts_pl_src/body/pl_y_mongoose_b.txt
@@ -0,0 +1,45 @@
+# pl_y_mongoose_b: from pixellab_src/pl_y_mongoose_b/base.png (variant of pl_y_mongoose) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (33, 43)
+# head_top at (34, 26)
+# back at (31, 43)
+# tail at (43, 56)
+........ooo.............ooo.....
+.......o312o...........o213o....
+......o3oo12o..........o1oooo...
+......o3cco1o.........o1occoo...
+......o3ccco3oooo^oooo3occcoo...
+......o3bbcoo332222233oocbboo...
+......o3bcoo3212b2b1123oocboo...
+.......o33o32211b1b11213o33o....
+........ooo32112211112133oo.....
+.........o322112121122123o......
+.........o32o32111111oo23o......
+.........o322o3211113o223o......
+.........o32ooo11111ooo23o......
+.........o33owo12221owo33o......
+.........133coo21112ooc331......
+.........o32boc2bab1cob23o......
+.........oo2bbc1ccc1cbb23o......
+.......oo3ooo2213c312233oo......
+......o1133oo332221233oo33o.....
+.....o1111ooooo33333oooo311o....
+....o311111ooooooooo33333111o...
+....ob11131112BoAo3333111o21bo..
+...o3bbc33112221211111111o3cbo..
+...o21bcocc11121121111112boc13o.
+..obb133occbbbbbbbbbbbbbbbo31bo.
+..obbbcco11bbbb111111bbb113obbo.
+.oo111coo121111121211111113ob12o
+.2o212ooo112211111111112111o212o
+o2o31o33o111112111111111211oo1oo
+o2ooooooo212111111111111111oooo.
+o3oooooooo11211111111111123oooo.
+o3o....oooo2211111111112233o....
+o3bo...oooo322112112112233oo....
+.co2oooocooo332222112223ooo.....
+.oo31c3occcooo3333333oooccT.....
+..o33c3oocccooooooooooocco......
+...ooc33oo333o......ooo33o......
+.....ooo22133o......oo3111o.....
+.......oooooP........oooooo.....
diff --git a/parts_pl_src/body/pl_y_mongoose_c.txt b/parts_pl_src/body/pl_y_mongoose_c.txt
new file mode 100644
index 0000000..f669024
--- /dev/null
+++ b/parts_pl_src/body/pl_y_mongoose_c.txt
@@ -0,0 +1,42 @@
+# pl_y_mongoose_c: from pixellab_src/pl_y_mongoose_c/base.png (variant of pl_y_mongoose) (pixellab_library.py extract)
+# pivot at (30, 60)
+# aura at (33, 42)
+# head_top at (34, 25)
+# back at (31, 43)
+# tail at (43, 56)
+........ooo....oo^oo....oooo...
+......oo112o.oo32211oo.o2111o..
+.....o313322oo22221122o323312o.
+.....o12cco2o322222212o2occ22o.
+.....o22acc32332222aa222cca23o.
+.....oo2c3322233122aa22222c33o.
+......o333222223322c2222a22ooo.
+......oo32caa2223332222caa23o..
+.....o33222c222222222222c2122o.
+.....o32222222222222322222222o.
+.....o31122333323223233222222o.
+....o3322222333oo3333333222212o
+....o3222223ooo22333oooo232222o
+....o3ca232oowo22222owoo323223o
+....o3cc22oocoo21112ooc3322223o
+....o33222o3boc2aaa2cob2o2ca2oo
+.....oo3322obb22ccc22bb3o2cc3o.
+......oo322oo222Ac32222o3223oo.
+......oo33321oB22222ooo3333oo..
+.....oo2oo33333ooooo33333ooo2o.
+....o32223ooo3333333333ooo3212o
+....o3a12233oooooooooooo332212o
+..o.o3a2223o333333333333o322aao
+.oo.o322233o322333333123o322aao
+.2o.oo3233o32211133111223o3223o
+oao..o333o332a22133112223o3333o
+oao..ooooo332a22222222a23ooooo.
+o2o......o333c22222222c33o.....
+o2o.....o32oo33222222333o3o....
+o3bo....o322oo333333333322o....
+.o22ooo.o3aa2oo333333o32aao....
+.o332a2oo3cc233o3333o332c3T....
+..o33c3ooo33333ooooo33333o.....
+...oocooooooo3o.....o3oooo.....
+.....oooo22233o.....o33222o....
+........oooooP.......oooooo....
diff --git a/parts_pl_src/body/pl_y_mongoose_d.txt b/parts_pl_src/body/pl_y_mongoose_d.txt
new file mode 100644
index 0000000..af1ad36
--- /dev/null
+++ b/parts_pl_src/body/pl_y_mongoose_d.txt
@@ -0,0 +1,42 @@
+# pl_y_mongoose_d: from pixellab_src/pl_y_mongoose_d/base.png (variant of pl_y_mongoose) (pixellab_library.py extract)
+# pivot at (29, 60)
+# aura at (33, 43)
+# head_top at (34, 28)
+# back at (31, 43)
+# tail at (42, 56)
+........ooo.............ooo...
+.......o312o...........o213o..
+......o3oo22o.........o32oo3o.
+......o3bbo1o..oo^oo..o2obboo.
+......o3bbbo3oo22211oo3obbboo.
+......o3aaboo3o22211o3oobaaoo.
+......o3aboo21o22121o12oobaoo.
+.......o33o221o22221o122o33o..
+........oo2o22o22221o22o2oo...
+........oo2oooo22222oooo2oo...
+........o23oooo22222oooo22o...
+........o2oo3ooooooooo3oo2o...
+........oo3ooooo3333ooooooo...
+........oo1oowo22222owoo23o...
+........oo1oboo21112oobo13o...
+........oo1oaoc2aaa2coao13o...
+......ooooo2oac2bbb2cao13ooo..
+.....o22ooo21oo23b32oo123o21o.
+....o212o.ooo1BoAooo11ooooo21o
+....o222o.o3o33o111oooooo2o22o
+....o22o23o31ooooooooo32o21o2o
+.....oo23o2o23oooooooo2o2o23o.
+..o...oo333boo3221222oobo3oo..
+.oo...oo333bo3o22122o3obboo...
+.2o.....ooooo32ooooo22oooo....
+o2o........oooo22222ooo.......
+o2o........ooooooooooooo......
+o32.......o11oo221233o1o......
+o32......oo222o22123o221o.....
+ooao.....ooo22ooooooo22oo.....
+.bo2o...oo122o3o222o3oo21o....
+.oo32boooo222oo.oooo3oo22T....
+..o3obooooooo3o.....o3ooo.....
+...ooboooo223o......o3321o....
+.....oooo2323o......o33231o...
+........ooooP........oooooo...
diff --git a/parts_pl_src/body/pl_y_opossum.txt b/parts_pl_src/body/pl_y_opossum.txt
new file mode 100644
index 0000000..b13a3ed
--- /dev/null
+++ b/parts_pl_src/body/pl_y_opossum.txt
@@ -0,0 +1,45 @@
+# pl_y_opossum: from pixellab_src/pl_y_opossum/base.png (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (31, 42)
+# head_top at (31, 25) (from part/probe)
+# back at (29, 40) (from part/probe)
+# tail at (44, 54) (from part/probe)
+................o..................
+...............11o.................
+............o..o11o..o.............
+......ooo..o1oo11^1oo1o..ooo.......
+.....o333o.12221111312o.o333o......
+....o33333oo22111112123o33333o.....
+...o33ooo3o222211112222o3ooo33o....
+...o3ooooo22122211222122ooooo3o....
+...o3ooooo11112221221111ooooo3o....
+...o33oooo11111322311111oooo33o....
+....o33ooo122111321111223oo33o.....
+.....o33323oo311111113o32333o......
+......oo323cwo3111123oc322oo.......
+......o3223wooo11113oow3223o.......
+.....o11212bbbo11112cbb21211o......
+...o222211111111aa111111112222o....
+...oo2111331111baaa1111331112oo....
+....ooo221131111oao11131122ooo.....
+...o33o22311311Bbb111o11322o3oo....
+..o322obo22213oooooo31222obo22oo...
+..o1123oo32222111A1122223oo3211o...
+..o12223o3b22223333222233o32221o...
+.occ2233obo222222222222o3o3322cco..
+.o2223333o3ob322222222o3o3333222o..
+.o2223333333oo2222232o3333333222o..
+o3322333333333o2222oo333333332233o.
+o333333o3333333obbo3333333o333333o.
+oo333co333221133ob331122333oc333oo.
+.oc3bco3322111113o111112233ocb3co..
+.ocbbao32211111111111111223oabbcoo.
+.ocaobo32211111111111111223oaobco3o
+..oaoo3322211111111111122233ooao23o
+...ooo3332222111111112222333ooT22o.
+......o33322222222222222333o32223o.
+......o33333222222222233333oooooo..
+......oo3333oooooooooo3333oo.......
+.....occcccoo........ooccccco......
+....oacacaco..........ocacacao.....
+.....oooooo............Pooooo......
diff --git a/parts_pl_src/body/pl_y_opossum_b.txt b/parts_pl_src/body/pl_y_opossum_b.txt
new file mode 100644
index 0000000..53fcc18
--- /dev/null
+++ b/parts_pl_src/body/pl_y_opossum_b.txt
@@ -0,0 +1,44 @@
+# pl_y_opossum_b: from pixellab_src/pl_y_opossum_b/base.png (variant of pl_y_opossum) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (31, 43)
+# head_top at (31, 23)
+# back at (29, 40)
+# tail at (51, 54)
+.................^oo..................
+................o22o..................
+......ooo..oo..o212oooo..ooo..........
+.....o333o.o2.o21123222oo333o.........
+....o33333o312211122222o33333o........
+...o33ooo3o112121122221o3ooo33o.......
+...o3ooooo31132212221111ooooo3o.......
+...o3ooooo11113222211111ooooo3o.......
+...o33oooo11111322311111oooo33o.......
+....o33ooo122111321111223oo33o........
+.....o33323oo311111113o32333o.........
+......o3323cwo3111123oc3223o..........
+.....o22223wooo11113oow32222o.........
+.....oo2111bbbo11112cbb211222o........
+.....o2111111111aa1111111112oo........
+....o2121331111baaa1111331212o........
+....o22211131111oao1113111222oo.......
+...o3oo21211311Baa111o11121o2o3o......
+..ob23o2321213oooooo3112122oo32bo.....
+.obb22o2o22222111111222222oo322bo.....
+.obbb23oo2o122233A322212o2oo22bbbo....
+o22cb2333oo1o122222212o2oo33o2bc2o....
+ob2223o323ooo21211222ooo3333o3222bo...
+obb23o3322233oo22222oo332233o332bbo...
+o2bb3o332222223o22ooo22222233o3bb2o...
+o2233o3322222223o2o3222222233o3322o...
+o333o333222222222o32222222233oo333o...
+oc3ao3332222222222222222223333oa3cooo.
+ocabo3333222222222222222233333abaco33o
+ocaoo333332222222222222223333oaoaco23o
+.oaooo33333322222222222333333oooaob23o
+..oo.o33o33333333333333333333oboo3b3oT
+.....oo33o3333333333333333323obb2333o.
+.....ooo33oooooooooooooo333ooocc333o..
+......oo33333ooooooooo33333oooooooo...
+.....occccc3o........ooccccco.........
+....oacacaco..........ocacacao........
+.....ooooooo...........Pooooo.........
diff --git a/parts_pl_src/body/pl_y_opossum_c.txt b/parts_pl_src/body/pl_y_opossum_c.txt
new file mode 100644
index 0000000..17b8a19
--- /dev/null
+++ b/parts_pl_src/body/pl_y_opossum_c.txt
@@ -0,0 +1,51 @@
+# pl_y_opossum_c: from pixellab_src/pl_y_opossum_c/base.png (variant of pl_y_opossum) (pixellab_library.py extract)
+# pivot at (35, 60)
+# aura at (32, 37)
+# head_top at (31, 16)
+# back at (29, 40)
+# tail at (44, 54)
+............^................
+...........o2................
+........o..o1o..o............
+...ooo.o1oo211oo1o..ooo......
+..o333oo212111221o.o333o.....
+.o33333o2121111213o33333o....
+o33ooo332221111222o3ooo33....
+o3ooooo212221122113ooooo3....
+o3ooooo111222221112ooooo3....
+o33oooo11113231ooo1oooo33....
+.o33oo23o31132obbwo2oo33o....
+..o33323co31ccobowo1333o.....
+...oo323woo3ccobcbo13oo......
+...o2213bcc3ccobbbo122o......
+.o322111111a11aooo11122o.....
+.oo22113111a11a1113112oo.....
+...o2211o11a11a11o1122o......
+...o22221ooa11aoo1122ooo.....
+...o222221oa11ao122o2o.......
+....ooo2221o11o2223ooo.......
+....o32o222o11o222o3o........
+....o22oo22o1Ao222o33o.......
+....o1233o2o1ao2o3321o.......
+...o112333oo1ao3o3321o.......
+...o123333Bo1oo3333323o......
+...o2233333o1o33333321o......
+...o2333321o1o11333331o......
+..o223o3321oao11233o311o.....
+..o223o33111o111133o321o.....
+..o333o331111111133o333o.....
+..o33co332111111233oc33o.....
+..ocaao333111112333oaaco.....
+..ocaoo333322223333ooaco.....
+...oaoo333333333333ooao....oo
+....ooo33333oo33333ooo....o3.
+......o1133o.oo3311o.....o3o.
+......o1133o..o3311oo...o2oo.
+......o113o...o3311o3ooo22o..
+......o223o....o333o33223T...
+.......o33o....o33o.ooooo....
+.......o33o....o33o..........
+.......o33o....o33oo.........
+......occco....occcco........
+.....oabaco....ocacaao.......
+......oooo......Poooo........
diff --git a/parts_pl_src/body/pl_y_opossum_d.txt b/parts_pl_src/body/pl_y_opossum_d.txt
new file mode 100644
index 0000000..ae12613
--- /dev/null
+++ b/parts_pl_src/body/pl_y_opossum_d.txt
@@ -0,0 +1,46 @@
+# pl_y_opossum_d: from pixellab_src/pl_y_opossum_d/base.png (variant of pl_y_opossum) (pixellab_library.py extract)
+# pivot at (37, 60)
+# aura at (31, 42)
+# head_top at (31, 21)
+# back at (29, 40)
+# tail at (47, 54)
+................o^.................
+................o1.................
+............oo.o11o..oo............
+...........obcoo11o.ocbo...........
+......ooo..occoo23oocbco.ooo.......
+.....o333o.ocb1o2331occoo333o......
+....o33333o1oc213331oooo33333o.....
+...o33ooo3o33o123312o22o3ooo33o....
+...o3ooooo2312223112o122ooooo3o....
+...o3ooooo1111o312oo1111ooooo3o....
+...o33oooo11111o22o11111oooo33o....
+....o33ooo122111oo1111223oo33o.....
+.....o33o23oo311111113o32oo3o......
+....oooo133c1o3111123oc331ooooo....
+....obco2131ooo11113oo1333oobbo....
+....occ1o12bbbo11112cbb21231cco....
+.....oo311111111aa1111111123oo.....
+....o12o1331111baaa11113312211o....
+....o23o11131111oao11131112332o....
+...o3oo22111311Bbb111o11111oooo....
+..o122o1222113oooooo3112221o221o...
+..o222ooo22221111A1111223ooo222o...
+..o2o233o1321322222222o22o322o2o...
+.o132233o2o31232222321oo2o332221o..
+.o2o23333o3o2oo22133o1o3o33332o2o..
+.o2223333333o3o3222o3o3333333222o..
+o33223333333333o22o33333333332233o.
+o333333o33333333o2o3333333o333333o.
+oo333co333221133oo331122333oc333oo.
+.oc3bco33221111111111112233ocb3co..
+.ocbbao32211111111111111223oabbcoo.
+.ocaobo32211111111111111223oaobco3o
+..oaoo3322211111111111122233ooao23o
+...ooo3332222111111112222333ooo22T.
+......o33322222222222222333o32223o.
+......o33333222222222233333oooooo..
+......oo3333oooooooooo3333oo.......
+.....occcccoo........ooccccco......
+....oacacaco..........ocacacao.....
+.....oooooo............Pooooo......
diff --git a/parts_pl_src/body/pl_y_toadstool.txt b/parts_pl_src/body/pl_y_toadstool.txt
new file mode 100644
index 0000000..9308e83
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toadstool.txt
@@ -0,0 +1,46 @@
+# pl_y_toadstool: from pixellab_src/pl_y_toadstool/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 39)
+# head_top at (31, 26) (from part/probe)
+# back at (32, 47) (from part/probe)
+# tail at (44, 45) (from part/probe)
+..................oooooo..................
+...............ooob11111ooo...............
+.............oo2aaaa1111222oo.............
+............o3221111111211233o............
+..........oo221111111112oooo23oo..........
+.........o3222133111^11aaaabb323o.........
+.......oo32223baa211111aaaaabb223o........
+.....oo2bba22bab3111111aaaabbb3223oo......
+....o123ba322233111111111bbbbb3222o1oo....
+...o12obaa2221111111111111333222222o11o...
+..o22obb322112222222222222221112222o212o..
+..o2o3332223333333oooooo333333222222o22o..
+..oo332233333oooooyccccyooooo33332223o2o..
+.o3322333ooooyyzcozzcczzoczzooooo33323oo..
+.o3233oooyybcobyboozcczoobzoocyxxoo33323o.
+o3233obccozyccooccooooooccoocbyzoczoo3323o
+o333oxybccoocccoo33333333ooccboocbyyxo332o
+o33oyxxybbccoo32222222222223ooccbyxxxyo33o
+o3obocyyyzbbo3222111A11112223obbyyyyccyo3o
+o3obbbcccooo33o211111111113o33ooocccbbyo3o
+o33obbbbbcco3oooo21122112oooo3occbzzzzo33o
+.o33occccoo23o11oooo33ooooo1o32oocccco33o.
+..oo33obbco23o1ooo1o22o11oo1o32ocbbo33oo..
+....ooo333ob3o12331o22o13321o3bo3333oo....
+.......oooob231111o2112o111132booToo......
+..........ob22oooo211112oooo22bo..........
+..........ob222221111B11122222bo..........
+...........o221111oooooo111122o...........
+............o2221o111111o1222o............
+.............oo222222222222oo.............
+..............ooo33333333ooo..............
+................oooooooooo................
+............ooooo33333333ooooo............
+...........c123223322223322ob3c...........
+..........o22oba12o2222o21abo32o..........
+.........o223oaa12o3223o21aao322o.........
+.........o333o2112oooooo2111o333o.........
+..........ooo12212o....o21221ooo..........
+............o12o23o....o32o21o............
+............oooooP......oooooo............
diff --git a/parts_pl_src/body/pl_y_toadstool_b.txt b/parts_pl_src/body/pl_y_toadstool_b.txt
new file mode 100644
index 0000000..4f416e4
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toadstool_b.txt
@@ -0,0 +1,52 @@
+# pl_y_toadstool_b: from pixellab_src/pl_y_toadstool_b/base.png (variant of pl_y_toadstool) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 37)
+# head_top at (31, 15)
+# back at (32, 47)
+# tail at (46, 45)
+..........................^o..........................
+.........................oxyo.........................
+.........................oxyo.........................
+.........................oyyo.........................
+.....................ooooooooooooo....................
+.................oooo2222222332223ooo.................
+...............oo22221121111113322222ooo..............
+.............oo3221111211111111322222333oo............
+............ob22211112211111111132222233bbo...........
+..........oobaaa11112211111111111322222babboo.........
+.........o322baaa11131111111111112322ababb333o........
+........o32211bbaaabb111111111111abbaabb222333o.......
+.......obb211122bbbbbaaaaaaaaaaaaaabbb2222223bbo......
+......o3baa1122211131bbbbbbbbbbbbb2332222222abboo.....
+.....o33bbaaa22222331111111111111122322222abbb333o....
+....o33321bbaaaa22311111111111111222322aaaabb2233o....
+....o3321112bbbaabbaa111111111111aaabbaabbb2222233o...
+...o33221122222bbbbbaaaaaaaaaaaaaabbbbbb2222222233o...
+..o33321112222222322bbbbbbbbbbbbbbb2232222222222233o..
+.o3332222232222233222222222222222222233222223222233oo.
+.o33322223322222333333333333333333333332222233223333o.
+.o333322333333333oooooooooooooooooooo3333333333333333o
+o333333333ooooooooozooo3333A33333oozooooooooo33333333o
+o33333oooocccooooooo33333333333333oooooooocccoooo3333o
+o33oooooooocccccooo3322222222222233oooccccccooooooo33o
+o3ocooooooooocccco33o321122221223o33occcccooooooooco3o
+.oocccco3333ooooco3oooo22233223oooo3ocoooooo333o3ccco.
+..oocccccc3333ooo33o11oooo33ooooo1o33oooo3333cccccoo..
+....ooocccccc333o33o1ooo1o22o11oo1o33ooo33cccccooo....
+.......oooooocccob3o13331o22o13331o3boccccooooo.......
+.............oooob3o1111o2222o1111o3booooT............
+................ob32oooo222222oooo23bo................
+................ob322222222B22222223bo................
+.................o332222oooooo222233o.................
+..................o3332o222222o2333o..................
+...................oo333333333333oo...................
+....................oooo333333oooo....................
+......................oooooooooo......................
+..................ooooooo333333ooooo..................
+.................c23322o333333322ob3c.................
+................o23oba23o2222o32abo33o................
+...............o323oaa12o3333o21aao322o...............
+...............o333o2222oooooo2222o333o...............
+................ooo12313o....o31321ooo................
+..................o23o3oo....oo3o32o..................
+..................oooooP......oooooo..................
diff --git a/parts_pl_src/body/pl_y_toadstool_c.txt b/parts_pl_src/body/pl_y_toadstool_c.txt
new file mode 100644
index 0000000..ce16e8a
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toadstool_c.txt
@@ -0,0 +1,63 @@
+# pl_y_toadstool_c: from pixellab_src/pl_y_toadstool_c/base.png (variant of pl_y_toadstool) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 34)
+# head_top at (31, 4)
+# back at (32, 47)
+# tail at (51, 45)
+....................o^ooo...................
+..................oo21112oo.................
+.................o221111233o................
+................o22111222233o...............
+...............o2211222222233o..............
+...............o1112222222223o..............
+..............o21112aa22222233o.............
+..............o2112caac2222233o.............
+.............o321122cc222222333o............
+.............oaa11222222222aacco............
+.............oaaa122222222aaacco............
+............ocaaa222222222aaaacco...........
+............ocaaa222222222aaaacco...........
+............ocac2222222222aaaacco...........
+............occ12222222222aaaacco...........
+...........o332122222222222ccccco...........
+...........o332122aaaa2222222cc33o..........
+...........o33212caaaac2222222333o..........
+...........o33212caaaac2222222333o..........
+...........o33222caaaac2222222333o..........
+..........o332222caaacc2222222333co.........
+..........o3322222cccc2222222223cco.........
+..........o3222222ccc22222222223cco.........
+.........o332222222222222222222233co........
+........o3322222222222222aa22222333o........
+........o32baa2222222222aaac22222233o.......
+.......o33caaaa222222222aaac22222bcco.......
+......o332caaac2222222222ccc22222bacco......
+.....o33222ccc2222222222222222222aaacco.....
+....o3322222222222222222222222222aaaac3o....
+...o332222222222111111A112122222222ccc33o...
+..o33222222222233333212333333322222223333o..
+.o3322233322233333333133333333333222222333o.
+.o322333333223oooooo313ooooooo333322233333o.
+o322333ooo313ooo3333o13o33333ooo33322333333o
+o3323oooyyo33oo32222o23o222233oboo322ooo333o
+o332obbcccooo33o3211o2o21223o33oco322obbo33o
+o332o3bbbbcco3oooo32o2o223oooo3occo12ob3o33o
+.o32o333ccco33o1woooo2oooooo1o33oco33333o3o.
+..o2ooo3333o33owooo1oo3o1woowo33o33oo3ooo3o.
+..o1o..o3oooc3ow333wo22ow333wo3cooo3oo..o2o.
+..o1o..o3o.oc331wwwo2222owww133co.o3o....T..
+...o....o..oc33oooo222222oooo33co.o3o.......
+...........oc333332222B22233333co..o........
+............o332222oooooo222233o............
+.............o3332o222222o2333o.............
+..............oo333333333333oo..............
+...............ooo33333333ooo...............
+.................oooooooooo.................
+.............ooooo33333333ooooo.............
+............c2333333333333333c3c............
+...........o23oca23o2222o32aco33o...........
+..........o323oaa12o3333o21aao333o..........
+..........o333o2222oooooo2222o333o..........
+...........ooo12313o....o31321ooo...........
+.............o23o33o....o33o32o.............
+.............oooooP......oooooo.............
diff --git a/parts_pl_src/body/pl_y_toadstool_d.txt b/parts_pl_src/body/pl_y_toadstool_d.txt
new file mode 100644
index 0000000..45189c8
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toadstool_d.txt
@@ -0,0 +1,51 @@
+# pl_y_toadstool_d: from pixellab_src/pl_y_toadstool_d/base.png (variant of pl_y_toadstool) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (31, 38)
+# head_top at (31, 18)
+# back at (32, 47)
+# tail at (46, 45)
+......................oo..................
+.....................o1o..................
+....................^111o.................
+..........cc...ooo.o1111o.................
+.........caac..o11oo1133o...oo............
+.........caaac.o11oo1133o..o11o...........
+.........ccaaaoo32111133ooo112o....ccc....
+..........cbaao33211333112o123o...caac....
+..........obaa2211111111111223o..caabb....
+......cc..oo221111131111oooo223ooaaacc....
+......caco3222133111311aaaaab323oabbc.....
+......caab3223baa212311aaaaabb223boo......
+......bbabo22bab3113211aaaaabb321213o.....
+.ooo.oobaa322233111111111bbbbb321133ooo...
+.o11o3cbaa2221111111111111333222323o11o...
+.o212obb322112222222222222221112233o121o..
+.o331o33222333333oooooooo33333222222223ccc
+..o3332233333oooooyccccyooooo333322233ocac
+.oo322333ooooyyzcozzcczzoczzooooo333233bbc
+.o3233oooyybcobyboozcczoobzoocyxxoo33323o.
+o3233obccozyccooccooooooccoocbyzoczoo3323o
+o33ooxybccoocccoo33333333ooccboocbyyxo332o
+o33oyxxybbccoo322222A2222223ooccbyxxxyo33o
+o3obocyyyzbbo3222111111112223obbyyyyccyo3o
+ooobbbcccooo33o211111111113o33ooocccbbyo3o
+oo3obbbbbcco3oooo21122112oooo3occbzzzzo33o
+.ooooccccoo23o1woooo33ooooo1o32oocccco33o.
+..ooooobbco23owooo1o22o1woowo32ocbbo33oo..
+....ooo333ob3ow233wo22ow332wo3boooo3oo....
+.......oooob2o1wwwo2112owww1o2booooT......
+..........ob22oooo211112oooo22bo..........
+..........ob222221111B11122222bo..........
+...........o221111oooooo111122o...........
+............o2221o111111o1222o............
+......oo.....oo222222222222oo.............
+......ooo.....oooo333333oooo..............
+......o2oo.ooo22oooooooooo................
+......o323o2ooooooo333333ooooo............
+.......oo22o12322o322223322ob3c...........
+........ooo22oba12o2222o21abo32o..........
+.........o223oaa12o3223o21aao322o.........
+.........o333o2112oooooo2111o333o.........
+..........ooo12212o....o21221ooo..........
+............o12o2oo....oo2o21o............
+............oooooP......oooooo............
diff --git a/parts_pl_src/body/pl_y_toaster.txt b/parts_pl_src/body/pl_y_toaster.txt
new file mode 100644
index 0000000..d0023fa
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toaster.txt
@@ -0,0 +1,44 @@
+# pl_y_toaster: from pixellab_src/pl_y_toaster/base.png (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (31, 42)
+# head_top at (33, 27) (from part/probe)
+# back at (35, 35) (from part/probe)
+# tail at (46, 44) (from part/probe)
+............oooo...............
+..........oozzzzo..oooo........
+.........ozyyycccoozzzzo.......
+........ozyycczzozyyzccco......
+........o11ccyyoz^ycccyco......
+.......o11zcyyoz11ccyyyco......
+.......ozzczyyo11zcyyyycoooo...
+.......ozzczyyozzcyyzyzco222o..
+.....ooozzczyoozzczyyyoo21311o.
+...oo12ozzcoo2ozzcyyyo3213111o.
+..o1123oooo222ozzcyoo213211133o
+..o13311111123oozoo21321111322o
+.o21211111111111331B1111113222o
+.o1211111111111111311111332222o
+o12111111111111113111113222222o
+o13111111111111111111322222222o
+o13331111111111121113222222222o
+o131w3111111111131122222222222o
+o131w2333111333231132222222222o
+o13wwo112o133w1A31132222222222o
+o13wbo223o131ww131132222222222o
+o131w2ooo213wbw131132222222222T
+o1333212o212baw131132222222222o
+o2311111o1112w1331132222222223o
+o23111232211133231132222222232o
+o231213aa31111113113222222332o.
+o331112aa31231213223222223223o.
+o12331123213123132232223323oo..
+o211133331123321322322322oo.o..
+.o2221111333331132233323o2o....
+..ooooo3211111333222223o222o...
+....3223oo33321111222oo2222o...
+...o1123ooooooo22222oooooooo...
+..oo333ooooooooooooooooooooo...
+....oooooooooooo3223oooooo.....
+........oooooooo1123oooo.......
+............oooo333ooo.........
+................Pooo...........
diff --git a/parts_pl_src/body/pl_y_toaster_b.txt b/parts_pl_src/body/pl_y_toaster_b.txt
new file mode 100644
index 0000000..16feaa6
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toaster_b.txt
@@ -0,0 +1,47 @@
+# pl_y_toaster_b: from pixellab_src/pl_y_toaster_b/base.png (variant of pl_y_toaster) (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 41)
+# head_top at (33, 22)
+# back at (35, 35)
+# tail at (49, 44)
+..............oooo..................
+............oozzzzo..oooo...........
+...........ozyyyccc^ozzzzo..........
+..........ozyycczzozyyyccco.........
+..........o11ccyyozyycccyco.........
+.........o11zcyyoz11ccyyyco.........
+.........ozzczyyo11zcyyyycoo........
+........oozzczyyozzcyyyyyco1ooo.....
+......oo1ozzczycozzcyyyyzco2111oo...
+....oo111ozzccooozzcyyyyzco311111o..
+...o11113ozzooo22zzcyyyyoo1211111o..
+..o1111111ooo223ozzcyooo1121111113o.
+.o11111111111223ozzcoo1221111133333o
+.o111111111111111333122111111333333o
+o1111111111111111112211111333333333o
+o11111111111111111111B1133333333333o
+o1111111111111111111111333333333333o
+o1113311111111111111113333333333333o
+o1131a31111111111111113333333333333o
+o1131a23331113331111123333333333333o
+o113aao112o113a13111133333333333333o
+o113aco223o131aa13A1133333333333333o
+o1121a2ooo213aca1311133333333333333o
+o11133212o212cba1311133333333333333o
+o11111111o2112a13211133333333333333T
+o21111111o1111332111133333333333333o
+o211111132211111111113333333333333co
+o2111113bb3111111111133333333333ccco
+oc111112bb311313111123333333333ccco.
+obbc2111232131231112233333333ccccoo.
+ocbbbccc1111233211122333333cccccoo..
+.occbbbbcccc1331111223333cccccooo...
+..ooocccbbbbcccc212223ccccccoo332o..
+...o3oooocccbbbbccccbcccccooo3333o..
+..o11333oooocccccbbbbcccoooooooooo..
+..o333oooooooooocccbcccooooooooo....
+...ooooooooooooooooooooooooooo......
+.......ooooooooooo2223oooooo........
+..........oooooooo1133oooo..........
+..............oooo333oo.............
+.................Pooo...............
diff --git a/parts_pl_src/body/pl_y_toaster_c.txt b/parts_pl_src/body/pl_y_toaster_c.txt
new file mode 100644
index 0000000..b48a99e
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toaster_c.txt
@@ -0,0 +1,56 @@
+# pl_y_toaster_c: from pixellab_src/pl_y_toaster_c/base.png (variant of pl_y_toaster) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 36)
+# head_top at (33, 13)
+# back at (35, 35)
+# tail at (47, 44)
+............oooo................
+..........oozzzzo..oooo.........
+.........ozyyyccc^ozzzzo........
+........ozyycczzozyyzccco.......
+........o11ccyyozyycccyco.......
+.......o11zcyyoz11ccyyyco.......
+.......ozzczyyo11zcyyyycoooo....
+.......ozzczyyozzcyyzyzco222o...
+.....ooozzczyoozzczyyyoo21311o..
+...oo11ozzcoo2ozzcyyyo32131111o.
+..o1111oooo222ozzcyoo213211113o.
+..o11111111123oozoo213221111333o
+.o31111111111111331321111113222o
+.o11111111111111111311111132222o
+.o11111111111111113111113322222o
+o111111111111111131111132222222o
+o131111111111111111113222222222o
+o133311111111111111132222222222o
+o131131111111111311222222222222o
+o131123331113332311322222222222o
+o1311o112o133113311322222222222o
+o131co223o131111311322222222222o
+o13112ooo2131c11311322222222222o
+o1233212o112ca11311322222222222o
+o1111111o1112113311B22222222222o
+o1111111o1111332A11322222222222o
+o111111333111111311322222222222o
+o111113111311111311322222222222o
+o111131111131111311322222222222o
+o11131311111311131132222222222bo
+o111311111111311311322222222bbbo
+oaaa3113111113113113222222bbbbbo
+oaaa31113111131131132222bbbbbbbo
+oaaa311111111311311322bbbbbbbbbT
+oaaaa311131113aac11cbbbbbbbbb22o
+o1aaa311113133aacaacbbbbbbb2222o
+o111113111333aaacaacbbbbb222222o
+o1111113333aaaaacaacbbb22222223o
+o3111111122111aacaac22222222332o
+o1333111aa111111311322222233222o
+o21113331111111131132222332222o.
+.o2221111333311131132233222ooo..
+..ooooo3311111333113332233o23o..
+...o322ooo33321113322223oo223o..
+..oo1123oooooo33111222oooooooo..
+..oo333ooooooooooooooooooooo....
+....oooooooooooo3223oooooo......
+........oooooooo1123oooo........
+............oooo333ooo..........
+................Pooo............
diff --git a/parts_pl_src/body/pl_y_toaster_d.txt b/parts_pl_src/body/pl_y_toaster_d.txt
new file mode 100644
index 0000000..5e7dcbd
--- /dev/null
+++ b/parts_pl_src/body/pl_y_toaster_d.txt
@@ -0,0 +1,50 @@
+# pl_y_toaster_d: from pixellab_src/pl_y_toaster_d/base.png (variant of pl_y_toaster) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 40)
+# head_top at (33, 25)
+# back at (35, 35)
+# tail at (48, 44)
+...............oo..................
+..............oao..................
+.............oaabo.................
+.............oaaco......oo.........
+...........o.oacco.....oaao........
+..........oaboacco...ooaaao........
+........oooacoaco...oaoaaco........
+........oacoczaczo..oacacco........
+........oaczyyybbb^ozacaco.........
+.........ozyybbzzozyyabcco.........
+.........o11bbyyozyybbbybo..o......
+........o11zbyyoz11bbyyybo.31o.....
+.....oo.ozzbzyyo11zbyyyyboo11o.....
+.....o1oozzbzyyozzbyyzyzboo13o.o...
+..oooo2oozzbzyoozzbzyyyoo232ooo1o..
+..o12oo1ozzboo2ozzbyyyo32o1o1112o..
+..o22123oooo222ozzbyooo1o21o1o33o..
+.ooo13311111123oozoo21ooo1ooo23o...
+o1o21211111111111331B21o111o222o...
+o2o12111111111111113112o1332222ooo.
+oo1211111111111111311oo1322222o21o.
+.o1311111111111111121132222222o22o.
+.o1333111111111112111322222222ooo..
+.o131w31111111111A112222222222222oo
+.o131w2333111333231132222222232o21o
+.o13wwo112o133w1331132222222222ooo.
+.o13wbo223o131ww13113222222222o2o..
+.o131w2ooo213wbw13113222222221321T.
+.o1333212o212baw1311322222222o2oo..
+.o2311111o1112w1331132222222223o...
+.o23111232211133231132222222232o...
+.o231213aa31111113113222222332o....
+.o331112aa31231213223222223223o....
+.o12o3112321312313223222332oo2oo...
+.o2o1233331123321322322322ooo22o...
+..oo1o111133333113223oo23o2oooo....
+...ooooo3211111333222o23o222o......
+.....3323oo333211o12o1oo3332o......
+....o1323ooooooo2o2o2oooooooo......
+...oo333ooooooooooooooooooooo......
+.....oooooooooooo3223oooooo........
+.........oooooooo1123oooo..........
+.............oooo333ooo............
+.................Pooo..............
diff --git a/parts_pl_src/body/pl_yeti.txt b/parts_pl_src/body/pl_yeti.txt
new file mode 100644
index 0000000..22d94be
--- /dev/null
+++ b/parts_pl_src/body/pl_yeti.txt
@@ -0,0 +1,50 @@
+# pl_yeti: from pixellab_src/pl_yeti/base.png (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 39)
+# head_top at (32, 20) (from part/probe)
+# back at (30, 26) (from part/probe)
+# tail at (51, 42) (from part/probe)
+...............o2o..ooo.o2o.................
+...............o21oo111o12ooo...............
+.............oo22111111112222o..............
+...........oo221111111^1112222oo............
+..........o22211111111111111222o............
+..........oo22111111111111b222ooo...........
+.........oo22111111111111111b2222oo.........
+......oooo22111133112121111b2223o33o........
+.....o3333o21111o332133o22111222o33ooo......
+......o33o31122obo3oBo3oo3111122o333333o....
+...ooo333o2122obabobobobboo211222o333oo.....
+..o33333o2212obccaaaabbccbbo21123o3333o.....
+...oo333oo11oob1oaaaaaao1aboo112o333333oo...
+...o3333o1112obabaoaaoabbabo21122o3333333oo.
+..o33333o1112obbaabaabaaabbo21222o33333333o.
+.ooo3333o12111oabaaaaaabbao211122o333333oo..
+..o33333ooo1111ooaaaaaaboo11122oo33323333o..
+.o33333233o112111ooooooo1111222o3332223333o.
+.o33332223o132211111111111222o3o3312222333o.
+o3333322222oooo2221111121222ooo331122223333o
+ooo332222222333o2221122222oo3222211122233ooo
+.o33bb2211223233o3o222o22o31322211112bb233o.
+.o33b221111222133ooo2oAoo3312221111122b233o.
+o333322b111122111222o33322112o21111b2223o3o.
+o33332b111112o121112233111133o21111bb223o33o
+o333322111112ooo111111111213o2111111b22o3T3o
+ooo332221111222o321111111333oo211112222o33oo
+..o33322111122oo331133133333o2211112222o33o.
+..o333211111122o333333333333o2211122223o33o.
+..o33321b111122o333333333o3o221111bb22o333o.
+..o3333bb11b1122o33o3333oooo221b112b22o33o..
+..o3o3322211b122o3oo3o3oooo321bb122b33o33o..
+..ooo333222111123ooooooooo322111122233o3o...
+....o33322211112222oooooo2221111222233o3o...
+....o3o3222211b22222oooooo22211222233o3oo...
+.....oo33222b22bb22oooooo22b2bb22233oooo....
+......o3o2322b22b222oooo2222bb223333oooo....
+......oooo3222222222oooo22222222233o3oo.....
+......oooo33322222223oo332222222333ooo......
+......ooboo3333332oo3oo3oo22o22333ooboo.....
+.....oobbobo3ooooobboooobbooboo33obobboo....
+.......ooooo3obbaabbbooobbaabbo33ooooo......
+............oobbbbboo..oobbbboooo...........
+..............ooooP......oooo...............
diff --git a/parts_pl_src/body/pl_yeti_b.txt b/parts_pl_src/body/pl_yeti_b.txt
new file mode 100644
index 0000000..aaf7094
--- /dev/null
+++ b/parts_pl_src/body/pl_yeti_b.txt
@@ -0,0 +1,61 @@
+# pl_yeti_b: from pixellab_src/pl_yeti_b/base.png (variant of pl_yeti) (pixellab_library.py extract)
+# pivot at (25, 60)
+# aura at (31, 34)
+# head_top at (32, 6)
+# back at (30, 26)
+# tail at (53, 42)
+...............o2o..oo^o.o2o................
+...............o21oo1111o12ooo..............
+.............oo221111111112222o.............
+...........oo221111111111112222oo...........
+..........o2221111111111111112222o..........
+..........oo221111111111111o2222oo..........
+..........oo221111111111111c3222oo..........
+.........o22211111111111111113c222o.........
+.........3221111331121121111oc2223o.........
+.........o211111o3331333o221111222o.........
+........o321122oco3o1oo3oo31111122o.........
+........o21112occcccoccoccoo211122o.........
+.......o22111occaaaaabbbaccco211222o........
+.......o22123oaaoaaaaaaaooaco211122o........
+.......oo112ooaaoaaaaaaaowacoo1112o.........
+.......o11122oaacaaaaaaacaaco211122o........
+.......o11112obaaaaaaaaaaaaco211222o........
+.......o11112obbaaaaaaaaaacco211222o........
+.......o221111obbbaaaaaaccco2111222o........
+.......ooo21111oobbbbbbbcoo111122oo3o.......
+......oo3o2122111oooBoooo11112222o333o......
+.....o333o222221111111111111222o3o3333o.....
+....oo3313oo32222211111111222oooo33113co....
+....occ11333ooo222111111212oo33333111cc3o...
+...o22cc1111333o2221122o222o33331111cc22o...
+...o212111111133o3o222oo22o333311111c1122o..
+..o22111111111133o3o2o33oo333131111111122o..
+..o2c111112111111333o33333311111311111122o..
+..o211111231111111333A311111111133111111cco.
+.o2211111331111111111111111111111311111113o.
+.o2111111o311111111111111111111113111111133o
+.oc111113o311111111111111111111113o21111133o
+occ11112o33111111111111111111112133311111cco
+o11c1112o3311111111111111111111213332111ccco
+o21c1112o33111111111111111111111133o211c123o
+o2111113o33112111111111111111121333o2111123o
+o2111113o33112111111111111111111333o2111123T
+o21c1113o33111211111111111112211333o2111122o
+o31cc113o33311211111111111112211333o3111c22o
+o311cc222o332122111111111112222333o2221c223o
+o32222222o332222221111111222222333o22212223o
+o3232223oo333322222111222222222333ooo222233o
+.ooo22ooco33o33222222222222233o333oaco222oo.
+.occooooco333oo33322222332233o3333ocoooooco.
+.oacoacooo33333oo333333333ooo33333oooacocco.
+.oocoacooo3333333oo3333ooo33333333oooacocoo.
+..ooocco.o333cc3333ooooo33333c3333o.occooo..
+.....oo..o333c333333o..o333333c33o...oo.....
+..........o33333333o....o33333333o..........
+..........oo3333333o....o33333333o..........
+..........ooo3ooo33o....o33ooo3ooo..........
+..........oocccccooo....o3occcccoo..........
+..........ocacaaccco....occccaacao..........
+.........oocccccooo......ooocccccoo.........
+...........ooooP............ooooo...........
diff --git a/parts_pl_src/body/pl_yeti_c.txt b/parts_pl_src/body/pl_yeti_c.txt
new file mode 100644
index 0000000..a6dd4d1
--- /dev/null
+++ b/parts_pl_src/body/pl_yeti_c.txt
@@ -0,0 +1,54 @@
+# pl_yeti_c: from pixellab_src/pl_yeti_c/base.png (variant of pl_yeti) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 37)
+# head_top at (32, 13)
+# back at (30, 26)
+# tail at (55, 42)
+.......................o^o......................
+.................oooo.o22o..ooooo...............
+................o2222o2233oo2222oo..............
+.............ooooo3222223222222ooo..............
+..........ooo222222222221222222222ooo...........
+.........o22222222111221122122112222o...........
+........ooo22111113212212211111112222ooo........
+.......o22222b1c111222212211122112222333o.......
+......o222222b111112222222121221112223332o......
+......oo3222211222222222221212222122223ooo......
+.....o332222112222332222222222222222223333o.....
+....o33322222222233333223322222222222223233o....
+....o332222222222ooo3oo23oo33222222211222333o...
+...oo32223322233ocbcocBoobco333222222112333o....
+...o222221112233occabbbccccoo332222211122333o...
+..o223221122223ob1oaaaaaao1aco322222111222333o..
+.o2o332112222bbobacacaacaccabobbb222122222233o..
+..o332112222bbboccaacaacaaaccobbbb2211222223oo..
+..o33b132222bbbboacaaabaaccaocbbcc22211222233o..
+.o33222222222bbbbooaaaaabcoo3bbcc2222222222333o.
+.o332222221222bb222ooooooo2222cc222112222323333o
+o33333222211222222222222222222222222112222b23o3o
+o3333b2222112222222222222122232222221112222223oo
+.o33b22231132112222222222122222212221122222333o.
+.o33b2222133211222222222A222222211122222222333o.
+.3332222222221222212222222212221131222222323b33o
+o3222232222212222112221122212221131222222333bc3o
+o3333o222232222211122211222112221233222222o3333o
+o3333o222332222211222221223112221222232213o33o3o
+oo333o2222o2222221222221223212222222232113o333oT
+.oo33o3222o32222222221222232122222222o2133o333o.
+..o33o322bao222222222222222222222222oab223o333o.
+..o333oaboao221222222222222222222222oaobao33o3o.
+..oo33ocbooo221222222222222222222222ooobco33ooo.
+...o333obo3322132222222222222222223233obo333oo..
+...o3333o333331322222322222222232232333o3333o...
+...oo333333333332322332223222223223333333333o...
+...oo3333b33333323233332232233233233333o33o3o...
+...oo3o333b33333332333322332333333333o3333ooo...
+....ooo333333333333333323333333333333o3333o.....
+......oo333o33o3333333333333333333333333ooo.....
+.......oo33o33o3333333333333333333333333o.......
+.......ooo3ooo333333o33333333333333o33ooo.......
+........oooooo33o33oo33333333o333oooooboo.......
+........obbooo33ooooo3333o33ooo33o3oobcboo......
+.........ooooo3ocbaacoo33oooaacooo3ooooo........
+..............oocccccoooooobcccoooo.............
+................ooooP......oooo.................
diff --git a/parts_pl_src/body/pl_yeti_d.txt b/parts_pl_src/body/pl_yeti_d.txt
new file mode 100644
index 0000000..372898d
--- /dev/null
+++ b/parts_pl_src/body/pl_yeti_d.txt
@@ -0,0 +1,61 @@
+# pl_yeti_d: from pixellab_src/pl_yeti_d/base.png (variant of pl_yeti) (pixellab_library.py extract)
+# pivot at (28, 60)
+# aura at (32, 34)
+# head_top at (32, 6)
+# back at (30, 26)
+# tail at (53, 42)
+.....................o^o....................
+....................o31o....................
+............ooo....o213o..oooo..............
+............o11o..o2113ooo213o..............
+............o311oo22113o2111oo..............
+............o3113o2211322113ooooo...........
+......ooooooo3211221112211122222ooooo.......
+......o221111322112111221122221111113o......
+......ooo31111221111111111221111223oo.......
+.......oo32211122111111111111112223ooo......
+.....oo222212111211111111111122222222oo.....
+....o2221111111111111111111122222222223o....
+...o211111111111111111111111111111111111o...
+..o21122211111111111111111111111111222211o..
+.o333322211b1b1112111111111111111211123ooo..
+.ooo3222111b1111221112211221111111111111o...
+...o2221111111122o3112211o221221111111111o..
+..o222111111221ooo3112o211o212221111233322o.
+..o11111111222o333o312o3113o322211112223333o
+.o3112211112oo33o33oo1oo2223o232111122223ooo
+.o1222221112o33obo3oBo3ooo223o32111112222o..
+o21232111112o3obabobobobboo22o321111123222o.
+o3332211211o3obccaaaabbccbbo233o1111113322o.
+.oo221122112oobwoaaaaaaowabo223o11121133322o
+.oo211222112oobabacaacabbabo223311133133332o
+.o32123211122obbaabaabaaabbo22o11112333333oo
+.o311333111222oabaaaaaabbao22o311111o33333oo
+.o31333o1111222ooaaaaaaboo22o2111221o33333o.
+.o33333o112111222oooooAo222o11111o21o333333o
+.o3o333o1321111122111112222211211o22o333o33o
+o333332o2o31211111111112122211222o2223333ooo
+ooo3322ooo31211111111111122211232o2222233ooo
+.o33bb2223o1o112112211111122212o2o111bb333o.
+.o33b22211o2o312122211112122o12oo31112b333o.
+o33o222b112ooo1o123311132223o3o3331b112bo3o.
+o33o222111122o2o32oo1113o22o3oo3111bb123o33o
+o33o322111o12oo3o3oo111o33oo33321111112o333T
+oo33o221bbb122o33oo3o2o33o33oo221bb1122o33oo
+.o33o22bbb1122o333333o332333o22211bbb22o33o.
+.o33obbb1111122o332233322233o2211111bb2o33o.
+.oo33bb21111122o33222222233o221111112bo333o.
+..o33o222111bb22o3322222333o221b111222o33o..
+..o33o2222bbb122oo33222233o321bbb11223333o..
+..o333o22bb111122oo332233o3221112bb22o33o...
+...oo3obbb211111222o33333o22111122bb2o33o...
+....o33ob22211b1122o3333o3222112222bo33oo...
+....oo3o3222b22bb22oo33oo22b2bb22233o33o....
+.....o33o2322b22b222oooo2222bb222333o3oo....
+......o3oo3222222222oooo22222222233o3oo.....
+......oooo33322222223oo332222222333ooo......
+......ooboo3333332oo3oo3oo22o22333ooboo.....
+.....oobbobo3ooooobboooobbooboo33obobboo....
+.......ooooo3obbaabbbooobbaabbo33ooooo......
+............oobbbbboo..oobbbboooo...........
+..............ooooP......oooo...............
diff --git a/parts_pl_src/body/pl_zenfrog.txt b/parts_pl_src/body/pl_zenfrog.txt
new file mode 100644
index 0000000..e44da85
--- /dev/null
+++ b/parts_pl_src/body/pl_zenfrog.txt
@@ -0,0 +1,50 @@
+# pl_zenfrog: from pixellab_src/pl_zenfrog/base.png (pixellab_library.py extract)
+# pivot at (31, 60)
+# aura at (32, 39)
+# head_top at (30, 19) (from part/probe)
+# back at (33, 39) (from part/probe)
+# tail at (52, 46) (from part/probe)
+.........ooooo................ooooo.........
+........o31111oo............oo1111oo........
+.......o32111113oooo^ooooooo21111123o.......
+......o333331111111111111113111133333o......
+......o331ooo11111111aaa1111111ooo133o......
+......o331oo131111111axa11111131oo133o......
+.....o331ooo1o1111111aaa111111o1ooo133o.....
+.....o331ooooo3111111111111112ooooo132o.....
+.....o331boooo3111111111111113oooob132o.....
+....o22311bo2o311111111111111332oc11322o....
+...o322133333211111131113111112333331223o...
+...o32aa1111111111111111111111111111aa23o...
+...o33aa3231111111111111111111111322aa33o...
+....o3333313333333333222333333333133333o....
+....o3333111111111111111111111111113333o....
+.....o33331111111111111111111111113333o.....
+......o333323111111111111111111133333o......
+.......o3332222333333333333333222333o.......
+........ooo3222222222222222222223ooo........
+..........oooo2222222222222222oooo..........
+..........occcooo22222222222ooocco..........
+..........occocacooo22222ooocacoco..........
+..........oooocaocacooABocacoccooo..........
+.........o223occocacocacocacoooo32o.........
+........o11233ooocccocacoccco33o33o.........
+...oo...o1123o333oooocccoooo333o333o...oo...
+..o33o.o2111o33333333ooo33333323o333o.o33o..
+..oo11oo1113o3331111333331111112o312oo11oo..
+.o1oo111111o333111111111111111113o11111oo1o.
+.o1oo221113o333111111111111111111o21133oo1T.
+oo111o21133o333111111111111111111o2213o2111o
+.ooooo1233oo333311111111111111111oo321oooo3o
+.oo2223oooooo3331111111111111111ooooo2112oo.
+...oooo22111oo3333111ooo1111111oo1111oooo...
+...o3322111113o333331o3o111111oo11111333o...
+...o31111111113o3333o1oo33333oo111111133o...
+...o331111111113oo33o1o3333oo31111112333o...
+...o33333111111123oo11ooooo2111111233333o...
+....o3333333222311111oooo31133333333333o....
+.....oo333333333333111113o33333333333oo.....
+....oooooooooo3333333oo3oo3333oooooooooo....
+...oo3ooo33oooooooo333ooo3ooooooo33ooo3oo...
+....ooooo33oo......oo33ooo......ooo3oooo....
+........ooo.........oPooo........ooo........
diff --git a/parts_pl_src/body/pl_zenfrog_b.txt b/parts_pl_src/body/pl_zenfrog_b.txt
new file mode 100644
index 0000000..b9ce762
--- /dev/null
+++ b/parts_pl_src/body/pl_zenfrog_b.txt
@@ -0,0 +1,54 @@
+# pl_zenfrog_b: from pixellab_src/pl_zenfrog_b/base.png (variant of pl_zenfrog) (pixellab_library.py extract)
+# pivot at (20, 60)
+# aura at (32, 38)
+# head_top at (30, 13)
+# back at (33, 39)
+# tail at (54, 46)
+......................^oooo.....................
+.................ooooobaaabooooo................
+................o33322bbbbb222cco...............
+.............oooo2bbb22bbc222bboooo.............
+............o2111oobb22222222bo1113o............
+...........o3211113ooooooooooo111133o...........
+..........o33331111311111111211113333o..........
+.........oo33ooo11121111a1112112ooo33oo.........
+........o2o331o13221111aa11112231oo13o3oo.......
+.......oobo31oooo22211111111122oooo13obaco......
+......oabo331oooo22221111111222oooo133obbo......
+......obbo3313ooo22222222222222ooo31333obco.....
+.....obbo3223333222222o22o2222233333223obco.....
+.....o22o3bb322222222222222222222222bb3occ3o....
+....o222o3bb33222222oooooooo22222233bb3o333o....
+....obb2o3331o2222oo31111111oo2222o1333o333o....
+...oabb2oo3111oooo331111111133oooo31133o33cao...
+...obb223o31113o2133111111113311o311113o33cao...
+...obb233o31113311331111111133113111113o33caco..
+...ob2233o31111111131111111111113111133o333cco..
+..o322333o31111111111111111111111111133o2o3cco..
+..o333333o3311111111111111111111111113o323333o..
+..o33o222o3331111111111111111111111133o222o33o..
+.oab332223o333111111111111111111111333322b2o33o.
+.oabo222233o3331111111111111113311333o222b2o33o.
+.occo2222233o33333311111A1111133333oo3222223obo.
+.o2o3bb222333oo3333311111B1133333oo333322223obo.
+.o3o3b222233333oo33333333333333oo333333222bbo3o.
+o33o3b222o3331333o333333333333oo3313333322bbo33o
+oc3o322222o3311333ooo333333ooo33311133o222bbo3co
+obco3bb222o3111113333oooooo3333311113o3222bbo3co
+obco3bb222o31111111133333333311111113o222222o3co
+oc3o33bb222oo11111111111111111111111o2222bb3o3co
+.o33o3bb22222o111111111111111111111o2222abco33T.
+.o333o32222222o1111111111111111111o22222ab3o33o.
+.occ3oo2222o33o111111111111111111o22222223o33co.
+.occc3o3322ooo3111111111111111111oooo2232ooccco.
+..occ3oo3o3o333311111111111111111333o33o2o3cco..
+..occ33o3ooo333331111111111111133333oooo3o33co..
+...oo33oooo33333331111111111113333333o3oo333o...
+....o3cc333o33333333333333333333333333333cco....
+.....occcc33o3333333333333333333333o3333ccco....
+......o3333333oo33333333333333333oo333333oo.....
+.......oo333333oooooo33333333oooo333333ooo......
+......oo3333333o.....oooooooo...o3333333oo......
+.....oo33o33333o.................o3333oo33o.....
+......ooooo33oo...................o333oooo......
+..........ooP......................ooo..........
diff --git a/parts_pl_src/body/pl_zenfrog_c.txt b/parts_pl_src/body/pl_zenfrog_c.txt
new file mode 100644
index 0000000..75abe47
--- /dev/null
+++ b/parts_pl_src/body/pl_zenfrog_c.txt
@@ -0,0 +1,53 @@
+# pl_zenfrog_c: from pixellab_src/pl_zenfrog_c/base.png (variant of pl_zenfrog) (pixellab_library.py extract)
+# pivot at (41, 60)
+# aura at (32, 40)
+# head_top at (30, 16)
+# back at (33, 39)
+# tail at (54, 46)
+..............oooo..........oooo..............
+.............oo211o........o111oo.............
+.............o32111oo^oooo311112o.............
+............o33oo111211112211ooo3o............
+............o3wooo1111aa11113oow3o............
+...........o3wooow2211aa1112owoow3o...........
+...........o3woooo3211111112oooow3o...........
+...........o3w3boo3221111222oocbw3o...........
+..........o333333322222222223333323o..........
+..........o3aa222222232232222222aa3o..........
+..........o3aa232222222222222223aa3o..........
+..........o333313333333333333331333o..........
+...........o3331111111111111111133o...........
+............o33331111111111111333o............
+.............oo3223333333333222oo.............
+...............oo222222222222oo...............
+................o333333333333oo...............
+...............oco33333333333cco..............
+...............occo33333333oocco..............
+...............ocoaoo1111oooaoco..............
+...............oooccaoooocaoaoo...............
+..............o33ooccocaocaoo33o..............
+..............o2222oooccooo3322o..............
+..............o2222222oo33332223o.............
+.............o222322233332222322o.............
+.............o2233223111B1222322o.............
+............oc23o323111A11122o32c.............
+............ocaco321111111122ocbbo............
+............o2cco321111111112ooc22o...........
+...oo......o223oo321111111112o.o22o.......oo..
+..o22o....o222o.o331111111112o.o322o.....o2o..
+.o3o2o...oaa23o.o311111111112o.o32baoo..o333oo
+o2ooo2ooo22aco..o311111111112o..o3ba11oo22oo2T
+o2o2o311122co...o311111111112o...oc211112oo22o
+o3o2o31113oo....o331111111113o....oo31112oo22o
+.o32222oooooooooo331111111113oooooooooo222123o
+..ooooo33111222333331111111333322222233oooooo.
+...o33322222222333333111123333322222222333o...
+...o33222oooo33333333333333333333oooo22223o...
+...o322222222oooo3333333333333ooo222222223o...
+....o333222222222oooo3oooooooo222222333333o...
+.....oo3333222222222222233o332233333333ooo....
+.......oo333333333322222ooo333333333ooo.......
+.........ooooo33333333333333333oooooo.........
+........o3oo3o33oooooooo33oo333o33oo3o........
+........oo33oooo........oo..oooooo3ooo........
+.........oooo...................Pooo..........
diff --git a/parts_pl_src/body/pl_zenfrog_d.txt b/parts_pl_src/body/pl_zenfrog_d.txt
new file mode 100644
index 0000000..deb8957
--- /dev/null
+++ b/parts_pl_src/body/pl_zenfrog_d.txt
@@ -0,0 +1,54 @@
+# pl_zenfrog_d: from pixellab_src/pl_zenfrog_d/base.png (variant of pl_zenfrog) (pixellab_library.py extract)
+# pivot at (32, 60)
+# aura at (32, 39)
+# head_top at (30, 13)
+# back at (33, 39)
+# tail at (53, 46)
+.................ooo^ooooooo.................
+...............oo11111111111ooo..............
+.............oo1111133333311111o.............
+............o3111123333333321111o............
+...........o311122233333333211111o...........
+..........o32111122223333322111112o..........
+.........o3221111122222222221111113o.........
+........o322211111322223223111111223o........
+........o322311111322222223111112223o........
+.......o3322oo111o322222223o111oo2223o.......
+.......o322222ooo32222222222ooo222223o.......
+......o3222222222222222222222222222223o......
+......o2222222222222222222222222222222o......
+.....o32aaa222222222o222o222222222aaa23o.....
+.....o32aaa22222222222222222222222aaa23o.....
+.....o322222o2222222222222222222o222223o.....
+.....o3222222ooooooooooooooooooo3222233o.....
+......o3222222222222222222222222222223o......
+......o3322222222222233332222222222233o......
+......oo33222222222222222222222222233oo......
+.....occo333222222222222222222222333occo.....
+.....obaco3333322222222222222223333ocabo.....
+....o3ooocooo3333332222222233333ooobboo3o....
+....o333obaboooo3333333333333oooocabo333o....
+...oo3233obbocabooooooooooooocabobco33233o...
+..o333223oooobcbobacocccocabobbbooooo22233o..
+..o32223o3333ooocbbbocABocbboooo3333o32222o..
+..o322223o331333ooooobccoooo3333133o322223o..
+..o3332222o3111133333ooo3333311111o2222333o..
+..o33332222ooooo1111333331111ooooo22222333oo.
+.o3o33322222222o1111111111111o32222222233o3o.
+.o33o32222222222oo1111111111ooo2222222233o3o.
+.o333o33222222233o1111111111o33222222333o33o.
+.o3333oo3333222oo11111111111ooo222333ooo333T.
+.o333333ooooo3231111111111111o33ooooo333333o.
+.o33333333333ooo11111111111113ooo3333333333o.
+..o333333331133111111111111111111113333333o..
+..oooooo33331111111111111111111111333oooooo..
+..o11222oo3331111111111111111111333oo32111o..
+.o11122oooooo33311111ooo111113333ooooo22111o.
+o211222222222oo33333o22ooo33333oo22222222111o
+o31122222222222o333o223o3o333oo2222222222111o
+o322222222222222ooo22oo332ooo222222222222211o
+o33222222222222222222ooo33222222222222222223o
+.o3322222222222222222223o3332222222222222333o
+.o33333333333333333333ooo333333333333333333o.
+..oo33333333333ooooo333oooooooo3333333333oo..
+....ooooooooooo.....ooPo.......oooooooooo....
diff --git a/parts_pl_src/head_top/pl_acorn_cap.txt b/parts_pl_src/head_top/pl_acorn_cap.txt
new file mode 100644
index 0000000..0ffde99
--- /dev/null
+++ b/parts_pl_src/head_top/pl_acorn_cap.txt
@@ -0,0 +1,17 @@
+# pl_acorn_cap: pixellab_src/pl_pangolin/pl_acorn_cap.png minus base.png
+# pivot at (33, 29)
+.........oo....
+........oxyo...
+.......oxyo....
+.......oyo.....
+....ooozyooo...
+...oxxxzzyyzo..
+..oxxxxxxyyyzo.
+.oyxxxxxxxyyzo.
+.oyxxxxxxxyyzo.
+.oyxxxxxxyyyzyo
+oxzzyyyyyyyyzyo
+oyxxzzzzzzzzyyo
+oy.yyxxxPxxzzzo
+ooooyyyyyzzzoo.
+....oooooooo...
diff --git a/parts_pl_src/head_top/pl_antenna_heart.txt b/parts_pl_src/head_top/pl_antenna_heart.txt
new file mode 100644
index 0000000..63e5751
--- /dev/null
+++ b/parts_pl_src/head_top/pl_antenna_heart.txt
@@ -0,0 +1,18 @@
+# pl_antenna_heart: pixellab_src/pl_teapot/pl_antenna_heart.png minus base.png
+# pivot at (32, 28)
+..oo.oo..
+.occocco.
+ocabcbbco
+ocbbbbbco
+.ocbbbco.
+..ocbco..
+..o3c3o..
+..o333o..
+..o313o..
+..o313o..
+..o313o..
+..o313o..
+..o313o..
+..o313o..
+.........
+....P....
diff --git a/parts_pl_src/head_top/pl_antennae_pompom.txt b/parts_pl_src/head_top/pl_antennae_pompom.txt
new file mode 100644
index 0000000..edd4b04
--- /dev/null
+++ b/parts_pl_src/head_top/pl_antennae_pompom.txt
@@ -0,0 +1,18 @@
+# pl_antennae_pompom: pixellab_src/pl_x_loris/pl_antennae_pompom.png minus base.png
+# pivot at (34, 24)
+..ooo..............ooo..
+.ozxxo............ozxxo.
+ozxxxxo..........ozxxxxo
+ozxxxxzo.........ozxxxxo
+ozzxxzzo.........ozzxxzo
+oozzzzo..........oozzzzo
+.oooozo...........oooozo
+..oooo.............oooo.
+...o2o............o2o...
+...o1o............o1o...
+...o11o...........o1o...
+...o11o..........o12o...
+...o21o..........o12o...
+....o11o........o21o....
+....o21o........o12o....
+.....o........P...o.....
diff --git a/parts_pl_src/head_top/pl_bandana.txt b/parts_pl_src/head_top/pl_bandana.txt
new file mode 100644
index 0000000..4781b98
--- /dev/null
+++ b/parts_pl_src/head_top/pl_bandana.txt
@@ -0,0 +1,17 @@
+# pl_bandana: pixellab_src/pl_meerkat/pl_bandana.png minus base.png
+# pivot at (31, 24)
+...................oo.....
+..................oao.....
+..................oao.....
+.................oaao..oo.
+................oaacoooaao
+.......oooooooo.oacoooaaao
+.....ooaaaaaaccooccoaaaco.
+...oocaaaaaaaaacooocccco..
+..ocaaaaaaaaaaaaacooooo...
+..oaaaaaaaaaaaaaacco......
+.occcaaaaaaaaaacccco......
+occcaaac.cPc.ccacccco.....
+occcoooooooooooooccco.....
+ocoozzz.......zzzooco.....
+oo.................o......
diff --git a/parts_pl_src/head_top/pl_beanie.txt b/parts_pl_src/head_top/pl_beanie.txt
new file mode 100644
index 0000000..e818b8f
--- /dev/null
+++ b/parts_pl_src/head_top/pl_beanie.txt
@@ -0,0 +1,18 @@
+# pl_beanie: pixellab_src/pl_y_mongoose/pl_beanie.png minus base.png
+# pivot at (34, 30)
+......ooo.....
+.....ozzzo....
+....ozxxxzo...
+...ozyxxxxo...
+...ozyyxyyzo..
+....ooyyyoo...
+....ooooooo...
+...ozzzxzzxo..
+..ozxzyxzxzxo.
+.ozxzxyxxxzyzo
+.oxyzxyxxxxzyo
+oozozzzzzzzzoo
+oxzxzxzxxzxzxo
+oxzxzxzPxzxzxo
+oyzxzyzxxzxzxo
+oooooooooooooo
diff --git a/parts_pl_src/head_top/pl_beret.txt b/parts_pl_src/head_top/pl_beret.txt
new file mode 100644
index 0000000..11c9333
--- /dev/null
+++ b/parts_pl_src/head_top/pl_beret.txt
@@ -0,0 +1,14 @@
+# pl_beret: pixellab_src/pl_manatee/pl_beret.png minus base.png
+# pivot at (31, 23)
+.......o..........
+......ocooooo.....
+......ocbbbbbooo..
+....ooabbbbbbbbco.
+...oaabbbbbbbbbbco
+..oabbbbbbbbbbbbco
+.oaabbbbbbbbbbbcco
+.oabbbbbbbbbbccco.
+oabbbbbbbbbPccooo.
+ocbbbbbbbbccoo....
+occcccccccoo......
+.ooooooooo........
diff --git a/parts_pl_src/head_top/pl_blowhole_spout.txt b/parts_pl_src/head_top/pl_blowhole_spout.txt
new file mode 100644
index 0000000..0971cb4
--- /dev/null
+++ b/parts_pl_src/head_top/pl_blowhole_spout.txt
@@ -0,0 +1,26 @@
+# pl_blowhole_spout: pixellab_src/pl_teapot/pl_blowhole_spout.png minus base.png
+# pivot at (32, 28)
+.............ooo..........................
+............o333o.......oo................
+............o1ww3o.....o33o...............
+............o3331o....o3w3o......ooo......
+.............ooo31o...o313o.....o333o.....
+...........ooo..o31o..ow3o.....o11ww3o....
+..........o3w1o..o1o.o3w3o....o333333o....
+..........o3333ooo31oo31o...ooooooooo.....
+...........ooo333oo3oo3o..oo3333o.........
+........ooo3333o3oo3oo3o.o33www1ooo.......
+.......o333wwww1133o131oo31ww11w113o......
+......o31wwww111w113131o3ww1111www13o.....
+.....o31w1w1111111w11oo31w11131111w13o....
+....o31ww1113333321w13o3w1133333111ww3o...
+...o3www1133oo333311233113333ooo3311w3o...
+...o3w1113oo..oo333313313333o13oo3311w3o..
+...o31113o......o3331331333o.owo.o311w3o..
+..o3w113o........o33311133o..o3o..o311w3o.
+..o3w13o..........o331133o....o3o..o31w3o.
+..o1113o..........o33113o......o...o3113o.
+.o31113o...........o3133o..........o31113o
+.o3113o............o................o3113o
+o3w113o..............P..............o31w3o
+o3w13o...............................o113o
diff --git a/parts_pl_src/head_top/pl_bonsai.txt b/parts_pl_src/head_top/pl_bonsai.txt
new file mode 100644
index 0000000..341a64b
--- /dev/null
+++ b/parts_pl_src/head_top/pl_bonsai.txt
@@ -0,0 +1,29 @@
+# pl_bonsai: pixellab_src/pl_pangolin/pl_bonsai.png minus base.png
+# pivot at (33, 29)
+.........ooo........
+........ozzzo.......
+.......ozxxxzo......
+......ozxxxxxzo.....
+.....ozxxxxyyxzo....
+....ozxxxxyzxxyzo...
+...ooozyxyzxyyzoo...
+..ozzzozzzczzzozzo..
+.ozxxxzooocooozxxzo.
+ozxxyxyzooboozxxxyzo
+ozxyyzzzooboozzzyxzo
+.ozzzocoobcccoozzzo.
+..oooocoabooo..ooo..
+......ooabo.........
+.......ocacoo.......
+........ocaaco......
+.........oocaco.....
+...........obao.....
+...........obao.....
+.........oobbco.....
+........ocabbo......
+......oobacbocooo...
+.....oyyyyyyyyyyyo..
+.....occ.cc.ccccco..
+......obyyy.yy.co...
+......o.byPyyybco...
+.......ooooooooo....
diff --git a/parts_pl_src/head_top/pl_bow_ribbon.txt b/parts_pl_src/head_top/pl_bow_ribbon.txt
new file mode 100644
index 0000000..ee2fd3b
--- /dev/null
+++ b/parts_pl_src/head_top/pl_bow_ribbon.txt
@@ -0,0 +1,25 @@
+# pl_bow_ribbon: pixellab_src/pl_shoebill/pl_bow_ribbon.png minus base.png
+# pivot at (32, 24)
+.......ooo..............ooo.....
+......obbaoo...........obbbo....
+.....obaaacco........ooaaabbo...
+.....obaaaabo.......ocaaaaabo...
+.....obaaaaabo.....obaaaaaabo...
+.....obaaaaaabo...ooaaaaaaabo...
+....obaaaabaaboooooaaaaaaaabo...
+....obaaaaccaacaacaacccaaaabo...
+...obaaaaabcccaaaccccaaaaaaao...
+...obaaaaaabccaaacbaaaaaaaaabo..
+...obaaaaaaabcbbbcbaaaaaaaaabo..
+...obaccccccccbbbcccccaaaaabbo..
+....occcbbboo.ooP.occccccccbbo..
+...oobbbboo........ooccccccco...
+..obaoobo............obccccco...
+oobaaooo.............ooccbbbbo..
+oaaaaoo...............oobbbaabo.
+oooaaao.................oaaaaao.
+..oaao..................oaaaaaao
+..oaoo...................oaaoooo
+..ooo....................oaao...
+..........................oao...
+..........................ooo...
diff --git a/parts_pl_src/head_top/pl_brain_dome.txt b/parts_pl_src/head_top/pl_brain_dome.txt
new file mode 100644
index 0000000..b71cbde
--- /dev/null
+++ b/parts_pl_src/head_top/pl_brain_dome.txt
@@ -0,0 +1,21 @@
+# pl_brain_dome: pixellab_src/pl_shoebill/pl_brain_dome.png minus base.png
+# pivot at (32, 24)
+....ooooooooo....
+...o333333333o...
+..o31ww1111113o..
+..o32222222223o..
+..oo211111112o...
+.o321w11111113o..
+o31ww1111111113o.
+o31w11bbbbb11113o
+o3111babaaac1113o
+o311babaabbbc113o
+o31babaabaacbc13o
+o31bacabaaacac13o
+o31bacabaababc13o
+o311ccaabcabcc13o
+o3111cccccbbc113o
+o311111..czc1113o
+o31111...1yz1113o
+.o3111...111113o.
+.o.33.33P....3oo.
diff --git a/parts_pl_src/head_top/pl_candle_flame.txt b/parts_pl_src/head_top/pl_candle_flame.txt
new file mode 100644
index 0000000..3c536c2
--- /dev/null
+++ b/parts_pl_src/head_top/pl_candle_flame.txt
@@ -0,0 +1,20 @@
+# pl_candle_flame: pixellab_src/pl_manatee/pl_candle_flame.png minus base.png
+# pivot at (31, 23)
+...o..
+..oho.
+.ohho.
+.ohhho
+ohhgho
+ohgfho
+.ohhho
+.ooho.
+ofggfo
+offffo
+ogfgfo
+ogfgfo
+ogffgo
+ogffgo
+ogffgo
+ogffgo
+oggggo
+.hPhh.
diff --git a/parts_pl_src/head_top/pl_chef_hat.txt b/parts_pl_src/head_top/pl_chef_hat.txt
new file mode 100644
index 0000000..1ae57b3
--- /dev/null
+++ b/parts_pl_src/head_top/pl_chef_hat.txt
@@ -0,0 +1,17 @@
+# pl_chef_hat: pixellab_src/pl_teapot/pl_chef_hat.png minus base.png
+# pivot at (32, 28)
+......ooooo......
+..oooo1xxxxoooo..
+.o1xx1xxxxxx1xxo.
+.oxxxxxxxxxxxxxo.
+oxxxxxxxxxxxxxxxo
+oxxx1xxxxxxx1xxxo
+oxxx11xxxxxx1xx1o
+o1xx111xxxx11x11o
+.o1111111111111o.
+..oo1x1111111oo..
+...o1xx1P11x1o...
+...o1xxxxxxx1o...
+...o1xxxxxxx1o...
+...o1xxxxxxx1o...
+...ooooooooooo...
diff --git a/parts_pl_src/head_top/pl_cherries.txt b/parts_pl_src/head_top/pl_cherries.txt
new file mode 100644
index 0000000..1883b4b
--- /dev/null
+++ b/parts_pl_src/head_top/pl_cherries.txt
@@ -0,0 +1,22 @@
+# pl_cherries: pixellab_src/pl_pangolin/pl_cherries.png minus base.png
+# pivot at (33, 29)
+..........oo....
+.........o22o...
+........o2z2o...
+.......o2z2o....
+......ozz22o....
+......o2222o....
+.....oz2o22o....
+.....o2oo22o....
+....oz2o.o2o....
+....o22o.o22o...
+..ooo2oo.oo2oo..
+.oaaoobboaoobao.
+oaaaaaaoaaaaaabo
+oaaaaaaoaaaaaabo
+oaaaaaboaaaaabbo
+.oaaabbobaaabbbo
+.oobbboooobbbbo.
+..ooooo..oooooo.
+................
+........P.......
diff --git a/parts_pl_src/head_top/pl_cowlick_curl.txt b/parts_pl_src/head_top/pl_cowlick_curl.txt
new file mode 100644
index 0000000..9e865e2
--- /dev/null
+++ b/parts_pl_src/head_top/pl_cowlick_curl.txt
@@ -0,0 +1,20 @@
+# pl_cowlick_curl: pixellab_src/pl_pangolin/pl_cowlick_curl.png minus base.png
+# pivot at (33, 29)
+.....oooo.........
+.....o111o........
+.....o1111o.......
+...oo111212o......
+..o11133222o......
+..o1133oo33o......
+.o1123o..oo.......
+.o112o............
+o3122o............
+o3133o............
+o3133oo..........P
+o22133oo..........
+oo32133ooo........
+.o33313.3oo.......
+..o33333.3o.......
+...oo3333.o.......
+.....o333o........
+.....oo..o........
diff --git a/parts_pl_src/head_top/pl_crown_gold.txt b/parts_pl_src/head_top/pl_crown_gold.txt
new file mode 100644
index 0000000..90c99fb
--- /dev/null
+++ b/parts_pl_src/head_top/pl_crown_gold.txt
@@ -0,0 +1,12 @@
+# pl_crown_gold: pixellab_src/pl_meerkat/pl_crown_gold.png minus base.png
+# pivot at (31, 24)
+......oo......
+oo...oyzo...oo
+oyo..oyzo..ozo
+ozo..ozzo..ozo
+.ozoozbazoozo.
+.ozzozaczoyzo.
+.ozzzzcczyzzo.
+.ozzzzzzzzzzo.
+.oozzzzzzzzoo.
+...oooPoooo...
diff --git a/parts_pl_src/head_top/pl_dragon_mane.txt b/parts_pl_src/head_top/pl_dragon_mane.txt
new file mode 100644
index 0000000..eb374eb
--- /dev/null
+++ b/parts_pl_src/head_top/pl_dragon_mane.txt
@@ -0,0 +1,21 @@
+# pl_dragon_mane: pixellab_src/pl_manatee/pl_dragon_mane.png minus base.png
+# pivot at (31, 23)
+..............oo..............
+....oo.......occo.......oo....
+...oyxo......oaao.......oyo...
+...oyxo.....ocaacoo.....oyo...
+...oyxo....occaaccco...oyyo...
+...oyxxo..occcaacacco.oyxyo...
+....ozxyooccacaacacccoyxzo....
+.....ozxzoooacaacacoozxzo.....
+.....oozzz2.acPacao3zzzco.....
+....occoz...occcco...zzoco....
+...oaac3.....occo.....3oaao...
+..oaac3.......cc.......oaaao..
+.oaac3..................3aaao.
+.oaac....................ccao.
+oaacc....................ccaao
+oaccc....................cccao
+oaoc......................coco
+oao........................oco
+.oo........................oo.
diff --git a/parts_pl_src/head_top/pl_earmuffs.txt b/parts_pl_src/head_top/pl_earmuffs.txt
new file mode 100644
index 0000000..3da193e
--- /dev/null
+++ b/parts_pl_src/head_top/pl_earmuffs.txt
@@ -0,0 +1,22 @@
+# pl_earmuffs: pixellab_src/pl_meerkat/pl_earmuffs.png minus base.png
+# pivot at (31, 24)
+.............oooooooo............
+...........oozzzzzzzzooo.........
+.........oozzzzzzzzzzzzoo........
+........ozzzzoooooooozzzzo.......
+.......ozzzzo........ozzzzo......
+......ozzzzo..........ozzzo......
+....ooozzzo............ozzzooo...
+...oaacozo..............ozoaaao..
+..oaaaabo...............obbaaaao.
+.oaaaaaboo......P.......obbaaaao.
+.oaaaaaabo..............obaaaaaao
+.oaaaaaabo..............obaaaaaao
+oaaaaaaabo..............obaaaaaao
+obaaaaaabo..............obbaaaabo
+obba.abbo...............obbaa.bbo
+obba..bbo...............obbb..bbo
+.obbb.bbo...............ocbb.bbbo
+.obbbb.co...............ocb.bbbo.
+..obbbooy................oobbbo..
+...ooooo..................oooo...
diff --git a/parts_pl_src/head_top/pl_ears_cat.txt b/parts_pl_src/head_top/pl_ears_cat.txt
new file mode 100644
index 0000000..ee52349
--- /dev/null
+++ b/parts_pl_src/head_top/pl_ears_cat.txt
@@ -0,0 +1,19 @@
+# pl_ears_cat: pixellab_src/pl_manatee/pl_ears_cat.png minus base.png
+# pivot at (31, 23)
+.oo......................oo.
+o22o....................o22o
+o222o..................o222o
+o2322o................o2232o
+o2c322o..............o223c2o
+o2cc322o............o223cc2o
+o2aac322o..........o222caa2o
+o2aabc222o........o222ccaa2o
+o2aabcc223o......o3223caaa2o
+o2aaacc322...P....323ccaaa2o
+o2aaacc3............3ccaaa2o
+o33acc3..............3ccaa3o
+o33cc3................3cc33o
+.o33c..................3c3o.
+.o33....................33o.
+..o3....................3o..
+..o......................o..
diff --git a/parts_pl_src/head_top/pl_ears_round.txt b/parts_pl_src/head_top/pl_ears_round.txt
new file mode 100644
index 0000000..365910e
--- /dev/null
+++ b/parts_pl_src/head_top/pl_ears_round.txt
@@ -0,0 +1,21 @@
+# pl_ears_round: pixellab_src/pl_manatee/pl_ears_round.png minus base.png
+# pivot at (31, 23)
+.......ooooo....................ooooo.......
+.....oo22222oo................oo22222oo.....
+....o112222222o..............o112222222o....
+...o11133333222o............o11333333222o...
+..o1113bbbbcc323o..........o113cbbbbbb322o..
+.o1113aaaaaabc223o........o222cbaaaaaaa222o.
+.o113aaaaaaaabc22o........o223baaaaaaaaa22o.
+o213aaaaaaaaaab323o......o223caaaaaaaaaa322o
+o223aaaaaaabbaac33o......o22caabbaaaaaaa322o
+o22aaaaaabbbbbcc33o......o23cbbbbbbaaaaaa22o
+o22aaaaabbbbbbcc33o......o23cbbbbbbbaaaaa22o
+o22aaaaabbbbbccc33o......o23cccbbbbbaaaaa22o
+o223aaabbbbbccccoo...P....oocccccbbbbaaa322o
+.o22aaabbbbcccco............occcccbbbaab32o.
+.o323babbbbccco..............occccbbbaa333o.
+..o333baabbcco................occcbbbb333o..
+...o3333cccco..................occcc3333o...
+....oo33333o....................o33333oo....
+......oooooo....................oooooo......
diff --git a/parts_pl_src/head_top/pl_eyestalks.txt b/parts_pl_src/head_top/pl_eyestalks.txt
new file mode 100644
index 0000000..85a12f2
--- /dev/null
+++ b/parts_pl_src/head_top/pl_eyestalks.txt
@@ -0,0 +1,22 @@
+# pl_eyestalks: pixellab_src/pl_manatee/pl_eyestalks.png minus base.png
+# pivot at (31, 23)
+...ooo..................ooo...
+..oaaao................oaaao..
+.oaxaaao..............oaxaaao.
+oaxxooabo............oaxxooabo
+oaaoooabo............oaaoooabo
+oaaoooabo............oaaoooabo
+obbaaabbo............obbaaabbo
+.obbbbbo..............obbbbbo.
+..oo33o................o33oo..
+....o33o..............o33o....
+....o32o..............o23o....
+.....o22o............o22o.....
+.....o32o............o22o.....
+.....o322o..........o223o.....
+......o322o........o223o......
+......o322o........o223o......
+......o322o.......oo223o......
+......o3322o......o2233o......
+.......o3..o..P...o..3o.......
+.......o..............o.......
diff --git a/parts_pl_src/head_top/pl_goggles.txt b/parts_pl_src/head_top/pl_goggles.txt
new file mode 100644
index 0000000..93025e3
--- /dev/null
+++ b/parts_pl_src/head_top/pl_goggles.txt
@@ -0,0 +1,13 @@
+# pl_goggles: pixellab_src/pl_pangolin/pl_goggles.png minus base.png
+# pivot at (33, 29)
+...ooooo.....ooooo...........
+..oxxyzzo..ooxxyyzooo........
+.oxz12yzyoooxz1...zyo........
+oxz2112yzooxz21.P.yzyo.......
+oxz1112yzyyxz.11..yzyzooooooo
+oyz1112yzzzxz.111.yzyzcb.b.c.
+oyz111.yzooyz11112yzzzcbbbbc.
+.oyz22yzzoooyz222yzzzoooooooo
+.ooyy.zzo..ooy.yyzzzoo.......
+..ooooooo...oozzzzoo.........
+..............oooo...........
diff --git a/parts_pl_src/head_top/pl_hair_buns.txt b/parts_pl_src/head_top/pl_hair_buns.txt
new file mode 100644
index 0000000..b8faee9
--- /dev/null
+++ b/parts_pl_src/head_top/pl_hair_buns.txt
@@ -0,0 +1,11 @@
+# pl_hair_buns: pixellab_src/pl_x_potato/pl_hair_buns.png minus base.png
+# pivot at (31, 30)
+...ooo..................ooo...
+..oxxyo................oyxxo..
+.oxxxxyo..............oyxxxxo.
+oxxxxxyo..............oyxxxxyo
+oxxxxyyo..............oyyxxxxo
+oyxxyyo................oyyxxyo
+oyyyyo........P.........oyyyyo
+.oyyo....................oyyo.
+..oo......................oo..
diff --git a/parts_pl_src/head_top/pl_headgear_boxing.txt b/parts_pl_src/head_top/pl_headgear_boxing.txt
new file mode 100644
index 0000000..c7de47d
--- /dev/null
+++ b/parts_pl_src/head_top/pl_headgear_boxing.txt
@@ -0,0 +1,24 @@
+# pl_headgear_boxing: pixellab_src/pl_ape/pl_headgear_boxing.png minus base.png
+# pivot at (29, 33)
+......ooooooooo.......
+....oocbaaaaaccoo.....
+...occaaaaaacaabco....
+..ocacaaaaacaaaaaco...
+.occccccccccccccccco..
+obaaaaaaaaaaaaaaabbo..
+obaaaaaaaaaaaaaaabbco.
+obaaaaaaaaaaaaaaabbco.
+obaaaaaaaaaaaaaaabcco.
+obccaaaaaaaabbbaabcaco
+obcocbbbbbccooocacacco
+obcooooooooo..ocacacco
+obco..........ocacacco
+oacoo.........ocacbbco
+oaaco.......obaaaccco.
+oaaaco.....obaaaaacco.
+obaaco.....oaaaaaccoo.
+.oaaco...P.obaaacco...
+..oac.ccc.c..aa.co....
+..ooac..aaaa.c.ooo....
+...ooobbbbbcooo.......
+......oooooo..........
diff --git a/parts_pl_src/head_top/pl_headphones.txt b/parts_pl_src/head_top/pl_headphones.txt
new file mode 100644
index 0000000..e16583d
--- /dev/null
+++ b/parts_pl_src/head_top/pl_headphones.txt
@@ -0,0 +1,28 @@
+# pl_headphones: pixellab_src/pl_weevil/pl_headphones.png minus base.png
+# pivot at (34, 30)
+.........oooooooooo...........
+.......ooyyyyyyyyyyoo.........
+......oyycccccccyyyyyo........
+.....oyccccoooocccyxxxo.......
+....oycccoo....ooocyxxxo......
+...oyccco.........ocyxxxo.....
+...oycco...........oyyxxo.....
+..oyccco............oyyyyo....
+..oycco.............oyyyyo....
+..oyzzo..............oyyyyo...
+..oyzzo..............oyyyyo...
+.oyzzzo..............oozzzo...
+.oyzzoooo.............oyxxyo..
+.oyzoaaaco............oyxxyo..
+.oyoaaoooo......P...oooyxxyo..
+oyzaao.............oaaoyzzzo..
+.ycaco............oaabyyzzzzo.
+.occco...........oaabxxzxxyxzo
+..oco............oacyxzyxyyyyo
+...o.............oacyyzxyyyyyo
+.................occyyzyyyyyyo
+.................occyyzyyyyyyo
+.................occyyzyyyyyz.
+.................occcyyzyyyyo.
+..................occbyyzzzo..
+...................oooooooo...
diff --git a/parts_pl_src/head_top/pl_hibiscus.txt b/parts_pl_src/head_top/pl_hibiscus.txt
new file mode 100644
index 0000000..c836463
--- /dev/null
+++ b/parts_pl_src/head_top/pl_hibiscus.txt
@@ -0,0 +1,24 @@
+# pl_hibiscus: pixellab_src/pl_teapot/pl_hibiscus.png minus base.png
+# pivot at (32, 28)
+.........oooo..........
+.......oocaacoo........
+......occaaaacco.......
+.....ocaaaaaaaacooo....
+.....ocaaaaaaaacocco...
+...ooocaaaababacaaaco..
+..ocaabcaaababbcyaaaco.
+.ocaaaaacbbbbbcybbaaao.
+ocaaaabbbcbcccybayaaaco
+ocaaaaabccbccocaybaaaco
+ocaaabbbcccoooabcbbaaco
+ocaaaaabccoocacccbbaaco
+ocaaaaabcooaaccccccaco.
+ocbaaaabccoooocbbaacco.
+.ocbaaccabccoccbbaaaco.
+..occcaaabcbPccbabaaaco
+...ocaaabbbbacbbaaaaaco
+...ocaaababbacabaaaaaco
+...ocaaaaabaacaaaaaaco.
+....ocbaaaaabccaaaacco.
+.....o....acc.c..c.oo..
+.........ccc...........
diff --git a/parts_pl_src/head_top/pl_horn_unicorn.txt b/parts_pl_src/head_top/pl_horn_unicorn.txt
new file mode 100644
index 0000000..1b530ab
--- /dev/null
+++ b/parts_pl_src/head_top/pl_horn_unicorn.txt
@@ -0,0 +1,13 @@
+# pl_horn_unicorn: pixellab_src/pl_meerkat/pl_horn_unicorn.png minus base.png
+# pivot at (31, 24)
+...oo..
+..ozzo.
+..ozzo.
+..oyzo.
+.ozzyo.
+.ozyzo.
+.ozzyo.
+o.yyz.o
+.zzzzz.
+.zyPzz.
+..zzzc.
diff --git a/parts_pl_src/head_top/pl_jester_hat.txt b/parts_pl_src/head_top/pl_jester_hat.txt
new file mode 100644
index 0000000..cb43997
--- /dev/null
+++ b/parts_pl_src/head_top/pl_jester_hat.txt
@@ -0,0 +1,17 @@
+# pl_jester_hat: pixellab_src/pl_teapot/pl_jester_hat.png minus base.png
+# pivot at (32, 28)
+......oooo...........oooo......
+.....obbbcoo.......ooabbco.....
+....obaabbbco.....obabbbbco....
+....oabbbbbbco...obabbbbbbo....
+...oabbccbbbbbo.obbbbbbccbbo...
+..obbbccccbbbbcocbbbbcccccbbo..
+..obbcoocccbbbbcbbbbcccooccbo..
+..obco..occbbbbbbbbbcco..occo..
+.ozzo....occbbbbbbbcco....ozzo.
+oxxxzo...occcbbPbbbcco...oxxxzo
+oxxxzo...occccbbbbbcco...oxxyzo
+.ozzo...occccccccccccco...ozzo.
+..oo....oyyxxxxxxxyyyzo....oo..
+........ozyyyxxxxyyzzzo........
+........ooooooooooooooo........
diff --git a/parts_pl_src/head_top/pl_kabuto.txt b/parts_pl_src/head_top/pl_kabuto.txt
new file mode 100644
index 0000000..356f9d4
--- /dev/null
+++ b/parts_pl_src/head_top/pl_kabuto.txt
@@ -0,0 +1,27 @@
+# pl_kabuto: pixellab_src/pl_shoebill/pl_kabuto.png minus base.png
+# pivot at (32, 24)
+......oo.........oo...........
+.....oyo.........oyo..........
+....oyzo.........oxzo.........
+....oxzo.........oxzo.........
+...oxzo..........oxzo.........
+...oxzo.....oooo.oxzo.........
+...oxzo...ooaaabooxzo.........
+...oxzo..ocaabbbboxzo.........
+...oyxo.obaaaaaboyzzo.........
+...ozxyocbaaaaaoyxzoco........
+....ozxyoaaaaaoyxzzocco.......
+...o.ozyzoooooyxzzocccco......
+..oaoozzyyyyyyyzzzoccooo......
+.oaaaoozzyyyyzzzzoccoaao......
+oaaaacooozzzzzzooccoaabco.....
+oaaaccocccccccccccobaabbo.....
+.oaccobaaabbbbPbccobbaacoo....
+..ocooaaaaaaaaaaccoobacocco...
+..ooo.obaaaaaaccco..obocccco..
+.obo...oooooooooo...ooccaabco.
+.oboo................ocabaccoo
+oacco.................oacaabbo
+oaco..................obacbbco
+oooo...................oaabco.
+.......................ooooo..
diff --git a/parts_pl_src/head_top/pl_ladybug_cap.txt b/parts_pl_src/head_top/pl_ladybug_cap.txt
new file mode 100644
index 0000000..f87a8ef
--- /dev/null
+++ b/parts_pl_src/head_top/pl_ladybug_cap.txt
@@ -0,0 +1,14 @@
+# pl_ladybug_cap: pixellab_src/pl_weevil/pl_ladybug_cap.png minus base.png
+# pivot at (34, 30)
+.....oooooo.....
+...oobbocccoo...
+..oobbobbbacco..
+.ocbcobboooacco.
+.ocbobbbooobbcco
+ocoobbbbbbbbocco
+ooooo..oobbbooco
+.....obPobbboo.o
+....oocccccccco.
+.....3oooooooo3.
+......333...32..
+...........o....
diff --git a/parts_pl_src/head_top/pl_laurel.txt b/parts_pl_src/head_top/pl_laurel.txt
new file mode 100644
index 0000000..bd26193
--- /dev/null
+++ b/parts_pl_src/head_top/pl_laurel.txt
@@ -0,0 +1,15 @@
+# pl_laurel: pixellab_src/pl_shoebill/pl_laurel.png minus base.png
+# pivot at (32, 24)
+.....oo.ooo.....ooooo.....
+..o.ozzozzzo...ozzzzzo....
+.ozozxyzxoo....ooyxzxzoo..
+.ozxzyzzzzzo....oozzzzzzo.
+.ozxzzzyzzo.....oozxzzxzo.
+ozzzzxzzooo....o.zzxxzxzo.
+ozxyzxyzzoo...zzzxzxyzzzo.
+.ozzzzyyxz...Pxyzyzzyyxzzo
+.ozxxxzzzzz.zzzzzyyyzzzoo.
+..ozzzzzzzzxzzzzyzyxz.o...
+..ooo.zzzz.zz.zzzzoo......
+.....ozz.......zooo.......
+.....oo.o.....ooo.........
diff --git a/parts_pl_src/head_top/pl_lure_bulb.txt b/parts_pl_src/head_top/pl_lure_bulb.txt
new file mode 100644
index 0000000..2bb9776
--- /dev/null
+++ b/parts_pl_src/head_top/pl_lure_bulb.txt
@@ -0,0 +1,28 @@
+# pl_lure_bulb: pixellab_src/pl_teapot/pl_lure_bulb.png minus base.png
+# pivot at (32, 28)
+..............oooo...
+.............oyyyyo..
+............oyzzzzyo.
+...........oyzxxxxzzo
+.......ooooozyxxxxyzo
+.....oo11113zxxxxxyzo
+.....o122ooozyxxxyyzo
+....o12oo.oyzzyxxyzyo
+...o12o....ozyzzzzyo.
+..o11o......oyyyyyo..
+..o12o.......ooooo...
+.o11o................
+.o12o................
+.o12o................
+o212o................
+o212o................
+o212o................
+o212o................
+o212o................
+o212o................
+o212o................
+o212o................
+o212o................
+o212o................
+o...o................
+..P..................
diff --git a/parts_pl_src/head_top/pl_miner_helmet.txt b/parts_pl_src/head_top/pl_miner_helmet.txt
new file mode 100644
index 0000000..37eb8a0
--- /dev/null
+++ b/parts_pl_src/head_top/pl_miner_helmet.txt
@@ -0,0 +1,17 @@
+# pl_miner_helmet: pixellab_src/pl_pangolin/pl_miner_helmet.png minus base.png
+# pivot at (33, 29)
+.........oooooo.....
+.......oozyyyyzoo...
+......obxxxzzzzzzo..
+.....ozxxxzzyxxyyo..
+....ozxxxzzyxyxyyzo.
+...ooooxxzzyyyyyyzzo
+..oxxzooyzyyyyyyzzzo
+.oxxxxozozyyyyyyzzzo
+.oxxxxozozyyyyzzzzoo
+.oxxxxoooozzooooooo.
+.ozxx2oooozzozyyoo..
+ozo22oozzzzPzzzzz...
+ozxooooyyyyyzzzzoo..
+.ozyyyyyxyzzoooo....
+..ooooooooooo.......
diff --git a/parts_pl_src/head_top/pl_mohawk.txt b/parts_pl_src/head_top/pl_mohawk.txt
new file mode 100644
index 0000000..98d467d
--- /dev/null
+++ b/parts_pl_src/head_top/pl_mohawk.txt
@@ -0,0 +1,20 @@
+# pl_mohawk: pixellab_src/pl_weevil/pl_mohawk.png minus base.png
+# pivot at (34, 30)
+...........oo................
+..........oco................
+.....oo..ocao...oo...........
+.....oco.ocao..oco...........
+.....oco.oabooocco...oo......
+....occcobabbocaco.ooco......
+....ocacobabbccacoocaco......
+ooo.ocaccbabbbaacccaao.......
+occoocaccbabcbabccaabooooo...
+ocacocaaccaccbcbbcabbbbbco...
+ocaaccaaccaccccccccccbabo....
+.ocaabbaacccoooooooooccbcoooo
+.ocbaabaccco.........ooccbbco
+.occaabccco....P.......oobco.
+..ocbabcco...............occo
+..occcbco.................oco
+...ooccco..................oo
+.....oooo....................
diff --git a/parts_pl_src/head_top/pl_nightcap.txt b/parts_pl_src/head_top/pl_nightcap.txt
new file mode 100644
index 0000000..b25c61f
--- /dev/null
+++ b/parts_pl_src/head_top/pl_nightcap.txt
@@ -0,0 +1,21 @@
+# pl_nightcap: pixellab_src/pl_meerkat/pl_nightcap.png minus base.png
+# pivot at (31, 24)
+...........ooooo............
+........oooaaaaao...........
+.......ocaaaaaaaaoo.........
+.....ooaaaaaaaaaaaao........
+....ocaaaaaaaaaaaaaao.......
+...ocaaaaaaaaaaacaaaao......
+...oaaaaaaaaaaaaccbaaao.....
+..oaaaaaaaaaaaccocbaaaco....
+..oaaaaaaaaaaabcoccccaao....
+.ooaaaaaaaaabbbcooooccaco...
+oyycccccccbbcccco...occco...
+oyyyyyyyyycccczzzo...occo...
+oyyyyyyyyyyyyyzzzo....oooo..
+.ozzzyyyyyyyzzzzzo...oyyyzo.
+..ooozzzzzzzzoooo...oyyxyyzo
+....33..P...33......oyyyyyzo
+....................ozyyyzzo
+....................oozzzzo.
+.....................ooooo..
diff --git a/parts_pl_src/head_top/pl_ossicones.txt b/parts_pl_src/head_top/pl_ossicones.txt
new file mode 100644
index 0000000..4078869
--- /dev/null
+++ b/parts_pl_src/head_top/pl_ossicones.txt
@@ -0,0 +1,18 @@
+# pl_ossicones: pixellab_src/pl_manatee/pl_ossicones.png minus base.png
+# pivot at (31, 23)
+...oo.........oo...
+..oao.........oao..
+.oaao.........oaao.
+.oao...........oao.
+obao...........oabo
+ob1o...........o1bo
+o11o...........o11o
+o11o...........o11o
+o11o...........o11o
+o11o..........o111o
+o111o.........o111o
+.o11o.........o11o.
+.o212o..P......12o.
+.o3.23..........o..
+o2o33..............
+o..................
diff --git a/parts_pl_src/head_top/pl_party_hat.txt b/parts_pl_src/head_top/pl_party_hat.txt
new file mode 100644
index 0000000..45a4430
--- /dev/null
+++ b/parts_pl_src/head_top/pl_party_hat.txt
@@ -0,0 +1,24 @@
+# pl_party_hat: pixellab_src/pl_wombat/pl_party_hat.png minus base.png
+# pivot at (30, 27)
+.......oo......
+......oxyo.....
+.....oxyyyo....
+.....ozyyzo....
+......ozyo.....
+.......oo......
+......oyzo.....
+.....oyyzzo....
+.....oxyyzo....
+....oyxybcco...
+....oxbbbcco...
+....obbbbczo...
+...obbbbbzzzo..
+...obbyyyyzzo..
+..oyxyyyyyccco.
+..oxyyyybbccco.
+.oyxbbbbbbccco.
+.obbbbbbbbbzzzo
+obbbbbbbyyyzzzo
+oxbbyyyyyyyzzzo
+oooyyyyyzzzzoo.
+...ooooPooooo..
diff --git a/parts_pl_src/head_top/pl_propeller_cap.txt b/parts_pl_src/head_top/pl_propeller_cap.txt
new file mode 100644
index 0000000..bce94f6
--- /dev/null
+++ b/parts_pl_src/head_top/pl_propeller_cap.txt
@@ -0,0 +1,18 @@
+# pl_propeller_cap: pixellab_src/pl_shoebill/pl_propeller_cap.png minus base.png
+# pivot at (32, 24)
+..oooo.......ooo..
+.ozzzzooooooozzzo.
+ozxyyyzzxyzzzyyyzo
+ozxyyzzzyyzzyyyyzo
+.ozzzoozyzoozzzzo.
+..ooo.ozyzo.oooo..
+.....oozyzoo......
+....obbyyzcco.....
+...obabbbbbcco....
+..obabbbbbbbcco...
+.obabbbbbbbbccco..
+ocabbbbbbbbcbccoo.
+ocbbbbbbbcccbccco.
+occcbbbbbbccoccco.
+.oocccccPcccoooo..
+...oooooooooo.....
diff --git a/parts_pl_src/head_top/pl_pumpkin_hat.txt b/parts_pl_src/head_top/pl_pumpkin_hat.txt
new file mode 100644
index 0000000..902971f
--- /dev/null
+++ b/parts_pl_src/head_top/pl_pumpkin_hat.txt
@@ -0,0 +1,20 @@
+# pl_pumpkin_hat: pixellab_src/pl_manatee/pl_pumpkin_hat.png minus base.png
+# pivot at (31, 23)
+..........oo........
+.........ozzo.......
+........ozzoo.......
+........ozzo........
+....ooooozzzoooo....
+...oaybbaaaabbaao...
+..oaybbayyyxybbyao..
+.obybbyyyyyyxybbyao.
+.obybooyyyyyyoobyybo
+obabyoooyyyyooobbybo
+obybyoooyyyyoooybybo
+obybyyyyyooyyyyybybo
+obybobyyyyyyyybobybo
+obybaooyoooooyoababo
+.oabayoooyyoooyabao.
+..oacabayyyyybacbo..
+...oocbbaPaabbcoo...
+.....oooooooooo.....
diff --git a/parts_pl_src/head_top/pl_skull_cap.txt b/parts_pl_src/head_top/pl_skull_cap.txt
new file mode 100644
index 0000000..f2cf3f3
--- /dev/null
+++ b/parts_pl_src/head_top/pl_skull_cap.txt
@@ -0,0 +1,15 @@
+# pl_skull_cap: pixellab_src/pl_doll/pl_skull_cap.png minus base.png
+# pivot at (32, 27)
+......oooo......
+.....ozzzzo.....
+....oyxyyyyo....
+...oxxyyyyyyo...
+..oyyyyyyyyyyo..
+.ooyyyyyyyzyyzo.
+ozyoyyyyooxzyzo.
+ozyooyyoooyoyo..
+.oyoozyoooyozoo.
+ozzyyooyyyyooyzo
+.ozoyyyyozozzzzo
+.oozzyoyP....oo.
+....oooo........
diff --git a/parts_pl_src/head_top/pl_sombrero.txt b/parts_pl_src/head_top/pl_sombrero.txt
new file mode 100644
index 0000000..dc82f1b
--- /dev/null
+++ b/parts_pl_src/head_top/pl_sombrero.txt
@@ -0,0 +1,15 @@
+# pl_sombrero: pixellab_src/pl_meerkat/pl_sombrero.png minus base.png
+# pivot at (31, 24)
+.........ooo.........
+........obbbo........
+.......obbbabo.......
+......obbbbbabo......
+......obbbbbabo......
+......obbbbbbbo......
+.ooooozzzzzzzzzooooo.
+ozbbbbzzzzzzzzzbbbbzo
+ozzzzzzzzzzzzzzxzzzzo
+obzbzbbzbbzbbzbbzbzbo
+.oobbbbbbbbbbbbbbboo.
+...ooooooooooooooo...
+..........P..........
diff --git a/parts_pl_src/head_top/pl_spore_puffs.txt b/parts_pl_src/head_top/pl_spore_puffs.txt
new file mode 100644
index 0000000..a1101ff
--- /dev/null
+++ b/parts_pl_src/head_top/pl_spore_puffs.txt
@@ -0,0 +1,26 @@
+# pl_spore_puffs: pixellab_src/pl_weevil/pl_spore_puffs.png minus base.png
+# pivot at (34, 30)
+.............ooooo............
+...........ooxxxxxoo..........
+..........oxxxxxxxxxo.........
+.........oxxxxxxxxxxyo........
+........oxxxxxxxxxxbbyo.......
+........oxxxxxxxxxbbbco.......
+.......oxxxxxxxxxxbbbcyo......
+.......oxxbbxxxxxxxccyyo......
+.....oooxbbbbxxxxxxxxyyyo.....
+...ooxxzzcbbbxxxxxxxyyyyo.....
+..oxxxxxyzccxxxxzzzyyyyyooo...
+.obbxxxxxyzyyyyzzxxzzyzzxxxo..
+obbxxxxxxyzyyyzbxxxxyzxxxxxxo.
+oxxxxxxbcyyzzzbbxxxxyzxxxxxbco
+oxxxxxbbcyyooyxxxxxxyyzxxxbbco
+oyxxxxxbcyyooyxxxxxbcyzxxxxbyo
+oyyyxxyyyyoyoyxxxxxbcczyxxxyyo
+.oyyyyyyyooxozyyxxxccyzyyyyyyo
+..oooyyzo.oxyzzyyyyyyoozzzyyo.
+....oxyoyooxyyzoyyyoo.oyyzoo..
+....oxyoooooyyzoyxyo..oxyo....
+....oooo.....oPoxxyo..ooyo....
+...............oyyyo3...o.....
+................ooo333........
diff --git a/parts_pl_src/head_top/pl_sprouts_twin.txt b/parts_pl_src/head_top/pl_sprouts_twin.txt
new file mode 100644
index 0000000..57b7b0c
--- /dev/null
+++ b/parts_pl_src/head_top/pl_sprouts_twin.txt
@@ -0,0 +1,13 @@
+# pl_sprouts_twin: pixellab_src/pl_y_opossum/pl_sprouts_twin.png minus base.png
+# pivot at (31, 25)
+........oo.ooo.......
+..ooo..oyzoyyyo..oo..
+.oyyzooyxyoyxxzoozzo.
+oyxxxzzxxyoyxxxzyxxzo
+oyxxxxzxxyoyxxxzxxxyo
+.ozxxxzxyo.oyxzxxxzo.
+..oyyyyoo...ooyzzzo..
+...oooyyo...oyyooo...
+.....oyyo...oyyo.....
+.....oyyo.P.oyyo.....
+...............o.....
diff --git a/parts_pl_src/head_top/pl_star_glasses.txt b/parts_pl_src/head_top/pl_star_glasses.txt
new file mode 100644
index 0000000..a488017
--- /dev/null
+++ b/parts_pl_src/head_top/pl_star_glasses.txt
@@ -0,0 +1,13 @@
+# pl_star_glasses: pixellab_src/pl_meerkat/pl_star_glasses.png minus base.png
+# pivot at (31, 24)
+.....oo..........oo.....
+.....obo........oabo....
+....oabo........oabo....
+.ooobabboooooooobabbooo.
+obaaabbbbbbbbbaaabbbbbco
+.obbbbbbbcoooobbbbbbbco.
+ocobbbbbco...oobbbbbcoco
+ocobbbbbco....obbbbbcoco
+ocobcoocco.P..obcooccoco
+ocobo..oco....obo..ococo
+oooo....oo....oo....oooo
diff --git a/parts_pl_src/head_top/pl_stone_stack.txt b/parts_pl_src/head_top/pl_stone_stack.txt
new file mode 100644
index 0000000..067fcc9
--- /dev/null
+++ b/parts_pl_src/head_top/pl_stone_stack.txt
@@ -0,0 +1,18 @@
+# pl_stone_stack: pixellab_src/pl_weevil/pl_stone_stack.png minus base.png
+# pivot at (34, 30)
+....oooo....
+...oxxxxo...
+..oxxxxxxo..
+..oyxxxxxo..
+...oyyyyo...
+..oyooooyo..
+.oyxxxxxxxo.
+.oyyxxxxxxo.
+..ozyyyyyoo.
+..oooooooo..
+.oyyyyyyyxo.
+oyxxxxxxxxxo
+oyyyxxxxxxxo
+.ozyyyyyyzoo
+.ooooooooo..
+......P.....
diff --git a/parts_pl_src/head_top/pl_straw_hat.txt b/parts_pl_src/head_top/pl_straw_hat.txt
new file mode 100644
index 0000000..e53bf59
--- /dev/null
+++ b/parts_pl_src/head_top/pl_straw_hat.txt
@@ -0,0 +1,18 @@
+# pl_straw_hat: pixellab_src/pl_meerkat/pl_straw_hat.png minus base.png
+# pivot at (31, 24)
+.....................o....
+....................ozo...
+..........oooooo...ozxzo..
+.........ozzzzzzooozxyzo..
+........ozxxyyyyzzozyzo...
+.......ozxxyyyyyyzzyzo....
+......ozxyyyyyyyzzzyzo....
+.....ozyyyyyyyyyzzyzo.....
+...ooobbbzyyyyzzzzzbo.....
+..ozzzbaabbbbbbbbbbboo....
+.ozyyybaaaaaaaabbbbbzzoo..
+ozxxyyyzzbbbbbbbbbbzzzzzo.
+.ozyxxyyyyyzPzzzzzzzzzzzzo
+..ozzzzyyyyyyyyyyyyzzzzzo.
+..oo..yzzzzzzzzzzzzzzoooo.
+.........yy...yy..........
diff --git a/parts_pl_src/head_top/pl_tesla_coil.txt b/parts_pl_src/head_top/pl_tesla_coil.txt
new file mode 100644
index 0000000..e2a07a2
--- /dev/null
+++ b/parts_pl_src/head_top/pl_tesla_coil.txt
@@ -0,0 +1,29 @@
+# pl_tesla_coil: pixellab_src/pl_teapot/pl_tesla_coil.png minus base.png
+# pivot at (32, 28)
+...oooo..
+..otttto.
+..otssto.
+..otssto.
+.ottsto..
+.otssto..
+.otsstoo.
+.otssstto
+.otttssto
+..ootsto.
+...otsto.
+...otto..
+...otto..
+...oto...
+..ouuuo..
+..ottto..
+.ossttto.
+otsttttuo
+ottttttuo
+ouutttuuo
+.ouuuuuo.
+..ouuuuo.
+...oPuo..
+...otuo..
+.oootuoo.
+otsuuutuo
+outtttuuo
diff --git a/parts_pl_src/head_top/pl_tophat.txt b/parts_pl_src/head_top/pl_tophat.txt
new file mode 100644
index 0000000..a86bcbd
--- /dev/null
+++ b/parts_pl_src/head_top/pl_tophat.txt
@@ -0,0 +1,17 @@
+# pl_tophat: pixellab_src/pl_meerkat/pl_tophat.png minus base.png
+# pivot at (31, 24)
+.....oooooooo.....
+...oobbbbbbbboo...
+..obbbbbbbbbbbco..
+..obbbccccccccco..
+..obbbbbbbbbccco..
+..obbbbbbbbbccco..
+...obbbbbbbbcco...
+...obbbbbbbbcco...
+...obbbbbbbbcco...
+.ooozxxbbbzzzzooo.
+obbozzzzzzzzzzocco
+obbbczzzzzzzzcbbco
+.ocbbbbbbbcccbcco.
+..ooobbbbbbbbooo..
+.....oooPoooo.....
diff --git a/parts_pl_src/head_top/pl_viking_helmet.txt b/parts_pl_src/head_top/pl_viking_helmet.txt
new file mode 100644
index 0000000..43b08c7
--- /dev/null
+++ b/parts_pl_src/head_top/pl_viking_helmet.txt
@@ -0,0 +1,20 @@
+# pl_viking_helmet: pixellab_src/pl_shoebill/pl_viking_helmet.png minus base.png
+# pivot at (32, 24)
+...............oo...
+...oo..........obo..
+..oao...........oao.
+.oao............oao.
+.oao....oooo....oabo
+obao..oozzzzoo..oabo
+obao.ozzyyzzzzo.oabo
+obabozyyxzyyyyzobabo
+obaazyxyxzyyyzzbabbo
+obbayxxyzyyyzxbaabo.
+.obzyyyxzyyyzxbabbo.
+..oyyyyxzyyyzybbbo..
+.ozyyyyxzyyyyzybozo.
+.ozzzyyxzyyyyyzyzzo.
+ozyyzzzyzPzzzzzzyzo.
+ozzzyxxxxxxyyyyyyzo.
+....zzzzzzzzzzzz..o.
+..............oo....
diff --git a/parts_pl_src/head_top/pl_volcano_head.txt b/parts_pl_src/head_top/pl_volcano_head.txt
new file mode 100644
index 0000000..b70716b
--- /dev/null
+++ b/parts_pl_src/head_top/pl_volcano_head.txt
@@ -0,0 +1,30 @@
+# pl_volcano_head: pixellab_src/pl_teapot/pl_volcano_head.png minus base.png
+# pivot at (32, 28)
+........o..........
+.......ogo.........
+.......oggo........
+.......ogggo.......
+.....o.oggggo......
+....ogooggggo......
+....ogooggggoo.....
+....ogogggggogo....
+...oggogggggogo....
+...ogggggggooggo...
+...ogggggggggggo...
+...ogggggggggggo...
+...oggggfggggggo...
+...ogggffffggggo...
+....ogggfffgggo....
+.....ogggfgggo.....
+.....oogggggoo.....
+....oggooPoohgo....
+....ohgghgghhgo....
+...ohhghhgghhgho...
+...ohghhgggghgho...
+..ohgghggggghggho..
+..o....ggghg..g.o..
+.ohg..gggghgg..hho.
+ohhghhgghgghgghhhho
+ohhhhgghhhghhhhhhho
+.oohhhhhhhghhhhhoo.
+...ooooooooooooo...
diff --git a/parts_pl_src/head_top/pl_winged_ears.txt b/parts_pl_src/head_top/pl_winged_ears.txt
new file mode 100644
index 0000000..c528b1b
--- /dev/null
+++ b/parts_pl_src/head_top/pl_winged_ears.txt
@@ -0,0 +1,17 @@
+# pl_winged_ears: pixellab_src/pl_meerkat/pl_winged_ears.png minus base.png
+# pivot at (31, 24)
+ooo..............................ooo
+oyyo............................oyyo
+oyyzo..........................ooyyo
+oyyyo..........................oyyyo
+.oyyzo........................ozyyo.
+.ozyyyo......................oyyyzo.
+oyzzyyzoo..................oozyyzzyo
+oyyzzyzyzo................oyyzyzzyyo
+ozyyzzzyyo................oyzzzzyyzo
+.ozyyyzzyzo..............ozyzzyyyzo.
+..ozzzzzzzo..............ozzzzzzzo..
+..oyyyzzzzo......P.......ozzzzyyzo..
+..oozzzzzo...............ozzzzzzzo..
+...oozooo.................oooozoo...
+.....o........................oo....
diff --git a/parts_pl_src/head_top/pl_witch_hat.txt b/parts_pl_src/head_top/pl_witch_hat.txt
new file mode 100644
index 0000000..6fda918
--- /dev/null
+++ b/parts_pl_src/head_top/pl_witch_hat.txt
@@ -0,0 +1,22 @@
+# pl_witch_hat: pixellab_src/pl_teapot/pl_witch_hat.png minus base.png
+# pivot at (32, 28)
+................ooooo........
+..............oobbbbboo......
+.............obbbbbbbbbo.....
+............obbbbbbcccbo.....
+...........obbbbbbccoocco....
+..........obbbbbbbco..oco....
+..........obbbbbbco....oo....
+.........obbbbbbcco..........
+.........obbbbbbccco.........
+........ocbbbbbbbcco.........
+........occbbbbbbcco.........
+.......ozzccxxPzccczo........
+.......oyxyzxzzxzyyzoo.......
+...oooooyxyzxzzxzyyzzooooo...
+.oobbbcczzyzxzzxzzzzccccccoo.
+obbbbbbbbccczzzzcccccccccccco
+obbbbbbb....bcccb..b.bbbccoo.
+.oobbbbbb..bbbbbbb..bboooo...
+...oooooobbbbbbbbccooo.......
+.........ooooooooooo.........
diff --git a/parts_pl_src/tail/pl_tail_anchor.txt b/parts_pl_src/tail/pl_tail_anchor.txt
new file mode 100644
index 0000000..6acc5cf
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_anchor.txt
@@ -0,0 +1,45 @@
+# pl_tail_anchor: pixellab_src/pl_shoebill/pl_tail_anchor.png minus base.png
+# pivot at (48, 46)
+...........ooo..
+..........o211o.
+.........oo133o.
+........oxxo3o..
+.......oxooyo...
+.......oyooyo...
+......oooxyzo...
+.....oyxzxzo....
+......ozxxxyo...
+.oo....ozzzzzo..
+.ozo...oyzooo...
+oxyo...oyzo.....
+oyzo...oyzo.....
+ooyo..oxyo....o.
+.oyyo.oxzo...oyo
+.ozxyozyzo..oyyo
+..ozyxxyzzooozyo
+...ozyxyyyxxyzo.
+....ozyyzzzzzo..
+....o3zzooooo...
+...o13oo........
+...o13o.........
+...o12o.........
+...o113o........
+....o13o........
+....o113o.......
+.....o13o.......
+.....o113o......
+......o12o......
+......o123o.....
+......o123o.....
+......o123o.....
+.....o2123o.....
+.....o2133o.....
+....o2123o......
+...oo113oo......
+.oo2112ooo......
+.o21223oo.......
+.P322o3o........
+.o3oooo.........
+.ooooo..........
+...oo...........
+..oo............
diff --git a/parts_pl_src/tail/pl_tail_armadillo.txt b/parts_pl_src/tail/pl_tail_armadillo.txt
new file mode 100644
index 0000000..90960aa
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_armadillo.txt
@@ -0,0 +1,21 @@
+# pl_tail_armadillo: pixellab_src/pl_pangolin/pl_tail_armadillo.png minus base.png
+# pivot at (50, 41)
+....ooo...
+....ozoo..
+....o3zo..
+....oozoo.
+.....o3zo.
+.....o3zoo
+.....o3zzo
+.....o3zzo
+....oyxx3o
+....oooyyo
+...oyozzoo
+..ooyxzzoo
+oPyooyxooo
+.boxz3xyo.
+..oyx3oyo.
+..zoxooo..
+.ozoyao...
+.o3oyo....
+.oooo.....
diff --git a/parts_pl_src/tail/pl_tail_beaver.txt b/parts_pl_src/tail/pl_tail_beaver.txt
new file mode 100644
index 0000000..b5e8224
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_beaver.txt
@@ -0,0 +1,35 @@
+# pl_tail_beaver: pixellab_src/pl_pangolin/pl_tail_beaver.png minus base.png
+# pivot at (50, 41)
+....ooooooo....
+...oaaacaaco...
+..ocaaaaaaaco..
+.ocacaaacacaco.
+.oaaccaaaccaco.
+.oaaacaaaccaao.
+ocaaaaacaacaaco
+oacaaaacaaccaco
+oaacaaccaaccaco
+oaaaaccaacaacco
+oaaacbaaccaaaco
+ocaacaaaacaacco
+ocaccaaaaccacco
+occcaacaaacaaco
+occaaacaaacaaco
+occaacaaacacaco
+occacaaacaacaco
+ocaccaabbaacco.
+ocacaaacaaaaco.
+occaabcaabcaco.
+ooccacaaccaaco.
+..occaacaaaco..
+...ccccaaacco..
+..occcaaacco...
+..occccaacco...
+..occccbaco....
+..oPcbcbcco....
+...oobbcco.....
+....obbco......
+....obco.......
+...ooco........
+...oco.........
+...oo..........
diff --git a/parts_pl_src/tail/pl_tail_bell.txt b/parts_pl_src/tail/pl_tail_bell.txt
new file mode 100644
index 0000000..fd59772
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_bell.txt
@@ -0,0 +1,24 @@
+# pl_tail_bell: pixellab_src/pl_meerkat/pl_tail_bell.png minus base.png
+# pivot at (41, 54)
+..............o....
+.........ooooozo...
+........oo2222zo...
+.......o2233ooz3o..
+.......o23oo..ozo..
+......o223o..ozzwo.
+......o23o...ozzzo.
+......o23o..ozzzwzo
+......o23o...oozoo.
+......o23o.....o...
+......o23o.........
+......o23o.........
+......o23o.........
+......o23o.........
+.....o223o.........
+.....o23o..........
+....o223o..........
+...o223o...........
+ooo2233o...........
+.P2233o............
+...3oo.............
+..oo...............
diff --git a/parts_pl_src/tail/pl_tail_blossom.txt b/parts_pl_src/tail/pl_tail_blossom.txt
new file mode 100644
index 0000000..364aa66
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_blossom.txt
@@ -0,0 +1,39 @@
+# pl_tail_blossom: pixellab_src/pl_pangolin/pl_tail_blossom.png minus base.png
+# pivot at (50, 41)
+..........o.........
+.........ozo........
+....ooo.ozxzo.oo....
+...ozzzozxxxzozzo...
+...ozxxzzxyxzzxxzo..
+...ozxxyzyyyzxxxzo..
+...ozyxyzyyzyyxyzo..
+.oozzzyyzzxyzyyzzzo.
+ozzxyyzzyxxxyzzyxao.
+ozxxxyyzyxxxyzyyxxzo
+.ozyyyyzzyyyzzyyyyzo
+..ozzyyyzzzzyyyzzzo.
+..ozyxyyzyyzyyxyzo..
+..ozxxxyzxyyzyxxzo..
+..ozxxyzzxxyzzyxzo..
+...ozzzozyxyzozzo...
+....oooo3zxzo.oo....
+.......o2zzo........
+.......o13o.........
+.......o13o.........
+.......o21o.........
+........o13o........
+........o31o........
+.........o13o.......
+..........o13o......
+..........o11o......
+...........o13o.....
+...........o13o.....
+...........o13o.....
+......P...o213o.....
+..........o13o......
+.........o113o......
+.......oo1133o......
+........1133o.......
+........333o........
+........33o.........
+.......ooo..........
diff --git a/parts_pl_src/tail/pl_tail_bone.txt b/parts_pl_src/tail/pl_tail_bone.txt
new file mode 100644
index 0000000..9ce7ccf
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_bone.txt
@@ -0,0 +1,44 @@
+# pl_tail_bone: pixellab_src/pl_weevil/pl_tail_bone.png minus base.png
+# pivot at (49, 39)
+.........oo.....
+........owwooo..
+........oww11wo.
+........o1wwww1o
+.........owww11o
+........o1w111o.
+........oww1oo..
+.......o1w1o....
+.......oww1o....
+....ooo1w1o.....
+...o22oww1o.....
+..o2222ow1o.....
+.o213oo1wo......
+.o12ooo11o......
+o112o..oo.......
+o212o...........
+o213o...........
+o213o...........
+o213o...........
+o3113o..........
+o31133o.........
+.o31133o........
+.o331133o.......
+..o331133o......
+...o331133o.....
+....o331133o....
+.....o33113o....
+......o31133o...
+......o31113o...
+......o31113o...
+......o31113o...
+......o31113o...
+..P..o321113o...
+...ooo311133o...
+...o3311123o....
+...o3111133o....
+...o331333o.....
+...o33333o......
+...o3333oo......
+...o333oo.......
+...o33oo........
+...ooo..........
diff --git a/parts_pl_src/tail/pl_tail_boulders.txt b/parts_pl_src/tail/pl_tail_boulders.txt
new file mode 100644
index 0000000..8c2590e
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_boulders.txt
@@ -0,0 +1,25 @@
+# pl_tail_boulders: pixellab_src/pl_pangolin/pl_tail_boulders.png minus base.png
+# pivot at (50, 41)
+..ooo.........................
+.oxxxo.oooo...................
+oyxxxzoyxxxo..................
+.oxxxzoxx.xo..................
+.ozxzzoxxxxzooo...............
+..ozzoozxxzzoxxo.........ooo..
+..oooo.ozzzozxxxo.........oxo.
+........oooozxxxo.........ooo.
+...........ozzxzo.........oxxo
+............ozzzoo........ozxo
+............ooozxxo.......oooo
+...............oxxxo......oxxo
+...............oxxxo.....oozxo
+................ozxo....ooxxo.
+.................ozoooooxyzxo.
+..................ooPxyoxxxoo.
+...................zxxxxzxzo..
+..................ozxxxxozzo..
+...................ozxxxooo...
+...................ozzxzoo....
+...................ozzzzo.....
+...................ozzoo......
+....................ooo.......
diff --git a/parts_pl_src/tail/pl_tail_bow.txt b/parts_pl_src/tail/pl_tail_bow.txt
new file mode 100644
index 0000000..7ebf884
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_bow.txt
@@ -0,0 +1,23 @@
+# pl_tail_bow: pixellab_src/pl_meerkat/pl_tail_bow.png minus base.png
+# pivot at (41, 54)
+.......ooo.....ooo.
+......obaco...obbbo
+......ocbbbooobbbco
+......ocbccoboccbco
+......ocbbcococbbco
+......occcoooooccco
+.......oooco3ocooo.
+........occo3occo..
+.......obbo23ocbo..
+......ocboo23oobbo.
+.......ocoo23oocoo.
+........oo22o..o...
+.........o22o......
+........o223o......
+.......o223o.......
+......o2223o.......
+oooooo2223o........
+o22222223o.........
+o3P22333o..........
+o...33oo...........
+...ooo.............
diff --git a/parts_pl_src/tail/pl_tail_candy_cane.txt b/parts_pl_src/tail/pl_tail_candy_cane.txt
new file mode 100644
index 0000000..c5c6015
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_candy_cane.txt
@@ -0,0 +1,28 @@
+# pl_tail_candy_cane: pixellab_src/pl_y_opossum/pl_tail_candy_cane.png minus base.png
+# pivot at (44, 54)
+...........ooooo...
+..........oyxxaco..
+.........ocxxxaaco.
+........obazzccaxzo
+.......ocaccooocxzo
+.......oyaco..ozxco
+.......oyxco..ocaco
+.......oyxzo...occo
+.......oyxzo....oo.
+.......ocxzo.......
+.......ocaco.......
+.......ocaao.......
+........obaco......
+........oyaco......
+........oyxzo......
+........oyxzo......
+........ocxzo......
+........ocazo......
+........ocaco......
+.......oyaao.......
+.....ooyxxco.......
+.....ocyxzo........
+.oo.oaaczzo........
+.ocPzcccoo.........
+occzzzoo...........
+oooooo.............
diff --git a/parts_pl_src/tail/pl_tail_cattail.txt b/parts_pl_src/tail/pl_tail_cattail.txt
new file mode 100644
index 0000000..d3ec17f
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_cattail.txt
@@ -0,0 +1,39 @@
+# pl_tail_cattail: pixellab_src/pl_pangolin/pl_tail_cattail.png minus base.png
+# pivot at (50, 41)
+.....ooo....
+....occcoo..
+...ocaaaaco.
+..ocaaaaaao.
+..ocaaaaacco
+.ocaaaaacco.
+.ocaaabccco.
+.ocaaabcco..
+.ocaabbcco..
+.ocaabccco..
+.ocaaccco...
+..ocaccco...
+..occcco....
+...ooco.....
+....oo......
+....o.......
+....o.......
+...o3o......
+...o1o......
+...o1o......
+...o1o......
+...o13o.....
+....o2o.....
+....o2o.....
+....o13o....
+....o13o....
+....o13o....
+P...o13o....
+....o13o....
+....o13o....
+...o223o....
+.oo2133o....
+..2233o.....
+..233o......
+..333o......
+..3oo.......
+.oo.........
diff --git a/parts_pl_src/tail/pl_tail_chain.txt b/parts_pl_src/tail/pl_tail_chain.txt
new file mode 100644
index 0000000..fbe889f
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_chain.txt
@@ -0,0 +1,34 @@
+# pl_tail_chain: pixellab_src/pl_teapot/pl_tail_chain.png minus base.png
+# pivot at (48, 43)
+.....ooooo....
+...ooyyyyyo...
+..oyyxyyyyyo..
+..oyxxyyyyyzo.
+.oyxyyyyyyyzzo
+.oyyyyyyyyyzzo
+.oyyyyyyyyyzzo
+.oyyyyyyyyyzzo
+.ozyyyyyyyzzzo
+..ozyyyyyzzzo.
+...ozzzzzzzo..
+....ozzzzzo...
+.....oooooo...
+......ozyzzo..
+......oyzzyo..
+......oyooyo..
+......oyzzzo..
+.......oyzo...
+.......oyzo...
+......oyzzyo..
+......oyooyo..
+......oyyzyo..
+.....oooyzzo..
+.....oyzyzo...
+..P.oyzyzzo...
+..oooyoooyo...
+.oyyyzyoyo....
+oozoyzzyoo....
+oyyozzooo.....
+ozzoyzo.......
+oozzoo........
+..oo..........
diff --git a/parts_pl_src/tail/pl_tail_comet.txt b/parts_pl_src/tail/pl_tail_comet.txt
new file mode 100644
index 0000000..24dc4f4
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_comet.txt
@@ -0,0 +1,44 @@
+# pl_tail_comet: pixellab_src/pl_shoebill/pl_tail_comet.png minus base.png
+# pivot at (48, 46)
+........o.............
+.......ozo............
+.....oooyoo...........
+....ozzxxyzo..........
+....ooyyxzo...........
+...ozyozyo............
+..oyxo.ozo............
+..oyo...o.............
+.oxyo.................
+oyxo..................
+oyxo..................
+ozxo..................
+.oyyo.................
+.ozxyooo..............
+..ozyxyyooooo.........
+...oozxxxxxxzooo......
+.....ooyzxxxxxzzo.....
+.......oooozyyxxzo....
+...........oozyxxzo...
+.............ozxxxzo..
+..............ozxxyzo.
+...............ozxxzo.
+...............ozxxyo.
+...............ozxxyo.
+...............ozxxyzo
+..............ozyxxyzo
+..............ozxxxyzo
+.............ozxxxxyzo
+...........oozyxxxyzo.
+..........ozzxxxxxyzo.
+.....ooooozzyxxxxyzo..
+....oozzzzyxxxxxyyzo..
+....oyyyyyxxxxxxyzo...
+.....ooyxxxxxxxyyzo...
+......oyyyxxxyyyzo....
+.......oyyxxyyyzo.....
+.......oyyyyyzzo......
+.......ooyyyzoo.......
+........oyzzzo........
+........ozzoo.........
+........ooo...........
+........P.............
diff --git a/parts_pl_src/tail/pl_tail_coral.txt b/parts_pl_src/tail/pl_tail_coral.txt
new file mode 100644
index 0000000..3964e09
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_coral.txt
@@ -0,0 +1,34 @@
+# pl_tail_coral: pixellab_src/pl_weevil/pl_tail_coral.png minus base.png
+# pivot at (49, 39)
+.....oo..oo....
+....oacooaao...
+....oacooaao...
+....ocacoaco...
+.oo..oaacao....
+oaco.ocaaco....
+oaco..oaaco..o.
+ocao..oaao..oao
+.oacoocaco.oaao
+.ocaooaco..oaco
+.ooaooaco.ocaco
+oaaaccaco.oaco.
+ocbbacaaoobbco.
+.ooocaaaocaco..
+....occaacco...
+.....ocaaco....
+......ocaaco...
+.......ocaco...
+........ocbco..
+........ocbco..
+........ocaco..
+........ocaco..
+.......occaco..
+.......obacco..
+...Pooobbacco..
+....occabbco...
+....oaabbcco...
+....oabbcco....
+....occcco.....
+....occco......
+....occo.......
+....ooo........
diff --git a/parts_pl_src/tail/pl_tail_croc.txt b/parts_pl_src/tail/pl_tail_croc.txt
new file mode 100644
index 0000000..a6d15b6
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_croc.txt
@@ -0,0 +1,51 @@
+# pl_tail_croc: pixellab_src/pl_manatee/pl_tail_croc.png minus base.png
+# pivot at (48, 50)
+.............ooo
+...........oo22o
+.........oo222o.
+........ob222o..
+......ooc222o...
+......ob2223o...
+......ob223o....
+....ooc223o.....
+...oac2223o.....
+...oac2133o.....
+....oc213o......
+...oo2123o......
+..oac2123o......
+..oac2123o......
+..oa22123o......
+...o22123o......
+...o22123o......
+..oo22123o......
+..oac2223o......
+..oac22233o.....
+...oc22223o.....
+....o22223o.....
+....oa22223o....
+....oac2223o....
+....oac21223o...
+.....o222123o...
+......oc21233o..
+......ob22133o..
+......oa22123o..
+......oa22123o..
+......oo221233o.
+.....oac221233o.
+.....oac221233o.
+.....ooc212233o.
+....oaa2212233o.
+....oab2212233o.
+..oooc22112233o.
+..oac22122233o..
+..oa211222233o..
+..o2112222333o..
+..o2222223333o..
+..o222223333o...
+.P322223333o....
+.o333333333o....
+o333333333o.....
+o33333333o......
+.3333333o.......
+oo3333oo........
+..oooo..........
diff --git a/parts_pl_src/tail/pl_tail_crystal_tip.txt b/parts_pl_src/tail/pl_tail_crystal_tip.txt
new file mode 100644
index 0000000..8e3d3b2
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_crystal_tip.txt
@@ -0,0 +1,51 @@
+# pl_tail_crystal_tip: pixellab_src/pl_x_basilisk/pl_tail_crystal_tip.png minus base.png
+# pivot at (49, 49)
+.........o........
+........oyo.......
+.......oyxyo......
+......oyxxyyo.....
+......oyxxyzo.oo..
+......oyxyzzooyxo.
+..ooo.oyxyzzzxxyo.
+.oyxyooyxyzzyxyyo.
+.oyxxyzyxyzzyyzzo.
+.oyxxyyyxyzyyzzo..
+.ozzzyyzyzzyyzooo.
+..ozzzyzyzyxyzxxyo
+..oozyzzyzyyzyyxzo
+.oyyzyxy33yzyyyzzo
+.oyxyzyy113zzzzoo.
+.oyyxxz111zzyzo...
+..oozzo113zzzzo...
+....oo113coooo....
+....o311co........
+....o311oo........
+....o313o.........
+....o313o.........
+....o313o.........
+....o313o.........
+....o313co........
+....o3213o........
+.....o313bo.......
+.....o311bo.......
+......o313bo......
+.......o11bo......
+.......o313bo.....
+........o11bo.....
+........o313bo....
+........o313bo....
+........o313bo....
+........o313bo....
+..........13bo....
+.........o13co....
+..........occo....
+..........oco.....
+..........oco.....
+.........occo.....
+.........oco......
+......Pooco.......
+.....o.cco........
+......cco.........
+o....cco..........
+occccoo...........
+ooooo.............
diff --git a/parts_pl_src/tail/pl_tail_eastern_dragon.txt b/parts_pl_src/tail/pl_tail_eastern_dragon.txt
new file mode 100644
index 0000000..cb1c771
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_eastern_dragon.txt
@@ -0,0 +1,51 @@
+# pl_tail_eastern_dragon: pixellab_src/pl_manatee/pl_tail_eastern_dragon.png minus base.png
+# pivot at (48, 50)
+...........oo...
+...........ooo..
+...........obo..
+...........obco.
+......oo..ocaco.
+.....obooocaaco.
+....obaobbaaaco.
+...obbaaaaaacco.
+...obaaabaaacoo.
+..ocbabbaaabco..
+..ocbbbbaaabao..
+..occoobbabbco..
+..ocozocbacco...
+..ozxzocccco....
+.ozxyocccco.....
+.ozxzooooo......
+.oyyzo..........
+ozxyoo..........
+ozxyo...........
+ozxyco..........
+ozyxco..........
+ozyxyo..........
+ooyyxzo.........
+ooyyxyoo........
+.ozyyxzoo.......
+.oozyyxyoo......
+..oozzxxyzo.....
+...oozyxxzzo....
+....ooyyzxyzo...
+.....oozyyxyo...
+......occyxxyo..
+.......ocyyxyzo.
+........ocyyxyo.
+........ocbyxxzo
+........oaoyyzzo
+........ocoyxyyo
+........ocoyxyyo
+.......occzyxzzo
+.......oocyxyyyo
+......oaozyxyyyo
+.....oocyyxzyyo.
+...ooccyyxxyzzo.
+..Pyyyxxxyyyzo..
+..oyxxyxyyzyzo..
+.oyyyxyyyyzzo...
+.ozyyyyzyzzo....
+ozzzzyyzyzo.....
+ooozzzzzoo......
+...ooooo........
diff --git a/parts_pl_src/tail/pl_tail_fluke.txt b/parts_pl_src/tail/pl_tail_fluke.txt
new file mode 100644
index 0000000..48d711e
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_fluke.txt
@@ -0,0 +1,34 @@
+# pl_tail_fluke: pixellab_src/pl_manatee/pl_tail_fluke.png minus base.png
+# pivot at (48, 50)
+.o................o.
+obo..............obo
+oaoooo........ooooao
+oaaabboo....oobaaaao
+oaaaaaabo..obaaaaaao
+oaaa2aaaaooaa2aa2aao
+.o2a2a22aaba22a22ao.
+..oa22222a222a223bo.
+..oo322222222223bo..
+....o3322222333oo...
+.....ooo3223ooo.....
+........o223o.......
+........o223o.......
+........o223o.......
+........o223o.......
+........o223o.......
+.......o2223o.......
+.......o2223o.......
+......o22223o.......
+....oo222233o.......
+....o2222331o.......
+....o2223331o.......
+.....o233331o.......
+.....o33331o........
+.....o33311o........
+......o3312o........
+......o311o.........
+......o112o.........
+......o12o..........
+......o1oo..........
+......o.o...........
+.....P..............
diff --git a/parts_pl_src/tail/pl_tail_glove.txt b/parts_pl_src/tail/pl_tail_glove.txt
new file mode 100644
index 0000000..feea34f
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_glove.txt
@@ -0,0 +1,43 @@
+# pl_tail_glove: pixellab_src/pl_ape/pl_tail_glove.png minus base.png
+# pivot at (51, 46)
+....ooooooo....
+...obbbbbbbo...
+..obaaaaaabco..
+.obabbbbbbbbco.
+.obbbbbbbbccco.
+oobbbbbbbbcooo.
+oocbbbbbbcobbco
+ooccccccccoaaco
+ococcccccobbbco
+occooooooobbbco
+occccccccocbbco
+occbbbbccocbco.
+.ocbaabcccccco.
+..occbbccccco..
+...occccccco...
+...obbbbbcco...
+...obbbbbbco...
+...obbbbbcco...
+....ooooooo....
+......o33o.....
+......o33o.....
+......o31o.....
+......o313o....
+.......o111o...
+.......o3111o..
+........o311o..
+.........o113o.
+..........o113o
+..........o113o
+..........o113o
+..........o113o
+..........o113o
+..........o113o
+.........o1133o
+.........o1133o
+........o1133o.
+.......o11333o.
+.......P3333o..
+........o33o...
+........o3o....
+........oo.....
diff --git a/parts_pl_src/tail/pl_tail_glowbulb.txt b/parts_pl_src/tail/pl_tail_glowbulb.txt
new file mode 100644
index 0000000..f557339
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_glowbulb.txt
@@ -0,0 +1,25 @@
+# pl_tail_glowbulb: pixellab_src/pl_weevil/pl_tail_glowbulb.png minus base.png
+# pivot at (49, 39)
+..oooooooo.......
+ooxxbcbyyoo......
+oyxxxcbbxxxo.....
+ooyyxxbbbxxyo....
+..oyyxxbbxxxbo...
+...oyyxxbbxxybo..
+....oyyxbbxxxbbo.
+.....oyyxbyxxbbo.
+......oyxbbxxbbyo
+......oyycbxxxcyo
+......oyyccxxxcyo
+.......oyycyxxcyo
+.......Pyyccyycyo
+.......oyyccyycyo
+.......oyyccyycyo
+.......oyyccyycyo
+.......oyyccybco.
+.......oyycyycco.
+.......oyccyyco..
+.......oyccyco...
+.......occyyoo...
+.......occoo.....
+.......oooo......
diff --git a/parts_pl_src/tail/pl_tail_heart.txt b/parts_pl_src/tail/pl_tail_heart.txt
new file mode 100644
index 0000000..d8bbaf6
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_heart.txt
@@ -0,0 +1,43 @@
+# pl_tail_heart: pixellab_src/pl_wombat/pl_tail_heart.png minus base.png
+# pivot at (52, 43)
+..oooo...ooo..
+.oyyyzo.oyyzo.
+oyxxxyzoyxyzzo
+oyxxxyyzyyyyzo
+oyxyyyyyyyyyzo
+oyyyyyyyyyyzzo
+.ozyyyyyyyzzzo
+.ozzyyyyyzzzo.
+..ozzzyyzzzo..
+...oozzzzzo...
+.....ozzzo....
+....o2ozo.....
+....o1oo......
+...o12o.......
+..o112o.......
+..o11o........
+..o11o........
+..o11o........
+..o11o........
+..o112o.......
+...o112o......
+...o3112o.....
+....o2112o....
+.....o1122o...
+......o1123o..
+......o2112o..
+.......o1112o.
+........o112o.
+........o1122o
+........o1122o
+........o1122o
+........o1122o
+.......o11123o
+......oo11223o
+......o211233o
+........1223o.
+.......P2233o.
+........233o..
+........33o...
+........3oo...
+........o.....
diff --git a/parts_pl_src/tail/pl_tail_horsetail.txt b/parts_pl_src/tail/pl_tail_horsetail.txt
new file mode 100644
index 0000000..1d1b0e0
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_horsetail.txt
@@ -0,0 +1,42 @@
+# pl_tail_horsetail: pixellab_src/pl_shoebill/pl_tail_horsetail.png minus base.png
+# pivot at (48, 46)
+................o.
+................o.
+...............oao
+..............oaao
+......ooooooooaaco
+....ooaaaaaaaaacco
+...oaaaaaaaabbbbo.
+..oaaaaaaabbbbco..
+.oaaaaaaabbccoo...
+.oaaaaaabboco.....
+oaaaaaabbcco......
+oaabaaabbcco......
+oaacaaabbco.......
+oaacaaabbco.......
+oaabaaabbco.......
+oaacaaabbco.......
+ocacaaabbbo.......
+ocacaaaabbco......
+occccaaabbbo......
+.occcaaaabbco.....
+..occcbaabbbo.....
+..ooccbaabbbbo....
+...occcaaabbbo....
+....occcaabbbbo...
+....occcaaabbbo...
+.....occaabcbbo...
+.....occaaccbbo...
+.....occaaccbbo...
+.....occaaccbco...
+....occaaaccbco...
+...oocaaaaccbco...
+..occbaaaccbcco...
+..occaaabcbbco....
+...oaaacccbcco....
+...ocbcccbbco.....
+...oocccbbcco.....
+....ocbbccco......
+....occccco.......
+....oooooo........
+....P.oo..........
diff --git a/parts_pl_src/tail/pl_tail_key.txt b/parts_pl_src/tail/pl_tail_key.txt
new file mode 100644
index 0000000..2bba5ec
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_key.txt
@@ -0,0 +1,24 @@
+# pl_tail_key: pixellab_src/pl_meerkat/pl_tail_key.png minus base.png
+# pivot at (41, 54)
+...............oooo....
+..............ozxxxo...
+..........ooooozooxooo.
+.........o222bxo..ozxyo
+........o2233bzo..ozzzo
+.......o223ooooxooxooo.
+......o223o...ozxyzo...
+......o23o.....oooo....
+......o23o.............
+......o23o.............
+......o23o.............
+......o23o.............
+......o23o.............
+......o23o.............
+.....o223o.............
+.....o223o.............
+....o223o..............
+oooo2223o..............
+o322223o...............
+o.P233o................
+....3o.................
+...oo..................
diff --git a/parts_pl_src/tail/pl_tail_kite.txt b/parts_pl_src/tail/pl_tail_kite.txt
new file mode 100644
index 0000000..e7f03b4
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_kite.txt
@@ -0,0 +1,45 @@
+# pl_tail_kite: pixellab_src/pl_shoebill/pl_tail_kite.png minus base.png
+# pivot at (48, 46)
+.....oo..........
+....ozzo.........
+...ozxzzo........
+..ozxxzyzo.......
+.ozxxxzyyzo......
+ozzzzzzzzzzo.....
+.ozyyyzyyzo......
+..ozyyzyyzo......
+...oyyzzzo.......
+...ozyzzo........
+....ozzzo........
+.....oco.........
+.....oco.........
+.....oco.........
+.....oco.........
+.....oco.........
+.....oco.........
+......oco........
+......oco........
+.......oco.......
+.......oco.......
+........oco......
+........occo.....
+.........occo....
+..........occo...
+..........ocbco..
+...........ooco..
+............occo.
+............obco.
+.............oco.
+.............oco.
+.............ocao
+.............ocao
+.............ocao
+.............ocao
+.............ooao
+............ocao.
+............ocao.
+...........ocao..
+..........ocao...
+......oooooao....
+......obaaco.....
+......Poooo......
diff --git a/parts_pl_src/tail/pl_tail_lobster.txt b/parts_pl_src/tail/pl_tail_lobster.txt
new file mode 100644
index 0000000..24c000e
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_lobster.txt
@@ -0,0 +1,26 @@
+# pl_tail_lobster: pixellab_src/pl_weevil/pl_tail_lobster.png minus base.png
+# pivot at (49, 39)
+........oo.......
+......ooaaoo.....
+......oaaaco.....
+.....oaacbcoo....
+.....oabbcoaao...
+....ocbbcoaaaco..
+....occoocaacco..
+ooooocoocbbccco..
+ocoaaocaobcooobo.
+.oaoaaoaaoocaaaao
+..cacacoaocbaaaao
+..caccaoaaobccbco
+..oaaoaacaoooooo.
+..Pcaocbcbocaaaao
+...ccocbcboccaaao
+...ccocbccooccbbo
+...ccocococcoobbo
+...ccocooocbaaco.
+...oocooccoccaao.
+....oo.obbcocaao.
+.......ocbbcooo..
+........ocaaco...
+.........ocaco...
+..........ooo....
diff --git a/parts_pl_src/tail/pl_tail_lollipop.txt b/parts_pl_src/tail/pl_tail_lollipop.txt
new file mode 100644
index 0000000..a9b3e81
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_lollipop.txt
@@ -0,0 +1,33 @@
+# pl_tail_lollipop: pixellab_src/pl_teapot/pl_tail_lollipop.png minus base.png
+# pivot at (48, 43)
+....oooooo....
+...oybbbyzo...
+..oybbyybbco..
+.obbbyybbccco.
+obbbybcccyyco.
+oybbzcyybcyyco
+oyybzcycycbyzo
+obyycbbcycbbzo
+ocbyyccyyczczo
+.ocbbbbybczco.
+.occczzzcczo..
+..oozzccczo...
+....oooooo....
+.....oyo......
+.....oxo......
+.....oxo......
+.....oxo......
+.....oyo......
+.....ooo......
+.....o1o......
+.....o12o.....
+.....o12o.....
+.....o12o.....
+.....o13o.....
+..P..o23o.....
+......23o.....
+.....23o......
+.....33o......
+.....3o.......
+.....o........
+.....o........
diff --git a/parts_pl_src/tail/pl_tail_octopus.txt b/parts_pl_src/tail/pl_tail_octopus.txt
new file mode 100644
index 0000000..be10f87
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_octopus.txt
@@ -0,0 +1,40 @@
+# pl_tail_octopus: pixellab_src/pl_manatee/pl_tail_octopus.png minus base.png
+# pivot at (48, 50)
+..oooo..............
+.o2223o.............
+o22b32o.............
+o23ao3o.............
+o2booo..oooooo......
+o2bo...o212222o.....
+o22bo.o2112a332o....
+.o23bo21233ooa2o....
+.o223o212ao..o2o....
+..o2o2122o..o33o....
+..o2o212bo...oo.....
+..o2o222bo..........
+..o2o222bo.ooo......
+.o33o222coo33oo.....
+.o33o2223oo33boooo..
+.ooo222aaoo33bo222o.
+.oo22223oo33bo2b322o
+..222233o333o22oob2o
+...333ao333ao2coo33o
+...3bbo333aoo2co.oo.
+....oo333aoo223o....
+....23ooooo322ao....
+....22o3332223o.....
+.....12o33322ao.....
+.....322obb3ao......
+......312oaoo.......
+......3323o...oo....
+....oo33223o..o3o...
+....o3o33222ooc2o...
+....o33oo3332332o...
+....o333ob3a33bo....
+....oP33ooooooo.....
+....o333o...........
+....o333o..oo.......
+....ob333oo33o......
+.....o333333bo......
+.....ooa333ao.......
+......oooooo........
diff --git a/parts_pl_src/tail/pl_tail_paintbrush.txt b/parts_pl_src/tail/pl_tail_paintbrush.txt
new file mode 100644
index 0000000..553e50a
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_paintbrush.txt
@@ -0,0 +1,31 @@
+# pl_tail_paintbrush: pixellab_src/pl_x_potato/pl_tail_paintbrush.png minus base.png
+# pivot at (46, 45)
+.....ooo
+....ooyo
+...oyxyo
+..oyxyyo
+.oyxyyyo
+.oyyyyzo
+.oyzyzzo
+.ozzzzo.
+.oczzo..
+.occo...
+ozco....
+ozco....
+ozco....
+ozzo....
+oczo....
+.ozco...
+.oczo...
+..ozzo..
+..oczo..
+...ozco.
+...ozco.
+...ozco.
+...ozco.
+..oczco.
+.oczzo..
+oczzco..
+Pccco...
+.oco....
+.oo.....
diff --git a/parts_pl_src/tail/pl_tail_pencil.txt b/parts_pl_src/tail/pl_tail_pencil.txt
new file mode 100644
index 0000000..962f441
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_pencil.txt
@@ -0,0 +1,25 @@
+# pl_tail_pencil: pixellab_src/pl_teapot/pl_tail_pencil.png minus base.png
+# pivot at (48, 43)
+..........oooo.
+.........ocbbco
+.........ocbcco
+.........ocbcco
+.........oxyzco
+........oyxyzo.
+........oyxyzo.
+........o33yzo.
+.........o33oo.
+........o133o..
+........o13o...
+........o13o...
+...P....o13o...
+.......o113o...
+.......o13o....
+.......o13o....
+......o133o....
+......o13o.....
+.ooooo133o.....
+.o311233o......
+o333333o.......
+.3333oo........
+ooooo..........
diff --git a/parts_pl_src/tail/pl_tail_plug.txt b/parts_pl_src/tail/pl_tail_plug.txt
new file mode 100644
index 0000000..3368890
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_plug.txt
@@ -0,0 +1,48 @@
+# pl_tail_plug: pixellab_src/pl_teapot/pl_tail_plug.png minus base.png
+# pivot at (48, 43)
+.....oo..oo...
+....ozzoozzo..
+....ozxooxzo..
+...oozxoozzo..
+..ozzzzzzzzzo.
+..ozxxxxxxyzo.
+..ozxxxxxxzzo.
+...ooxxxxxzo..
+....oxxxxzzo..
+....ozxxzzoo..
+.....ozzzo....
+.....oxxzo....
+.....ozzzo....
+......obo.....
+......obo.....
+......obo.....
+.....obbo.....
+.....obo......
+....obbo......
+....obo.......
+....obo.......
+....obo.......
+....obo.......
+....obo.......
+....obo.......
+....obbo......
+.....obo......
+.....ocbo.....
+......ocbo....
+.......ocbo...
+........ocbo..
+........oocbo.
+..........obo.
+.....P....obbo
+...........obo
+...........obo
+...........obo
+...........obo
+...........obo
+..........obco
+..........obo.
+.........obco.
+......ooobco..
+.ooooobbbco...
+occcccccco....
+ooooooooo.....
diff --git a/parts_pl_src/tail/pl_tail_propeller.txt b/parts_pl_src/tail/pl_tail_propeller.txt
new file mode 100644
index 0000000..5157d16
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_propeller.txt
@@ -0,0 +1,25 @@
+# pl_tail_propeller: pixellab_src/pl_manatee/pl_tail_propeller.png minus base.png
+# pivot at (48, 50)
+....oo.....oo.
+...oyyo...ozyo
+...oyxzo.ozxyo
+....ozxzozxzo.
+.....ozyzxzo..
+......oyxxo...
+.....oyyzxzo..
+....oyxo3oyyo.
+...oyyo33ooyyo
+....ooo33o.ooo
+......o23o....
+.....o22o.....
+....oo23o.....
+....o123o.....
+...o123o......
+.oo1223o......
+.o22233o......
+.o2233o.......
+.o2333o.......
+P3333o........
+o333o.........
+.3oo..........
+.oo...........
diff --git a/parts_pl_src/tail/pl_tail_quill.txt b/parts_pl_src/tail/pl_tail_quill.txt
new file mode 100644
index 0000000..6fef85c
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_quill.txt
@@ -0,0 +1,43 @@
+# pl_tail_quill: pixellab_src/pl_shoebill/pl_tail_quill.png minus base.png
+# pivot at (48, 46)
+......oooooo...
+....ooaaaabcoo.
+...obaabbcccco.
+...oaabaaccoooo
+..oaabaaboo...o
+.oaabbabo......
+.oaabaao.......
+.oaabaao.......
+oaaabaao.......
+oaaabaao.......
+oaaabaao.......
+oaaabaabo......
+oaaabaabo......
+.oaabbabbo.....
+.oaaabaabo.....
+.obaabbabbo....
+..oaaabaabo....
+..obaabbabo....
+...obaabaabo...
+...obbabbabo...
+....ocaabaabo..
+....occabcabo..
+.....ocaacabo..
+.....occacaao..
+......ocacbabo.
+......occcbaao.
+......oobcbabo.
+......oobcbabo.
+......obbcbaco.
+......obbcabco.
+.....ocbccaco..
+.....ocbcbcco..
+....ocaccbco...
+....ocbcbcco...
+...occcbcco....
+.oocccbbco.....
+.occcbboo......
+.occccoo.......
+.ooooo.........
+...............
+.P.............
diff --git a/parts_pl_src/tail/pl_tail_ringed.txt b/parts_pl_src/tail/pl_tail_ringed.txt
new file mode 100644
index 0000000..ee57d50
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_ringed.txt
@@ -0,0 +1,28 @@
+# pl_tail_ringed: pixellab_src/pl_meerkat/pl_tail_ringed.png minus base.png
+# pivot at (41, 54)
+.............oooo
+............o223o
+............o22o.
+...........obbo..
+...........obco..
+..........o223o..
+..........o223o..
+..........obbco..
+..........obbco..
+..........o223o..
+..........o222o..
+..........ob223o.
+..........obbbco.
+..........obbbco.
+..........o22bco.
+..........o2223o.
+.........ob2233o.
+........obbb33o..
+.......o2bbbcco..
+.....oo222bcco...
+ooooob22223co....
+o22b.bb2233o.....
+o222.bb333o......
+o3P2.cc3oo.......
+o...ccco.........
+...oooo..........
diff --git a/parts_pl_src/tail/pl_tail_rope.txt b/parts_pl_src/tail/pl_tail_rope.txt
new file mode 100644
index 0000000..7650349
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_rope.txt
@@ -0,0 +1,33 @@
+# pl_tail_rope: pixellab_src/pl_pangolin/pl_tail_rope.png minus base.png
+# pivot at (50, 41)
+....oooooo.oo.
+...oaabaccoaao
+..oacacccoaaco
+.ocacoooocaco.
+.oacoo.ocacoco
+ocaco..occocco
+oaco...oooocao
+oaco..obcoocao
+oaco..obbcaco.
+oaco...occaoo.
+occco...ooo...
+ocaco.........
+.ocaco........
+.ooccco.......
+...ocaco......
+....occaoo....
+.....ocbao....
+......occao...
+.......ocaco..
+........ocao..
+........ocao..
+........oaco..
+........oaao..
+.......occao..
+...oooooaaco..
+..oPcaobcco...
+...boaaoco....
+....ocaooo....
+....occo......
+....oco.......
+....oo........
diff --git a/parts_pl_src/tail/pl_tail_shovel.txt b/parts_pl_src/tail/pl_tail_shovel.txt
new file mode 100644
index 0000000..7b6d483
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_shovel.txt
@@ -0,0 +1,45 @@
+# pl_tail_shovel: pixellab_src/pl_pangolin/pl_tail_shovel.png minus base.png
+# pivot at (50, 41)
+........oo....
+.......oxyo...
+......oxyyyo..
+.....oxxyyyo..
+....oxxyyyyyo.
+....oxyyyyyyo.
+...oxyyyyyyyzo
+...oxyyyyyyyzo
+..oxyyyyxyyyzo
+..oxyyyzxzyyzo
+..oxyyyzxzyyzo
+..oxyyyzyzyyzo
+..oyyyzxyzyyzo
+..ozzzzxyzzzzo
+...ooozyzzooo.
+.....o213o....
+.....o113o....
+.....o113o....
+.....o113o....
+.....o113o....
+.....o113o....
+.....o112o....
+.....o1113o...
+......o113o...
+......o113o...
+......o2123o..
+......o2113o..
+.......o1133o.
+.......o1133o.
+.......o1133o.
+...P..o11133o.
+......o11233o.
+.....oo11233o.
+..oooo112233o.
+...311112333o.
+..o31112233o..
+..o31123333o..
+...3223333o...
+...3333333o...
+...33333oo....
+..3.33oo......
+o3..oo........
+ooo...........
diff --git a/parts_pl_src/tail/pl_tail_slime.txt b/parts_pl_src/tail/pl_tail_slime.txt
new file mode 100644
index 0000000..5f52778
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_slime.txt
@@ -0,0 +1,44 @@
+# pl_tail_slime: pixellab_src/pl_sludgerat/pl_tail_slime.png minus base.png
+# pivot at (44, 45)
+............oooooo....
+...........oyyxxyyoo..
+..........oyyyyyxxyyo.
+.........oyxyyyyyyxyyo
+........oyxyyyzzyyxxyo
+........oyyyyzzzzyyxyo
+.......ozxyyzzoozzyxyo
+.......ozyyyzo..ozzyyo
+.......ozyyyo....ozyyo
+.......ozyyyo....ozzyo
+.......ozyyco....ozzyo
+.......ozyyco.....ozyo
+.......ozyyao.....ozzo
+........oycaco....ozo.
+........oycaco....ozo.
+........ozcaaco...ozo.
+.........ocaaco...ozo.
+.o........ocaao...oyo.
+oz........ocaao...oyo.
+ozyx.......oaaco..oxo.
+ozzyx......oaabo..oyo.
+.ooyyx.....oaabo...o..
+...oyyx.o.ocaaco......
+...oyzxyo.oaaaco......
+...oyoyxyocaacco......
+.....oyyxycaacco......
+.....Pyzxycacco.......
+.....oyzyyoccco.......
+.....oyzyyocco........
+.....oyzyyoco.........
+......3zyyoo..........
+.......zyyo...........
+.......zyyo...........
+.......zzyo...........
+.......zzyo...........
+.......zzyo...........
+.......zyyzo..........
+......zzyyzzoo........
+.....ozzxyyzzzoo......
+....ozzyyxxyzzyyo.....
+....ozzzzyyyzooo......
+.....oooooooo.........
diff --git a/parts_pl_src/tail/pl_tail_spring.txt b/parts_pl_src/tail/pl_tail_spring.txt
new file mode 100644
index 0000000..f9cb19c
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_spring.txt
@@ -0,0 +1,30 @@
+# pl_tail_spring: pixellab_src/pl_teapot/pl_tail_spring.png minus base.png
+# pivot at (48, 43)
+.....oooo....
+..oooyxxyo...
+.ozxyzzyzxo..
+ozxzzoooooo..
+oxyzo........
+oyzo.........
+oyzo.........
+ozxoo........
+ozyzo........
+.ozxyoo......
+..oyzzyo.....
+..oocxyzo....
+....ozzxyo...
+.....ocyzzo..
+......ocyxyo.
+.......ozzzo.
+........ozyoo
+........ozxyo
+........ozzoo
+........oyxyo
+...P...oyozco
+......ooyxzo.
+..o..oyzoyyo.
+..oyooyxzoo..
+.ooyxzzyyoo..
+.ozzyzooyo...
+.ooozyooo....
+...oooo......
diff --git a/parts_pl_src/tail/pl_tail_sunflower.txt b/parts_pl_src/tail/pl_tail_sunflower.txt
new file mode 100644
index 0000000..23e9851
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_sunflower.txt
@@ -0,0 +1,50 @@
+# pl_tail_sunflower: pixellab_src/pl_y_frilldrake/pl_tail_sunflower.png minus base.png
+# pivot at (49, 51)
+........o........
+.......ozo.......
+...oo.ozxzo.oo...
+..ozzozxxxzozzo..
+..oxxxzyyxzxxxo..
+..ozxyyzzzyyxzo..
+..ooyyzyyzzyyoo..
+.ozyyzyyzzyzyxzo.
+ozxxyzyzzzyzyyxzo
+.ozyyzyyzzyzyyzo.
+..ozyyzyzzzzzzo..
+..oyxyyzzzzzxxzo.
+..oyxxzyyyyyyxzo.
+..oyyzzyyyyxzoo..
+...ooooyxyzxzo...
+.....o2zxzozo....
+.....oyozo.o.....
+.....oyoo........
+.....oyo.........
+.....oyo.........
+.....oyyo........
+.....o3yo........
+......oyyo.......
+......o3yo.......
+.......oyyo......
+........oyyo.....
+.........oyyo....
+.........oyyyo...
+..........oyyo...
+...........oyyo..
+...........oyyoo.
+............oyyo.
+............oyyo.
+............oyyo.
+............oyyo.
+............oyyo.
+...........o2yyo.
+..........ooyyyo.
+..........o3yy3o.
+........oo3yy33o.
+........o3yyy33o.
+........ooyy33o..
+.........oy33o...
+....ooPoo3333o...
+.ooo33yy3333o....
+.o33333333oo.....
+.o333333oo.......
+.ooooooo.........
diff --git a/parts_pl_src/tail/pl_tail_swallow.txt b/parts_pl_src/tail/pl_tail_swallow.txt
new file mode 100644
index 0000000..eea9d94
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_swallow.txt
@@ -0,0 +1,28 @@
+# pl_tail_swallow: pixellab_src/pl_meerkat/pl_tail_swallow.png minus base.png
+# pivot at (41, 54)
+.............o.......
+.............oo......
+............oao.....o
+............oao....oo
+...........oaao...obo
+...........oaao..oabo
+..........oaaco.obaco
+.........ocaccoocabco
+.........oaacooccabo.
+........obaccoacabbo.
+........oaboocacaao..
+........ocoocccabbo..
+........ococccabbo...
+........oocccaaco....
+.......o11ooccco.....
+.......o11o.ooo......
+.......o13o..........
+......o113o..........
+......o12o...........
+....oo113o...........
+...o1113o............
+ooo1113o.............
+o111133o.............
+o33333o..............
+o3P3oo...............
+oooo.................
diff --git a/parts_pl_src/tail/pl_tail_tassel.txt b/parts_pl_src/tail/pl_tail_tassel.txt
new file mode 100644
index 0000000..58bc6fc
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_tassel.txt
@@ -0,0 +1,27 @@
+# pl_tail_tassel: pixellab_src/pl_weevil/pl_tail_tassel.png minus base.png
+# pivot at (49, 39)
+.....ooooo....
+....o233xxo...
+...o23ooyxxo..
+..o23o..oyxo..
+..o23o...oco..
+..o2o...occao.
+..o2o...ocaao.
+..o2o...obaco.
+..o2o...obbco.
+..o22o..obcco.
+...o2o..obcbo.
+...o22o.obcbco
+....o2o..occco
+....o23o.oooo.
+....o22o......
+P....o2o......
+.....o2o......
+.....o2o......
+....o22o......
+....o23o......
+...o233o......
+.oo233o.......
+.o333o........
+.o33o.........
+.ooo..........
diff --git a/parts_pl_src/tail/pl_tail_trident.txt b/parts_pl_src/tail/pl_tail_trident.txt
new file mode 100644
index 0000000..7ebe54f
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_trident.txt
@@ -0,0 +1,47 @@
+# pl_tail_trident: pixellab_src/pl_manatee/pl_tail_trident.png minus base.png
+# pivot at (48, 50)
+.......oo.....
+.......oo.....
+......oxzo....
+...oooyxzo.oo.
+..oxzoozzooxo.
+.oyxzooxzooxzo
+.ooyoooxzooozo
+..oyo.oxzo.oo.
+.oxyo.oxzo.ozo
+.oxyo.oxzo.ozo
+.oxyo.oxzo.ozo
+.oyxyooxzooxzo
+..oyxxxxxxxzo.
+...oyyyxzzzo..
+....oozxzoo...
+......oyzo....
+......o23o....
+......o23o....
+......o23o....
+......o23o....
+......o23o....
+......o23o....
+......o23o....
+......o23o....
+......o23o....
+......o233o...
+......o223o...
+.......o23o...
+.......o233o..
+.......o223o..
+.......o223o..
+.......o223o..
+.......o2233o.
+.......o2233o.
+.......o2233o.
+......o22333o.
+.....o112333o.
+..ooo312233o..
+.P311122333o..
+.o32222233o...
+o333223333o...
+o33333333o....
+.3333333o.....
+oo3333oo......
+..oooo........
diff --git a/parts_pl_src/tail/pl_tail_twin.txt b/parts_pl_src/tail/pl_tail_twin.txt
new file mode 100644
index 0000000..b9b848d
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_twin.txt
@@ -0,0 +1,22 @@
+# pl_tail_twin: pixellab_src/pl_meerkat/pl_tail_twin.png minus base.png
+# pivot at (41, 54)
+.....ooo........
+....obbco....oo.
+...obbbo....obco
+..obbbco...obbo.
+.oocbbco..obbbo.
+.o3c1bco..obbbbo
+.o311b3o.obbbbco
+.o31113o.o1b1bco
+.o31111o.o111b3o
+.o31111o.o11113o
+..o3113o.o11113o
+..o3113oo11113o.
+..o3133o311133o.
+.o3333oo11133o..
+.o333oo11133o...
+ooooo111133o....
+o331111333o.....
+o3P33333oo......
+o...3ooo........
+...oo...........
diff --git a/parts_pl_src/tail/pl_tail_wrench.txt b/parts_pl_src/tail/pl_tail_wrench.txt
new file mode 100644
index 0000000..506bcb1
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_wrench.txt
@@ -0,0 +1,27 @@
+# pl_tail_wrench: pixellab_src/pl_teapot/pl_tail_wrench.png minus base.png
+# pivot at (48, 43)
+........oo.....
+.......oxo...o.
+......oxxo..oyo
+......oxxo..oxo
+......oxxxooxxo
+......ozxxxxxzo
+.......ozxxxzo.
+.......ozzzzo..
+.......oxxzo...
+.......oxxzo...
+......ooyxo....
+......oxy22o...
+...P..o1yoo....
+......o12o.....
+.....o113o.....
+....oo123o.....
+....o1123o.....
+...o.113o......
+....1133o......
+..21333o.......
+o33333oo.......
+o3333ozo.......
+oooozzo........
+...ozzo........
+....oo.........
diff --git a/parts_pl_src/tail/pl_tail_yarn.txt b/parts_pl_src/tail/pl_tail_yarn.txt
new file mode 100644
index 0000000..04ad8e7
--- /dev/null
+++ b/parts_pl_src/tail/pl_tail_yarn.txt
@@ -0,0 +1,21 @@
+# pl_tail_yarn: pixellab_src/pl_teapot/pl_tail_yarn.png minus base.png
+# pivot at (48, 43)
+..P............
+ooo............
+oc.............
+oc.............
+o.co...........
+..co...........
+.oco...........
+.oco...........
+.oco...........
+.oco...........
+.oco...........
+.oco.....ooo...
+..oco...oyyyo..
+..oco..ozxyyyo.
+...ocoozxyxyxzo
+....occzyxyyyzo
+.....ooozyyxzo.
+........ozzzo..
+.........ooo...
diff --git a/pixellab_api.py b/pixellab_api.py
index 486b416..115a612 100644
--- a/pixellab_api.py
+++ b/pixellab_api.py
@@ -3,7 +3,8 @@ Minimal PixelLab v2 client used by pixellab_library.py.
- Token from PIXELLAB_API_KEY (environment or .env next to this file).
- Retries rate limits (429/529) with backoff, polls async jobs (edit endpoints return a job id),
- and runs one job at a time across all processes (the account's concurrency limit is 1).
+ and caps concurrent jobs across ALL processes at the account limit (PIXELLAB_CONCURRENCY,
+ default 10) with one file lock per slot, so parallel workers and agents queue instead of 429.
- Appends one line per paid call to pixellab_src/ledger.jsonl so spend can be tracked across
runs and parallel workers: `python pixellab_library.py cost`.
"""
@@ -22,7 +23,8 @@ from PIL import Image
API = "https://api.pixellab.ai/v2"
LEDGER = Path(__file__).with_name("pixellab_src") / "ledger.jsonl"
-LOCK = LEDGER.with_name(".api.lock")
+LOCK_DIR = LEDGER.with_name(".api_slots")
+CONCURRENCY = int(os.environ.get("PIXELLAB_CONCURRENCY", "10"))
RETRIES = 10
JOB_POLL_SECONDS = 4
JOB_TIMEOUT_SECONDS = 900
@@ -105,15 +107,22 @@ class Client:
def run(self, endpoint, payload, label):
"""POST, wait for the job if there is one, return (image, usage). Logs the call to the ledger.
- The account allows one job at a time, so jobs from every process (parallel workers, other
- terminals) queue on a file lock instead of failing with 429."""
- LOCK.parent.mkdir(parents=True, exist_ok=True)
- with LOCK.open("a") as lock:
- fcntl.flock(lock, fcntl.LOCK_EX)
- try:
- return self._run(endpoint, payload, label)
- finally:
- fcntl.flock(lock, fcntl.LOCK_UN)
+ Holds one of CONCURRENCY slot locks for the whole job (POST + polling)."""
+ LOCK_DIR.mkdir(parents=True, exist_ok=True)
+ while True:
+ for i in random.sample(range(CONCURRENCY), CONCURRENCY):
+ f = (LOCK_DIR / f"slot{i}").open("a")
+ try:
+ fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)
+ except BlockingIOError:
+ f.close()
+ continue
+ try:
+ return self._run(endpoint, payload, label)
+ finally:
+ fcntl.flock(f, fcntl.LOCK_UN)
+ f.close()
+ time.sleep(1 + random.random())
def _run(self, endpoint, payload, label):
resp = self.call("POST", endpoint, payload)
diff --git a/pixellab_library.py b/pixellab_library.py
index 4dcbad6..22d6586 100755
--- a/pixellab_library.py
+++ b/pixellab_library.py
@@ -24,7 +24,7 @@ Spec (pixellab_library/.json)
"name": "pl_fox", # unique, "pl_" prefix; also the body part name
"plan": "quadruped", # quadruped biped serpentine avian aquatic blob insectoid
"head": ["mammal_head"], # head-family tags; head_top parts gate on them via "requires"
- "types": {"fire": 2}, "other": 1, # type boosts; every body is open to every type (other > 0)
+ "types": {"fire": 5, "dragon": 3}, # body weight per type; unlisted types get BODY_OTHER (0.15)
"tags": [], "excludes": [], "deny": [], # as in sprite_parts.py (excludes: tags of parts it can't take)
"slots": ["head_top", "back", "tail"], # feature slots this body accepts (default all three)
"desc": "Chibi fox, 3/4 view",
@@ -32,6 +32,13 @@ Spec (pixellab_library/.json)
"size": 48, # pixen canvas, multiple of 4; the creature is re-placed on 64x64
"seed": 11, "direction": "south", "detail": "medium detail",
"anchors": {"tail": [40, 50]}, # optional, pixel coords on the 64x64 base
+ "probe_seeds": {"tail": 7}, # seeds for probe edits (see below)
+ "variants": [{ # same creature idea, visibly different body: an edit of this
+ "name": "pl_fox_b", # base, so it inherits plan/head/tags/slots and the anchors
+ "edit": "make it chubbier with crimson stripes", "seed": 1,
+ "desc": "...", "types": {...}, # types optional (default: the parent's)
+ "skip": false
+ }],
"parts": [{
"slot": "tail", "name": "pl_tail_flame",
"edit": "add a long tail ending in a big orange and yellow flame, curling up on the right side",
@@ -49,6 +56,10 @@ Spec (pixellab_library/.json)
}]
}
+Probes: every accepted slot with no real part gets a probe edit (a standard gold horn pair, wing
+pair or tail; PROBE_EDITS) that extract uses only to find that slot's anchor. A new concept
+therefore needs no parts: base + 3 probes, plus 1 edit per variant.
+
Conventions every base and edit must follow so parts mix across bodies
- Front or 3/4 view facing the viewer (direction south / south-west), feet at the bottom.
- Tails come out on the image's RIGHT side. Wings and horns are symmetric pairs.
@@ -60,6 +71,7 @@ Conventions every base and edit must follow so parts mix across bodies
import argparse
import importlib
import json
+import os
import random
import sys
import zlib
@@ -87,6 +99,13 @@ SLOTS = reg.FEATURE_SLOTS
BASE_STYLE = (", original cute monster creature design, chibi proportions, teal body with darker teal shading, "
"small crimson details, big expressive eyes, full body, centered, retro handheld game sprite")
EDIT_SUFFIX = ", keep everything else exactly the same"
+# Probe edits: a standard feature per slot, made on bodies that have no real part in that slot,
+# only to find where that slot attaches. Probes are never added to the library.
+PROBE_EDITS = {
+ "head_top": "add a pair of small gold horns on top of its head",
+ "back": "add a pair of small gold feathered wings spread from its back",
+ "tail": "add a long thick gold tail coming out from its body on the right side",
+}
# Stand-in palette: what PixelLab draws in, mapped to the legend characters of build_parts.py
STANDIN = {
@@ -118,30 +137,45 @@ class SpecError(Exception):
# ---------------------------------------------------------------- specs
+def check_spec(s, seen):
+ for key in ("name", "plan", "prompt"):
+ if key not in s:
+ raise SpecError(f"{s['_path']}: missing '{key}'")
+ if s["plan"] not in reg.PLANS:
+ raise SpecError(f"{s['_path']}: plan must be one of {reg.PLANS}")
+ for p in [s] + s.get("parts", []) + s.get("variants", []):
+ if p["name"] in seen and seen[p["name"]] != s["_path"]:
+ raise SpecError(f"{s['_path']}: name {p['name']} already used in {seen[p['name']]}")
+ seen[p["name"]] = s["_path"]
+ for p in s.get("parts", []):
+ if p.get("slot") not in SLOTS:
+ raise SpecError(f"{s['_path']}: {p.get('name')}: slot must be one of {SLOTS}")
+ if p.get("fixed") and p["fixed"] not in gs.FIXED:
+ raise SpecError(f"{s['_path']}: {p['name']}: fixed must be one of {list(gs.FIXED)}")
+ if "edit" not in p:
+ raise SpecError(f"{s['_path']}: {p['name']}: missing 'edit'")
+ for v in s.get("variants", []):
+ if "edit" not in v:
+ raise SpecError(f"{s['_path']}: variant {v['name']}: missing 'edit'")
+
+
def load_specs(names=()):
- specs = reg.load_specs(SPEC_DIR)
- seen = {}
- for s in specs:
- for key in ("name", "plan", "prompt"):
- if key not in s:
- raise SpecError(f"{s['_path']}: missing '{key}'")
- if s["plan"] not in reg.PLANS:
- raise SpecError(f"{s['_path']}: plan must be one of {reg.PLANS}")
- for p in [s] + s.get("parts", []):
- if p["name"] in seen:
- raise SpecError(f"{s['_path']}: name {p['name']} already used in {seen[p['name']]}")
- seen[p["name"]] = s["_path"]
- for p in s.get("parts", []):
- if p.get("slot") not in SLOTS:
- raise SpecError(f"{s['_path']}: {p.get('name')}: slot must be one of {SLOTS}")
- if p.get("fixed") and p["fixed"] not in gs.FIXED:
- raise SpecError(f"{s['_path']}: {p['name']}: fixed must be one of {list(gs.FIXED)}")
- if "edit" not in p:
- raise SpecError(f"{s['_path']}: {p['name']}: missing 'edit'")
+ """All valid specs (or the named ones). An invalid spec someone else is still writing is
+ skipped with a warning; an invalid spec you asked for by name is an error."""
+ specs, seen = [], {}
+ for s in reg.load_specs(SPEC_DIR):
+ try:
+ check_spec(s, seen)
+ except (SpecError, KeyError) as e:
+ if s.get("name") in names:
+ raise SpecError(str(e))
+ print(f"warning: skipping {s['_path']}: {e}", file=sys.stderr)
+ continue
+ specs.append(s)
if names:
unknown = set(names) - {s["name"] for s in specs}
if unknown:
- raise SpecError(f"no spec for {sorted(unknown)}")
+ raise SpecError(f"no spec for {sorted(unknown)} (variants are generated/extracted with their parent)")
specs = [s for s in specs if s["name"] in names]
return specs
@@ -183,16 +217,6 @@ def base_payload(spec):
}
-def edit_payload(spec, part, base):
- return {
- "image": gs_b64(base),
- "description": part["edit"] + EDIT_SUFFIX,
- "width": CANVAS, "height": CANVAS,
- "seed": part.get("seed", stable_seed(part["name"])),
- "no_background": True,
- }
-
-
def gs_b64(img):
from pixellab_api import b64
return b64(img)
@@ -203,76 +227,120 @@ def save_meta(path, endpoint, payload, usage):
path.write_text(json.dumps({"endpoint": endpoint, "request": redact(payload), "usage": usage}, indent=2) + "\n")
-MIN_USD = 0.30 # generate stops starting new bodies below this balance once trial generations are gone
+# generate refuses to start when the month's included generations fall to this reserve (kept for
+# later work this month; override with PIXELLAB_RESERVE), or when they're gone and USD is low.
+MIN_INCLUDED = int(os.environ.get("PIXELLAB_RESERVE", "800"))
+MIN_USD = 0.30
def budget_ok(client):
bal = client.balance()
- trial = (bal.get("subscription") or {}).get("generations") or 0
+ sub = bal.get("subscription") or {}
+ included = sub.get("generations") or 0
usd = (bal.get("credits") or {}).get("usd") or 0
- if trial <= 0 and usd < MIN_USD:
- print(f"budget stop: ${usd:.2f} left (floor ${MIN_USD:.2f}), no trial generations")
+ if sub.get("total", 0) > 100 and included <= MIN_INCLUDED:
+ print(f"budget stop: {included:g} included generations left, reserve is {MIN_INCLUDED}")
+ return False
+ if included <= 0 and usd < MIN_USD:
+ print(f"budget stop: ${usd:.2f} left (floor ${MIN_USD:.2f}), no included generations")
return False
return True
-def generate(specs, only=(), force=False, dry=False, workers=1, base_only=False):
+def probe_slots(spec):
+ """Accepted feature slots with no real part and no anchor override: they get a probe edit
+ (a standard feature, never added to the library) just to find the body's anchor."""
+ has = {p["slot"] for p in spec.get("parts", []) if not p.get("skip")}
+ return [s for s in spec.get("slots", SLOTS) if s not in has and s not in spec.get("anchors", {})]
+
+
+def edit_jobs(spec):
+ """(name, output path, edit text, seed) for every edit of this body: parts, probes, variants."""
+ d = SRC_DIR / spec["name"]
+ jobs = [(p["name"], d / f"{p['name']}.png", p["edit"], p.get("seed", stable_seed(p["name"])))
+ for p in spec.get("parts", []) if not p.get("skip")]
+ jobs += [(f"_probe_{s}", d / f"_probe_{s}.png", PROBE_EDITS[s],
+ spec.get("probe_seeds", {}).get(s, stable_seed(spec["name"] + s))) for s in probe_slots(spec)]
+ jobs += [(v["name"], SRC_DIR / v["name"] / "base.png", v["edit"], v.get("seed", stable_seed(v["name"])))
+ for v in spec.get("variants", []) if not v.get("skip")]
+ return jobs
+
+
+def generate(specs, only=(), force=False, dry=False, workers=10, base_only=False):
+ """Create missing bases, then every missing edit (parts, probes, variants) of the given bodies.
+
+ Bases run in parallel first, then all edits in parallel; the API client caps concurrency
+ account-wide. --force regenerates the named parts/variants/probes (only=...), or with no
+ names the bases themselves, which deletes those bodies' old edits and variants."""
client = None
if not dry:
from pixellab_api import Client
client = Client()
- for spec in specs:
- if client and not budget_ok(client):
+ if not budget_ok(client):
return
+
+ def make_base(spec):
d = SRC_DIR / spec["name"]
d.mkdir(parents=True, exist_ok=True)
- base_path = d / "base.png"
- if force and not only or not base_path.exists():
- payload = base_payload(spec)
- if dry:
- print(f"{spec['name']}: create-image-pixen {json.dumps(payload)}")
- else:
- print(f"{spec['name']}: generating base ...")
- try:
- raw, usage = client.run("create-image-pixen", payload, f"{spec['name']}/base")
- raw.save(d / "base_raw.png")
- normalize_base(raw).save(base_path)
- except Exception as e: # API error after retries, or a creature too big for 64x64
- print(f" base FAILED: {e}")
- continue
- save_meta(d / "base.json", "create-image-pixen", payload, usage)
- stale = [f for f in d.glob("*.png") if not f.name.startswith("base")]
- for f in stale: # edits of the old base no longer match it
- f.unlink()
- f.with_suffix(".json").unlink(missing_ok=True)
- print(f" base saved ({usage})" + (f", removed {len(stale)} old edits" if stale else ""))
- if base_only:
- continue
+ payload = base_payload(spec)
+ if dry:
+ return f"{spec['name']}: create-image-pixen {payload['description']!r} seed {payload['seed']}"
+ try:
+ raw, usage = client.run("create-image-pixen", payload, f"{spec['name']}/base")
+ raw.save(d / "base_raw.png")
+ normalize_base(raw).save(d / "base.png")
+ except Exception as e: # API error after retries, or a creature too big for 64x64
+ return f"{spec['name']}: base FAILED: {e}"
+ save_meta(d / "base.json", "create-image-pixen", payload, usage)
+ stale = [f for f in d.glob("*.png") if not f.name.startswith("base")]
+ stale += [SRC_DIR / v["name"] / "base.png" for v in spec.get("variants", [])
+ if (SRC_DIR / v["name"] / "base.png").exists()]
+ for f in stale: # edits and variants of the old base no longer match it
+ f.unlink()
+ f.with_suffix(".json").unlink(missing_ok=True)
+ return f"{spec['name']}: base saved" + (f", removed {len(stale)} old edits/variants" if stale else "")
+
+ bases = [s for s in specs if (force and not only) or not (SRC_DIR / s["name"] / "base.png").exists()]
+ with ThreadPoolExecutor(max_workers=max(1, workers)) as ex:
+ for line in ex.map(make_base, bases):
+ print(line, flush=True)
+ if base_only:
+ return
+
+ todo = []
+ for spec in specs:
+ base_path = SRC_DIR / spec["name"] / "base.png"
if not base_path.exists():
- if dry:
- print(f" (edits need {base_path})")
+ print(f"{spec['name']}: no base, edits skipped")
continue
- base = Image.open(base_path).convert("RGBA")
- todo = [p for p in spec.get("parts", [])
- if (not only or p["name"] in only) and (force and (not only or p["name"] in only)
- or not (d / f"{p['name']}.png").exists())]
- todo = [p for p in todo if not p.get("skip")]
+ for name, out, text, seed in edit_jobs(spec):
+ wanted = not only or name in only or (name.startswith("_probe_") and f"{spec['name']}/{name}" in only)
+ if wanted and ((force and only) or not out.exists()):
+ todo.append((spec, base_path, name, out, text, seed))
- def one(p):
- payload = edit_payload(spec, p, base)
- if dry:
- return f" {p['name']}: edit-image-pixen \"{payload['description']}\" seed {payload['seed']}"
- try:
- img, usage = client.run("edit-image-pixen", payload, f"{spec['name']}/{p['name']}")
- except Exception as e: # one failed edit shouldn't stop the others
- return f" {p['name']}: FAILED {e}"
- img.save(d / f"{p['name']}.png")
- save_meta(d / f"{p['name']}.json", "edit-image-pixen", payload, usage)
- return f" {p['name']}: saved ({usage})"
+ def make_edit(job):
+ spec, base_path, name, out, text, seed = job
+ payload = {"image": gs_b64(Image.open(base_path).convert("RGBA")), "description": text + EDIT_SUFFIX,
+ "width": CANVAS, "height": CANVAS, "seed": seed, "no_background": True}
+ if dry:
+ return f" {spec['name']}/{name}: edit-image-pixen {text!r} seed {seed}"
+ try:
+ img, usage = client.run("edit-image-pixen", payload, f"{spec['name']}/{name}")
+ except Exception as e: # one failed edit shouldn't stop the others
+ return f" {spec['name']}/{name}: FAILED {e}"
+ out.parent.mkdir(parents=True, exist_ok=True)
+ if out.name == "base.png": # a variant: binarize alpha like a base
+ arr = np.array(img)
+ arr[..., 3] = np.where(arr[..., 3] >= 128, 255, 0)
+ img = Image.fromarray(arr)
+ img.save(out)
+ save_meta(out.with_suffix(".json"), "edit-image-pixen", payload, usage)
+ return f" {spec['name']}/{name}: saved"
- with ThreadPoolExecutor(max_workers=max(1, workers)) as ex:
- for line in ex.map(one, todo):
- print(line)
+ print(f"{len(todo)} edits to make", flush=True)
+ with ThreadPoolExecutor(max_workers=max(1, workers)) as ex:
+ for line in ex.map(make_edit, todo):
+ print(line, flush=True)
# ---------------------------------------------------------------- color conversion
@@ -566,26 +634,41 @@ def extract_body(spec):
else:
from_part[p["slot"]] = a
extracted.append((p, var, grid, fill, change))
+ probes = []
+ for slot in probe_slots(spec):
+ src = d / f"_probe_{slot}.png"
+ if slot in from_part or not src.exists():
+ continue
+ vrgb = load_rgba(src)
+ vgrid, vramps = to_grid(vrgb)
+ try:
+ grid, fill, _ = extract(base, {"spec": {"name": f"{spec['name']} probe {slot}"},
+ "var": {"grid": vgrid, "ramps": vramps, "rgb": vrgb}})
+ except SpecError as e:
+ print(f" ! {e}; {slot} anchor uses the default")
+ continue
+ a = contact_anchor(bgrid, vgrid, fill)
+ if a is None:
+ print(f" ! probe {slot} doesn't touch the body; {slot} anchor uses the default")
+ continue
+ from_part[slot] = a
+ probes.append((slot, vrgb, vgrid, grid))
anchors.update(from_part)
anchors.update({k: tuple(v) for k, v in spec.get("anchors", {}).items()})
- taken = {}
- for k, xy in anchors.items():
- if xy in taken:
- raise SpecError(f"{spec['name']}: {k} and {taken[xy]} anchors share pixel {xy}; set one in 'anchors'")
- taken[xy] = k
-
- x0, y0, x1, y1 = crop_box(bgrid != ".", anchors.values())
- body = bgrid[y0:y1 + 1, x0:x1 + 1].copy()
- for k, (x, y) in anchors.items():
- body[y - y0, x - x0] = MARKER_CHAR[k]
- write_part("body", spec["name"], body,
- [f"{spec['name']}: from pixellab_src/{spec['name']}/base.png (pixellab_library.py extract)"]
- + [f"{k} at {xy}" + (" (from part)" if k in from_part else "") for k, xy in anchors.items()])
+ anchors = unique_anchors(bgrid, anchors)
+ (d / "anchors.json").write_text(json.dumps({k: list(v) for k, v in anchors.items()}) + "\n")
+ body = write_body(spec["name"], bgrid, anchors, f"pixellab_src/{spec['name']}/base.png", set(from_part))
print(f"{spec['name']}: body {body.shape[1]}x{body.shape[0]} "
+ " ".join(f"{k}={anchors[k]}" for k in MARKER_CHAR))
diff_dir = PREVIEW_DIR / "diff"
diff_dir.mkdir(parents=True, exist_ok=True)
+ for slot, vrgb, vgrid, grid in probes:
+ tiles = [Image.fromarray(rgb), Image.fromarray(vrgb), standin_image(grid)]
+ hstack([zoom(t, 4) for t in tiles]).save(diff_dir / f"_probe_{spec['name']}_{slot}.png")
+ for v in spec.get("variants", []):
+ if not v.get("skip"):
+ extract_variant(spec, v, anchors)
for p, var, grid, fill, change in extracted:
pivot = anchors[p["slot"]]
px0, py0, px1, py1 = crop_box(grid != ".", [pivot])
@@ -600,9 +683,66 @@ def extract_body(spec):
f"body change {change:.0%}{flag}")
+def unique_anchors(bgrid, anchors):
+ """Anchors must be distinct pixels; on a clash, move the later one to the nearest free body pixel."""
+ out, taken = {}, set()
+ opaque = bgrid != "."
+ for k, xy in anchors.items():
+ if xy in taken:
+ free = opaque.copy()
+ for tx, ty in taken:
+ free[ty, tx] = False
+ xy = nearest(free, *xy)
+ out[k] = xy
+ taken.add(xy)
+ return out
+
+
+def write_body(name, bgrid, anchors, source, derived=()):
+ """Crop the body grid to the creature, stamp the anchor markers, write grid + PNG."""
+ x0, y0, x1, y1 = crop_box(bgrid != ".", anchors.values())
+ body = bgrid[y0:y1 + 1, x0:x1 + 1].copy()
+ for k, (x, y) in anchors.items():
+ body[y - y0, x - x0] = MARKER_CHAR[k]
+ write_part("body", name, body, [f"{name}: from {source} (pixellab_library.py extract)"]
+ + [f"{k} at {xy}" + (" (from part/probe)" if k in derived else "") for k, xy in anchors.items()])
+ return body
+
+
+def extract_variant(parent, v, parent_anchors):
+ """A variant is an edit of its parent's base on the same canvas, so it reuses the parent's
+ feature anchors, adjusted to its own outline (edits often come out bigger): head_top moves to
+ the top of the body in that column, tail to the right edge in that row, back to the nearest
+ body pixel. A variant's own "anchors" override these. Ground pivot and aura are its own."""
+ src = SRC_DIR / v["name"] / "base.png"
+ if not src.exists():
+ print(f" {v['name']}: no variant image yet, run generate")
+ return
+ rgb = load_rgba(src)
+ vgrid, _ = to_grid(rgb, body=True)
+ opaque = vgrid != "."
+ if not opaque.any():
+ print(f" {v['name']}: empty image, skipped")
+ return
+ anchors = default_anchors(vgrid)
+ for slot in SLOTS:
+ x, y = parent_anchors[slot]
+ if slot == "head_top" and opaque[:, x].any():
+ anchors[slot] = (x, int(np.nonzero(opaque[:, x])[0].min()))
+ elif slot == "tail" and opaque[y].any():
+ anchors[slot] = (int(np.nonzero(opaque[y])[0].max()), y)
+ else:
+ anchors[slot] = nearest(opaque, x, y)
+ anchors.update({k: tuple(xy) for k, xy in v.get("anchors", {}).items()})
+ anchors = unique_anchors(vgrid, anchors)
+ body = write_body(v["name"], vgrid, anchors, f"pixellab_src/{v['name']}/base.png (variant of {parent['name']})")
+ print(f" variant {v['name']}: body {body.shape[1]}x{body.shape[0]}")
+
+
def sweep_orphans(specs):
"""Remove grids/PNGs for parts and bodies no longer in any spec (or marked skip)."""
live = {("body", s["name"]) for s in specs}
+ live |= {("body", v["name"]) for s in specs for v in s.get("variants", []) if not v.get("skip")}
live |= {(p["slot"], p["name"]) for s in specs for p in s.get("parts", []) if not p.get("skip")}
for root, ext in ((GRID_DIR, "txt"), (PARTS_DIR, "png")):
for f in root.glob(f"*/*.{ext}"):
@@ -652,22 +792,83 @@ def label_grid(cells, cols, path, scale, title=None):
print(path)
+ANCHOR_COLORS = {"head_top": (255, 40, 40, 255), "back": (40, 220, 40, 255), "tail": (40, 120, 255, 255)}
+TEST_FIT = {"head_top": ["pl_horns_ram", "pl_horn_single", "pl_antennae"],
+ "back": ["pl_wings_gold", "pl_wings_bat", "pl_scarf_long"],
+ "tail": ["pl_tail_fluffy", "pl_tail_spade", "pl_tail_curly"]}
+
+
+def dark(img):
+ return Image.alpha_composite(Image.new("RGBA", img.size, (27, 31, 42, 255)), img)
+
+
+def anchor_tile(lib, body, ptype, colors):
+ """The body recolored, with a 3x3 dot on each feature anchor (head_top red, back green, tail blue)."""
+ img = render(lib, body, {}, ptype, colors)
+ bimg, anch = gs.load_part(lib.PARTS_DIR, "body", body["name"])
+ bb = bimg.getbbox()
+ ox = (CANVAS - (bb[2] - bb[0])) // 2 - bb[0]
+ oy = CANVAS - GROUND_MARGIN - (bb[3] - bb[1]) - bb[1]
+ d = ImageDraw.Draw(img)
+ for slot, col in ANCHOR_COLORS.items():
+ x, y = anch[slot]
+ d.rectangle((x + ox - 1, y + oy - 1, x + ox + 1, y + oy + 1), fill=col)
+ return img
+
+
+def test_fit(lib, body, ptype, colors):
+ """The body with one common library part per slot (the first that's allowed and fits)."""
+ by = {p["name"]: (s, p) for s in SLOTS for p in lib.SLOTS[s]}
+ picks, names = {}, []
+ for slot, cands in TEST_FIT.items():
+ for n in cands:
+ if n in by and allowed_on(lib, body, slot, by[n][1]) and lib.fits(body, {**picks, slot: by[n][1]}):
+ picks[slot] = by[n][1]
+ names.append(n[3:])
+ break
+ return "test: " + " ".join(names), render(lib, body, picks, ptype, colors)
+
+
def preview_body(lib, spec):
+ """One review sheet per body family: preview/pixellab/body_.png.
+ Row 1: raw base, recolored, anchors, test fit with library parts, each own part.
+ Then one row per variant: raw, recolored, anchors (inherited), test fit."""
by = {p["name"]: p for s in lib.SLOTS.values() for p in s}
if spec["name"] not in by:
print(f"{spec['name']}: not extracted")
return
+ colors = PREVIEW_PALETTES[0][1]
body = by[spec["name"]]
btype = top_type(body)
own = [(p["slot"], by[p["name"]]) for p in spec.get("parts", []) if p["name"] in by]
+ rows = [[("base " + spec["name"][3:], dark(Image.open(SRC_DIR / spec["name"] / "base.png").convert("RGBA"))),
+ ("recolored", render(lib, body, {}, btype, colors)),
+ ("anchors", anchor_tile(lib, body, btype, colors)),
+ test_fit(lib, body, btype, colors)]
+ + [(p["name"][3:], render(lib, body, {slot: p}, top_type(p, btype), colors)) for slot, p in own]]
+ for v in spec.get("variants", []):
+ if v.get("skip") or v["name"] not in by:
+ continue
+ vb = by[v["name"]]
+ rows.append([("variant " + v["name"][3:], dark(Image.open(SRC_DIR / v["name"] / "base.png").convert("RGBA"))),
+ ("recolored", render(lib, vb, {}, btype, colors)),
+ ("anchors", anchor_tile(lib, vb, btype, colors)),
+ test_fit(lib, vb, btype, colors)])
+ cols = max(len(r) for r in rows)
+ cells = [c for r in rows for c in r + [("", None)] * (cols - len(r))]
+ label_grid(cells, cols, PREVIEW_DIR / f"body_{spec['name']}.png", 3)
+
+
+def preview_sheet(specs, path):
+ """Raw bases (and variants) of many bodies on one sheet: for a quick originality check."""
cells = []
- for _, colors in PREVIEW_PALETTES:
- base = Image.open(SRC_DIR / spec["name"] / "base.png").convert("RGBA")
- cells.append(("pixellab base", Image.alpha_composite(Image.new("RGBA", base.size, (27, 31, 42, 255)), base)))
- cells.append((spec["name"], render(lib, body, {}, btype, colors)))
- for slot, p in own:
- cells.append((p["name"], render(lib, body, {slot: p}, top_type(p, btype), colors)))
- label_grid(cells, len(own) + 2, PREVIEW_DIR / f"body_{spec['name']}.png", 3)
+ for spec in specs:
+ for name in [spec["name"]] + [v["name"] for v in spec.get("variants", []) if not v.get("skip")]:
+ f = SRC_DIR / name / "base.png"
+ if f.exists():
+ cells.append((name[3:], dark(Image.open(f).convert("RGBA"))))
+ if cells:
+ label_grid(cells, 8, path, 2)
def allowed_on(lib, body, slot, p):
@@ -679,17 +880,22 @@ def allowed_on(lib, body, slot, p):
return not (set(p["tags"]) & set(body["excludes"]) or set(p["excludes"]) & tags)
+CROSS_MAX_BODIES = 30 # the full library is far too big for one image; rows are an even sample
+
+
def preview_cross(lib):
- """Per slot: rows = bodies, columns = parts; every pairing the rules allow is rendered.
- Gray cell: not allowed by plans/tags/deny. Red frame: rendered for review, but the generator
- never picks it (detached from the body, or too big for the canvas)."""
+ """Per slot: rows = bodies (an even sample of CROSS_MAX_BODIES), columns = parts; every
+ pairing the rules allow is rendered. Gray cell: not allowed by plans/tags/deny. Red frame:
+ rendered for review, but the generator never picks it (detached, or too big for the canvas)."""
+ step = max(1, -(-len(lib.BODY) // CROSS_MAX_BODIES))
+ bodies = lib.BODY[::step]
colors = PREVIEW_PALETTES[0][1]
for slot in SLOTS:
parts = [p for p in lib.SLOTS[slot] if p["name"] != "none"]
if not parts:
continue
cells = []
- for body in lib.BODY:
+ for body in bodies:
for p in parts:
label = f"{body['name'][3:]}+{p['name'][3:]}"
if not allowed_on(lib, body, slot, p):
@@ -734,7 +940,7 @@ def cost():
n += 1
usd += u.get("usd", 0) or 0
gens += u.get("generations", 0) or 0
- print(f"ledger: {n} calls, ${usd:.3f}, {gens:g} trial generations")
+ print(f"ledger: {n} calls, ${usd:.3f}, {gens:g} included generations")
from pixellab_api import Client
print("balance:", Client().balance())
@@ -744,18 +950,20 @@ def main(argv=None):
sub = ap.add_subparsers(dest="cmd", required=True)
g = sub.add_parser("generate", help="create missing bases and edits")
g.add_argument("bodies", nargs="*")
- g.add_argument("--parts", nargs="*", default=(), help="only these parts (with --force: redo them)")
+ g.add_argument("--parts", nargs="*", default=(),
+ help="only these parts / variants / '/_probe_' probes (with --force: redo them)")
g.add_argument("--force", action="store_true", help="regenerate even if the image exists")
g.add_argument("--dry-run", action="store_true")
- g.add_argument("--workers", type=int, default=1,
- help="parallel edit requests (the account runs one job at a time, so extra workers just queue)")
- g.add_argument("--base-only", action="store_true", help="only the base image (review it before paying for edits)")
+ g.add_argument("--workers", type=int, default=10,
+ help="parallel requests (the API client also caps concurrency account-wide)")
+ g.add_argument("--base-only", action="store_true", help="only the base images (review them before paying for edits)")
e = sub.add_parser("extract", help="convert + diff + anchors -> parts_pl_src/ and parts_pl/")
e.add_argument("bodies", nargs="*")
pv = sub.add_parser("preview", help="review sheets in preview/pixellab/")
pv.add_argument("bodies", nargs="*")
pv.add_argument("--cross", action="store_true", help="every part on every body, one sheet per slot")
pv.add_argument("--random", type=int, metavar="N", help="N real random picks")
+ pv.add_argument("--sheet", metavar="PNG", help="raw bases + variants of the given bodies on one sheet")
sub.add_parser("cost", help="spend so far and live balance")
a = ap.parse_args(argv)
try:
@@ -767,7 +975,10 @@ def main(argv=None):
generate(specs, set(a.parts), a.force, a.dry_run, a.workers, a.base_only)
elif a.cmd == "extract":
for spec in specs:
- extract_body(spec)
+ try:
+ extract_body(spec)
+ except (SpecError, bp.SourceError) as err: # one bad body shouldn't stop the rest
+ print(f"{spec['name']}: error: {err}", file=sys.stderr)
if not a.bodies:
sweep_orphans(specs)
elif a.cmd == "preview":
@@ -776,7 +987,9 @@ def main(argv=None):
preview_cross(lib)
if a.random:
preview_random(lib, a.random)
- if a.bodies or not (a.cross or a.random):
+ if a.sheet:
+ preview_sheet(specs, Path(a.sheet))
+ elif a.bodies or not (a.cross or a.random):
for spec in specs:
preview_body(lib, spec)
except (SpecError, reg.SpecError, bp.SourceError) as err:
diff --git a/pixellab_library/pl_aardvark.json b/pixellab_library/pl_aardvark.json
new file mode 100644
index 0000000..0ff1126
--- /dev/null
+++ b/pixellab_library/pl_aardvark.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_aardvark",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ground": 5,
+ "bug": 3
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Aardvark with long tube snout, tall ears and arched back",
+ "prompt": "young aardvark creature standing on four sturdy legs with big digging claws, strongly arched rounded back, long tube-shaped snout ending in a flat round crimson nose disc, two tall pointed rabbit-like ears, sleepy half-closed eyes, sparse bristly fur",
+ "size": 44,
+ "seed": 7202,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_aardvark_b",
+ "edit": "make it much chubbier and rounder with a shorter thick snout, short round ears and crimson stripes across its back",
+ "seed": 1,
+ "desc": "Chubby striped aardvark"
+ },
+ {
+ "name": "pl_aardvark_c",
+ "edit": "make it lankier with longer legs, an even longer curved snout, wide open eyes and crimson spots on its flanks",
+ "seed": 1,
+ "desc": "Lanky spotted aardvark"
+ },
+ {
+ "name": "pl_aardvark_d",
+ "edit": "make it twice as round and squat with a short fat body, stubby legs and a shorter snout, keep its aardvark face and teal skin",
+ "seed": 7,
+ "desc": "Extra-fluffy aardvark",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_alien.json b/pixellab_library/pl_alien.json
new file mode 100644
index 0000000..25e86b7
--- /dev/null
+++ b/pixellab_library/pl_alien.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_alien",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "ghost": 3
+ },
+ "desc": "Alien critter on four thin stilt legs with a huge bulbous veined cranium and glossy black almond eyes",
+ "prompt": "small alien critter standing on four long thin stilt-like legs, a huge bulbous smooth cranium much bigger than its body with faint crimson vein lines on it, wide-set glossy black almond-shaped eyes, tiny slit mouth, long thin neck, small round body, three-toed feet, no ears, no antennae, no tail",
+ "size": 44,
+ "seed": 1209,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_alien_b",
+ "edit": "make its cranium even bigger and taller like a light bulb with crimson spots on it, and its legs shorter and stubbier",
+ "seed": 1,
+ "desc": "Bulb-headed stubby alien"
+ },
+ {
+ "name": "pl_alien_c",
+ "edit": "make its head wider and flatter like a mushroom cap with huge glossy black eyes and a slimmer body with longer legs",
+ "seed": 1,
+ "desc": "Flat-headed lanky alien"
+ },
+ {
+ "name": "pl_alien_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its alien face and bulbous teal cranium, no human features",
+ "seed": 1,
+ "desc": "Young chibi alien"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_alpaca.json b/pixellab_library/pl_alpaca.json
new file mode 100644
index 0000000..7abec5b
--- /dev/null
+++ b/pixellab_library/pl_alpaca.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_alpaca",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "psychic": 3,
+ "ice": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Fluffy alpaca with a long woolly neck, pom-pom topknot and tall banana ears",
+ "prompt": "alpaca creature standing on four thin legs, very fluffy woolly body, long upright woolly neck, small head with a fluffy pom-pom topknot of wool, tall curved banana-shaped ears, sleepy smug eyes, crimson tassel on its neck, no tail",
+ "size": 44,
+ "seed": 2201,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_alpaca_b",
+ "edit": "make it shorn with short thin fur, a skinny neck, a bigger head and crimson spots on its body",
+ "seed": 1,
+ "desc": "Shorn spotted alpaca"
+ },
+ {
+ "name": "pl_alpaca_c",
+ "edit": "make its teal wool much fluffier and puffier so its body is a round cloud of teal wool, with crimson stripes on its legs, keep it the same size and teal color",
+ "seed": 2,
+ "desc": "Cloud-wool alpaca"
+ },
+ {
+ "name": "pl_alpaca_d",
+ "edit": "make it a baby alpaca with a tiny round body, short legs, a short neck and a huge fluffy head, keep it teal",
+ "seed": 1,
+ "desc": "A baby alpaca"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_amber.json b/pixellab_library/pl_amber.json
new file mode 100644
index 0000000..82aafb4
--- /dev/null
+++ b/pixellab_library/pl_amber.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_amber",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "rock": 5,
+ "bug": 3,
+ "psychic": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Glossy amber resin drop with a fossil insect trapped inside",
+ "prompt": "glossy translucent teal resin drop creature shaped like a fat teardrop with the point on top, shiny white highlights, a small dark crimson fossil beetle silhouette trapped deep inside its belly, simple cute face with two dot eyes near its top, two stubby teal feet",
+ "size": 44,
+ "seed": 9222,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_amber_b",
+ "edit": "make it lumpy and faceted like a rough cut gemstone with a crimson fossil leaf trapped inside instead",
+ "seed": 1,
+ "desc": "Faceted amber with leaf"
+ },
+ {
+ "name": "pl_amber_c",
+ "edit": "make it wider and drippier like a melting blob of sap with bubbles inside and a crimson fossil fish",
+ "seed": 1,
+ "desc": "Drippy bubbly amber"
+ },
+ {
+ "name": "pl_amber_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded amber"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ankylo.json b/pixellab_library/pl_ankylo.json
new file mode 100644
index 0000000..c1ff679
--- /dev/null
+++ b/pixellab_library/pl_ankylo.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_ankylo",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "rock": 5,
+ "dragon": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "armored"
+ ],
+ "desc": "Ankylosaur hatchling with a wide knobby armor back",
+ "prompt": "ankylosaurus dinosaur hatchling creature on four short thick legs, very wide flat low back covered in rows of round knobby teal armor plates with crimson studs, small low beaked head with sleepy eyes, short stubby tail, no club",
+ "size": 44,
+ "seed": 9909,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ankylo_b",
+ "edit": "make its back taller and domed with bigger pointed armor plates along its sides",
+ "seed": 1,
+ "desc": "Domed spiky ankylo"
+ },
+ {
+ "name": "pl_ankylo_c",
+ "edit": "make it longer and lower with a very wide flat back covered in big flat square armor tiles with crimson edges, a long low narrow snout and small squinting eyes",
+ "seed": 2,
+ "desc": "Baby round ankylo"
+ },
+ {
+ "name": "pl_ankylo_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young ankylo"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ant.json b/pixellab_library/pl_ant.json
new file mode 100644
index 0000000..30d3ff9
--- /dev/null
+++ b/pixellab_library/pl_ant.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_ant",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "normal": 5,
+ "bug": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "antennae"
+ ],
+ "desc": "Chibi worker ant with a big round head, bulb abdomen and elbowed antennae",
+ "prompt": "chibi worker ant creature standing on four thin legs, big round head with large friendly eyes and small mandibles, two elbowed antennae, slim pinched waist, round bulb abdomen behind, two small arms holding a crimson crumb",
+ "size": 44,
+ "seed": 2501,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ant_b",
+ "edit": "make it chunkier with a much bigger head, larger mandibles and crimson stripes on its abdomen",
+ "seed": 1,
+ "desc": "Big-headed soldier ant"
+ },
+ {
+ "name": "pl_ant_c",
+ "edit": "make it slimmer and taller with long legs, a tiny head and crimson spots on its abdomen",
+ "seed": 1,
+ "desc": "Slim leggy ant"
+ },
+ {
+ "name": "pl_ant_d",
+ "edit": "make it armored with thick crimson-edged plates on its body and big strong mandibles at its mouth, no horns, keep it teal",
+ "seed": 2,
+ "desc": "Armored soldier ant"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_antlion.json b/pixellab_library/pl_antlion.json
new file mode 100644
index 0000000..6d01982
--- /dev/null
+++ b/pixellab_library/pl_antlion.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_antlion",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "ground": 5,
+ "bug": 3
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Antlion pit larva with sickle jaws and fat abdomen",
+ "prompt": "antlion larva creature facing the viewer, huge round fat bristly teal abdomen behind a small flat head, two long curved sickle-shaped crimson pincer jaws at the front of its head, two small beady eyes, six short spiky legs splayed to the sides",
+ "size": 44,
+ "seed": 7505,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_antlion_b",
+ "edit": "make its round abdomen much smaller and turn it into a long narrow segmented body with bold crimson stripes across each segment, and make its jaws short and stubby",
+ "seed": 2,
+ "desc": "Banded antlion"
+ },
+ {
+ "name": "pl_antlion_c",
+ "edit": "make it much fatter and fluffier with long hairy bristles all over and big round glossy eyes",
+ "seed": 1,
+ "desc": "Fuzzy round antlion"
+ },
+ {
+ "name": "pl_antlion_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young antlion",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ape.json b/pixellab_library/pl_ape.json
new file mode 100644
index 0000000..67c1be0
--- /dev/null
+++ b/pixellab_library/pl_ape.json
@@ -0,0 +1,68 @@
+{
+ "name": "pl_ape",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "rock": 3,
+ "normal": 2
+ },
+ "desc": "Knuckle-walking gorilla bruiser with massive shoulders and crimson knuckle pads",
+ "prompt": "gorilla-like bruiser creature knuckle-walking on all fours, huge hunched shoulders and massive long arms, tiny short legs, heavy brow over small fierce eyes, flat wide nose, crimson knuckle pads and a crimson chest patch, no tail",
+ "size": 44,
+ "seed": 1201,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ape_b",
+ "edit": "make it heavier with a huge jutting jaw, a tall domed head crest and a crimson saddle marking across its back",
+ "seed": 1,
+ "desc": "Heavy-jawed saddle ape"
+ },
+ {
+ "name": "pl_ape_c",
+ "edit": "make it leaner and lankier with a longer face, a pale cream muzzle and crimson bands around its forearms",
+ "seed": 1,
+ "desc": "Lanky banded ape"
+ },
+ {
+ "name": "pl_ape_d",
+ "edit": "make it a young chibi gorilla with a huge round furry head, big eyes, a small muzzle and short stubby arms, keep its animal face and teal skin, no human features",
+ "seed": 2,
+ "desc": "Chibi young ape"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_headgear_boxing",
+ "edit": "add a crimson padded boxing headgear helmet covering the top of its head",
+ "seed": 1,
+ "types": {
+ "fighting": 7,
+ "normal": 1
+ },
+ "other": 0.05,
+ "tags": [],
+ "motif": "armor",
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_glove",
+ "edit": "add a long teal tail ending in a big crimson boxing glove, curling up on the right side",
+ "seed": 1,
+ "types": {
+ "fighting": 7,
+ "normal": 2
+ },
+ "other": 0.05,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_aphid.json b/pixellab_library/pl_aphid.json
new file mode 100644
index 0000000..d5478b6
--- /dev/null
+++ b/pixellab_library/pl_aphid.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_aphid",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "normal": 5,
+ "bug": 3,
+ "grass": 2
+ },
+ "desc": "Plump pear-shaped aphid on thin legs with two rear cornicle tubes",
+ "prompt": "plump aphid bug creature, round pear-shaped soft translucent body, small head with big gentle eyes and short antennae, six thin long legs, two small tubes sticking up from its rear, crimson spots on its back, no wings",
+ "size": 40,
+ "seed": 4101,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_aphid_b",
+ "edit": "make it much fatter and rounder like a ball with a tiny head and crimson stripes across its back, keep it teal",
+ "seed": 1,
+ "desc": "Fat ball aphid"
+ },
+ {
+ "name": "pl_aphid_c",
+ "edit": "make it slimmer and longer with fuzzy waxy fluff on its back and crimson spots on its head, keep it teal",
+ "seed": 1,
+ "desc": "Fluffy waxy aphid"
+ },
+ {
+ "name": "pl_aphid_d",
+ "edit": "make it armored with a hard shiny crimson-spotted shell dome on its back, keep it teal",
+ "seed": 1,
+ "desc": "Armored"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_armor.json b/pixellab_library/pl_armor.json
new file mode 100644
index 0000000..d8055b4
--- /dev/null
+++ b/pixellab_library/pl_armor.json
@@ -0,0 +1,59 @@
+{
+ "name": "pl_armor",
+ "plan": "biped",
+ "head": [
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "fighting": 3,
+ "rock": 2
+ },
+ "desc": "Small empty suit of knight armor with glowing eyes in the dark visor slit",
+ "prompt": "small chibi empty suit of knight armor standing up, big round helmet with a dark visor slit and two glowing eyes inside, round shoulder plates, stubby armored arms and legs, a crimson sash across its chest, no weapon",
+ "size": 44,
+ "seed": 2108,
+ "variants": [
+ {
+ "name": "pl_armor_b",
+ "edit": "make the armor bulkier and wider with huge rounded shoulder plates, a bucket-shaped helmet and crimson rivets",
+ "seed": 1,
+ "desc": "Bulky bucket-helmet armor"
+ },
+ {
+ "name": "pl_armor_c",
+ "edit": "make the armor slimmer and taller with a pointed helmet, a narrow eye slit and a tattered crimson cloth skirt",
+ "seed": 1,
+ "desc": "Slim pointed-helmet armor"
+ },
+ {
+ "name": "pl_armor_d",
+ "edit": "make it a chibi squire armor with a huge round helmet that has a round open face hole showing glowing eyes in darkness, tiny stubby limbs and a crimson tabard",
+ "seed": 1,
+ "desc": "Round-helmet squire armor"
+ }
+ ],
+ "direction": "south",
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_wings_tattered",
+ "edit": "add a pair of small compact tattered crimson cloth wings with torn ragged edges spread from its back",
+ "seed": 1,
+ "types": {
+ "ghost": 6,
+ "poison": 2,
+ "flying": 2
+ },
+ "other": 0.1,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "winged"
+ ],
+ "excludes": [],
+ "motif": "spooky",
+ "palette": "accent"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_arowana.json b/pixellab_library/pl_arowana.json
new file mode 100644
index 0000000..9befee8
--- /dev/null
+++ b/pixellab_library/pl_arowana.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_arowana",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "water": 3,
+ "fighting": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Asian arowana dragon fish with big shiny scales, chin barbels and an upturned jaw",
+ "prompt": "asian arowana dragon fish creature hovering, long sleek body with big shiny teal scales outlined in crimson, a steep upturned jaw with two whisker barbels on its chin, big eyes, long fins along its back and belly, fan tail fin on the right",
+ "size": 44,
+ "seed": 4201,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_arowana_b",
+ "edit": "make it shorter and rounder with bigger scales and a crimson belly",
+ "seed": 1,
+ "desc": "Round crimson-bellied arowana"
+ },
+ {
+ "name": "pl_arowana_c",
+ "edit": "make it longer with longer drooping barbels and a crimson band behind its head",
+ "seed": 1,
+ "desc": "Long barbel arowana"
+ },
+ {
+ "name": "pl_arowana_d",
+ "edit": "make it very tall and deep-bodied like a round disc fish, keep its face and teal color",
+ "seed": 7,
+ "desc": "Extra-fluffy arowana"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_auger.json b/pixellab_library/pl_auger.json
new file mode 100644
index 0000000..6bc3faf
--- /dev/null
+++ b/pixellab_library/pl_auger.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_auger",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ground": 5,
+ "fighting": 3,
+ "electric": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Burrowing serpent with a spiral drill-bit snout",
+ "prompt": "burrowing serpent creature coiled up on the ground, thick segmented ringed teal body, its snout is a short pointed spiral drill-bit cone with crimson grooves pointing to the left, two small determined eyes behind the drill, no limbs",
+ "size": 44,
+ "seed": 9101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_auger_b",
+ "edit": "make the serpent much fatter and shorter with thick armored ring plates and crimson bands between the rings",
+ "seed": 1,
+ "desc": "Fat armored auger"
+ },
+ {
+ "name": "pl_auger_c",
+ "edit": "make the serpent thinner and longer with more coils, a smooth body and a row of crimson dots along its back",
+ "seed": 1,
+ "desc": "Thin dotted auger"
+ },
+ {
+ "name": "pl_auger_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy auger"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_axolotl.json b/pixellab_library/pl_axolotl.json
index 4b637a8..510c7e5 100644
--- a/pixellab_library/pl_axolotl.json
+++ b/pixellab_library/pl_axolotl.json
@@ -67,5 +67,25 @@
"motif": "plant",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_axolotl_b",
+ "edit": "make it much chubbier with a rounder puffy body, bigger frilly crimson gill fronds and crimson spots along its back",
+ "seed": 1,
+ "desc": "Chubby frilly axolotl"
+ },
+ {
+ "name": "pl_axolotl_c",
+ "edit": "make it twice as round and squat like a fat ball with tiny legs, keep its wide flat axolotl head, frilly gills and teal color",
+ "seed": 11,
+ "desc": "Slim banded newt"
+ },
+ {
+ "name": "pl_axolotl_d",
+ "edit": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush",
+ "seed": 1,
+ "desc": "Baby axolotl"
+ }
]
}
diff --git a/pixellab_library/pl_balloon.json b/pixellab_library/pl_balloon.json
new file mode 100644
index 0000000..5a48a36
--- /dev/null
+++ b/pixellab_library/pl_balloon.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_balloon",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "flying": 5,
+ "fire": 3,
+ "normal": 2
+ },
+ "desc": "Hot-air balloon creature with a face on its round envelope and a small wicker basket for feet",
+ "prompt": "hot air balloon creature, big round balloon envelope body with vertical crimson and teal panels, a happy face on the balloon, short ropes hanging down to a small wicker basket at the bottom like feet, no arms",
+ "size": 44,
+ "seed": 3601,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_balloon_b",
+ "edit": "make the balloon squatter and wider like a pumpkin shape with crimson polka dots, keep the teal balloon color, keep the same size and pose",
+ "seed": 2,
+ "desc": "Squat polka-dot balloon",
+ "skip": true
+ },
+ {
+ "name": "pl_balloon_c",
+ "edit": "make the balloon taller and teardrop shaped with crimson zigzag bands and a sleepy face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Teardrop zigzag balloon"
+ },
+ {
+ "name": "pl_balloon_d",
+ "edit": "cover the teal balloon in crimson patchwork patches with stitched seams, keep its teal face, keep the same size and pose",
+ "seed": 2,
+ "desc": "Patchwork winking balloon",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_bamboo.json b/pixellab_library/pl_bamboo.json
new file mode 100644
index 0000000..a2ab95f
--- /dev/null
+++ b/pixellab_library/pl_bamboo.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_bamboo",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "grass": 5,
+ "dragon": 3,
+ "fighting": 2
+ },
+ "desc": "Serpent made of bamboo segments with nodes and leaf sprigs",
+ "prompt": "serpent creature whose whole body is a bendy teal bamboo stalk made of hollow tube segments with thick ridged rings at every node, coiled in a pile with its front end rising up, the head is a rounded bamboo shoot tip with layered sheath leaves and two round friendly eyes, a few small bamboo leaves sprouting from the nodes, crimson rings at the nodes, thin tail tip resting on the right side, no horns, no fins, no ground shadow",
+ "size": 44,
+ "seed": 2204,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_bamboo_b",
+ "edit": "make the bamboo segments much thicker and shorter so it looks chunky and stout, with a broad flat head",
+ "seed": 1,
+ "desc": "Stout thick-segmented bamboo"
+ },
+ {
+ "name": "pl_bamboo_c",
+ "edit": "make it slimmer and taller with more leaf sprigs and crimson leaf tips, coiled higher",
+ "seed": 1,
+ "desc": "Slim leafy bamboo"
+ },
+ {
+ "name": "pl_bamboo_d",
+ "edit": "make its body one tall upright bamboo stalk with only one coil at the bottom, a wide flat leaf collar under its head and crimson nodes, keep it teal, no green",
+ "seed": 2,
+ "desc": "Young chibi bamboo shoot serpent",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_barrel.json b/pixellab_library/pl_barrel.json
new file mode 100644
index 0000000..50fa4ed
--- /dev/null
+++ b/pixellab_library/pl_barrel.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_barrel",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "electric": 3,
+ "ground": 2
+ },
+ "desc": "Rusty toxic-waste drum creature with glowing sludge oozing from the lid",
+ "prompt": "living metal waste drum barrel creature, dented cylindrical teal barrel body with two crimson hazard bands around it, a face on the front of the barrel, thick glowing slime oozing over the rim of its lid and dripping down its sides, two stubby little feet",
+ "size": 44,
+ "seed": 2102,
+ "variants": [
+ {
+ "name": "pl_barrel_b",
+ "edit": "make the barrel shorter and fatter with big dents, rust patches and a crooked lid, with a worried face",
+ "seed": 1,
+ "desc": "Squat dented rusty barrel"
+ },
+ {
+ "name": "pl_barrel_c",
+ "edit": "make the barrel taller and thinner with ribbed rings, more slime pouring over its lid and a goofy grin",
+ "seed": 1,
+ "desc": "Tall ribbed slimy barrel"
+ },
+ {
+ "name": "pl_barrel_d",
+ "edit": "make it a small round wooden keg with crimson metal hoops, a cork bung on top leaking slime and a sleepy face",
+ "seed": 1,
+ "desc": "Round keg barrel",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_barreleye.json b/pixellab_library/pl_barreleye.json
new file mode 100644
index 0000000..5122726
--- /dev/null
+++ b/pixellab_library/pl_barreleye.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_barreleye",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "water": 3
+ },
+ "desc": "Barreleye fish with a transparent glass dome head showing its eyes inside",
+ "prompt": "barreleye fish creature hovering upright, a big transparent clear glass-like dome on top of its head with its two big round eyes visible inside the dome, small plump fish body below, tiny pouty mouth on its front, crimson spots on its sides, two small paddle fins held out like arms, no tail fin",
+ "size": 44,
+ "seed": 2210,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_barreleye_b",
+ "edit": "make the clear dome much bigger and rounder like a bubble with a crimson glowing spot inside it",
+ "seed": 1,
+ "desc": "Big-bubble barreleye"
+ },
+ {
+ "name": "pl_barreleye_c",
+ "edit": "make its fish body longer and slimmer like a torpedo with crimson stripes, keep the clear glass dome on its head, keep it floating with fins and no legs",
+ "seed": 13,
+ "desc": "Slim torpedo barreleye"
+ },
+ {
+ "name": "pl_barreleye_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its fish face and transparent dome head and teal body, no human features",
+ "seed": 1,
+ "desc": "Young chibi barreleye"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_beaver.json b/pixellab_library/pl_beaver.json
new file mode 100644
index 0000000..b2535a6
--- /dev/null
+++ b/pixellab_library/pl_beaver.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_beaver",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "water": 5,
+ "ground": 3,
+ "normal": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Stocky buck-toothed beaver standing upright on big webbed feet",
+ "prompt": "stocky beaver creature standing upright on two big webbed feet, pear-shaped chunky body, round head with tiny round ears, two big crimson buck teeth, puffy cheeks, short arms with small paws held in front, pale belly patch, coarse fur texture, no tail",
+ "size": 44,
+ "seed": 1301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_beaver_b",
+ "edit": "make it much chubbier and rounder with huge puffy cheeks and a crimson band of fur across its chest",
+ "seed": 1,
+ "desc": "Chubby cheeky beaver"
+ },
+ {
+ "name": "pl_beaver_c",
+ "edit": "make it leaner and taller with a narrower furry face, scruffy shaggy fur tufts sticking up on its head and crimson spots on its arms, keep its buck teeth",
+ "seed": 3,
+ "desc": "Lean scruffy beaver"
+ },
+ {
+ "name": "pl_beaver_d",
+ "edit": "make it extra fluffy with a thick shaggy fur coat, puffy cheeks and a crimson patch on its chest",
+ "seed": 1,
+ "desc": "extra fluffy with a thick shaggy fur coat, puffy che"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_bee.json b/pixellab_library/pl_bee.json
index dc1594c..5152851 100644
--- a/pixellab_library/pl_bee.json
+++ b/pixellab_library/pl_bee.json
@@ -9,7 +9,6 @@
"flying": 1.5,
"electric": 1.5
},
- "other": 1,
"desc": "Fuzzy round hornet-like creature with big compound eyes, hooked mandibles and crimson stripes",
"prompt": "fuzzy round hornet-like creature facing the viewer, plump round teal body covered in short teal fuzz with two thick crimson stripes, round head with big dark oval compound eyes and two small hooked mandibles, four tiny arms, short stubby legs, no wings, no stinger",
"size": 44,
@@ -84,5 +83,25 @@
"palette": "type",
"skip": true
}
+ ],
+ "variants": [
+ {
+ "name": "pl_bee_b",
+ "edit": "make its round body slimmer and more oval with crimson bands across its belly and a narrower face, same pose",
+ "seed": 2,
+ "desc": "Slim banded hornet"
+ },
+ {
+ "name": "pl_bee_c",
+ "edit": "make it much fluffier and rounder with a thick fur ruff around its neck and crimson-tipped fuzz",
+ "seed": 1,
+ "desc": "Fluffy round bumble"
+ },
+ {
+ "name": "pl_bee_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 2,
+ "desc": "Armored bee"
+ }
]
-}
\ No newline at end of file
+}
diff --git a/pixellab_library/pl_beetle.json b/pixellab_library/pl_beetle.json
index fe08220..d6716c4 100644
--- a/pixellab_library/pl_beetle.json
+++ b/pixellab_library/pl_beetle.json
@@ -9,7 +9,6 @@
"rock": 1.5,
"ground": 1.5
},
- "other": 1,
"slots": [
"head_top",
"back"
@@ -77,5 +76,25 @@
"motif": "armor",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_beetle_b",
+ "edit": "make it taller with a high ridged shell, crimson spots on its shell and longer legs",
+ "seed": 1,
+ "desc": "Spotted tall beetle"
+ },
+ {
+ "name": "pl_beetle_c",
+ "edit": "make it flatter and wider with a broad flat shell, crimson stripes along the shell and tiny legs",
+ "seed": 1,
+ "desc": "Flat striped beetle"
+ },
+ {
+ "name": "pl_beetle_d",
+ "edit": "cover its body in thick overlapping armor plates with crimson plate edges, same pose",
+ "seed": 1,
+ "desc": "Armored beetle"
+ }
]
-}
\ No newline at end of file
+}
diff --git a/pixellab_library/pl_betta.json b/pixellab_library/pl_betta.json
new file mode 100644
index 0000000..bb1d28d
--- /dev/null
+++ b/pixellab_library/pl_betta.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_betta",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "desc": "Siamese fighting fish with flared gill frills and long flowing fins",
+ "prompt": "siamese fighting fish creature hovering upright, compact chubby fish body, fierce frowning eyes, flared ruffled gill frills around its face like a collar, long flowing veil-like belly fins hanging down, crimson fin edges, no tail fin",
+ "size": 44,
+ "seed": 1301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_betta_b",
+ "edit": "make it chunkier and rounder with a much bigger flared gill collar and crimson stripes across its body",
+ "seed": 1,
+ "desc": "Big-collared striped betta"
+ },
+ {
+ "name": "pl_betta_c",
+ "edit": "make it slimmer and longer with spiky jagged fin edges and crimson spots on its scales",
+ "seed": 1,
+ "desc": "Slim spiky-finned betta"
+ },
+ {
+ "name": "pl_betta_d",
+ "edit": "make it armored with hard overlapping scale plates over its body, short stiff fins and crimson plate edges, keep it teal",
+ "seed": 1,
+ "desc": "Armored"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_blobfish.json b/pixellab_library/pl_blobfish.json
new file mode 100644
index 0000000..533f5f1
--- /dev/null
+++ b/pixellab_library/pl_blobfish.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_blobfish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "water": 5,
+ "psychic": 3,
+ "normal": 2
+ },
+ "desc": "Saggy droopy blobfish with a big drooping nose and jowls",
+ "prompt": "blobfish creature sitting upright, saggy droopy gelatinous body, a big soft drooping bulbous nose hanging down over a wide frowning mouth, heavy saggy jowls and cheeks, small tired eyes, two tiny limp side fins, crimson blush patches, no tail fin, nothing on its head",
+ "size": 40,
+ "seed": 3701,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_blobfish_b",
+ "edit": "make it taller and droopier like melting jelly with an even longer drooping nose and crimson spots",
+ "seed": 1,
+ "desc": "Tall melting blobfish",
+ "skip": true
+ },
+ {
+ "name": "pl_blobfish_c",
+ "edit": "make it rounder and plumper with a small button nose, puffed cheeks and a crimson stripe across its brow",
+ "seed": 1,
+ "desc": "Plump puffy blobfish"
+ },
+ {
+ "name": "pl_blobfish_d",
+ "edit": "make it squat and wider with an even droopier nose and crimson freckles",
+ "seed": 1,
+ "desc": "squat and wider with an even droopier nose and crims"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_boar.json b/pixellab_library/pl_boar.json
index c96cb32..18ec8d9 100644
--- a/pixellab_library/pl_boar.json
+++ b/pixellab_library/pl_boar.json
@@ -1,102 +1,121 @@
{
- "name": "pl_boar",
- "plan": "quadruped",
- "head": [
- "mammal_head"
- ],
- "types": {
- "ground": 2.5,
- "normal": 2,
- "fighting": 1.5
- },
- "other": 1,
- "excludes": [
- "eared"
- ],
- "desc": "Stocky boar with a broad flat snout, small upturned tusks and floppy ears",
- "prompt": "stocky barrel-bodied boar-like creature standing on four short thick legs with small hooves, broad flat pig snout with a crimson nose disc, two small curved tusks poking up from its lower jaw, small fierce eyes, small floppy ears folded forward, low wide smooth head with no hair on top, crimson stripe markings on its flanks, short smooth fur, no mane, no tail, round rump with nothing behind it",
- "size": 48,
- "seed": 714,
- "direction": "south-west",
- "parts": [
- {
- "slot": "head_top",
- "name": "pl_tuft_fluffy",
- "edit": "add one small fluffy teal tuft of fur sticking up on top of its forehead",
- "seed": 2,
- "types": {
- "normal": 5,
- "fighting": 1,
- "ice": 1
- },
- "other": 0.4,
- "tags": [
- "fluffy"
- ],
- "requires": [
- "mammal_head",
- "integrated_head"
- ],
- "palette": "main"
+ "name": "pl_boar",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ground": 2.5,
+ "normal": 2,
+ "fighting": 1.5
},
- {
- "slot": "back",
- "name": "pl_mane_bristle",
- "edit": "add a tall ridge of spiky crimson bristles sticking up high along its back",
- "seed": 3,
- "types": {
- "normal": 3,
- "ground": 4,
- "fighting": 3
- },
- "other": 0.3,
- "tags": [
- "fluffy"
- ],
- "palette": "accent",
- "box": [
- 0,
- 0,
- 43,
- 25
- ]
- },
- {
- "slot": "back",
- "name": "pl_saddle_rock",
- "edit": "add a small pile of three gold boulders strapped on top of its back",
- "seed": 2,
- "types": {
- "ground": 5,
- "rock": 4
- },
- "other": 0.1,
- "tags": [
- "armored"
- ],
- "motif": "armor",
- "palette": "type",
- "box": [
- 0,
- 0,
- 63,
- 18
- ]
- },
- {
- "slot": "tail",
- "name": "pl_tail_curl_pig",
- "edit": "add a small curly teal pig tail starting at its rump and curling on the right side",
- "seed": 1,
- "types": {
- "normal": 4,
- "ground": 2
- },
- "other": 0.4,
- "tags": [
- "tailed"
- ],
- "palette": "main"
- }
- ]
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Stocky boar with a broad flat snout, small upturned tusks and floppy ears",
+ "prompt": "stocky barrel-bodied boar-like creature standing on four short thick legs with small hooves, broad flat pig snout with a crimson nose disc, two small curved tusks poking up from its lower jaw, small fierce eyes, small floppy ears folded forward, low wide smooth head with no hair on top, crimson stripe markings on its flanks, short smooth fur, no mane, no tail, round rump with nothing behind it",
+ "size": 48,
+ "seed": 714,
+ "direction": "south-west",
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_tuft_fluffy",
+ "edit": "add one small fluffy teal tuft of fur sticking up on top of its forehead",
+ "seed": 2,
+ "types": {
+ "normal": 5,
+ "fighting": 1,
+ "ice": 1
+ },
+ "other": 0.4,
+ "tags": [
+ "fluffy"
+ ],
+ "requires": [
+ "mammal_head",
+ "integrated_head"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_mane_bristle",
+ "edit": "add a tall ridge of spiky crimson bristles sticking up high along its back",
+ "seed": 3,
+ "types": {
+ "normal": 3,
+ "ground": 4,
+ "fighting": 3
+ },
+ "other": 0.3,
+ "tags": [
+ "fluffy"
+ ],
+ "palette": "accent",
+ "box": [
+ 0,
+ 0,
+ 43,
+ 25
+ ]
+ },
+ {
+ "slot": "back",
+ "name": "pl_saddle_rock",
+ "edit": "add a small pile of three gold boulders strapped on top of its back",
+ "seed": 2,
+ "types": {
+ "ground": 5,
+ "rock": 4
+ },
+ "other": 0.1,
+ "tags": [
+ "armored"
+ ],
+ "motif": "armor",
+ "palette": "type",
+ "box": [
+ 0,
+ 0,
+ 63,
+ 18
+ ]
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_curl_pig",
+ "edit": "add a small curly teal pig tail starting at its rump and curling on the right side",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "ground": 2
+ },
+ "other": 0.4,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "main"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_boar_b",
+ "edit": "make it shaggier with thick bristly fur along its back, a crimson mane stripe and a longer snout",
+ "seed": 1,
+ "desc": "Shaggy bristled boar"
+ },
+ {
+ "name": "pl_boar_c",
+ "edit": "make it rounder and piglet-like with a short snout, smooth skin and crimson patches",
+ "seed": 1,
+ "desc": "Round piglet boar"
+ },
+ {
+ "name": "pl_boar_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy boar"
+ }
+ ]
}
diff --git a/pixellab_library/pl_boatman.json b/pixellab_library/pl_boatman.json
new file mode 100644
index 0000000..b66231d
--- /dev/null
+++ b/pixellab_library/pl_boatman.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_boatman",
+ "plan": "aquatic",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "water": 3,
+ "flying": 2
+ },
+ "desc": "Water boatman bug with a keeled boat-shaped body and oar paddle legs",
+ "prompt": "water boatman bug creature floating facing the viewer, boat-shaped body with a ridged keel down its belly, big round crimson eyes, two long flat oar-like paddle legs held out to the sides, four short front legs, a pale teal belly, small air bubbles, no wings no ground shadow",
+ "size": 44,
+ "seed": 2109,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_boatman_b",
+ "edit": "make it rounder and plumper like a little round boat with crimson stripes on its back",
+ "seed": 1,
+ "desc": "Plump striped boatman"
+ },
+ {
+ "name": "pl_boatman_c",
+ "edit": "make its body a little longer and sleeker like a canoe with crimson stripes along its sides, keep it the same size",
+ "seed": 2,
+ "desc": "Sleek big-paddle boatman",
+ "skip": true
+ },
+ {
+ "name": "pl_boatman_d",
+ "edit": "make it stand upright on its back legs like a little rower holding its two oar paddle legs up, with a crimson keel stripe on its belly, keep its bug face",
+ "seed": 2,
+ "desc": "Young chibi boatman",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_bogtoad.json b/pixellab_library/pl_bogtoad.json
new file mode 100644
index 0000000..8f364fa
--- /dev/null
+++ b/pixellab_library/pl_bogtoad.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_bogtoad",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "water": 5,
+ "poison": 3,
+ "ground": 2
+ },
+ "desc": "Flat wide warty toad squatting low with a huge inflated throat sac",
+ "prompt": "squat flat toad creature crouching low on four splayed legs, very wide flat body much wider than tall, bumpy warty skin with crimson wart spots on its back, huge inflated round throat sac bulging under its chin, heavy-lidded sleepy half-closed eyes on top of its head, very wide flat mouth line, webbed toes, no tail, nothing on its head",
+ "size": 44,
+ "seed": 1101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_bogtoad_b",
+ "edit": "make it taller and leaner with longer legs, a smaller throat sac and bold crimson stripes along its back instead of warts",
+ "seed": 1,
+ "desc": "Lean striped toad"
+ },
+ {
+ "name": "pl_bogtoad_c",
+ "edit": "make it much fatter and rounder like a ball, with a giant puffed throat sac and big crimson blotches all over its skin",
+ "seed": 1,
+ "desc": "Fat blotchy toad"
+ },
+ {
+ "name": "pl_bogtoad_d",
+ "edit": "make it squat and extra wide with thick armored bony plates along its back and crimson-rimmed warts",
+ "seed": 1,
+ "desc": "squat and extra wide with thick armored bony plates "
+ }
+ ]
+}
diff --git a/pixellab_library/pl_bombardier.json b/pixellab_library/pl_bombardier.json
new file mode 100644
index 0000000..fc65bc2
--- /dev/null
+++ b/pixellab_library/pl_bombardier.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_bombardier",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "poison": 5,
+ "bug": 3,
+ "fire": 2
+ },
+ "desc": "Bombardier beetle with a big rear spray-nozzle abdomen and a crimson head",
+ "prompt": "stubby bombardier beetle creature facing the viewer, a rounded crimson head with short mandibles and big eyes, a smooth teal shell, a big round rear abdomen ending in a short nozzle tip, six short sturdy legs",
+ "size": 44,
+ "seed": 2103,
+ "variants": [
+ {
+ "name": "pl_bombardier_b",
+ "edit": "make its shell rounder and taller like a dome with crimson spots and give it a much bigger head with large mandibles",
+ "seed": 1,
+ "desc": "Domed spotted bombardier"
+ },
+ {
+ "name": "pl_bombardier_c",
+ "edit": "make its body longer and flatter with ridged grooves along its shell, crimson stripes and long thin legs",
+ "seed": 1,
+ "desc": "Flat ridged bombardier"
+ },
+ {
+ "name": "pl_bombardier_d",
+ "edit": "young chibi version with a big round head, huge eyes, a tiny round shell and stubby legs, keep its beetle face and teal shell, no human features",
+ "seed": 1,
+ "desc": "Young chibi bombardier"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_bonesnake.json b/pixellab_library/pl_bonesnake.json
new file mode 100644
index 0000000..e7cd367
--- /dev/null
+++ b/pixellab_library/pl_bonesnake.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_bonesnake",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "ground": 3,
+ "dragon": 2
+ },
+ "desc": "Skeleton serpent: skull head, vertebrae-and-rib body coiled up",
+ "prompt": "skeleton serpent creature made only of bones, no skin or scales, coiled up on the ground, its body is a chain of round teal-tinted vertebrae with thin curved rib bones sticking out, a big rounded bony snake skull head with empty eye sockets holding small glowing crimson eyes, toothy grin, crimson glow inside its ribcage",
+ "size": 44,
+ "seed": 1214,
+ "variants": [
+ {
+ "name": "pl_bonesnake_b",
+ "edit": "make the skull much bigger and wider with a heavy jaw full of teeth, the coiled bone body chunkier and shorter with thick round vertebrae, and crimson cracks across the bones",
+ "seed": 2,
+ "desc": "Big-skulled chunky bone serpent"
+ },
+ {
+ "name": "pl_bonesnake_c",
+ "edit": "keep the same size and pose, but make its skull long and narrow like a crocodile skull, the coiled body thinner with many more small spiky vertebrae, and crimson glowing eye sockets",
+ "seed": 2,
+ "desc": "Croc-skulled thin bone serpent"
+ },
+ {
+ "name": "pl_bonesnake_d",
+ "edit": "young chibi version with a huge round skull head and a short stubby bony body in one tiny coil, keep its skull face, no human features",
+ "seed": 1,
+ "desc": "Young chibi bone serpent"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_boxfish.json b/pixellab_library/pl_boxfish.json
new file mode 100644
index 0000000..fa7f055
--- /dev/null
+++ b/pixellab_library/pl_boxfish.json
@@ -0,0 +1,43 @@
+{
+ "name": "pl_boxfish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "water": 5,
+ "rock": 3,
+ "poison": 2
+ },
+ "desc": "Cube-shaped boxfish hovering upright, covered in a hexagon plate pattern",
+ "prompt": "boxfish creature hovering upright, body shaped like a perfect square cube box with flat sides and sharp corners, rigid armored hexagon plate pattern outlined in crimson covering the cube, small pouty puckered lips sticking out at the front, tiny round side fins, little bubbles around it, no tail fin, nothing on its head",
+ "size": 44,
+ "seed": 1402,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_boxfish_b",
+ "edit": "make the body taller and narrower like an upright brick, with crimson spots inside each hexagon plate and a bigger pouty mouth",
+ "seed": 1,
+ "desc": "Tall spotted boxfish"
+ },
+ {
+ "name": "pl_boxfish_c",
+ "edit": "make it flatter and wider like a squat box, with small bumpy knobs on its corners and crimson stripes across it",
+ "seed": 1,
+ "desc": "Squat knobbly boxfish"
+ },
+ {
+ "name": "pl_boxfish_d",
+ "edit": "make it crystal-studded with small pale crystal bumps on its plates and a squatter boxier body",
+ "seed": 1,
+ "desc": "crystal-studded with small pale crystal bumps on its"
+ }
+ ],
+ "anchors": {
+ "tail": [
+ 47,
+ 44
+ ]
+ }
+}
diff --git a/pixellab_library/pl_brawler.json b/pixellab_library/pl_brawler.json
index cd7aaeb..742f4f2 100644
--- a/pixellab_library/pl_brawler.json
+++ b/pixellab_library/pl_brawler.json
@@ -1,91 +1,111 @@
{
- "name": "pl_brawler",
- "plan": "biped",
- "head": [
- "reptile_head"
- ],
- "types": {
- "fighting": 3,
- "normal": 2,
- "rock": 2
- },
- "desc": "Stout upright lizard brawler with a wide flat toad head, heavy brow and huge bandaged fists",
- "prompt": "stout upright lizard brawler creature in a fighting stance, wide flat toad-like head, heavy brow ridge, underbite with two small fangs, barrel chest, huge oversized fists wrapped in crimson bandages, short thick bowed legs, no tail",
- "size": 44,
- "seed": 533,
- "direction": "south-west",
- "parts": [
- {
- "slot": "head_top",
- "name": "pl_headband",
- "edit": "add a crimson cloth headband tied around its forehead with two trailing ends",
- "seed": 1,
- "types": {
- "fighting": 7,
- "normal": 0.5
- },
- "other": 0.02,
- "requires": [
- "mammal_head",
- "reptile_head",
- "rock_head",
- "ghost_head"
- ],
- "tags": [
- "_headband"
- ],
- "palette": "accent"
- },
- {
- "slot": "back",
- "name": "pl_mane_fire",
- "edit": "add a mane of orange and yellow flames around its shoulders and neck",
- "seed": 1,
- "types": {
- "fire": 8
- },
- "other": 0,
- "tags": [
- "fiery"
- ],
- "motif": "fire",
- "palette": "type",
- "fixed": "fire"
- },
- {
- "slot": "tail",
- "name": "pl_tail_tuft",
- "edit": "add a long thin teal tail ending in a crimson fur tuft, curling up on the right side",
- "seed": 1,
- "types": {
+ "name": "pl_brawler",
+ "plan": "biped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "fighting": 3,
"normal": 2,
- "psychic": 3,
- "poison": 2,
- "electric": 2
- },
- "other": 0.4,
- "tags": [
- "tailed"
- ],
- "palette": "main"
+ "rock": 2
},
- {
- "slot": "back",
- "name": "pl_brawler_shell",
- "edit": "add a big round crimson turtle shell on its back, sticking out wide behind both sides of its body",
- "seed": 2,
- "types": {
- "water": 3,
- "ground": 2,
- "rock": 2,
- "fighting": 1
- },
- "other": 0.1,
- "tags": [
- "shelled"
- ],
- "motif": "armor",
- "palette": "accent"
- }
- ]
+ "desc": "Stout upright lizard brawler with a wide flat toad head, heavy brow and huge bandaged fists",
+ "prompt": "stout upright lizard brawler creature in a fighting stance, wide flat toad-like head, heavy brow ridge, underbite with two small fangs, barrel chest, huge oversized fists wrapped in crimson bandages, short thick bowed legs, no tail",
+ "size": 44,
+ "seed": 533,
+ "direction": "south-west",
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_headband",
+ "edit": "add a crimson cloth headband tied around its forehead with two trailing ends",
+ "seed": 1,
+ "types": {
+ "fighting": 7,
+ "normal": 0.5
+ },
+ "other": 0.02,
+ "requires": [
+ "mammal_head",
+ "reptile_head",
+ "rock_head",
+ "ghost_head"
+ ],
+ "tags": [
+ "_headband"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_mane_fire",
+ "edit": "add a mane of orange and yellow flames around its shoulders and neck",
+ "seed": 1,
+ "types": {
+ "fire": 8
+ },
+ "other": 0,
+ "tags": [
+ "fiery"
+ ],
+ "motif": "fire",
+ "palette": "type",
+ "fixed": "fire"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_tuft",
+ "edit": "add a long thin teal tail ending in a crimson fur tuft, curling up on the right side",
+ "seed": 1,
+ "types": {
+ "normal": 2,
+ "psychic": 3,
+ "poison": 2,
+ "electric": 2
+ },
+ "other": 0.4,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_brawler_shell",
+ "edit": "add a big round crimson turtle shell on its back, sticking out wide behind both sides of its body",
+ "seed": 2,
+ "types": {
+ "water": 3,
+ "ground": 2,
+ "rock": 2,
+ "fighting": 1
+ },
+ "other": 0.1,
+ "tags": [
+ "shelled"
+ ],
+ "motif": "armor",
+ "palette": "accent"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_brawler_b",
+ "edit": "make it leaner and more athletic with a narrower waist, crimson stripes on its arms, same toad head and same pose",
+ "seed": 2,
+ "desc": "Lanky striped brawler"
+ },
+ {
+ "name": "pl_brawler_c",
+ "edit": "make it much bulkier with a huge barrel chest, thick neck, armored scale plates and a crimson belly",
+ "seed": 1,
+ "desc": "Bulky plated brawler"
+ },
+ {
+ "name": "pl_brawler_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 2,
+ "desc": "Extra-fluffy brawler"
+ }
+ ]
}
diff --git a/pixellab_library/pl_brazier.json b/pixellab_library/pl_brazier.json
new file mode 100644
index 0000000..5e8c6f5
--- /dev/null
+++ b/pixellab_library/pl_brazier.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_brazier",
+ "plan": "quadruped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "rock": 3,
+ "fighting": 2
+ },
+ "desc": "Living iron fire-basket: round cage of iron bars on four long thin legs, crimson coals inside",
+ "prompt": "living iron fire basket brazier creature, a round open cage basket made of curved teal iron bars standing on four long thin iron legs, crimson glowing coals visible inside through the bars, a cute face with big eyes on a teal iron plate at the front of the basket, all metal is teal, no fire, no flames, no smoke",
+ "size": 44,
+ "seed": 3102,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_brazier_b",
+ "edit": "keep the teal metal and make the bowl deep and tall like a bucket with crimson vent slits around its sides and a smaller heap of coals",
+ "seed": 1,
+ "desc": "Deep bucket brazier"
+ },
+ {
+ "name": "pl_brazier_c",
+ "edit": "keep the teal metal and make the bowl wide and shallow like a dish on short stubby legs with a wide grin and a big heap of crimson coals",
+ "seed": 1,
+ "desc": "Wide dish brazier"
+ },
+ {
+ "name": "pl_brazier_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy brazier",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_bulb.json b/pixellab_library/pl_bulb.json
new file mode 100644
index 0000000..bccef96
--- /dev/null
+++ b/pixellab_library/pl_bulb.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_bulb",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "fire": 3,
+ "psychic": 2
+ },
+ "desc": "Living light bulb: glass bulb head with a coiled filament, crimson-ringed screw-base body, tiny legs",
+ "prompt": "living light bulb creature, a big round glass bulb with a cute face on the front of the glass and a glowing coiled filament visible inside the top of the bulb, the bulb sits on a crimson ringed metal screw base that forms its little body, two tiny stubby legs under the screw base, two tiny stubby arms, no ears",
+ "size": 44,
+ "seed": 1202,
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "variants": [
+ {
+ "name": "pl_bulb_b",
+ "edit": "make the whole glass bulb head taller and narrower, an elongated oval glass head with the face on it and a crimson spiral filament inside, and a longer crimson screw base",
+ "seed": 13,
+ "desc": "Tall oval-bulb"
+ },
+ {
+ "name": "pl_bulb_c",
+ "edit": "make the glass bulb huge and perfectly round with a wider chunkier crimson screw base and bigger eyes",
+ "seed": 1,
+ "desc": "Big round globe bulb"
+ },
+ {
+ "name": "pl_bulb_d",
+ "edit": "make the glass bulb frosted and cloudy with crimson zigzag filament glowing inside and a sleepy face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Frosted sleepy bulb"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_bulldozer.json b/pixellab_library/pl_bulldozer.json
new file mode 100644
index 0000000..b472060
--- /dev/null
+++ b/pixellab_library/pl_bulldozer.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_bulldozer",
+ "plan": "quadruped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ground": 5,
+ "fighting": 3,
+ "rock": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Little bulldozer critter with tread feet and a scoop-blade jaw",
+ "prompt": "little bulldozer creature, chunky boxy teal body on two tank tread feet, a big curved front scoop blade at the bottom used as a jutting jaw, a cab on top whose window is its face with two determined eyes, crimson warning stripes on the blade",
+ "size": 44,
+ "seed": 9505,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_bulldozer_b",
+ "edit": "make it taller like an excavator with a bigger cab, smaller blade and crimson stripes on its sides",
+ "seed": 1,
+ "desc": "Tall cab bulldozer"
+ },
+ {
+ "name": "pl_bulldozer_c",
+ "edit": "make it squat and wide with a huge toothed scoop blade jaw grinning and a dented scuffed body",
+ "seed": 1,
+ "desc": "Wide grinning bulldozer"
+ },
+ {
+ "name": "pl_bulldozer_d",
+ "edit": "make it much taller and narrower like a tall upright robot on treads with a small blade, keep its face and teal color",
+ "seed": 7,
+ "desc": "Armored bulldozer"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_bunny.json b/pixellab_library/pl_bunny.json
index 939562d..668d554 100644
--- a/pixellab_library/pl_bunny.json
+++ b/pixellab_library/pl_bunny.json
@@ -1,93 +1,113 @@
{
- "name": "pl_bunny",
- "plan": "biped",
- "head": [
- "mammal_head"
- ],
- "types": {
- "normal": 2.5,
- "grass": 2,
- "psychic": 2
- },
- "desc": "Upright earless rabbit-like hopper with buck teeth, crimson heart nose, freckles and huge flat feet",
- "prompt": "rabbit-like creature standing tall and upright on huge long flat hind feet, seen from the front, round smooth head that is earless (the ears are not drawn), big round dark eyes, two big buck teeth, small crimson heart-shaped nose, crimson freckles on its cheeks, short paw arms, chubby round belly with a crimson oval belly patch, no tail",
- "size": 44,
- "seed": 733,
- "direction": "south-west",
- "parts": [
- {
- "slot": "head_top",
- "name": "pl_ears_long",
- "edit": "add two long upright teal rabbit ears with crimson insides on top of its head",
- "seed": 1,
- "types": {
- "normal": 3,
- "psychic": 3,
+ "name": "pl_bunny",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 2.5,
"grass": 2,
- "flying": 1.5
- },
- "other": 0.3,
- "requires": [
- "mammal_head",
- "integrated_head"
- ],
- "tags": [
- "eared"
- ],
- "palette": "main"
+ "psychic": 2
},
- {
- "slot": "back",
- "name": "pl_wings_tiny",
- "edit": "add a pair of small gold feathered wings spread from its back",
- "seed": 3,
- "types": {
- "flying": 4,
- "normal": 2,
- "psychic": 1.5,
- "ice": 1
- },
- "other": 0.3,
- "tags": [
- "winged",
- "feathered"
- ],
- "motif": "feather",
- "palette": "type"
- },
- {
- "slot": "tail",
- "name": "pl_tail_puff",
- "edit": "add a small round fluffy cotton-ball tail with jagged fur edges, sticking out from behind its right hip",
- "seed": 2,
- "types": {
- "normal": 4,
- "ice": 2,
- "grass": 1
- },
- "other": 0.5,
- "tags": [
- "tailed",
- "fluffy"
- ],
- "palette": "main"
- },
- {
- "slot": "head_top",
- "name": "pl_bunny_flower_crown",
- "edit": "add a small ring of teal leaves with one crimson flower sitting on top of its head",
- "seed": 1,
- "types": {
- "grass": 5,
- "poison": 1.5,
- "psychic": 1
- },
- "other": 0.1,
- "tags": [
- "leafy"
- ],
- "motif": "plant",
- "palette": "main"
- }
- ]
+ "desc": "Upright earless rabbit-like hopper with buck teeth, crimson heart nose, freckles and huge flat feet",
+ "prompt": "rabbit-like creature standing tall and upright on huge long flat hind feet, seen from the front, round smooth head that is earless (the ears are not drawn), big round dark eyes, two big buck teeth, small crimson heart-shaped nose, crimson freckles on its cheeks, short paw arms, chubby round belly with a crimson oval belly patch, no tail",
+ "size": 44,
+ "seed": 733,
+ "direction": "south-west",
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_ears_long",
+ "edit": "add two long upright teal rabbit ears with crimson insides on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 3,
+ "psychic": 3,
+ "grass": 2,
+ "flying": 1.5
+ },
+ "other": 0.3,
+ "requires": [
+ "mammal_head",
+ "integrated_head"
+ ],
+ "tags": [
+ "eared"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_wings_tiny",
+ "edit": "add a pair of small gold feathered wings spread from its back",
+ "seed": 3,
+ "types": {
+ "flying": 4,
+ "normal": 2,
+ "psychic": 1.5,
+ "ice": 1
+ },
+ "other": 0.3,
+ "tags": [
+ "winged",
+ "feathered"
+ ],
+ "motif": "feather",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_puff",
+ "edit": "add a small round fluffy cotton-ball tail with jagged fur edges, sticking out from behind its right hip",
+ "seed": 2,
+ "types": {
+ "normal": 4,
+ "ice": 2,
+ "grass": 1
+ },
+ "other": 0.5,
+ "tags": [
+ "tailed",
+ "fluffy"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_bunny_flower_crown",
+ "edit": "add a small ring of teal leaves with one crimson flower sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "grass": 5,
+ "poison": 1.5,
+ "psychic": 1
+ },
+ "other": 0.1,
+ "tags": [
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "main"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_bunny_b",
+ "edit": "make it chubbier and rounder with thick fluffy fur cheek tufts and crimson paws",
+ "seed": 1,
+ "desc": "Fluffy chubby hopper"
+ },
+ {
+ "name": "pl_bunny_c",
+ "edit": "make it slimmer with longer feet, sleek fur and crimson stripes on its back, same sitting pose",
+ "seed": 2,
+ "desc": "Lanky striped hopper"
+ },
+ {
+ "name": "pl_bunny_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded bunny"
+ }
+ ]
}
diff --git a/pixellab_library/pl_buoy.json b/pixellab_library/pl_buoy.json
new file mode 100644
index 0000000..358f410
--- /dev/null
+++ b/pixellab_library/pl_buoy.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_buoy",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "water": 5,
+ "electric": 3,
+ "normal": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Living harbor buoy: round-shouldered float body with crimson bands and a flared base ring",
+ "prompt": "living harbor buoy creature bobbing upright, rounded barrel-shaped float body with a domed top, two wide crimson bands painted around it, rivets along the seams, a flared round float ring skirt at its base, little barnacle bumps, a cute face on the front, two tiny stubby side handles like arms, nothing on top",
+ "size": 40,
+ "seed": 3202,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_buoy_b",
+ "edit": "make it a tall narrow cone-shaped buoy with three thinner crimson stripes and rust-free smooth sides",
+ "seed": 1,
+ "desc": "Tall cone buoy"
+ },
+ {
+ "name": "pl_buoy_c",
+ "edit": "make it a squat wide ball-shaped buoy with crimson checker panels and more barnacle bumps",
+ "seed": 1,
+ "desc": "Squat checkered buoy"
+ },
+ {
+ "name": "pl_buoy_d",
+ "edit": "make it squat and wider with crimson stripes and a riveted armored band around its middle",
+ "seed": 1,
+ "desc": "squat and wider with crimson stripes and a riveted a"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cabbage.json b/pixellab_library/pl_cabbage.json
new file mode 100644
index 0000000..6e9c401
--- /dev/null
+++ b/pixellab_library/pl_cabbage.json
@@ -0,0 +1,57 @@
+{
+ "name": "pl_cabbage",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "grass": 5,
+ "normal": 3,
+ "water": 2
+ },
+ "desc": "Piglet-shaped creature whose round body is a cabbage head of wrapped leaves",
+ "prompt": "small piglet-shaped creature whose round body is a teal cabbage head made of layered wrapped curly leaves with pale veins, four short stubby legs, a small round flat snout, beady eyes, rosy crimson cheeks, no ears, no tail, no ground shadow",
+ "size": 44,
+ "seed": 2102,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_cabbage_b",
+ "edit": "make it much rounder and bigger like a ball with thick crinkly savoy leaves and crimson leaf edges",
+ "seed": 1,
+ "desc": "Round crinkly savoy cabbage"
+ },
+ {
+ "name": "pl_cabbage_c",
+ "edit": "make its body much longer and lower like a stretched sausage, with smooth tight leaves and bold crimson stripes along the leaf veins",
+ "seed": 2,
+ "desc": "Long low striped cabbage"
+ },
+ {
+ "name": "pl_cabbage_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, keep its cabbage leaves, keep its piglet face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi cabbage piglet"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "tail",
+ "name": "pl_tail_pinecone",
+ "edit": "add a short chunky gold tail shaped like a pinecone, thick and egg-shaped with clearly overlapping layered scales, attached at its lower right rear and pointing out to the right",
+ "seed": 2,
+ "types": {
+ "grass": 6,
+ "rock": 2,
+ "bug": 1.5
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "plant",
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_caddis.json b/pixellab_library/pl_caddis.json
new file mode 100644
index 0000000..eafcb74
--- /dev/null
+++ b/pixellab_library/pl_caddis.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_caddis",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "rock": 5,
+ "bug": 3,
+ "water": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Caddisfly larva in a tube case of glued pebbles",
+ "prompt": "caddisfly larva creature living in an upright tube-shaped case made of many small glued pebbles and stones, its chubby teal head and six short jointed legs poke out from the top of the case, big round eyes, crimson stripes on its head",
+ "size": 44,
+ "seed": 9313,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_caddis_b",
+ "edit": "make the case short and wide made of big flat shell pieces and give the larva crimson spots",
+ "seed": 1,
+ "desc": "Shell-case caddis"
+ },
+ {
+ "name": "pl_caddis_c",
+ "edit": "make the case tall and thin made of tiny sand grains with a spiral pattern, and the larva peeking out with a shy face",
+ "seed": 1,
+ "desc": "Spiral sand-case caddis"
+ },
+ {
+ "name": "pl_caddis_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat caddis",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cairn.json b/pixellab_library/pl_cairn.json
new file mode 100644
index 0000000..eacc759
--- /dev/null
+++ b/pixellab_library/pl_cairn.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_cairn",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "rock": 5,
+ "psychic": 3,
+ "ground": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Stack of balanced flat river stones with a face on the middle stone",
+ "prompt": "cairn creature made of four smooth flat rounded teal river stones balanced in a stack, the biggest stone at the bottom, a calm face on the second stone, two thin stick-like stone arms and two short stubby stone legs, small crimson painted dots on the stones",
+ "size": 44,
+ "seed": 9808,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_cairn_b",
+ "edit": "make the stack wobbly and leaning with five smaller round pebble stones and crimson stripes painted across them",
+ "seed": 1,
+ "desc": "Wobbly striped cairn"
+ },
+ {
+ "name": "pl_cairn_c",
+ "edit": "make it two huge chunky flat stones with a big grumpy face across the top stone and crimson moss patches",
+ "seed": 1,
+ "desc": "Two-stone grumpy cairn"
+ },
+ {
+ "name": "pl_cairn_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat cairn"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cardinal.json b/pixellab_library/pl_cardinal.json
new file mode 100644
index 0000000..a971a2c
--- /dev/null
+++ b/pixellab_library/pl_cardinal.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_cardinal",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "fire": 5,
+ "flying": 3,
+ "normal": 2
+ },
+ "desc": "Round cardinal songbird with a pointed crest stub, black face mask and thick cone beak",
+ "prompt": "round cardinal songbird standing on two short legs, small pointed crest stub on its head, a dark mask around its eyes and beak, short thick cone-shaped crimson beak, plump teal body, small folded wings, short tail stub",
+ "size": 44,
+ "seed": 3401,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_cardinal_b",
+ "edit": "make it slimmer and taller with a longer neck and crimson bars across its chest",
+ "seed": 1,
+ "desc": "Slim barred cardinal"
+ },
+ {
+ "name": "pl_cardinal_c",
+ "edit": "make it a fat round puffed-up ball with fluffed feathers, a tiny beak and crimson spots on its belly",
+ "seed": 1,
+ "desc": "Puffed-up cardinal"
+ },
+ {
+ "name": "pl_cardinal_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young cardinal"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cassowary.json b/pixellab_library/pl_cassowary.json
new file mode 100644
index 0000000..7892943
--- /dev/null
+++ b/pixellab_library/pl_cassowary.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_cassowary",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "ground": 3
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Chunky flightless cassowary chick with crimson wattles, a short casque and dagger-toed feet",
+ "prompt": "chunky flightless cassowary chick standing in a tough stance, shaggy hair-like feathers, short neck with crimson dangling wattles, short rounded casque bump on its head, short pointed beak, determined eyes, thick strong legs with huge dagger-clawed feet, no wings, no tail",
+ "size": 44,
+ "seed": 2301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_cassowary_b",
+ "edit": "make it taller and leaner with a longer neck, longer crimson wattles and crimson bands on its legs",
+ "seed": 1,
+ "desc": "Tall long-wattled cassowary"
+ },
+ {
+ "name": "pl_cassowary_c",
+ "edit": "make it rounder and fluffier like a ball of shaggy feathers with crimson stripes on its body",
+ "seed": 1,
+ "desc": "Round striped cassowary"
+ },
+ {
+ "name": "pl_cassowary_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its bird face and teal fluffy striped down, no human features",
+ "seed": 1,
+ "desc": "Young chibi cassowary"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_catfish.json b/pixellab_library/pl_catfish.json
new file mode 100644
index 0000000..1e428aa
--- /dev/null
+++ b/pixellab_library/pl_catfish.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_catfish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "normal": 5,
+ "water": 3,
+ "ground": 2
+ },
+ "desc": "Whiskered catfish with a wide flat mouth and long barbels",
+ "prompt": "catfish creature propped upright on its pectoral fins, plump body with a wide flat head, very wide flat mouth, four long drooping whisker barbels, tiny beady eyes, smooth skin, crimson blotches on its back, short stubby fins, no tail fin",
+ "size": 44,
+ "seed": 2601,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_catfish_b",
+ "edit": "make it fatter and wider with a huge grinning mouth, extra long whiskers and crimson stripes on its body",
+ "seed": 1,
+ "desc": "Fat grinning catfish"
+ },
+ {
+ "name": "pl_catfish_c",
+ "edit": "make it slimmer and taller with a spiky dorsal ridge and crimson spots all over",
+ "seed": 1,
+ "desc": "Slim spotted catfish"
+ },
+ {
+ "name": "pl_catfish_d",
+ "edit": "make it covered in crimson leopard spots with a huge lumpy wrinkled head and very long droopy whiskers, keep it teal",
+ "seed": 2,
+ "desc": "Spotted lumpy catfish"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_catloaf.json b/pixellab_library/pl_catloaf.json
new file mode 100644
index 0000000..dcfe18d
--- /dev/null
+++ b/pixellab_library/pl_catloaf.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_catloaf",
+ "plan": "blob",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "psychic": 3,
+ "fire": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Cat loaf: bread-loaf shaped cat with paws tucked in, pointy ears",
+ "prompt": "cat loaf creature: a teal cat lying with all paws tucked under its body so the whole cat forms one smooth rectangular bread-loaf shape, round face with content squinting eyes, small pointed ears with crimson insides, crimson stripes across its back, no visible legs, no tail, no basket",
+ "size": 40,
+ "seed": 1902,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_catloaf_b",
+ "edit": "make it fluffier and rounder like a puffy fur ball with a big fluffy cheek ruff and crimson spots",
+ "seed": 1,
+ "desc": "Fluffy round loaf"
+ },
+ {
+ "name": "pl_catloaf_c",
+ "edit": "make its teal body longer and flatter like a long stretched loaf, with wide open round eyes and a crimson patch over one eye, keep the same teal fur and no bread",
+ "seed": 2,
+ "desc": "Long stretched loaf cat"
+ },
+ {
+ "name": "pl_catloaf_d",
+ "edit": "make it a long-haired fluffy cat loaf with a big shaggy mane ruff around its face and bold crimson tabby stripes all over its body, keep it teal",
+ "seed": 2,
+ "desc": "Long-haired tabby loaf"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_cell.json b/pixellab_library/pl_cell.json
new file mode 100644
index 0000000..62fd948
--- /dev/null
+++ b/pixellab_library/pl_cell.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_cell",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "normal": 3
+ },
+ "desc": "AA battery-cell critter: upright cylinder body, crimson terminal nub cap, plus sign and charge-meter bars",
+ "prompt": "chibi battery cell creature, its whole body is a short upright cylinder like a AA battery, a small crimson round terminal nub on the flat top of its head, a crimson plus sign on its chest, three stacked charge meter bars on its belly, the face on the upper part of the cylinder, short stubby arms and short stubby legs, no ears, no hair",
+ "size": 40,
+ "seed": 1203,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_cell_b",
+ "edit": "make it a short squat wide cylinder like a button cell battery with a thick crimson ring band around its middle",
+ "seed": 1,
+ "desc": "Squat button-cell"
+ },
+ {
+ "name": "pl_cell_c",
+ "edit": "make it much wider and squarer like a big boxy 9-volt battery, twice as wide, with two crimson snap terminals on top and crimson stripes on its sides",
+ "seed": 7,
+ "desc": "Boxy 9-volt battery"
+ },
+ {
+ "name": "pl_cell_d",
+ "edit": "make the battery body dented and scuffed with crimson stripes wrapped around it and a tired droopy face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Dented striped cell"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_centipede.json b/pixellab_library/pl_centipede.json
new file mode 100644
index 0000000..034a61c
--- /dev/null
+++ b/pixellab_library/pl_centipede.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_centipede",
+ "plan": "serpentine",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "poison": 5,
+ "bug": 3,
+ "ground": 2
+ },
+ "desc": "Centipede reared up in an S-curve with many tiny legs and curved mandibles",
+ "prompt": "chibi centipede creature with its front half reared up and its segmented body curving behind it on the ground, many tiny pointed legs along every segment, two curved crimson mandibles, short feelers, round head with big eyes, crimson segment edges",
+ "size": 44,
+ "seed": 1107,
+ "variants": [
+ {
+ "name": "pl_centipede_b",
+ "edit": "make its body segments much fatter and rounder like beads, with a big blunt head and crimson spots on each segment",
+ "seed": 1,
+ "desc": "Beaded fat centipede"
+ },
+ {
+ "name": "pl_centipede_c",
+ "edit": "make its whole body covered in shaggy fuzzy hair like a caterpillar, with long thin hairy legs sticking out to the sides, big round shiny eyes and a crimson stripe down its back",
+ "seed": 3,
+ "desc": "Shaggy long-legged centipede"
+ },
+ {
+ "name": "pl_centipede_d",
+ "edit": "make its body twice as thick and chunky with bold crimson bands on every segment, keep its reared-up S-curve, many tiny legs and curved mandibles",
+ "seed": 11,
+ "desc": "Chunky banded centipede",
+ "skip": false
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_chain.json b/pixellab_library/pl_chain.json
new file mode 100644
index 0000000..5778e82
--- /dev/null
+++ b/pixellab_library/pl_chain.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_chain",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "rock": 3,
+ "psychic": 2
+ },
+ "desc": "Haunted rusty chain coiled up with a padlock for a head and a keyhole face",
+ "prompt": "haunted serpent made of a chain of big teal metal links coiled up on the ground and rising up, its head is a big rounded padlock with a crimson keyhole and two glowing eyes above it, the shackle loop on top of the padlock",
+ "size": 44,
+ "seed": 2110,
+ "variants": [
+ {
+ "name": "pl_chain_b",
+ "edit": "make the chain links much chunkier and thicker and the padlock head heart-shaped with crimson rust spots",
+ "seed": 1,
+ "desc": "Chunky heart-lock chain"
+ },
+ {
+ "name": "pl_chain_c",
+ "edit": "make the chain links thinner and longer and the padlock head square with a crimson combination dial on its front",
+ "seed": 1,
+ "desc": "Thin square-lock chain"
+ },
+ {
+ "name": "pl_chain_d",
+ "edit": "make the chain links rusty and partly broken, with an old skeleton key stuck in the padlock head and crimson rust stains",
+ "seed": 1,
+ "desc": "Rusty keyed chain",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_chameleon.json b/pixellab_library/pl_chameleon.json
new file mode 100644
index 0000000..8c2688e
--- /dev/null
+++ b/pixellab_library/pl_chameleon.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_chameleon",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "grass": 3
+ },
+ "desc": "Chameleon with turret cone eyes, a small casque and pincer feet",
+ "prompt": "chameleon creature standing on four thin legs with pincer-like feet, a small rounded helmet-shaped casque on its head, cone-shaped turret eyes with tiny pupils looking in different directions, a wide grumpy mouth, a bumpy ridge along its back, crimson spots along its sides, no tail",
+ "size": 44,
+ "seed": 2212,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_chameleon_b",
+ "edit": "make its body chubbier and rounder with a fat belly and crimson stripes, keep it standing on all four legs in the same pose",
+ "seed": 13,
+ "desc": "Chubby striped chameleon"
+ },
+ {
+ "name": "pl_chameleon_c",
+ "edit": "make it slimmer with longer thin legs, still standing on all four legs, a flatter head and crimson polka dots",
+ "seed": 7,
+ "desc": "Slim dotted chameleon"
+ },
+ {
+ "name": "pl_chameleon_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its chameleon face and turret eyes and teal skin, no human features",
+ "seed": 1,
+ "desc": "Young chibi chameleon"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_chick.json b/pixellab_library/pl_chick.json
index 7162aa2..a1d97e1 100644
--- a/pixellab_library/pl_chick.json
+++ b/pixellab_library/pl_chick.json
@@ -93,5 +93,25 @@
"white"
]
}
+ ],
+ "variants": [
+ {
+ "name": "pl_chick_b",
+ "edit": "make the body much bigger and fluffier with shorter thicker legs and crimson spots",
+ "seed": 1,
+ "desc": "Fat fluffy chick"
+ },
+ {
+ "name": "pl_chick_c",
+ "edit": "make it slimmer and taller with a long neck, sleeker feathers and a crimson chest band",
+ "seed": 1,
+ "desc": "Tall sleek chick"
+ },
+ {
+ "name": "pl_chick_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 2,
+ "desc": "Crystal-studded chick"
+ }
]
}
diff --git a/pixellab_library/pl_chipmunk.json b/pixellab_library/pl_chipmunk.json
new file mode 100644
index 0000000..9aafba2
--- /dev/null
+++ b/pixellab_library/pl_chipmunk.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_chipmunk",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "grass": 3,
+ "electric": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Upright chipmunk with bold crimson back and face stripes",
+ "prompt": "chipmunk creature standing upright on two hind legs, small slim body, round head with small rounded ears, bold crimson stripes along its back and across its cheeks, pale cream belly, tiny paws held up holding a seed, bright eyes, no tail",
+ "size": 44,
+ "seed": 4401,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_chipmunk_b",
+ "edit": "make it chubbier with puffy cheeks, a round belly and wider crimson stripes, keep it teal",
+ "seed": 1,
+ "desc": "Chubby puffy-cheeked chipmunk"
+ },
+ {
+ "name": "pl_chipmunk_c",
+ "edit": "make it lankier with longer legs, bigger pointed ears and thin crimson spots instead of stripes, keep it teal",
+ "seed": 1,
+ "desc": "Lanky spotted chipmunk"
+ },
+ {
+ "name": "pl_chipmunk_d",
+ "edit": "make it an elder chipmunk with a fluffy white beard, half-closed eyes and a hunched posture, keep it teal",
+ "seed": 1,
+ "desc": "An elder chipmunk"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_cicada.json b/pixellab_library/pl_cicada.json
new file mode 100644
index 0000000..86e6fcb
--- /dev/null
+++ b/pixellab_library/pl_cicada.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_cicada",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "desc": "Chunky wingless cicada with a very wide blunt head and ribbed drum plates on its belly",
+ "prompt": "chunky wingless cicada creature sitting upright, very wide blunt head with big bulging eyes at its far corners, three tiny gem eyes on its forehead, broad ribbed drum plates across its belly, six short sturdy legs with spiky shins, crimson vein markings on its shoulders, no wings, no antennae",
+ "size": 44,
+ "seed": 1110,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_cicada_b",
+ "edit": "make it a lumpy cicada nymph with a hunched back, chunkier front digging claws and crimson bands on its segments",
+ "seed": 1,
+ "desc": "Hunched digging cicada nymph"
+ },
+ {
+ "name": "pl_cicada_c",
+ "edit": "make its body slimmer and its head a bit narrower, give it crimson eyes and bold crimson chevron stripes on its belly, keep the same pose and six legs",
+ "seed": 2,
+ "desc": "Slim chevron cicada"
+ },
+ {
+ "name": "pl_cicada_d",
+ "edit": "make it twice as round and squat like a fat barrel, keep its very wide blunt head with eyes at the far corners and its ribbed belly plates",
+ "seed": 12,
+ "desc": "Young chibi cicada",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cinderhound.json b/pixellab_library/pl_cinderhound.json
new file mode 100644
index 0000000..1b9a1e3
--- /dev/null
+++ b/pixellab_library/pl_cinderhound.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_cinderhound",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fire": 5,
+ "fighting": 3,
+ "rock": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Stocky bulldog hound with a cracked coal-plate hide and crimson ember cracks",
+ "prompt": "stocky bulldog-like hound creature standing on four thick bowed legs, broad chest, wide jowly underbite face with two small lower fangs, small folded rose ears, its hide made of chunky coal-like plates separated by glowing crimson ember cracks, no tail",
+ "size": 44,
+ "seed": 1201,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_cinderhound_b",
+ "edit": "make its body leaner with a longer narrow muzzle and tall pointed upright ears and thin crimson cracks, keep the same height and pose",
+ "seed": 2,
+ "desc": "Lean long-legged cinderhound"
+ },
+ {
+ "name": "pl_cinderhound_c",
+ "edit": "make it a squat chubby puppy with a short round face, huge paws and a big crimson ember patch over one eye",
+ "seed": 1,
+ "desc": "Squat puppy cinderhound"
+ },
+ {
+ "name": "pl_cinderhound_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy cinderhound"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_circuitbug.json b/pixellab_library/pl_circuitbug.json
new file mode 100644
index 0000000..e66745c
--- /dev/null
+++ b/pixellab_library/pl_circuitbug.json
@@ -0,0 +1,43 @@
+{
+ "name": "pl_circuitbug",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "electric": 5,
+ "bug": 3
+ },
+ "desc": "Upright shield bug with a shield plate covered in crimson circuit-board traces",
+ "prompt": "chibi shield bug creature standing upright, a big flat shield-shaped shell plate covering its chest and belly with crimson circuit board trace lines and small square chip dots on it, small triangular head with two round eyes, six short legs, no antennae, no wings",
+ "size": 44,
+ "seed": 1207,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_circuitbug_b",
+ "edit": "make it chubbier and rounder with a wide oval shield plate covered in a crimson dot pattern instead of lines, keep its head and face the same",
+ "seed": 7,
+ "desc": "Round dotted shield bug"
+ },
+ {
+ "name": "pl_circuitbug_c",
+ "edit": "make it slimmer and taller with a narrower shield plate, longer legs and bold crimson zigzag lines, keep its head and face",
+ "seed": 7,
+ "desc": "Stilt-legged circuit bug",
+ "anchors": {
+ "tail": [
+ 43,
+ 40
+ ]
+ }
+ },
+ {
+ "name": "pl_circuitbug_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its bug face and teal shield plate with crimson circuit lines, no human features",
+ "seed": 1,
+ "desc": "Young chibi circuit bug",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_coconut.json b/pixellab_library/pl_coconut.json
new file mode 100644
index 0000000..51b1a43
--- /dev/null
+++ b/pixellab_library/pl_coconut.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_coconut",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "grass": 5,
+ "water": 3,
+ "normal": 2
+ },
+ "desc": "Hairy-husked coconut creature with the three-hole face",
+ "prompt": "round coconut creature with a hard smooth teal shell, rough fibrous husk hair only as a small messy tuft on top of its head, three dark round holes on its front forming two eyes and a little round mouth, a happy surprised look, a crimson band painted around its middle, two tiny stubby feet, no arms, no fuzz on its body, no ground shadow",
+ "size": 44,
+ "seed": 2207,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_coconut_b",
+ "edit": "make the husk much shaggier with long messy fibers like a wild hairdo and a crimson stripe around its middle",
+ "seed": 1,
+ "desc": "Shaggy wild-haired coconut"
+ },
+ {
+ "name": "pl_coconut_c",
+ "edit": "make it squatter and wider like a flattened ball, with a crimson zigzag crack pattern across its shell and crimson spots on its husk, keep it in one piece",
+ "seed": 2,
+ "desc": "Cracked-top coconut"
+ },
+ {
+ "name": "pl_coconut_d",
+ "edit": "make it tall and oval like a young coconut with a smooth shiny teal shell, a pointed tip at the top and crimson stripes running down",
+ "seed": 1,
+ "desc": "Tall smooth oval coconut"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_coffinbug.json b/pixellab_library/pl_coffinbug.json
new file mode 100644
index 0000000..af9b46d
--- /dev/null
+++ b/pixellab_library/pl_coffinbug.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_coffinbug",
+ "plan": "insectoid",
+ "head": [
+ "insect_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "bug": 3,
+ "rock": 2
+ },
+ "desc": "Beetle whose shell is a tiny coffin lid, spindly legs, skull-ish face",
+ "prompt": "beetle creature whose whole teal shell is shaped like a small six-sided coffin lid with a crimson cross painted on it, six thin spindly teal legs, small round head with big hollow dark eyes and tiny mandibles poking out the front, standing on its legs, no skull",
+ "size": 44,
+ "seed": 1216,
+ "variants": [
+ {
+ "name": "pl_coffinbug_b",
+ "edit": "make the coffin shell wider and rounder with crimson nail studs around its edge, and give it a bigger fuzzy head",
+ "seed": 1,
+ "desc": "Wide studded coffin beetle"
+ },
+ {
+ "name": "pl_coffinbug_c",
+ "edit": "make it taller with a long narrow coffin shell, longer legs and a crimson ribbon wrapped around the shell",
+ "seed": 1,
+ "desc": "Narrow ribboned coffin beetle"
+ },
+ {
+ "name": "pl_coffinbug_d",
+ "edit": "young chibi version with a small round coffin shell, a huge head with big eyes and tiny stubby legs, keep its bug face and teal shell, no human features",
+ "seed": 1,
+ "desc": "Young chibi coffin beetle",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_coilfist.json b/pixellab_library/pl_coilfist.json
new file mode 100644
index 0000000..612cc48
--- /dev/null
+++ b/pixellab_library/pl_coilfist.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_coilfist",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "dragon": 3,
+ "poison": 2
+ },
+ "desc": "Legless serpent fighter rearing up with two burly arms and crimson wrist wraps",
+ "prompt": "serpent creature rearing up from a coiled lower body, no legs, two burly muscular arms with clenched fists wrapped in crimson wraps, broad blunt reptile head with a heavy brow and narrow eyes, smooth scales with a cream belly",
+ "size": 44,
+ "seed": 1601,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_coilfist_b",
+ "edit": "make it thicker and heavier bodied with bigger fists and crimson diamond markings along its back",
+ "seed": 1,
+ "desc": "Heavy diamond-marked coilfist"
+ },
+ {
+ "name": "pl_coilfist_c",
+ "edit": "make it slimmer with a longer neck, a narrower pointed head and crimson bands around its body",
+ "seed": 1,
+ "desc": "Slim banded coilfist"
+ },
+ {
+ "name": "pl_coilfist_d",
+ "edit": "make it a young chibi serpent with a big round reptile head, huge reptile eyes, tiny arms and a short chubby coil, keep its animal face and teal skin, no human features",
+ "seed": 2,
+ "desc": "Chibi young coilfist"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_condor.json b/pixellab_library/pl_condor.json
new file mode 100644
index 0000000..bedca63
--- /dev/null
+++ b/pixellab_library/pl_condor.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_condor",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "rock": 5,
+ "flying": 3,
+ "ghost": 2
+ },
+ "desc": "Hunched cliff condor chick with a bald head and stony feather ruff",
+ "prompt": "hunched condor vulture chick creature standing, bald wrinkled crimson head with a hooked beak and grumpy eyes, thick fluffy ruff collar of stony feathers around its neck, dark teal body with folded small wings, sturdy legs with big talons",
+ "size": 44,
+ "seed": 9010,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_condor_b",
+ "edit": "make the bird fatter and rounder with a much bigger fluffy white ruff and a smaller bald head",
+ "seed": 1,
+ "desc": "Fat big-ruffed condor"
+ },
+ {
+ "name": "pl_condor_c",
+ "edit": "make the bird taller and skinnier with a long bare neck, wrinkled crimson wattles and ragged feathers",
+ "seed": 1,
+ "desc": "Lanky wattled condor"
+ },
+ {
+ "name": "pl_condor_d",
+ "edit": "make it twice as round and fat like a fluffy ball with tiny legs and a small head, keep its bald head and teal color",
+ "seed": 7,
+ "desc": "Armored condor"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cornhen.json b/pixellab_library/pl_cornhen.json
new file mode 100644
index 0000000..8cadba4
--- /dev/null
+++ b/pixellab_library/pl_cornhen.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_cornhen",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "grass": 5,
+ "normal": 3,
+ "fire": 2
+ },
+ "desc": "Hen whose body is an ear of corn with husk leaves folded like wings",
+ "prompt": "plump hen bird whose egg-shaped body is an ear of corn covered in neat rows of round teal kernels, long husk leaves folded down its sides like wings, short stubby beak, round eyes, tiny crimson wattle under its beak, two thin legs, no comb, no tail feathers no ground shadow",
+ "size": 44,
+ "seed": 2105,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_cornhen_b",
+ "edit": "make it rounder and squatter with bigger plumper teal kernels and a few crimson kernels mixed in, keep it teal, no yellow",
+ "seed": 2,
+ "desc": "Squat calico-kernel cornhen"
+ },
+ {
+ "name": "pl_cornhen_c",
+ "edit": "make it taller and slimmer with longer husk leaves wrapped around it like a cloak and a long neck",
+ "seed": 1,
+ "desc": "Tall cloaked cornhen"
+ },
+ {
+ "name": "pl_cornhen_d",
+ "edit": "make it very tall and lanky with long legs and a long neck, keep its corn kernel rows body and husk leaf wings",
+ "seed": 11,
+ "desc": "Young chibi corn chick",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_crab.json b/pixellab_library/pl_crab.json
index 7033b04..ec4a087 100644
--- a/pixellab_library/pl_crab.json
+++ b/pixellab_library/pl_crab.json
@@ -1,27 +1,94 @@
{
"name": "pl_crab",
"plan": "insectoid",
- "head": ["insect_head"],
- "types": {"water": 2, "rock": 1.5, "bug": 1.5},
- "other": 1,
- "slots": ["head_top", "back"],
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "water": 2,
+ "rock": 1.5,
+ "bug": 1.5
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
"desc": "Chunky squat crab with two lopsided big claws held up and eyes on short stalks",
"prompt": "chunky squat crab creature facing the viewer, wide flat oval teal carapace with a crimson zigzag rim along its front edge, two big round eyes on short thick stalks, one oversized blocky claw and one smaller claw both raised up beside its body with crimson pincer tips, four short stubby pointed legs on each side, tiny smiling mouth, no shell on its back, nothing on its head",
"size": 44,
"seed": 611,
"direction": "south",
"parts": [
- {"slot": "head_top", "name": "pl_coral_crown",
- "edit": "add a few small branching crimson coral twigs growing on top of its head between its eye stalks",
- "seed": 1, "types": {"water": 4, "rock": 3, "psychic": 1}, "other": 0.1,
- "tags": [], "motif": "water", "palette": "accent"},
- {"slot": "back", "name": "pl_shell_spiral",
- "edit": "add a round gold spiral hermit crab shell on its back, the shell bulges up behind its body like a big snail shell, small and compact",
- "seed": 3, "types": {"water": 5, "rock": 3, "bug": 1}, "other": 0.1,
- "tags": ["shelled"], "motif": "armor", "palette": "type", "box": [13, 0, 50, 33]},
- {"slot": "back", "name": "pl_barnacles",
- "edit": "add a cluster of small teal barnacles and tiny shells growing on top of its back, poking up behind its body, no sparkles",
- "seed": 2, "types": {"water": 4, "rock": 3}, "other": 0.1,
- "tags": [], "palette": "main"}
+ {
+ "slot": "head_top",
+ "name": "pl_coral_crown",
+ "edit": "add a few small branching crimson coral twigs growing on top of its head between its eye stalks",
+ "seed": 1,
+ "types": {
+ "water": 4,
+ "rock": 3,
+ "psychic": 1
+ },
+ "other": 0.1,
+ "tags": [],
+ "motif": "water",
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_shell_spiral",
+ "edit": "add a round gold spiral hermit crab shell on its back, the shell bulges up behind its body like a big snail shell, small and compact",
+ "seed": 3,
+ "types": {
+ "water": 5,
+ "rock": 3,
+ "bug": 1
+ },
+ "other": 0.1,
+ "tags": [
+ "shelled"
+ ],
+ "motif": "armor",
+ "palette": "type",
+ "box": [
+ 13,
+ 0,
+ 50,
+ 33
+ ]
+ },
+ {
+ "slot": "back",
+ "name": "pl_barnacles",
+ "edit": "add a cluster of small teal barnacles and tiny shells growing on top of its back, poking up behind its body, no sparkles",
+ "seed": 2,
+ "types": {
+ "water": 4,
+ "rock": 3
+ },
+ "other": 0.1,
+ "tags": [],
+ "palette": "main"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_crab_b",
+ "edit": "make it taller with a rounder spiky shell, crimson spots and evenly sized claws",
+ "seed": 1,
+ "desc": "Spiky round crab"
+ },
+ {
+ "name": "pl_crab_c",
+ "edit": "make it flatter and wider with a broad smooth shell and crimson bands across the shell",
+ "seed": 1,
+ "desc": "Flat banded crab"
+ },
+ {
+ "name": "pl_crab_d",
+ "edit": "make it very tall with long thin stilt legs lifting its body high, keep its claws, eye stalks and teal color",
+ "seed": 11,
+ "desc": "Squat crab"
+ }
]
}
diff --git a/pixellab_library/pl_cricket.json b/pixellab_library/pl_cricket.json
new file mode 100644
index 0000000..4e2f55c
--- /dev/null
+++ b/pixellab_library/pl_cricket.json
@@ -0,0 +1,46 @@
+{
+ "name": "pl_cricket",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "bug": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "antennae"
+ ],
+ "desc": "Fighting cricket with huge jumping hind legs, armored head and long antennae",
+ "prompt": "fighting cricket creature in a crouched combat stance, big armored helmet-like head with fierce eyes and strong mandibles, two long thin antennae, huge thick jumping hind legs folded at its sides, small front legs raised like fists, crimson stripes on its hind legs, no wings",
+ "size": 44,
+ "seed": 3401,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_cricket_b",
+ "edit": "make it bulkier with a much bigger armored head, wider jaws and crimson spots on its back, keep it teal",
+ "seed": 1,
+ "desc": "Big-headed cricket"
+ },
+ {
+ "name": "pl_cricket_c",
+ "edit": "make it chunkier with a smooth rounded armored back, shorter thicker legs and crimson spots on its back, keep the same crouched pose, keep it teal",
+ "seed": 2,
+ "desc": "Chunky armored cricket"
+ },
+ {
+ "name": "pl_cricket_d",
+ "edit": "make it an elder cricket with a long white beard, droopy antennae and a hunched back, keep it teal",
+ "seed": 1,
+ "desc": "An elder cricket"
+ }
+ ],
+ "anchors": {
+ "head_top": [
+ 27,
+ 30
+ ]
+ }
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_crystalball.json b/pixellab_library/pl_crystalball.json
new file mode 100644
index 0000000..78749be
--- /dev/null
+++ b/pixellab_library/pl_crystalball.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_crystalball",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "ice": 3,
+ "ghost": 2
+ },
+ "desc": "Crystal ball with a face inside swirling mist, resting on a crimson tasseled cushion stand",
+ "prompt": "crystal ball creature, a big round clear glass sphere with a cute face inside it and swirling mist inside the glass, resting on a small crimson cushion stand with little tassels at its corners, two tiny stubby feet under the stand, no arms",
+ "size": 44,
+ "seed": 1214,
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "variants": [
+ {
+ "name": "pl_crystalball_b",
+ "edit": "make the glass ball bigger with a crimson swirl pattern inside and a taller ornate crimson pedestal stand",
+ "seed": 1,
+ "desc": "Big swirl ball on pedestal"
+ },
+ {
+ "name": "pl_crystalball_c",
+ "edit": "make the ball smaller with big sleepy eyes and replace the cushion stand with three short stubby claw feet",
+ "seed": 1,
+ "desc": "Small clawed crystal ball"
+ },
+ {
+ "name": "pl_crystalball_d",
+ "edit": "make the crystal ball cracked with crimson light glowing through the cracks and a startled face inside, keep the same size and pose",
+ "seed": 1,
+ "desc": "Cracked glowing crystal ball"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cub.json b/pixellab_library/pl_cub.json
index d9913f9..134f00d 100644
--- a/pixellab_library/pl_cub.json
+++ b/pixellab_library/pl_cub.json
@@ -89,5 +89,25 @@
"motif": "armor",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_cub_b",
+ "edit": "make it chubbier and fluffier with a round body, big fur cheek tufts and a crimson belly patch",
+ "seed": 1,
+ "desc": "Fluffy round cub"
+ },
+ {
+ "name": "pl_cub_c",
+ "edit": "make it leaner and longer with a narrow snout, short sleek fur and crimson stripes down its back",
+ "seed": 1,
+ "desc": "Lean striped cub"
+ },
+ {
+ "name": "pl_cub_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 2,
+ "desc": "Chibi young cub"
+ }
]
}
diff --git a/pixellab_library/pl_cumulus.json b/pixellab_library/pl_cumulus.json
new file mode 100644
index 0000000..3604524
--- /dev/null
+++ b/pixellab_library/pl_cumulus.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_cumulus",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "flying": 5,
+ "electric": 3,
+ "water": 2
+ },
+ "desc": "Lumpy multi-lobed cumulus cloud creature with tiny feet",
+ "prompt": "lumpy cumulus cloud creature made of several round puffy cloud lobes stacked together, flat bottom, a happy face on the front lobe with big eyes and rosy crimson cheeks, two tiny stubby feet peeking out underneath, no arms, no wings, no tail",
+ "size": 44,
+ "seed": 1901,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_cumulus_b",
+ "edit": "make its cloud puffs darker teal like a storm cloud with a grumpy frowning face and crimson zigzag streaks on its body, keep the same size and only one face",
+ "seed": 2,
+ "desc": "Grumpy storm cumulus"
+ },
+ {
+ "name": "pl_cumulus_c",
+ "edit": "make it wider and flatter like a long lazy cloud with sleepy closed eyes and small crimson spots",
+ "seed": 1,
+ "desc": "Flat sleepy cumulus"
+ },
+ {
+ "name": "pl_cumulus_d",
+ "edit": "make its teal cloud puffs fluffier and wispier with crimson swirl marks and a big open-mouth grin, keep the teal cloud color, keep the same size and pose",
+ "seed": 2,
+ "desc": "Cotton-candy grinning cumulus"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_cuttle.json b/pixellab_library/pl_cuttle.json
new file mode 100644
index 0000000..fcbfd90
--- /dev/null
+++ b/pixellab_library/pl_cuttle.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_cuttle",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "water": 3
+ },
+ "desc": "Cuttlefish with hypnotic wavy crimson bands, W-shaped pupils and a frilly side fin",
+ "prompt": "cuttlefish creature hovering upright, oval rounded body with a thin frilly fin skirt along its sides, hypnotic wavy crimson bands across its body, big eyes with W-shaped pupils, a short cluster of stubby arms underneath its face, no tentacles reaching out",
+ "size": 44,
+ "seed": 2201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_cuttle_b",
+ "edit": "make it chubbier and rounder with crimson spiral patterns instead of wavy bands and droopier eyes",
+ "seed": 1,
+ "desc": "Round spiral cuttle"
+ },
+ {
+ "name": "pl_cuttle_c",
+ "edit": "make its body narrower and egg-shaped with a bumpy textured skin and crimson zigzag patterns, keep the same size, no legs",
+ "seed": 2,
+ "desc": "Narrow bumpy zigzag cuttle"
+ },
+ {
+ "name": "pl_cuttle_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its cuttlefish face and teal skin and a cluster of tiny stubby arms, no human features",
+ "seed": 1,
+ "desc": "Young chibi cuttle"
+ }
+ ],
+ "anchors": {
+ "tail": [
+ 51,
+ 46
+ ]
+ }
+}
diff --git a/pixellab_library/pl_dancedragon.json b/pixellab_library/pl_dancedragon.json
new file mode 100644
index 0000000..23cb886
--- /dev/null
+++ b/pixellab_library/pl_dancedragon.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_dancedragon",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "fire": 3,
+ "normal": 2
+ },
+ "desc": "Lion-dance dragon costume: big festival dragon head on a cloth body with little legs",
+ "prompt": "festival dragon dance costume creature, big round carved dragon head with huge eyes, wide grinning mouth, fluffy fringe beard and bushy brows, a short wavy cloth body behind it with crimson scallop trim, several little feet peeking out underneath, no horns",
+ "size": 44,
+ "seed": 3901,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dancedragon_b",
+ "edit": "make the dragon head rounder and fluffier with a huge fluffy mane fringe and crimson polka dots on the cloth body, keep the same size and pose",
+ "seed": 1,
+ "desc": "Fluffy-maned dotted dance dragon"
+ },
+ {
+ "name": "pl_dancedragon_c",
+ "edit": "make the dragon head squarer with a big toothy underbite and crimson flame patterns on the cloth body, keep the same size and pose",
+ "seed": 1,
+ "desc": "Square-jawed flame-pattern dance dragon"
+ },
+ {
+ "name": "pl_dancedragon_d",
+ "edit": "make the dragon head smaller and cuter with huge round eyes and crimson cloud swirl patterns on the cloth body, keep the same size and pose",
+ "seed": 1,
+ "desc": "Cute cloud-swirl dance dragon"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_dartfrog.json b/pixellab_library/pl_dartfrog.json
new file mode 100644
index 0000000..d73b124
--- /dev/null
+++ b/pixellab_library/pl_dartfrog.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_dartfrog",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "poison": 5,
+ "water": 3,
+ "grass": 2
+ },
+ "desc": "Tiny poison dart frog crouched low with huge sticky toe pads and crimson warning blotches",
+ "prompt": "tiny poison dart frog creature crouched low on four legs, wide flat head with bulging eyes on top, glossy smooth skin with bold crimson warning blotches, long thin toes ending in big round sticky toe pads, small smug mouth",
+ "size": 40,
+ "seed": 1101,
+ "variants": [
+ {
+ "name": "pl_dartfrog_b",
+ "edit": "keep the same front-facing crouched pose, but make its body slimmer with much longer thinner legs, a narrower pointed head and thin crimson stripes running down its back",
+ "seed": 2,
+ "desc": "Slim long-legged striped dart frog"
+ },
+ {
+ "name": "pl_dartfrog_c",
+ "edit": "make it fat and round like a ball with a big puffed throat sac and lots of tiny crimson dots all over",
+ "seed": 1,
+ "desc": "Fat dotted dart frog"
+ },
+ {
+ "name": "pl_dartfrog_d",
+ "edit": "make it twice as round and squat like a fat ball with bold crimson blotches, keep its crouched frog pose and huge sticky toe pads",
+ "seed": 11,
+ "desc": "Fat blotched dart frog",
+ "skip": false
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_daruma.json b/pixellab_library/pl_daruma.json
new file mode 100644
index 0000000..8e6f295
--- /dev/null
+++ b/pixellab_library/pl_daruma.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_daruma",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "psychic": 3,
+ "normal": 2
+ },
+ "desc": "Daruma-doll fighter: rounded egg-shaped body, fierce brows, moustache, no limbs",
+ "prompt": "round daruma doll creature, egg-shaped weighted body with no legs, a big pale face panel with fierce thick eyebrows and a bushy curled moustache, stern determined eyes, tiny stubby arms, crimson swirl patterns on its sides",
+ "size": 40,
+ "seed": 1501,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_daruma_b",
+ "edit": "make it squatter and wider with a huge bushy beard and crimson stripes around its body",
+ "seed": 1,
+ "desc": "Squat bearded daruma"
+ },
+ {
+ "name": "pl_daruma_c",
+ "edit": "make its teal body taller and narrower like an upright egg, with angry slanted eyes, a frowning mouth and crimson spots on its body, keep it teal",
+ "seed": 2,
+ "desc": "Tall angry daruma"
+ },
+ {
+ "name": "pl_daruma_d",
+ "edit": "make it cracked and old with chipped patches, a long white droopy moustache and crimson crack lines, keep it teal",
+ "seed": 1,
+ "desc": "Cracked and old"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_dashbird.json b/pixellab_library/pl_dashbird.json
new file mode 100644
index 0000000..0fbba43
--- /dev/null
+++ b/pixellab_library/pl_dashbird.json
@@ -0,0 +1,48 @@
+{
+ "name": "pl_dashbird",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "electric": 5,
+ "flying": 3,
+ "ground": 2
+ },
+ "desc": "Lanky roadrunner chick leaning forward mid-sprint with crimson speed-streak markings",
+ "prompt": "lanky roadrunner bird chick leaning forward as if about to sprint, long strong legs, long thin neck, sharp straight beak, a short spiky stub of crest feathers, crimson streak markings painted along its sides, small folded wings, determined eyes, no tail, no speed lines, no motion lines",
+ "size": 44,
+ "seed": 2405,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dashbird_b",
+ "edit": "make it plumper and rounder with shorter legs and a bold crimson stripe across its eyes like a mask",
+ "seed": 1,
+ "desc": "Round masked dashbird"
+ },
+ {
+ "name": "pl_dashbird_c",
+ "edit": "make it taller and thinner with very long legs, a longer neck and crimson speckles all over its body",
+ "seed": 1,
+ "desc": "Tall speckled dashbird"
+ },
+ {
+ "name": "pl_dashbird_d",
+ "edit": "make it twice as round and squat like a puffball with short legs, keep its long beak, forward-leaning sprinting pose and teal feathers",
+ "seed": 11,
+ "desc": "Young chibi dashbird",
+ "skip": false
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "anchors": {
+ "back": [
+ 36,
+ 36
+ ]
+ }
+}
diff --git a/pixellab_library/pl_dimetro.json b/pixellab_library/pl_dimetro.json
new file mode 100644
index 0000000..0f9e738
--- /dev/null
+++ b/pixellab_library/pl_dimetro.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_dimetro",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "fire": 3,
+ "rock": 2
+ },
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "desc": "Dimetrodon hatchling with a tall finned sail on its back",
+ "prompt": "dimetrodon hatchling creature on four short sprawling legs, low long body, a tall rounded spined sail fin on its back with crimson webbing, big reptile head with a toothy grin, no tail",
+ "size": 44,
+ "seed": 6001,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dimetro_b",
+ "edit": "make it chubbier with a shorter body, a smaller rounder sail and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "Chubby small-sailed dimetro"
+ },
+ {
+ "name": "pl_dimetro_c",
+ "edit": "make its sail much taller and spikier with crimson stripes on the sail and a longer snout, keep it teal",
+ "seed": 1,
+ "desc": "Tall-sailed dimetro"
+ },
+ {
+ "name": "pl_dimetro_d",
+ "edit": "make it twice as round and squat with a fat body and stubby legs and a smaller sail, keep its face and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change dimetro",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_dino.json b/pixellab_library/pl_dino.json
index a109695..2bb7396 100644
--- a/pixellab_library/pl_dino.json
+++ b/pixellab_library/pl_dino.json
@@ -1,110 +1,130 @@
{
- "name": "pl_dino",
- "plan": "biped",
- "head": [
- "reptile_head"
- ],
- "types": {
- "dragon": 2,
- "ground": 2.5,
- "rock": 2.5
- },
- "desc": "Chunky upright little dinosaur with a blunt boxy snout and tiny arms",
- "prompt": "chunky little dinosaur standing upright on thick stubby legs, big boxy head with a wide blunt square snout and small nostrils, small beady eyes set high, underbite with a row of tiny teeth, very short tiny arms, round pot belly with crimson horizontal belly stripes, no tail, no spikes",
- "size": 44,
- "seed": 422,
- "direction": "south-west",
- "parts": [
- {
- "slot": "back",
- "name": "pl_spikes_back",
- "edit": "add a row of big crimson triangular spikes along its back, from the back of its head down to its lower back, keep everything else unchanged",
- "seed": 3,
- "types": {
- "ground": 4,
- "poison": 3,
- "rock": 3,
+ "name": "pl_dino",
+ "plan": "biped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
"dragon": 2,
- "ice": 2
- },
- "other": 0.2,
- "tags": [
- "spiky"
- ],
- "motif": "armor",
- "palette": "accent",
- "z": 35,
- "deny_bodies": [
- "pl_bee",
- "pl_beetle",
- "pl_bunny",
- "pl_hawk",
- "pl_owl",
- "pl_mochi",
- "pl_pebble",
- "pl_seal"
- ]
+ "ground": 2.5,
+ "rock": 2.5
},
- {
- "slot": "tail",
- "name": "pl_tail_club",
- "edit": "add a thick teal tail ending in a big round gold club, extending out on the right side",
- "seed": 1,
- "types": {
- "rock": 5,
- "ground": 4,
- "fighting": 1.5
- },
- "other": 0.05,
- "tags": [
- "tailed"
- ],
- "motif": "armor",
- "palette": "type"
- },
- {
- "slot": "head_top",
- "name": "pl_horn_single",
- "edit": "add one gold horn pointing up from its forehead",
- "seed": 1,
- "types": {
- "normal": 2,
- "fighting": 3,
- "ground": 3,
- "rock": 2
- },
- "other": 0.3,
- "requires": [
- "mammal_head",
- "reptile_head",
- "rock_head",
- "insect_head",
- "integrated_head",
- "ghost_head"
- ],
- "tags": [
- "horned"
- ],
- "motif": "armor",
- "palette": "type"
- },
- {
- "slot": "back",
- "name": "pl_dino_crystals_back",
- "edit": "add a small cluster of gold crystal shards growing out of its back behind its shoulders",
- "seed": 1,
- "types": {
- "rock": 5,
- "psychic": 2.5,
- "ground": 2,
- "ice": 1
- },
- "other": 0.1,
- "tags": [
- "crystal"
- ],
- "motif": "crystal",
- "palette": "type"
- }
- ]
+ "desc": "Chunky upright little dinosaur with a blunt boxy snout and tiny arms",
+ "prompt": "chunky little dinosaur standing upright on thick stubby legs, big boxy head with a wide blunt square snout and small nostrils, small beady eyes set high, underbite with a row of tiny teeth, very short tiny arms, round pot belly with crimson horizontal belly stripes, no tail, no spikes",
+ "size": 44,
+ "seed": 422,
+ "direction": "south-west",
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_spikes_back",
+ "edit": "add a row of big crimson triangular spikes along its back, from the back of its head down to its lower back, keep everything else unchanged",
+ "seed": 3,
+ "types": {
+ "ground": 4,
+ "poison": 3,
+ "rock": 3,
+ "dragon": 2,
+ "ice": 2
+ },
+ "other": 0.2,
+ "tags": [
+ "spiky"
+ ],
+ "motif": "armor",
+ "palette": "accent",
+ "z": 35,
+ "deny_bodies": [
+ "pl_bee",
+ "pl_beetle",
+ "pl_bunny",
+ "pl_hawk",
+ "pl_owl",
+ "pl_mochi",
+ "pl_pebble",
+ "pl_seal"
+ ]
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_club",
+ "edit": "add a thick teal tail ending in a big round gold club, extending out on the right side",
+ "seed": 1,
+ "types": {
+ "rock": 5,
+ "ground": 4,
+ "fighting": 1.5
+ },
+ "other": 0.05,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_horn_single",
+ "edit": "add one gold horn pointing up from its forehead",
+ "seed": 1,
+ "types": {
+ "normal": 2,
+ "fighting": 3,
+ "ground": 3,
+ "rock": 2
+ },
+ "other": 0.3,
+ "requires": [
+ "mammal_head",
+ "reptile_head",
+ "rock_head",
+ "insect_head",
+ "integrated_head",
+ "ghost_head"
+ ],
+ "tags": [
+ "horned"
+ ],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_dino_crystals_back",
+ "edit": "add a small cluster of gold crystal shards growing out of its back behind its shoulders",
+ "seed": 1,
+ "types": {
+ "rock": 5,
+ "psychic": 2.5,
+ "ground": 2,
+ "ice": 1
+ },
+ "other": 0.1,
+ "tags": [
+ "crystal"
+ ],
+ "motif": "crystal",
+ "palette": "type"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_dino_b",
+ "edit": "make it chubbier with a round belly, a shorter rounder snout and crimson spots on its back",
+ "seed": 1,
+ "desc": "Chubby spotted dino"
+ },
+ {
+ "name": "pl_dino_c",
+ "edit": "make it leaner and taller with a longer narrow snout, scaly plates on its back and crimson stripes",
+ "seed": 1,
+ "desc": "Lean striped dino"
+ },
+ {
+ "name": "pl_dino_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy dino"
+ }
+ ]
}
diff --git a/pixellab_library/pl_diver.json b/pixellab_library/pl_diver.json
new file mode 100644
index 0000000..e52ed51
--- /dev/null
+++ b/pixellab_library/pl_diver.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_diver",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "water": 3,
+ "ground": 2
+ },
+ "desc": "Spirit living inside an old round diving helmet with a porthole face and tentacle feet",
+ "prompt": "ghost spirit living inside an old round teal metal diving helmet, the helmet is its body, a big round glass porthole window on the front showing two glowing eyes inside, crimson bolts around the porthole, short wavy ghostly teal tentacles poking out from under the helmet as feet",
+ "size": 44,
+ "seed": 1215,
+ "variants": [
+ {
+ "name": "pl_diver_b",
+ "edit": "make the helmet boxier and squarer with three small portholes in a row and a dented side",
+ "seed": 1,
+ "desc": "Boxy three-porthole diver"
+ },
+ {
+ "name": "pl_diver_c",
+ "edit": "make the helmet smaller and rounder with a cracked porthole glass, more seaweed and crimson rust spots",
+ "seed": 1,
+ "desc": "Small cracked-glass diver"
+ },
+ {
+ "name": "pl_diver_d",
+ "edit": "make the helmet taller with a domed cone top and a single small porthole high up, and give it four longer thicker tentacles with crimson suckers",
+ "seed": 1,
+ "desc": "Tall cone-helmet diver"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_dobsonfly.json b/pixellab_library/pl_dobsonfly.json
new file mode 100644
index 0000000..51197e0
--- /dev/null
+++ b/pixellab_library/pl_dobsonfly.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_dobsonfly",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "bug": 3,
+ "fighting": 2
+ },
+ "desc": "Dobsonfly with huge crossed sickle mandibles and a long flat body",
+ "prompt": "dobsonfly creature standing on six legs, long flat segmented body, broad flat head with enormous long crossed sickle-shaped mandibles, small fierce eyes, short antennae, crimson banding on its body, no wings",
+ "size": 44,
+ "seed": 5901,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dobsonfly_b",
+ "edit": "make it bulkier with a wide armored head plate, thicker shorter mandibles and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "Armored dobsonfly"
+ },
+ {
+ "name": "pl_dobsonfly_c",
+ "edit": "make it slimmer and longer with fringed gill tufts along its sides and crimson stripes, keep it teal",
+ "seed": 1,
+ "desc": "Fringed larva dobsonfly"
+ },
+ {
+ "name": "pl_dobsonfly_d",
+ "edit": "cover it in thick shaggy fur and make its body twice as round, keep its big sickle mandibles and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change dobsonfly"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_dodo.json b/pixellab_library/pl_dodo.json
new file mode 100644
index 0000000..539f8b6
--- /dev/null
+++ b/pixellab_library/pl_dodo.json
@@ -0,0 +1,53 @@
+{
+ "name": "pl_dodo",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "normal": 5,
+ "ground": 3,
+ "psychic": 2
+ },
+ "desc": "Flightless dodo with a huge hooked beak, bald face and stumpy legs",
+ "prompt": "dodo bird creature standing on two short thick legs, plump pear-shaped body, large head with a huge heavy hooked beak with a crimson tip, bare wrinkled face around its eyes, tiny stub wings, a small tuft of curly feathers on its rear, no long tail",
+ "size": 44,
+ "seed": 2301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dodo_b",
+ "edit": "make it taller and skinnier with a long neck, longer legs and crimson stripes across its chest",
+ "seed": 1,
+ "desc": "Tall skinny dodo"
+ },
+ {
+ "name": "pl_dodo_c",
+ "edit": "make it rounder and fatter with fluffy shaggy feathers and crimson spots on its belly",
+ "seed": 1,
+ "desc": "Fat shaggy dodo"
+ },
+ {
+ "name": "pl_dodo_d",
+ "edit": "make it a tiny baby dodo chick with a huge round head, small beak and fuzzy down, keep it teal",
+ "seed": 1,
+ "desc": "A tiny baby dodo chick"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_pennant",
+ "edit": "add a small gold triangular pennant flag on a short pole planted in the middle of its back behind its wing, pointing to the right",
+ "seed": 2,
+ "types": {
+ "normal": 5,
+ "flying": 3,
+ "fighting": 2
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "type"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_doll.json b/pixellab_library/pl_doll.json
new file mode 100644
index 0000000..8079226
--- /dev/null
+++ b/pixellab_library/pl_doll.json
@@ -0,0 +1,57 @@
+{
+ "name": "pl_doll",
+ "plan": "biped",
+ "head": [
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "psychic": 3,
+ "normal": 2
+ },
+ "desc": "Burlap voodoo doll with button eyes, crimson cross-stitches and patched limbs",
+ "prompt": "small burlap rag doll creature standing up, rough sackcloth body, two mismatched sewn-on button eyes, a stitched crimson cross-stitch mouth, crude crimson stitch seams on its arms and legs, a patch sewn on its belly, floppy stubby limbs, slightly lopsided round head",
+ "size": 44,
+ "seed": 1110,
+ "variants": [
+ {
+ "name": "pl_doll_b",
+ "edit": "make it chubbier with a bigger round head, a crimson heart-shaped patch on its chest and a loose stuffing tuft poking out of one shoulder",
+ "seed": 1,
+ "desc": "Chubby heart-patched doll"
+ },
+ {
+ "name": "pl_doll_c",
+ "edit": "make it thinner and taller with long dangling arms, an X-stitched eye instead of one button and many crimson stitched patches",
+ "seed": 1,
+ "desc": "Lanky X-eyed doll"
+ },
+ {
+ "name": "pl_doll_d",
+ "edit": "young chibi version with a huge round head, a tiny body, one big and one small button eye and a crimson patch sewn over one side of its head, keep its doll face",
+ "seed": 1,
+ "desc": "Chibi mismatched-eye doll"
+ }
+ ],
+ "direction": "south",
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_skull_cap",
+ "edit": "add a small gold animal skull worn like a little helmet on top of its head",
+ "seed": 1,
+ "types": {
+ "ghost": 6,
+ "poison": 2,
+ "ground": 1
+ },
+ "other": 0.1,
+ "plans": "all",
+ "requires": [],
+ "tags": [],
+ "excludes": [],
+ "motif": "spooky",
+ "palette": "type"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_dormouse.json b/pixellab_library/pl_dormouse.json
new file mode 100644
index 0000000..2e75fb9
--- /dev/null
+++ b/pixellab_library/pl_dormouse.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_dormouse",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "grass": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "desc": "Upright dormouse wearing half an acorn shell as a helmet, with a leaf scarf",
+ "prompt": "small upright dormouse creature standing on its hind legs, wearing half an acorn shell as a helmet with a short stem nub on top, the acorn helmet is crimson with a crosshatch texture, small round ears poking out under the helmet, huge glossy black eyes, plump pear-shaped teal body with a pale belly, a crimson leaf tied around its neck like a scarf, tiny paws held together in front, no tail, no brown",
+ "size": 44,
+ "seed": 1103,
+ "direction": "south",
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_dormouse_b",
+ "edit": "make it much fluffier and rounder like a fur ball with big cheek fur tufts and a wider flatter acorn helmet",
+ "seed": 1,
+ "desc": "Fluffy round dormouse"
+ },
+ {
+ "name": "pl_dormouse_c",
+ "edit": "make it slimmer and taller with long feet, crimson stripes across its body and bigger rounder ears",
+ "seed": 1,
+ "desc": "Slim striped long-footed dormouse"
+ },
+ {
+ "name": "pl_dormouse_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, keep its dormouse face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi dormouse"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_draco.json b/pixellab_library/pl_draco.json
new file mode 100644
index 0000000..312fe3b
--- /dev/null
+++ b/pixellab_library/pl_draco.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_draco",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "flying": 5,
+ "grass": 3,
+ "dragon": 2
+ },
+ "desc": "Gliding draco lizard with a big crimson throat dewlap fan and a thin baked-in tail",
+ "prompt": "slender gliding lizard creature standing on four thin splayed legs with long toes, long narrow lizard snout, thin skin flaps folded along both sides of its body like a cape, a big fan-shaped crimson dewlap flag under its chin, scaly patterned skin, big round eyes on the sides of its head, no ears, no wings, no tail",
+ "size": 44,
+ "seed": 3402,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_draco_b",
+ "edit": "make it chubbier with a shorter rounder head and crimson stripes across its back, keep the same size and pose",
+ "seed": 1,
+ "desc": "Chubby striped draco"
+ },
+ {
+ "name": "pl_draco_c",
+ "edit": "make it spikier with a row of small bumps along its back, crimson spots on its side frills and narrow eyes, keep the same size and pose",
+ "seed": 1,
+ "desc": "Bumpy spotted draco"
+ },
+ {
+ "name": "pl_draco_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its lizard face and teal scales and a small crimson dewlap, no human features",
+ "seed": 1,
+ "desc": "Young chibi draco"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_dracobeetle.json b/pixellab_library/pl_dracobeetle.json
new file mode 100644
index 0000000..bb0f6df
--- /dev/null
+++ b/pixellab_library/pl_dracobeetle.json
@@ -0,0 +1,43 @@
+{
+ "name": "pl_dracobeetle",
+ "plan": "insectoid",
+ "head": [
+ "insect_head",
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "bug": 3,
+ "rock": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Armored beetle with a reptile snout and scaly plated carapace",
+ "prompt": "armored dragon beetle creature on six short legs, heavy scaly plated carapace like dragon scales, a reptile-like head with a short blunt snout and narrow eyes, crimson scale edges on the plates, sturdy front claws, no horns, no antennae, no wings",
+ "size": 44,
+ "seed": 2301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dracobeetle_b",
+ "edit": "make it taller and rounder with a high domed carapace, big crimson spots on the shell and a smaller head",
+ "seed": 1,
+ "desc": "Domed spotted dracobeetle"
+ },
+ {
+ "name": "pl_dracobeetle_c",
+ "edit": "make its carapace flatter and lower with spiky plate edges along its sides and a slightly longer snout, keep the same overall size and pose",
+ "seed": 2,
+ "desc": "Flat spiky dracobeetle",
+ "skip": true
+ },
+ {
+ "name": "pl_dracobeetle_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded dracobeetle"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_dragonegg.json b/pixellab_library/pl_dragonegg.json
new file mode 100644
index 0000000..6eef1ac
--- /dev/null
+++ b/pixellab_library/pl_dragonegg.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_dragonegg",
+ "plan": "blob",
+ "head": [
+ "reptile_head",
+ "integrated_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Dragon hatchling still sitting inside its cracked egg shell",
+ "prompt": "dragon hatchling sitting inside the bottom half of a big cracked egg shell, scaly reptile head and shoulders poking out, short rounded snout, slit eyes, tiny clawed hands gripping the jagged shell rim, crimson zigzag band painted around the egg shell, little clawed feet poking out the bottom",
+ "size": 44,
+ "seed": 2501,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_dragonegg_b",
+ "edit": "make the egg shell taller so only the hatchling's head and eyes peek out, with crimson spots all over the shell",
+ "seed": 1,
+ "desc": "Peeking egg hatchling"
+ },
+ {
+ "name": "pl_dragonegg_c",
+ "edit": "make the shell a short low cup so most of the chubby hatchling body shows, with crimson belly scales and a wide grin",
+ "seed": 1,
+ "desc": "Cup-shell hatchling"
+ },
+ {
+ "name": "pl_dragonegg_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young dragonegg"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_dragonfly.json b/pixellab_library/pl_dragonfly.json
new file mode 100644
index 0000000..a5746d8
--- /dev/null
+++ b/pixellab_library/pl_dragonfly.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_dragonfly",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "flying": 5,
+ "bug": 3,
+ "dragon": 2
+ },
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "desc": "Chibi dragonfly with huge wraparound compound eyes and small clear baked-in wings",
+ "prompt": "chibi dragonfly creature hovering upright, huge round wraparound compound eyes covering most of its head, small smiling mouth, chubby short segmented body with crimson bands, two pairs of small clear veined wings behind its back, six thin little legs, short body",
+ "size": 44,
+ "seed": 3501,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_dragonfly_b",
+ "edit": "make its body chubbier and rounder with crimson spots on its body and rounder wings, keep the same size and pose",
+ "seed": 1,
+ "desc": "Chubby spotted dragonfly"
+ },
+ {
+ "name": "pl_dragonfly_c",
+ "edit": "give it fuzzy fluffy fur on its body with a thick fluffy collar and crimson spots, keep the same size and pose",
+ "seed": 2,
+ "desc": "Fuzzy collared dragonfly"
+ },
+ {
+ "name": "pl_dragonfly_d",
+ "edit": "give it a shiny armored plated body with crimson chevrons and narrow fierce eyes, keep the same size and pose",
+ "seed": 1,
+ "desc": "Armored fierce dragonfly"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_drake.json b/pixellab_library/pl_drake.json
index 51e9241..711c65e 100644
--- a/pixellab_library/pl_drake.json
+++ b/pixellab_library/pl_drake.json
@@ -100,5 +100,25 @@
"motif": "crystal",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_drake_b",
+ "edit": "make it chubbier and rounder with a short snout, big eyes and crimson belly scales",
+ "seed": 1,
+ "desc": "Chubby baby drake"
+ },
+ {
+ "name": "pl_drake_c",
+ "edit": "make it twice as round and squat like a chubby ball with very short legs, keep its dragon face, brow ridges and teal color",
+ "seed": 11,
+ "desc": "Lean armored drake"
+ },
+ {
+ "name": "pl_drake_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy drake"
+ }
]
}
diff --git a/pixellab_library/pl_dromaeo.json b/pixellab_library/pl_dromaeo.json
new file mode 100644
index 0000000..46218ce
--- /dev/null
+++ b/pixellab_library/pl_dromaeo.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_dromaeo",
+ "plan": "avian",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "fighting": 3,
+ "flying": 2
+ },
+ "desc": "Fluffy feathered raptor-dinosaur chick with a toothy snout and sickle toe claws",
+ "prompt": "fluffy feathered raptor dinosaur chick standing on two legs, toothy narrow reptile snout, sharp eyes, fluffy downy feathered body, short feathered arms with claws, big crimson sickle toe claws on its feet, crimson stripes on its fluff, no tail",
+ "size": 44,
+ "seed": 4001,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dromaeo_b",
+ "edit": "make it rounder and fluffier like a puffball with a short snout and crimson spots",
+ "seed": 1,
+ "desc": "Puffball raptor chick"
+ },
+ {
+ "name": "pl_dromaeo_c",
+ "edit": "make it leaner and taller with a long snout, scaly bare legs and a crimson feather mohawk stub",
+ "seed": 1,
+ "desc": "Lean raptor"
+ },
+ {
+ "name": "pl_dromaeo_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young dromaeo"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_duck.json b/pixellab_library/pl_duck.json
index 9224967..ba30595 100644
--- a/pixellab_library/pl_duck.json
+++ b/pixellab_library/pl_duck.json
@@ -79,5 +79,25 @@
63
]
}
+ ],
+ "variants": [
+ {
+ "name": "pl_duck_b",
+ "edit": "make it slimmer and taller with a longer neck, a narrow pointed crimson bill and crimson wing bands",
+ "seed": 1,
+ "desc": "Tall slim waterbird"
+ },
+ {
+ "name": "pl_duck_c",
+ "edit": "make it much fluffier and rounder with downy fur, a tiny stubby bill and crimson cheek spots",
+ "seed": 1,
+ "desc": "Fluffy downy duckling"
+ },
+ {
+ "name": "pl_duck_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 2,
+ "desc": "Armored duck"
+ }
]
}
diff --git a/pixellab_library/pl_dumbo.json b/pixellab_library/pl_dumbo.json
new file mode 100644
index 0000000..38491b1
--- /dev/null
+++ b/pixellab_library/pl_dumbo.json
@@ -0,0 +1,46 @@
+{
+ "name": "pl_dumbo",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "water": 5,
+ "psychic": 3,
+ "ghost": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Dumbo octopus with round ear-fins on its mantle and a webbed skirt of short arms",
+ "prompt": "dumbo octopus creature floating upright, big rounded dome head, two round flapping fins on the sides of its head like ears, a short webbed umbrella skirt of stubby arms underneath with crimson suction cup dots, big round eyes, tiny smile, no long tentacles, nothing on top of its head",
+ "size": 44,
+ "seed": 1801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_dumbo_b",
+ "edit": "make its round head much bigger and rounder with crimson stripes across it, and make its ear fins bigger and wavier",
+ "seed": 2,
+ "desc": "Big-headed striped dumbo"
+ },
+ {
+ "name": "pl_dumbo_c",
+ "edit": "make it squatter and wider with a flat round head, tiny ear fins and a much wider webbed skirt with crimson edges",
+ "seed": 1,
+ "desc": "Squat wide-skirt dumbo"
+ },
+ {
+ "name": "pl_dumbo_d",
+ "edit": "make it squat and wider with much bigger round ear fins and crimson spots on its head",
+ "seed": 1,
+ "desc": "squat and wider with much bigger round ear fins and "
+ }
+ ],
+ "anchors": {
+ "tail": [
+ 46,
+ 46
+ ]
+ }
+}
diff --git a/pixellab_library/pl_dustdevil.json b/pixellab_library/pl_dustdevil.json
new file mode 100644
index 0000000..ccb9271
--- /dev/null
+++ b/pixellab_library/pl_dustdevil.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_dustdevil",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ground": 5,
+ "flying": 3,
+ "ghost": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Living dust devil: a spiraling sand funnel coiling up into a face",
+ "prompt": "living dust devil whirlwind creature, a twisting spiral funnel of swirling teal sand bands that coils up from a thin point at the bottom into a wide rounded top, a grinning face with two big eyes in the wide top swirl, two small stubby sand arms, small crimson pebbles caught in the swirl",
+ "size": 44,
+ "seed": 7353,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_dustdevil_b",
+ "edit": "make the whirlwind shorter and much fatter like a squat spinning top, all teal sand bands with thick crimson stripes in the swirl, same teal color everywhere",
+ "seed": 2,
+ "desc": "Squat striped dust devil"
+ },
+ {
+ "name": "pl_dustdevil_c",
+ "edit": "make it taller and thinner with a wavy wobbly funnel, a ragged scruffy top edge and a grumpy face",
+ "seed": 1,
+ "desc": "Tall wobbly dust devil"
+ },
+ {
+ "name": "pl_dustdevil_d",
+ "edit": "make the whirlwind body much wider and shorter like a fat squat spinning cloud, keep its face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded dustdevil"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_dynamo.json b/pixellab_library/pl_dynamo.json
new file mode 100644
index 0000000..f8ed9f0
--- /dev/null
+++ b/pixellab_library/pl_dynamo.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_dynamo",
+ "plan": "quadruped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "rock": 3,
+ "fighting": 2
+ },
+ "desc": "Generator-motor critter: finned cylinder body on four legs, face on the front",
+ "prompt": "electric generator motor creature standing on four short sturdy metal legs, cylinder-shaped teal body ringed with cooling fins, a face on the round front end with two small eyes, crimson copper wire coils visible in its side, two crimson terminal bolts on top",
+ "size": 44,
+ "seed": 5601,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_dynamo_b",
+ "edit": "make it bulkier and rounder with thick plating, a big grille and crimson hazard stripes, keep it teal",
+ "seed": 1,
+ "desc": "Heavy plated dynamo",
+ "skip": true
+ },
+ {
+ "name": "pl_dynamo_c",
+ "edit": "make it longer and leaner like a sleek motor with fewer fins and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "Sleek long dynamo"
+ },
+ {
+ "name": "pl_dynamo_d",
+ "edit": "make it very tall and narrow like an upright standing motor on two short legs, keep its fins, face and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change dynamo"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_earwig.json b/pixellab_library/pl_earwig.json
new file mode 100644
index 0000000..72b15f0
--- /dev/null
+++ b/pixellab_library/pl_earwig.json
@@ -0,0 +1,45 @@
+{
+ "name": "pl_earwig",
+ "plan": "biped",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "fighting": 3,
+ "poison": 2
+ },
+ "desc": "Upright earwig with big curved forceps pincers at its rear",
+ "prompt": "upright earwig bug creature standing on four thin legs, long segmented teal body leaning forward, small flat head with beady eyes and two short antennae, two tiny arms, big curved crimson forceps pincers at the end of its body sticking out on the right side, glossy shell plates, no wings no ground shadow",
+ "size": 44,
+ "seed": 2108,
+ "direction": "south-west",
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "excludes": [
+ "antennae"
+ ],
+ "variants": [
+ {
+ "name": "pl_earwig_b",
+ "edit": "make its body broader and chunkier with thick armor plates and crimson spots on its back, keep its rear pincers and its small arms the same",
+ "seed": 2,
+ "desc": "Chunky big-pincer earwig"
+ },
+ {
+ "name": "pl_earwig_c",
+ "edit": "make it slimmer with crimson bands across each body segment and long curvy antennae",
+ "seed": 1,
+ "desc": "Slim banded earwig"
+ },
+ {
+ "name": "pl_earwig_d",
+ "edit": "cover it in thick shaggy teal fur with crimson stripes, keep its upright earwig body and its big curved rear pincers",
+ "seed": 12,
+ "desc": "Young chibi earwig",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_eel.json b/pixellab_library/pl_eel.json
index 4ce5b6c..da65d82 100644
--- a/pixellab_library/pl_eel.json
+++ b/pixellab_library/pl_eel.json
@@ -77,5 +77,25 @@
"white"
]
}
+ ],
+ "variants": [
+ {
+ "name": "pl_eel_b",
+ "edit": "make it thicker with a wider blunt head, crimson spots along its body and a fin ridge on its back",
+ "seed": 1,
+ "desc": "Thick spotted eel"
+ },
+ {
+ "name": "pl_eel_c",
+ "edit": "make it slimmer with a narrow pointed head and crimson bands along its body",
+ "seed": 1,
+ "desc": "Slim banded eel"
+ },
+ {
+ "name": "pl_eel_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded eel"
+ }
]
}
diff --git a/pixellab_library/pl_emberant.json b/pixellab_library/pl_emberant.json
new file mode 100644
index 0000000..8981a5b
--- /dev/null
+++ b/pixellab_library/pl_emberant.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_emberant",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "fire": 5,
+ "bug": 3,
+ "ground": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Upright fire ant with a pinched waist, mandible stubs and crimson ember-striped abdomen",
+ "prompt": "upright fire ant creature standing on its four hind legs, big round head with short curved mandible stubs and big eyes, very thin pinched waist, teardrop-shaped abdomen behind it with crimson ember stripes, two front arms raised, no antennae",
+ "size": 44,
+ "seed": 1601,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_emberant_b",
+ "edit": "make it stockier with a huge armored head, thick crimson bands across its abdomen and bigger mandibles",
+ "seed": 1,
+ "desc": "Big-headed soldier ant"
+ },
+ {
+ "name": "pl_emberant_c",
+ "edit": "make it slender and small-headed with a much larger swollen abdomen covered in crimson glowing dots",
+ "seed": 1,
+ "desc": "Swollen-abdomen ant"
+ },
+ {
+ "name": "pl_emberant_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy emberant"
+ }
+ ],
+ "excludes": [
+ "antennae"
+ ]
+}
diff --git a/pixellab_library/pl_eyespot.json b/pixellab_library/pl_eyespot.json
new file mode 100644
index 0000000..0abc98e
--- /dev/null
+++ b/pixellab_library/pl_eyespot.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_eyespot",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "bug": 3,
+ "grass": 2
+ },
+ "desc": "Swallowtail caterpillar with a snake-head-shaped thorax painted with huge fake eyes, tiny real head, crimson osmeterium nubs",
+ "prompt": "swallowtail caterpillar creature seen from the front, a huge swollen bulbous thorax shaped like a snake head with two painted fake eye markings on it, a tiny real head with small dot eyes tucked underneath, plump segmented body, small stubby legs, crimson spots along its sides, no antennae",
+ "size": 44,
+ "seed": 2414,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_eyespot_b",
+ "edit": "make it fatter and rounder with even bigger eye spots ringed in crimson",
+ "seed": 1,
+ "desc": "Fat big-eyed caterpillar"
+ },
+ {
+ "name": "pl_eyespot_c",
+ "edit": "make it longer and slimmer with smaller eye spots and crimson stripes along its segments",
+ "seed": 1,
+ "desc": "Slim striped caterpillar"
+ },
+ {
+ "name": "pl_eyespot_d",
+ "edit": "make it chubbier with bold crimson rings around its fake eye spots and many tiny bumps along its body, keep the same size and pose",
+ "seed": 1,
+ "desc": "Bumpy ringed caterpillar"
+ }
+ ],
+ "excludes": [
+ "antennae"
+ ]
+}
diff --git a/pixellab_library/pl_fawn.json b/pixellab_library/pl_fawn.json
index 76c718f..c9f5990 100644
--- a/pixellab_library/pl_fawn.json
+++ b/pixellab_library/pl_fawn.json
@@ -81,5 +81,25 @@
"palette": "type",
"skip": true
}
+ ],
+ "variants": [
+ {
+ "name": "pl_fawn_b",
+ "edit": "make it sturdier with a stockier body, shorter legs, fluffy chest fur and crimson stripes",
+ "seed": 1,
+ "desc": "Sturdy fluffy fawn"
+ },
+ {
+ "name": "pl_fawn_c",
+ "edit": "make it even more slender with a longer neck, big upright ears and crimson patches",
+ "seed": 1,
+ "desc": "Slender long-necked fawn"
+ },
+ {
+ "name": "pl_fawn_d",
+ "edit": "make it muscular and athletic with defined arms and legs, crimson bands on its limbs",
+ "seed": 1,
+ "desc": "Muscular fawn"
+ }
]
}
diff --git a/pixellab_library/pl_ferret.json b/pixellab_library/pl_ferret.json
new file mode 100644
index 0000000..5ac5ebb
--- /dev/null
+++ b/pixellab_library/pl_ferret.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_ferret",
+ "plan": "serpentine",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "ground": 3,
+ "electric": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Sinuous long ferret in an S-curve with a bandit mask",
+ "prompt": "ferret creature with a very long sinuous body curved in an S shape, rearing up its front half, small rounded ears, crimson bandit mask band across its eyes, short little legs, pointed snout, no tail",
+ "size": 44,
+ "seed": 2401,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ferret_b",
+ "edit": "make it fluffier and thicker with a bushy fur coat, a fluffy neck ruff and crimson stripes along its back",
+ "seed": 1,
+ "desc": "Fluffy striped ferret"
+ },
+ {
+ "name": "pl_ferret_c",
+ "edit": "make it slimmer and sleeker with short smooth fur, large round ears and crimson spots along its sides, no spikes",
+ "seed": 2,
+ "desc": "Slim round-eared spotted ferret"
+ },
+ {
+ "name": "pl_ferret_d",
+ "edit": "make it chubbier and rounder with a big fluffy round body, a visible face with the crimson mask, tiny legs and crimson zigzag stripes, keep it teal",
+ "seed": 2,
+ "desc": "Chubby zigzag ferret"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_firecracker.json b/pixellab_library/pl_firecracker.json
new file mode 100644
index 0000000..1fbac1d
--- /dev/null
+++ b/pixellab_library/pl_firecracker.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_firecracker",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "normal": 3,
+ "electric": 2
+ },
+ "desc": "String of linked crimson firecracker tubes forming a serpent",
+ "prompt": "string of firecrackers creature: many short straight cylindrical teal paper tubes linked end to end by a crimson string, arranged in a rising zigzag like a snake, the top tube is bigger with a face and a short twisted fuse sticking out of its top, crimson paper bands on every tube, no legs",
+ "size": 44,
+ "seed": 5702,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_firecracker_b",
+ "edit": "make the tubes fatter and fewer with a big round head and crimson zigzag patterns, keep it teal",
+ "seed": 1,
+ "desc": "Fat-tubed firecracker"
+ },
+ {
+ "name": "pl_firecracker_c",
+ "edit": "make it longer and thinner with many tiny tubes and gold tassels between them and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "Long tasseled firecracker",
+ "skip": true
+ },
+ {
+ "name": "pl_firecracker_d",
+ "edit": "make it twice as thick and short with fewer much fatter firecracker tubes, keep its face and teal and crimson colors",
+ "seed": 7,
+ "desc": "Strong silhouette change firecracker",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_firefly.json b/pixellab_library/pl_firefly.json
new file mode 100644
index 0000000..8581cb7
--- /dev/null
+++ b/pixellab_library/pl_firefly.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_firefly",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "electric": 3,
+ "fire": 2
+ },
+ "desc": "Plump firefly with a crimson shield hood and a big glowing lantern abdomen",
+ "prompt": "plump firefly creature sitting upright, a round crimson shield-shaped hood covering the top of its head, big round eyes peeking out under it, two thin antennae, chubby body with a large round glowing pale yellow lantern abdomen at the bottom, six short legs, no wings",
+ "size": 44,
+ "seed": 1116,
+ "direction": "south",
+ "excludes": [
+ "antennae"
+ ],
+ "variants": [
+ {
+ "name": "pl_firefly_b",
+ "edit": "make the lantern abdomen much bigger and segmented with crimson bands between the glowing segments",
+ "seed": 1,
+ "desc": "Big segmented-lantern firefly"
+ },
+ {
+ "name": "pl_firefly_c",
+ "edit": "make it slimmer and taller with a pointed shield hood and crimson spots on its hood",
+ "seed": 1,
+ "desc": "Slim pointed-hood firefly"
+ },
+ {
+ "name": "pl_firefly_d",
+ "edit": "make it a stout armored firefly with a wide flat shield hood pulled down like a visor over its eyes and crimson bands on its lantern belly",
+ "seed": 2,
+ "desc": "Young chibi firefly",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_firehose.json b/pixellab_library/pl_firehose.json
new file mode 100644
index 0000000..a0ff505
--- /dev/null
+++ b/pixellab_library/pl_firehose.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_firehose",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "water": 3,
+ "normal": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Living fire hose: flat canvas hose body coiled up, brass-nozzle head with a face",
+ "prompt": "living fire hose creature, a long flat teal canvas hose body coiled in loops on the ground, its front end rising up with a teal metal nozzle head with a cute face, crimson bands at the hose couplings, no water, no snake features",
+ "size": 44,
+ "seed": 3602,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_firehose_b",
+ "edit": "make the hose thicker and rolled up into a neat flat round reel with crimson stripes along its edges",
+ "seed": 1,
+ "desc": "Rolled reel firehose",
+ "skip": true
+ },
+ {
+ "name": "pl_firehose_c",
+ "edit": "make the hose thinner and tangled in messy loops with a bigger nozzle head and crimson couplings",
+ "seed": 1,
+ "desc": "Tangled firehose"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_flask.json b/pixellab_library/pl_flask.json
new file mode 100644
index 0000000..c1a244c
--- /dev/null
+++ b/pixellab_library/pl_flask.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_flask",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "psychic": 3,
+ "water": 2
+ },
+ "desc": "Living potion flask: round glass body with bubbling liquid, a face and a cork stopper",
+ "prompt": "living potion flask creature, round glass bottle body filled with bubbling teal liquid, a cute face on the glass, short narrow bottle neck with a crimson cork stopper, tiny stubby feet, small bubbles rising inside",
+ "size": 44,
+ "seed": 4101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_flask_b",
+ "edit": "make the flask a tall thin test tube shape with a crimson label stripe and a sly grin, keep the same size and pose",
+ "seed": 1,
+ "desc": "Tall test-tube flask"
+ },
+ {
+ "name": "pl_flask_c",
+ "edit": "make the flask a wide triangular conical flask shape with crimson bubbles inside and a worried face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Conical worried flask"
+ },
+ {
+ "name": "pl_flask_d",
+ "edit": "make the flask a round-bottom flask with a long thin neck, swirling crimson liquid inside and a sleepy face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Long-necked swirl flask"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_flea.json b/pixellab_library/pl_flea.json
new file mode 100644
index 0000000..3cba3d1
--- /dev/null
+++ b/pixellab_library/pl_flea.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_flea",
+ "plan": "quadruped",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "normal": 3,
+ "fighting": 2
+ },
+ "desc": "Hunched armored flea with huge springy hind legs and a tiny head",
+ "prompt": "hunched flea bug creature with a tall rounded armored teal body shaped like a bean, tiny head at the front with a small eye and short bristles, two front legs and two huge bent springy hind legs ready to jump, glossy armor plates, crimson knees, no wings no ground shadow",
+ "size": 44,
+ "seed": 2114,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_flea_b",
+ "edit": "make it chunkier and rounder with thicker armor plates and crimson bands",
+ "seed": 1,
+ "desc": "Chunky banded flea"
+ },
+ {
+ "name": "pl_flea_c",
+ "edit": "make it fluffier with bristly hairs all over its body and crimson spots, and bigger eyes",
+ "seed": 1,
+ "desc": "Bristly spotted flea"
+ },
+ {
+ "name": "pl_flea_d",
+ "edit": "make it covered in thick shaggy teal fur, keep its hunched flea body, tiny head and huge springy hind legs",
+ "seed": 11,
+ "desc": "Young chibi flea",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_flutter.json b/pixellab_library/pl_flutter.json
new file mode 100644
index 0000000..756d3b7
--- /dev/null
+++ b/pixellab_library/pl_flutter.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_flutter",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "flying": 5,
+ "bug": 3,
+ "psychic": 2
+ },
+ "excludes": [
+ "antennae"
+ ],
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "desc": "Round butterfly with small baked-in eye-spot wings and club antennae",
+ "prompt": "small round chubby butterfly creature sitting upright, fuzzy round body, big glossy eyes, two thin antennae with round club tips, a pair of small rounded butterfly wings behind it with crimson eye spots, four short stubby legs, no tail",
+ "size": 44,
+ "seed": 1701,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_flutter_b",
+ "edit": "make its round body slightly taller and slimmer with crimson bands around its body and pointier wing tips, keep the same size and pose",
+ "seed": 2,
+ "desc": "Slim banded flutter"
+ },
+ {
+ "name": "pl_flutter_c",
+ "edit": "make its body chubbier and fluffier with a thick fur collar and many small crimson dots on its wings",
+ "seed": 1,
+ "desc": "Fluffy dotted flutter"
+ },
+ {
+ "name": "pl_flutter_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its bug face and teal colors and small round wings, no human features",
+ "seed": 1,
+ "desc": "Young chibi flutter"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_flyfish.json b/pixellab_library/pl_flyfish.json
new file mode 100644
index 0000000..6cc16bd
--- /dev/null
+++ b/pixellab_library/pl_flyfish.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_flyfish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "flying": 5,
+ "water": 3
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Flying fish with long pectoral fins folded along its sides and a forked tail fin",
+ "prompt": "flying fish creature hovering upright, sleek torpedo-shaped body, long pectoral fins folded back along its sides, big round eyes, small pouting mouth, crimson stripe along its side, forked tail fin at the bottom",
+ "size": 44,
+ "seed": 2001,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_flyfish_b",
+ "edit": "make it much rounder and chubbier with a bigger head and crimson spots along its back",
+ "seed": 1,
+ "desc": "Chubby spotted flyfish"
+ },
+ {
+ "name": "pl_flyfish_c",
+ "edit": "make it a slender needle-like fish with a much longer thinner body, a long pointed beak-like jaw, big bold crimson bands across its body and longer spiky fins",
+ "seed": 3,
+ "desc": "Needle-jawed banded flyfish",
+ "skip": true
+ },
+ {
+ "name": "pl_flyfish_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and tiny fins, keep its fish face and teal scales, no human features",
+ "seed": 2,
+ "desc": "Big-scaled bug-eyed flyfish"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_flytrap.json b/pixellab_library/pl_flytrap.json
new file mode 100644
index 0000000..37f2c30
--- /dev/null
+++ b/pixellab_library/pl_flytrap.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_flytrap",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "grass": 5,
+ "poison": 3,
+ "bug": 2
+ },
+ "desc": "Squat pod whose whole front is a bristle-toothed flytrap mouth, on root feet",
+ "prompt": "squat round seed pod creature whose whole front is a wide open venus flytrap mouth, two hinged lobes with rows of long bristle teeth along their edges, crimson inside the mouth, two small eyes on top of the upper lobe, short stubby root feet, no leaves on its head, no arms",
+ "size": 44,
+ "seed": 1104,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_flytrap_b",
+ "edit": "make the mouth closed into a toothy grin with the bristle teeth interlocked, and make the body taller like an egg",
+ "seed": 1,
+ "desc": "Closed-mouth egg flytrap"
+ },
+ {
+ "name": "pl_flytrap_c",
+ "edit": "make it wider and flatter with three crimson spots on each lobe and thicker bristle teeth",
+ "seed": 1,
+ "desc": "Wide spotted flytrap"
+ },
+ {
+ "name": "pl_flytrap_d",
+ "edit": "make its two mouth lobes long and pointed like a spiky clam with crimson stripes, and give it taller thin root legs",
+ "seed": 1,
+ "desc": "Spiky-clam flytrap on tall roots"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_fox.json b/pixellab_library/pl_fox.json
index 0a832e2..5e61c04 100644
--- a/pixellab_library/pl_fox.json
+++ b/pixellab_library/pl_fox.json
@@ -1,30 +1,119 @@
{
"name": "pl_fox",
"plan": "quadruped",
- "head": ["mammal_head"],
- "types": {"fire": 2, "normal": 2, "electric": 1.5},
- "excludes": ["eared"],
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fire": 2,
+ "normal": 2,
+ "electric": 1.5
+ },
+ "excludes": [
+ "eared"
+ ],
"desc": "Lean fox-like creature with huge triangular ears and a forehead diamond",
"prompt": "lean fox-like creature standing alert on four thin legs, long narrow snout, oversized triangular ears with crimson insides, small diamond mark on its forehead, slim body, no tail",
"size": 44,
"seed": 202,
"direction": "south-west",
"parts": [
- {"slot": "tail", "name": "pl_tail_flame",
- "edit": "add a long fluffy tail ending in a big orange and yellow flame, curling up on the right side",
- "seed": 1, "types": {"fire": 6}, "other": 0, "tags": ["tailed", "fiery"], "motif": "fire",
- "palette": "type", "fixed": "fire"},
- {"slot": "head_top", "name": "pl_crown_ice",
- "edit": "add a crown of pale icy blue ice crystals on top of its head",
- "seed": 1, "types": {"ice": 6}, "other": 0, "tags": ["crystal"], "motif": "crystal",
- "palette": "type", "fixed": "ice", "fixed_from": ["main", "accent", "type", "white"]},
- {"slot": "back", "name": "pl_wings_feather",
- "edit": "add a pair of gold feathered wings spread from its back",
- "seed": 1, "types": {"flying": 6, "normal": 1, "psychic": 1, "fire": 1}, "other": 0.3,
- "tags": ["winged", "feathered"], "motif": "feather", "palette": "type"},
- {"slot": "tail", "name": "pl_tail_bluefire",
- "edit": "add a long fluffy tail ending in a big flame of bright deep blue fire with a violet-blue core, curling up on the right side",
- "seed": 8, "types": {"fire": 3, "ghost": 4, "dragon": 1}, "other": 0, "tags": ["tailed", "fiery"], "motif": "fire",
- "palette": "type", "fixed": "bluefire"}
+ {
+ "slot": "tail",
+ "name": "pl_tail_flame",
+ "edit": "add a long fluffy tail ending in a big orange and yellow flame, curling up on the right side",
+ "seed": 1,
+ "types": {
+ "fire": 6
+ },
+ "other": 0,
+ "tags": [
+ "tailed",
+ "fiery"
+ ],
+ "motif": "fire",
+ "palette": "type",
+ "fixed": "fire"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_crown_ice",
+ "edit": "add a crown of pale icy blue ice crystals on top of its head",
+ "seed": 1,
+ "types": {
+ "ice": 6
+ },
+ "other": 0,
+ "tags": [
+ "crystal"
+ ],
+ "motif": "crystal",
+ "palette": "type",
+ "fixed": "ice",
+ "fixed_from": [
+ "main",
+ "accent",
+ "type",
+ "white"
+ ]
+ },
+ {
+ "slot": "back",
+ "name": "pl_wings_feather",
+ "edit": "add a pair of gold feathered wings spread from its back",
+ "seed": 1,
+ "types": {
+ "flying": 6,
+ "normal": 1,
+ "psychic": 1,
+ "fire": 1
+ },
+ "other": 0.3,
+ "tags": [
+ "winged",
+ "feathered"
+ ],
+ "motif": "feather",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_bluefire",
+ "edit": "add a long fluffy tail ending in a big flame of bright deep blue fire with a violet-blue core, curling up on the right side",
+ "seed": 8,
+ "types": {
+ "fire": 3,
+ "ghost": 4,
+ "dragon": 1
+ },
+ "other": 0,
+ "tags": [
+ "tailed",
+ "fiery"
+ ],
+ "motif": "fire",
+ "palette": "type",
+ "fixed": "bluefire"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_fox_b",
+ "edit": "give it a thick fluffy fur ruff around its neck and crimson socks, keep its huge triangular ears and same pose",
+ "seed": 2,
+ "desc": "Fluffy ruffed fox"
+ },
+ {
+ "name": "pl_fox_c",
+ "edit": "make it sleeker with a long narrow snout, short fur and crimson stripes along its back",
+ "seed": 1,
+ "desc": "Sleek striped fox"
+ },
+ {
+ "name": "pl_fox_d",
+ "edit": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush",
+ "seed": 1,
+ "desc": "Baby fox"
+ }
]
}
diff --git a/pixellab_library/pl_frigate.json b/pixellab_library/pl_frigate.json
new file mode 100644
index 0000000..4e44612
--- /dev/null
+++ b/pixellab_library/pl_frigate.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_frigate",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "flying": 5,
+ "normal": 3,
+ "fighting": 2
+ },
+ "desc": "Frigatebird chick puffing out a huge inflated crimson throat balloon",
+ "prompt": "frigatebird chick creature standing upright, huge round inflated crimson throat balloon puffed out on its chest, long thin hooked beak, proud smug eyes, slim body, small folded wings at its sides, short legs, no crest, no tail",
+ "size": 44,
+ "seed": 1301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_frigate_b",
+ "edit": "make it chubbier and covered in fluffy teal down feathers like a chick with a smaller crimson throat balloon and big round eyes, keep the teal colors",
+ "seed": 2,
+ "desc": "Downy small-balloon frigate"
+ },
+ {
+ "name": "pl_frigate_c",
+ "edit": "make the crimson throat balloon heart-shaped and even bigger, and give it a longer neck and narrow eyes",
+ "seed": 1,
+ "desc": "Big heart-balloon frigate"
+ },
+ {
+ "name": "pl_frigate_d",
+ "edit": "make its crimson throat balloon deflated into a droopy wrinkled pouch, give it a scruffy feather collar and crimson eye rings, keep the same size and pose",
+ "seed": 1,
+ "desc": "Deflated-pouch scruffy frigate"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_frizzbird.json b/pixellab_library/pl_frizzbird.json
new file mode 100644
index 0000000..bc3ffe4
--- /dev/null
+++ b/pixellab_library/pl_frizzbird.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_frizzbird",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "electric": 5,
+ "flying": 3,
+ "normal": 2
+ },
+ "desc": "Round sparrow whose feathers stand on end as if it was just shocked, frizzy puffed plumage",
+ "prompt": "small round sparrow bird creature that looks like it was just electrocuted, all of its feathers standing straight out on end in a frizzy spiky puff, wide startled eyes, small short cone beak, tiny folded wings, two thin legs with small feet, crimson tips on its frizzy chest feathers, no crest, no tail",
+ "size": 44,
+ "seed": 1206,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_frizzbird_b",
+ "edit": "make its frizzy feathers much longer and wilder like a huge static puffball, with crimson streaks in the frizz",
+ "seed": 1,
+ "desc": "Wild puffball frizzbird"
+ },
+ {
+ "name": "pl_frizzbird_c",
+ "edit": "make it slimmer and taller with only a short frizzy crown of feathers on its head, sleek body feathers and crimson stripes on its chest",
+ "seed": 1,
+ "desc": "Sleek frizz-crowned bird"
+ },
+ {
+ "name": "pl_frizzbird_d",
+ "edit": "make its frizzed feathers curly and swirly like a perm with crimson tips and a dizzy face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Curly dizzy frizzbird",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_frogmouth.json b/pixellab_library/pl_frogmouth.json
new file mode 100644
index 0000000..c8004dc
--- /dev/null
+++ b/pixellab_library/pl_frogmouth.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_frogmouth",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "flying": 3,
+ "ghost": 2
+ },
+ "desc": "Tawny frogmouth chick with a huge flat frog-like beak, sleepy squint and bark-mottled plumage",
+ "prompt": "tawny frogmouth bird chick sitting upright, a very wide flat frog-like beak mouth, half-closed sleepy squinting eyes, fluffy mottled bark-patterned feathers, bristly whisker tufts above its beak, plump round body, short legs, no crest, no tail",
+ "size": 44,
+ "seed": 2211,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_frogmouth_b",
+ "edit": "make it rounder and fluffier like a puffball with crimson streaks in its feathers",
+ "seed": 1,
+ "desc": "Puffball frogmouth"
+ },
+ {
+ "name": "pl_frogmouth_c",
+ "edit": "make it taller and slimmer, stretched upright like a broken branch with its wide beak pointed up, keep its fluffy feathers, add crimson bark-like stripes",
+ "seed": 7,
+ "desc": "Stretched branch frogmouth"
+ },
+ {
+ "name": "pl_frogmouth_d",
+ "edit": "make its feathers sleek and smooth with crimson bark-like stripes and wide-open round eyes, keep the same size and pose",
+ "seed": 1,
+ "desc": "Sleek wide-eyed frogmouth"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_furnace.json b/pixellab_library/pl_furnace.json
new file mode 100644
index 0000000..f32fc45
--- /dev/null
+++ b/pixellab_library/pl_furnace.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_furnace",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "normal": 3,
+ "rock": 2
+ },
+ "desc": "Pot-bellied iron stove creature with a grated belly door and stubby limbs",
+ "prompt": "living pot-bellied iron stove creature, round bulging belly with a small grated door showing a crimson glow, face with big eyes on the upper body, short stubby legs and short stubby arms, small round lid on top, rivets along its sides, no chimney",
+ "size": 44,
+ "seed": 1801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_furnace_b",
+ "edit": "make it a tall narrow boxy stove with square corners, a big crimson glowing grate across its chest and thin legs",
+ "seed": 1,
+ "desc": "Tall boxy stove"
+ },
+ {
+ "name": "pl_furnace_c",
+ "edit": "make it squat and wide like a round cauldron kettle with a wide grin, crimson rivet dots all around and tiny feet",
+ "seed": 1,
+ "desc": "Squat kettle stove"
+ },
+ {
+ "name": "pl_furnace_d",
+ "edit": "make it very tall and narrow like a tall chimney stove on thin legs, keep its grated belly door, face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded furnace"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_gamecock.json b/pixellab_library/pl_gamecock.json
new file mode 100644
index 0000000..d8f7ffe
--- /dev/null
+++ b/pixellab_library/pl_gamecock.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_gamecock",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "flying": 3,
+ "fire": 2
+ },
+ "desc": "Fighting rooster with a puffed chest, crimson comb and wattle, spurred legs",
+ "prompt": "fighting rooster creature in a proud combat stance, puffed-out barrel chest, short thick neck, small sharp beak, small crimson comb and wattle, folded stubby wings tucked at its sides, strong legs with sharp spurs, no tail feathers",
+ "size": 44,
+ "seed": 1701,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_gamecock_b",
+ "edit": "make it leaner and taller with long legs, a long neck and crimson stripes on its chest",
+ "seed": 1,
+ "desc": "Tall lean gamecock"
+ },
+ {
+ "name": "pl_gamecock_c",
+ "edit": "make it chubbier and rounder with fluffy puffed feathers, feathered feet and crimson spots on its chest",
+ "seed": 1,
+ "desc": "Fluffy round gamecock"
+ },
+ {
+ "name": "pl_gamecock_d",
+ "edit": "make it a fluffy baby chick version with a round downy body, a tiny comb and huge eyes, keep it teal",
+ "seed": 1,
+ "desc": "A fluffy baby chick version"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_gargoyle.json b/pixellab_library/pl_gargoyle.json
new file mode 100644
index 0000000..d92f240
--- /dev/null
+++ b/pixellab_library/pl_gargoyle.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_gargoyle",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "rock": 5,
+ "ghost": 3,
+ "flying": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Squat stone gargoyle statue sitting on its haunches with cracked stone skin",
+ "prompt": "squat stone gargoyle statue creature crouching on its haunches, rough teal stone skin with cracks and chips, wide grinning mouth with two tiny fangs, small pointed ears, clawed hands resting on its knees, crimson glowing eyes, no wings, no horns, no tail",
+ "size": 44,
+ "seed": 2602,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_gargoyle_b",
+ "edit": "make it chubbier and rounder with a big pot belly, moss-like crimson cracks and a grumpy frown",
+ "seed": 1,
+ "desc": "Pot-bellied grumpy gargoyle"
+ },
+ {
+ "name": "pl_gargoyle_c",
+ "edit": "make it leaner and taller with a longer dog-like snout and crimson rune marks carved on its chest",
+ "seed": 1,
+ "desc": "Lean runed gargoyle"
+ },
+ {
+ "name": "pl_gargoyle_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its gargoyle face and teal stone skin and a tiny fang smile, no human features",
+ "seed": 1,
+ "desc": "Young chibi gargoyle"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_genie.json b/pixellab_library/pl_genie.json
new file mode 100644
index 0000000..770d66a
--- /dev/null
+++ b/pixellab_library/pl_genie.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_genie",
+ "plan": "serpentine",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "ghost": 3,
+ "fire": 2
+ },
+ "desc": "Genie rising from a crimson oil lamp with a smoke-wisp lower body and crossed arms",
+ "prompt": "genie spirit creature rising out of a small crimson oil lamp, its lower body is a curling wisp of smoke coming out of the lamp spout, a round bald head, arms crossed over its chest, a serene smile, no legs, no hat",
+ "size": 44,
+ "seed": 2213,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_genie_b",
+ "edit": "make it chubbier with a round belly and a bushy beard, still rising out of the crimson oil lamp on a smoke wisp, with crimson bracelets on its wrists",
+ "seed": 7,
+ "desc": "Bearded chubby genie",
+ "skip": true
+ },
+ {
+ "name": "pl_genie_c",
+ "edit": "make it slimmer with a taller pointed head, a longer curlier smoke body and crimson stripes on its arms",
+ "seed": 1,
+ "desc": "Slim pointed-head genie"
+ },
+ {
+ "name": "pl_genie_d",
+ "edit": "make its smoke tail puffier and cloud-like with crimson swirl marks and give it a mischievous grin, keep the same size and pose",
+ "seed": 1,
+ "desc": "Puffy-smoke grinning genie",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_geode.json b/pixellab_library/pl_geode.json
new file mode 100644
index 0000000..896e2bb
--- /dev/null
+++ b/pixellab_library/pl_geode.json
@@ -0,0 +1,43 @@
+{
+ "name": "pl_geode",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "rock": 5,
+ "psychic": 3
+ },
+ "excludes": [
+ "crystal"
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Half-cracked geode egg with crystal-lined hollow",
+ "prompt": "round geode rock creature shaped like an egg with its top cracked open, rough bumpy teal stone outer shell, the open top shows a hollow lined with crimson crystal points, a face on the front of the rough shell with two big eyes and a small mouth, two tiny stone feet",
+ "size": 44,
+ "seed": 8010,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_geode_b",
+ "edit": "make it wider and lumpier like a potato rock with the crack running across its front showing a crimson crystal stripe",
+ "seed": 1,
+ "desc": "Lumpy cracked geode"
+ },
+ {
+ "name": "pl_geode_c",
+ "edit": "make it taller and oval with smooth polished banded agate rings of teal and crimson on its shell",
+ "seed": 1,
+ "desc": "Banded agate geode"
+ },
+ {
+ "name": "pl_geode_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young geode"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_gharial.json b/pixellab_library/pl_gharial.json
new file mode 100644
index 0000000..b1523d5
--- /dev/null
+++ b/pixellab_library/pl_gharial.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_gharial",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "water": 5,
+ "dragon": 3,
+ "ground": 2
+ },
+ "desc": "Low-slung gharial hatchling with a very long thin snout ending in a bulb knob",
+ "prompt": "gharial crocodilian hatchling creature lying low on four short sprawled legs, 3/4 view facing the viewer, very long thin narrow snout pointing forward with a round bulb knob at the tip, rows of tiny pointed teeth along the snout, big eyes on top of its head, bumpy crimson scute ridges along its back, pale belly, no tail",
+ "size": 44,
+ "seed": 3501,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_gharial_b",
+ "edit": "make it chubbier and rounder with a shorter wider snout and big crimson blotches on its back",
+ "seed": 1,
+ "desc": "Chubby short-snouted gharial"
+ },
+ {
+ "name": "pl_gharial_c",
+ "edit": "make it leaner and lankier while staying low on all four legs in the same lying pose, with tall spiky crimson scute ridges along its back and a thinner longer snout",
+ "seed": 3,
+ "desc": "Lean spiky-backed gharial"
+ },
+ {
+ "name": "pl_gharial_d",
+ "edit": "make it squat and armored with thick bony scutes on its back and a shorter snout",
+ "seed": 1,
+ "desc": "squat and armored with thick bony scutes on its back"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ghostkoi.json b/pixellab_library/pl_ghostkoi.json
new file mode 100644
index 0000000..5974800
--- /dev/null
+++ b/pixellab_library/pl_ghostkoi.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_ghostkoi",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "water": 3,
+ "dragon": 2
+ },
+ "desc": "Pale koi carp with long trailing tattered veil fins and crimson blotches",
+ "prompt": "pale koi carp creature floating upright, round plump body with big crimson blotches, long flowing tattered veil-like fins trailing down that fade into wisps, two short whisker barbels, big hollow ghostly eyes, small round mouth",
+ "size": 44,
+ "seed": 2111,
+ "variants": [
+ {
+ "name": "pl_ghostkoi_b",
+ "edit": "keep it a fish with the same pose, make its fish body chubbier and rounder with shorter fins, big shiny fish scales and a large crimson cap blotch on top of its head",
+ "seed": 2,
+ "desc": "Chubby scaly capped koi"
+ },
+ {
+ "name": "pl_ghostkoi_c",
+ "edit": "keep it a fish with the same pose and size, make its fish body slimmer and its trailing tattered fins longer and wispier, with thin crimson stripes across its body",
+ "seed": 2,
+ "desc": "Slim wispy-finned koi"
+ },
+ {
+ "name": "pl_ghostkoi_d",
+ "edit": "young chibi fry version with a huge round head, big eyes, a tiny body and small wispy fins, keep it a fish with its fish face, no human features",
+ "seed": 1,
+ "desc": "Koi fry"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_glider.json b/pixellab_library/pl_glider.json
new file mode 100644
index 0000000..f46101a
--- /dev/null
+++ b/pixellab_library/pl_glider.json
@@ -0,0 +1,45 @@
+{
+ "name": "pl_glider",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "flying": 5,
+ "normal": 3,
+ "grass": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Chubby flying squirrel with a bushy baked-in tail and furry gliding skin folds along its sides",
+ "prompt": "chubby flying squirrel creature crouching on four short legs, a thick furry fold of loose skin running along each side of its body from front paw to back paw, folded down close against its body, big half-lidded sleepy eyes, tiny rounded ears, small pink nose, crimson stripe along each skin fold edge, no wings, no membrane spread out, no tail",
+ "size": 44,
+ "seed": 1502,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_glider_b",
+ "edit": "make it much chubbier with puffy fluffy cheeks and bigger wide-open round eyes and a crimson mask stripe across its eyes",
+ "seed": 1,
+ "desc": "Chubby masked glider"
+ },
+ {
+ "name": "pl_glider_c",
+ "edit": "make it slimmer and longer with crimson spots along its side skin folds and narrow sly eyes, keep the small rounded ears",
+ "seed": 2,
+ "desc": "Slim spotted sly glider",
+ "skip": true
+ },
+ {
+ "name": "pl_glider_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its squirrel face and bushy tail and teal fur, no human features",
+ "seed": 1,
+ "desc": "Young chibi glider"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_golem.json b/pixellab_library/pl_golem.json
new file mode 100644
index 0000000..66bfb1f
--- /dev/null
+++ b/pixellab_library/pl_golem.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_golem",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "rock": 5,
+ "fighting": 3
+ },
+ "desc": "Golem of stacked carved brick blocks with slit eyes",
+ "prompt": "chunky golem creature built from stacked carved teal stone blocks, a small square block head with a single horizontal glowing crimson eye slit, wide square torso block with a crimson carved rune on its chest, thick blocky arms hanging down, short square block legs",
+ "size": 44,
+ "seed": 8111,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_golem_b",
+ "edit": "make it taller and thinner like a stone pillar with mossy cracks and two round crimson eyes instead of a slit",
+ "seed": 1,
+ "desc": "Pillar golem"
+ },
+ {
+ "name": "pl_golem_c",
+ "edit": "make it much wider and squatter with a huge round boulder torso, tiny head and crimson rune bands on its arms",
+ "seed": 1,
+ "desc": "Boulder-torso golem"
+ },
+ {
+ "name": "pl_golem_d",
+ "edit": "make it twice as round and squat like a boulder with very short thick legs and tiny arms, keep its slit visor eyes and teal color",
+ "seed": 7,
+ "desc": "Armored golem"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_gourd.json b/pixellab_library/pl_gourd.json
new file mode 100644
index 0000000..ce1ab6f
--- /dev/null
+++ b/pixellab_library/pl_gourd.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_gourd",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "grass": 5,
+ "ground": 3,
+ "ghost": 2
+ },
+ "desc": "Bottle-gourd calabash creature with a pinched waist and a curly stem nub",
+ "prompt": "bottle gourd creature shaped like a calabash, a small round upper bulb with a cheerful face and a big round lower bulb, pinched narrow waist, a short curly stem nub on top of its head, vertical crimson stripes running down its bulbs, two tiny stubby feet, no arms",
+ "size": 44,
+ "seed": 1105,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_gourd_b",
+ "edit": "make the lower bulb twice as wide and very squat and flat like a pumpkin, and tie a crimson sash around its narrow waist",
+ "seed": 2,
+ "desc": "Squat sashed gourd"
+ },
+ {
+ "name": "pl_gourd_c",
+ "edit": "make it taller with a longer neck between the bulbs and bumpy warty skin with crimson dots",
+ "seed": 1,
+ "desc": "Tall warty gourd"
+ },
+ {
+ "name": "pl_gourd_d",
+ "edit": "turn it into a three-bulb stacked gourd with a smaller middle bulb between the head and the big bottom bulb, with crimson rings between the bulbs",
+ "seed": 1,
+ "desc": "Three-bulb stacked gourd"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_grub.json b/pixellab_library/pl_grub.json
index 727294d..ef07233 100644
--- a/pixellab_library/pl_grub.json
+++ b/pixellab_library/pl_grub.json
@@ -9,7 +9,6 @@
"grass": 1.5,
"poison": 1.5
},
- "other": 1,
"desc": "Plump stacked-segment larva with a wide flat face and stubby nub feet",
"prompt": "plump chubby larva grub creature sitting upright facing the viewer, body made of four fat stacked teal rings that shrink toward the top, wide flat round face with a broad smiling mouth and two small eyes set far apart, crimson freckle dots along each ring, many tiny stubby nub feet along its belly, no antennae, no horn, no tail",
"size": 44,
@@ -80,5 +79,25 @@
"motif": "plant",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_grub_b",
+ "edit": "make it longer and slimmer with more body segments and crimson bands on each segment",
+ "seed": 1,
+ "desc": "Long banded grub"
+ },
+ {
+ "name": "pl_grub_c",
+ "edit": "make it fatter and rounder with fewer bigger segments, fuzzy hair and crimson spots",
+ "seed": 1,
+ "desc": "Fat fuzzy grub"
+ },
+ {
+ "name": "pl_grub_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 2,
+ "desc": "Extra-fluffy grub"
+ }
]
-}
\ No newline at end of file
+}
diff --git a/pixellab_library/pl_gryphon.json b/pixellab_library/pl_gryphon.json
new file mode 100644
index 0000000..67b1f4a
--- /dev/null
+++ b/pixellab_library/pl_gryphon.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_gryphon",
+ "plan": "quadruped",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "flying": 5,
+ "fighting": 3,
+ "rock": 2
+ },
+ "desc": "Griffon chick: eagle head with a stubby hooked beak on a chunky lion-cub body with a fluffy chest ruff",
+ "prompt": "griffon chick creature standing on four legs, eagle-like head with a short hooked beak and fierce big eyes, fluffy feathered chest ruff, chunky lion cub body with big soft paws on all four legs, crimson feather markings around its eyes, no wings, no tail",
+ "size": 44,
+ "seed": 1401,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_gryphon_b",
+ "edit": "make its feather chest ruff much bigger and puffier, its body chubbier, and add crimson stripes on its legs",
+ "seed": 1,
+ "desc": "Big-ruff striped griffon"
+ },
+ {
+ "name": "pl_gryphon_c",
+ "edit": "make it lankier with longer legs, a narrower longer beak and crimson spots on its back",
+ "seed": 1,
+ "desc": "Lanky spotted griffon"
+ },
+ {
+ "name": "pl_gryphon_d",
+ "edit": "cover its body in sleek scale-like feathers with crimson chevron markings on its chest and give it a sharper hooked beak, keep the same size and pose",
+ "seed": 1,
+ "desc": "Scaled chevron griffon"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_guppy.json b/pixellab_library/pl_guppy.json
index 4db6e58..37dbd11 100644
--- a/pixellab_library/pl_guppy.json
+++ b/pixellab_library/pl_guppy.json
@@ -87,5 +87,25 @@
"motif": "water",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_guppy_b",
+ "edit": "make it taller and flatter like an angelfish with crimson vertical stripes",
+ "seed": 1,
+ "desc": "Tall striped fish"
+ },
+ {
+ "name": "pl_guppy_c",
+ "edit": "make it rounder and puffier like a pufferfish with tiny spikes and crimson spots",
+ "seed": 1,
+ "desc": "Puffy spiky fish"
+ },
+ {
+ "name": "pl_guppy_d",
+ "edit": "cover its body in thick overlapping armor plates with crimson plate edges, same pose",
+ "seed": 1,
+ "desc": "Armored guppy"
+ }
]
}
diff --git a/pixellab_library/pl_hammerhead.json b/pixellab_library/pl_hammerhead.json
new file mode 100644
index 0000000..297437b
--- /dev/null
+++ b/pixellab_library/pl_hammerhead.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_hammerhead",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "water": 3,
+ "dragon": 2
+ },
+ "desc": "Hammerhead shark pup standing upright on its fins with a wide hammer head",
+ "prompt": "hammerhead shark pup creature standing upright on two stubby pectoral fins, very wide flat T-shaped hammer head with an eye on each end, wide grinning mouth with small teeth, chunky muscular body, pale cream belly, crimson stripes on its sides, no tail fin",
+ "size": 44,
+ "seed": 3201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_hammerhead_b",
+ "edit": "make it bulkier and more muscular with a broad chest, thick fin arms like fists and crimson scars on its body, keep it teal",
+ "seed": 1,
+ "desc": "Muscled scarred hammerhead"
+ },
+ {
+ "name": "pl_hammerhead_c",
+ "edit": "make it smaller and rounder with a cute chubby body, keep its very wide flat hammer-shaped head, big friendly eyes and crimson spots on its back, keep it teal, it holds nothing",
+ "seed": 2,
+ "desc": "Small round hammerhead"
+ },
+ {
+ "name": "pl_hammerhead_d",
+ "edit": "make it an old scarred shark with chipped fins, crimson scar lines and a stubbly jaw, keep its very wide flat hammer-shaped head, keep it teal",
+ "seed": 2,
+ "desc": "Old scarred hammerhead",
+ "skip": true
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_handheld.json b/pixellab_library/pl_handheld.json
new file mode 100644
index 0000000..0fddc26
--- /dev/null
+++ b/pixellab_library/pl_handheld.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_handheld",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "psychic": 3,
+ "normal": 2
+ },
+ "desc": "Handheld game console critter with a screen face, D-pad and buttons",
+ "prompt": "handheld game console creature standing on two stubby legs, rounded rectangular teal body, a glowing screen on its upper half showing a simple pixel face, a crimson cross-shaped D-pad and two round crimson buttons below the screen, tiny arms",
+ "size": 44,
+ "seed": 5501,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_handheld_b",
+ "edit": "make it wider like a sideways console with buttons on both sides of the screen and crimson grips, keep it teal",
+ "seed": 1,
+ "desc": "Wide sideways console"
+ },
+ {
+ "name": "pl_handheld_c",
+ "edit": "make it chunkier and older like a brick-shaped console with a tiny screen and crimson stripes, keep it teal",
+ "seed": 1,
+ "desc": "Brick console"
+ },
+ {
+ "name": "pl_handheld_d",
+ "edit": "make it twice as wide and squat like a chunky landscape game console on stubby legs, keep its screen face and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change handheld",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hare.json b/pixellab_library/pl_hare.json
new file mode 100644
index 0000000..94aa905
--- /dev/null
+++ b/pixellab_library/pl_hare.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_hare",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "normal": 3,
+ "flying": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Arctic hare standing tall on huge snowshoe hind feet with long upright ears",
+ "prompt": "arctic hare creature standing tall upright on two huge long flat snowshoe hind feet, slim body with thick fluffy winter fur, two long upright ears with crimson tips, small front paws held together, split upper lip and twitchy nose, narrow alert eyes, no tail",
+ "size": 48,
+ "seed": 2701,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_hare_b",
+ "edit": "make it chubbier and rounder with shorter ears flopping down at the sides and crimson cheek patches",
+ "seed": 1,
+ "desc": "Chubby lop hare"
+ },
+ {
+ "name": "pl_hare_c",
+ "edit": "make it leaner and lankier with extra long legs, much bigger feet and crimson stripe markings on its legs",
+ "seed": 1,
+ "desc": "Lanky striped hare"
+ },
+ {
+ "name": "pl_hare_d",
+ "edit": "make it extra fluffy with a thick winter coat ruff around its neck and crimson-tipped ears",
+ "seed": 1,
+ "desc": "extra fluffy with a thick winter coat ruff around it"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hatchetfish.json b/pixellab_library/pl_hatchetfish.json
new file mode 100644
index 0000000..80b3c57
--- /dev/null
+++ b/pixellab_library/pl_hatchetfish.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_hatchetfish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "water": 3,
+ "ghost": 2
+ },
+ "desc": "Deep-sea hatchetfish: flat hatchet-shaped body, upturned tube eyes, glowing belly light dots",
+ "prompt": "deep sea hatchetfish creature hovering upright, very flat thin body shaped like an axe head with a deep keel-shaped belly, huge upturned tube eyes on top of its head, small downturned mouth, a row of glowing round light dots along the bottom edge of its belly, crimson outline stripes along its keel, tiny clear side fins like little arms, no tail fin, no dorsal fin",
+ "size": 44,
+ "seed": 1201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_hatchetfish_b",
+ "edit": "make it rounder and chubbier with a deeper round belly, bigger glowing belly dots and crimson spots on its sides",
+ "seed": 1,
+ "desc": "Round deep-bellied hatchetfish"
+ },
+ {
+ "name": "pl_hatchetfish_c",
+ "edit": "make it taller and thinner with a flat narrow fish body like a coin standing on edge, a sharply pointed keel belly and crimson zigzag stripes, keep its big eyes and face",
+ "seed": 13,
+ "desc": "Thin keel-bellied hatchetfish"
+ },
+ {
+ "name": "pl_hatchetfish_d",
+ "edit": "give it big shiny mirror-like scales with crimson edges and a grumpy downturned mouth, keep the same size and pose",
+ "seed": 1,
+ "desc": "Mirror-scaled grumpy hatchetfish"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hawk.json b/pixellab_library/pl_hawk.json
index f75b6fd..1931ffe 100644
--- a/pixellab_library/pl_hawk.json
+++ b/pixellab_library/pl_hawk.json
@@ -82,5 +82,25 @@
"tags": [],
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_hawk_b",
+ "edit": "make it bulkier with a thick fluffy chest, a shorter hooked beak and crimson spotted chest feathers",
+ "seed": 1,
+ "desc": "Bulky spotted raptor"
+ },
+ {
+ "name": "pl_hawk_c",
+ "edit": "make it sleeker and slimmer with a narrow head, a long pointed beak and crimson barred feathers",
+ "seed": 1,
+ "desc": "Sleek barred raptor"
+ },
+ {
+ "name": "pl_hawk_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 2,
+ "desc": "Crystal-studded hawk"
+ }
]
}
diff --git a/pixellab_library/pl_hazmat.json b/pixellab_library/pl_hazmat.json
new file mode 100644
index 0000000..8595a46
--- /dev/null
+++ b/pixellab_library/pl_hazmat.json
@@ -0,0 +1,58 @@
+{
+ "name": "pl_hazmat",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "normal": 3,
+ "electric": 2
+ },
+ "desc": "Little critter in a puffy hazmat suit with a big round face visor",
+ "prompt": "little creature wearing a puffy baggy teal hazmat suit with a hood, a big round clear visor window on its face showing two big eyes inside, a small round air filter on its chest, crimson rubber gloves and boots, stubby arms and legs",
+ "size": 44,
+ "seed": 2104,
+ "variants": [
+ {
+ "name": "pl_hazmat_b",
+ "edit": "make the suit much puffier and rounder like a balloon with a wider rectangular visor and crimson tape patches",
+ "seed": 1,
+ "desc": "Puffy balloon hazmat"
+ },
+ {
+ "name": "pl_hazmat_c",
+ "edit": "make it thinner and taller with a smaller round visor, crimson stripes on the sleeves and a hose looping from its filter",
+ "seed": 1,
+ "desc": "Slim striped hazmat"
+ },
+ {
+ "name": "pl_hazmat_d",
+ "edit": "make the hazmat suit twice as puffy and round like an inflated ball with crimson warning stripes, keep its big round face visor",
+ "seed": 11,
+ "desc": "Puffy striped hazmat",
+ "skip": false
+ }
+ ],
+ "direction": "south",
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_gas_tanks",
+ "edit": "add two small gold gas canister tanks strapped onto its back, their tops poking out above both shoulders",
+ "seed": 1,
+ "types": {
+ "poison": 6,
+ "electric": 1,
+ "normal": 1
+ },
+ "other": 0.1,
+ "plans": "all",
+ "requires": [],
+ "tags": [],
+ "excludes": [],
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_heavybag.json b/pixellab_library/pl_heavybag.json
new file mode 100644
index 0000000..7ca2480
--- /dev/null
+++ b/pixellab_library/pl_heavybag.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_heavybag",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "normal": 3,
+ "rock": 2
+ },
+ "desc": "Living punching bag: stitched cylinder body with a face and taped stubby arms",
+ "prompt": "living punching bag creature, tall rounded cylinder body made of stitched teal leather panels, a determined face on the front, short stubby arms wrapped in crimson tape, crimson band around its top and bottom, tiny feet, no chain",
+ "size": 44,
+ "seed": 3501,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_heavybag_b",
+ "edit": "make it shorter and much wider like a fat round barrel with patched seams and crimson stripes, keep it teal",
+ "seed": 1,
+ "desc": "Fat patched bag"
+ },
+ {
+ "name": "pl_heavybag_c",
+ "edit": "make it taller and narrower with a dented battered surface, a bandage on its face and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "Tall battered bag"
+ },
+ {
+ "name": "pl_heavybag_d",
+ "edit": "make it a round teardrop speed bag shape with a crimson stitched seam down the middle, no string, no chain, keep it teal",
+ "seed": 2,
+ "desc": "Teardrop speed bag"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_hellbender.json b/pixellab_library/pl_hellbender.json
new file mode 100644
index 0000000..99fbb0d
--- /dev/null
+++ b/pixellab_library/pl_hellbender.json
@@ -0,0 +1,34 @@
+{
+ "name": "pl_hellbender",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "fire": 5,
+ "water": 3,
+ "poison": 2
+ },
+ "desc": "Flat wrinkly hellbender salamander with a wide paddle head and crimson ember spots",
+ "prompt": "very flat wide hellbender salamander creature lying low on the ground, seen from the front facing the viewer, huge flat wide paddle-shaped head with tiny dot eyes set at the far edges and a thin wide mouth line, baggy wrinkly loose skin flaps hanging along its sides, four short stubby splayed legs, mottled crimson ember blotches, its rear hidden behind its body, no tail at all",
+ "size": 44,
+ "seed": 1102,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_hellbender_b",
+ "edit": "make it chunkier and taller with a rounder head, thick crimson stripes across its back instead of spots and bigger round eyes",
+ "seed": 1,
+ "desc": "Chunky striped hellbender",
+ "skip": true
+ },
+ {
+ "name": "pl_hellbender_c",
+ "edit": "make it longer and skinnier with much deeper wrinkly skin frills along its sides and a narrower pointed head with crimson cheek patches",
+ "seed": 1,
+ "desc": "Skinny frilled hellbender",
+ "skip": true
+ }
+ ],
+ "skip": true
+}
diff --git a/pixellab_library/pl_hermit.json b/pixellab_library/pl_hermit.json
new file mode 100644
index 0000000..d61845d
--- /dev/null
+++ b/pixellab_library/pl_hermit.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_hermit",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "water": 5,
+ "rock": 3,
+ "bug": 2
+ },
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "desc": "Hermit crab carrying a half coconut shell on its back like a house",
+ "prompt": "hermit crab creature carrying a big hollow half coconut shell on its back like a dome house, the shell is crimson red with rough fibrous texture and darker crimson bands, its small body peeks out under the front of the shell, two big round eyes on short stalks, one big claw and one small claw held up in front, short pointed legs, nothing on its head",
+ "size": 44,
+ "seed": 1603,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_hermit_b",
+ "edit": "make its shell much taller like a tall pointed spiral cone tower, and give it huge oversized crimson claws and longer spindly legs",
+ "seed": 3,
+ "desc": "Cone-tower hermit with huge claws"
+ },
+ {
+ "name": "pl_hermit_c",
+ "edit": "make its coconut shell flatter and wider like a low lid, cracked with a crimson patch, and give it hairy spiky legs",
+ "seed": 1,
+ "desc": "Flat cracked-shell hermit"
+ },
+ {
+ "name": "pl_hermit_d",
+ "edit": "make the crab twice as round and chubby with thick shaggy teal fur on its legs and crimson stripes, keep its half coconut shell house on its back and its two claws",
+ "seed": 11,
+ "desc": "Chubby shaggy hermit crab",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hoard.json b/pixellab_library/pl_hoard.json
new file mode 100644
index 0000000..fd4969c
--- /dev/null
+++ b/pixellab_library/pl_hoard.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_hoard",
+ "plan": "blob",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Little teal dragon curled up asleep on a heap of gold coins",
+ "prompt": "little teal dragon curled up asleep on top of a small heap of round gold coins, chin resting on its front paws, closed sleepy eyes, rounded snout, crimson belly scales, its body wrapped around itself, no wings, no horns",
+ "size": 44,
+ "seed": 3801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_hoard_b",
+ "edit": "make the dragon awake and sitting up on the coin heap with a smug grin and crimson spots on its back",
+ "seed": 1,
+ "desc": "Awake smug hoard dragon"
+ },
+ {
+ "name": "pl_hoard_c",
+ "edit": "make the coin heap under it much wider and taller so the little dragon sits up high on a big mound of gold coins, keep the dragon the same",
+ "seed": 2,
+ "desc": "Big coin mound hoard"
+ },
+ {
+ "name": "pl_hoard_d",
+ "edit": "make it twice as round and fat with a huge belly and short limbs, keep its face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded hoard"
+ }
+ ],
+ "excludes": [
+ "horned"
+ ]
+}
diff --git a/pixellab_library/pl_hoatzin.json b/pixellab_library/pl_hoatzin.json
new file mode 100644
index 0000000..89c093d
--- /dev/null
+++ b/pixellab_library/pl_hoatzin.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_hoatzin",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "flying": 3,
+ "poison": 2
+ },
+ "desc": "Hoatzin dinosaur-bird with a punk crest stub, bare face skin and clawed wing-hands",
+ "prompt": "hoatzin-like dinosaur bird standing upright on scaly clawed feet, short spiky punk crest stub, bare crimson face skin around red eyes, small stout beak, scruffy shaggy feathers, small clawed hands on its wing stubs, scaly legs, no tail feathers",
+ "size": 44,
+ "seed": 2601,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_hoatzin_b",
+ "edit": "make it a round fluffy teal chick with a huge scruffy teal body, a tiny beak and crimson stripes on its chest, keep the teal colors",
+ "seed": 2,
+ "desc": "Fluffy chick hoatzin"
+ },
+ {
+ "name": "pl_hoatzin_c",
+ "edit": "make it hunched and stockier with a big shaggy feather mane around its neck with crimson tips and a hooked beak, keep the same height",
+ "seed": 2,
+ "desc": "Lean long-necked hoatzin"
+ },
+ {
+ "name": "pl_hoatzin_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 1,
+ "desc": "Armored hoatzin"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hoopoe.json b/pixellab_library/pl_hoopoe.json
new file mode 100644
index 0000000..09a8fc2
--- /dev/null
+++ b/pixellab_library/pl_hoopoe.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_hoopoe",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "flying": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "slots": [
+ "back",
+ "tail"
+ ],
+ "desc": "Hoopoe with a baked fan crest, long thin curved bill and crimson barred wings",
+ "prompt": "hoopoe bird creature standing upright, big fan-shaped feather crest on its head with crimson tips, long thin downcurved bill, round body, folded wings at its sides with bold crimson and dark zebra bars, short legs, no tail",
+ "size": 44,
+ "seed": 3101,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_hoopoe_b",
+ "edit": "make it much chubbier and rounder with a shorter bill and crimson spots on its chest, keep the same size and pose",
+ "seed": 1,
+ "desc": "Chubby spotted hoopoe"
+ },
+ {
+ "name": "pl_hoopoe_c",
+ "edit": "make its body slimmer with a scruffy fluffy chest and a crest of shaggy pointed feathers, keep the same size and pose",
+ "seed": 1,
+ "desc": "Slim shaggy-crested hoopoe"
+ },
+ {
+ "name": "pl_hoopoe_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its bird face and teal feathers and a tiny fan crest, no human features",
+ "seed": 1,
+ "desc": "Young chibi hoopoe"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hourglass.json b/pixellab_library/pl_hourglass.json
new file mode 100644
index 0000000..9bfb5ca
--- /dev/null
+++ b/pixellab_library/pl_hourglass.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_hourglass",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ground": 5,
+ "psychic": 3,
+ "ghost": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Living hourglass with a face in the upper bulb",
+ "prompt": "living hourglass creature, two rounded glass bulbs joined by a narrow waist, teal sand filling the bottom bulb and trickling down from the top bulb, a cute face inside the top glass bulb, flat round crimson wooden caps on top and bottom with two thin posts on each side used as arms, two tiny feet",
+ "size": 44,
+ "seed": 9303,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_hourglass_b",
+ "edit": "make the glass bulbs round and fat like two balls, fill them with crimson sand instead of teal sand, and wrap a thick teal rope coil around its narrow waist",
+ "seed": 3,
+ "desc": "Squat hourglass"
+ },
+ {
+ "name": "pl_hourglass_c",
+ "edit": "make it tall and thin with long narrow glass bulbs, ornate curly side posts and almost all the sand in the top bulb",
+ "seed": 1,
+ "desc": "Tall ornate hourglass"
+ },
+ {
+ "name": "pl_hourglass_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat hourglass",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_housefly.json b/pixellab_library/pl_housefly.json
new file mode 100644
index 0000000..e110ac2
--- /dev/null
+++ b/pixellab_library/pl_housefly.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_housefly",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "electric": 5,
+ "bug": 3,
+ "poison": 2
+ },
+ "desc": "Chibi housefly with huge crimson compound eyes and a bristly body, rubbing its hands",
+ "prompt": "chibi housefly bug creature standing upright, huge round crimson compound eyes covering most of its head, short fuzzy bristly body, a tiny sponge-tipped mouth, six thin hairy legs, front legs rubbing its hands together, no wings, no antennae",
+ "size": 44,
+ "seed": 2207,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_housefly_b",
+ "edit": "make it fatter and rounder like a ball with thick bristly fur and crimson bands on its belly",
+ "seed": 1,
+ "desc": "Fat bristly fly"
+ },
+ {
+ "name": "pl_housefly_c",
+ "edit": "make it slimmer and longer like a gnat with longer thin legs and smaller eyes with crimson stripes",
+ "seed": 1,
+ "desc": "Slim gnat-like fly"
+ },
+ {
+ "name": "pl_housefly_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its fly face and huge crimson compound eyes and teal body, no human features",
+ "seed": 1,
+ "desc": "Young chibi housefly"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hummer.json b/pixellab_library/pl_hummer.json
new file mode 100644
index 0000000..16d1a50
--- /dev/null
+++ b/pixellab_library/pl_hummer.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_hummer",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "flying": 5,
+ "grass": 3,
+ "electric": 2
+ },
+ "desc": "Tiny hovering hummingbird with a long needle beak and a shimmering crimson throat bib",
+ "prompt": "tiny plump hummingbird creature hovering upright, very long thin straight needle beak, shimmering crimson throat bib, round head with big bright eyes, tiny wings folded flat against its sides, tiny tucked feet, compact round body, no crest, no tail, no raised wings",
+ "size": 40,
+ "seed": 1202,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_hummer_b",
+ "edit": "make its body rounder and fluffier with a curved downward beak and crimson scale-like speckles on its chest",
+ "seed": 1,
+ "desc": "Fluffy curve-billed hummer"
+ },
+ {
+ "name": "pl_hummer_c",
+ "edit": "make its head much bigger and rounder and its body tiny, and give it a large crimson scaly collar spreading wide around its neck",
+ "seed": 2,
+ "desc": "Big-headed collared hummer"
+ },
+ {
+ "name": "pl_hummer_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its bird face and teal feathers and long needle beak, no human features",
+ "seed": 1,
+ "desc": "Young chibi hummer"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_hyena.json b/pixellab_library/pl_hyena.json
new file mode 100644
index 0000000..ebfd8ac
--- /dev/null
+++ b/pixellab_library/pl_hyena.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_hyena",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ground": 5,
+ "fighting": 3,
+ "normal": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Sloped-back spotted hyena pup with big round ears and a wide grin",
+ "prompt": "scrappy hyena pup creature standing on four legs facing the viewer, strongly sloped back with tall front shoulders and short hind legs, short bristly crimson mane ridge along its neck, big round ears, wide toothy cackling grin, crimson spots all over its teal fur, dark muzzle",
+ "size": 44,
+ "seed": 7363,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_hyena_b",
+ "edit": "make it chubbier and fluffier with a thick shaggy neck ruff, smaller ears and crimson stripes instead of spots",
+ "seed": 1,
+ "desc": "Shaggy striped hyena"
+ },
+ {
+ "name": "pl_hyena_c",
+ "edit": "make it lankier with very long front legs, a narrow long snout, huge pointed ears and a sly closed-mouth smirk",
+ "seed": 1,
+ "desc": "Lanky long-snout hyena"
+ },
+ {
+ "name": "pl_hyena_d",
+ "edit": "cover it in thick shaggy fur with a huge fluffy mane and a much rounder body, keep its hyena face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded hyena"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ibis.json b/pixellab_library/pl_ibis.json
new file mode 100644
index 0000000..067fa5f
--- /dev/null
+++ b/pixellab_library/pl_ibis.json
@@ -0,0 +1,43 @@
+{
+ "name": "pl_ibis",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "flying": 3,
+ "water": 2
+ },
+ "desc": "Thoth-like ibis chick with a long down-curved beak, crimson eyeliner marking and bead collar",
+ "prompt": "chibi ibis bird creature standing upright, long thin downward-curved beak, small round head with a crimson eyeliner marking around its eyes, long thin legs, plump round body, folded wings tucked at its sides, a crimson bead collar around its neck, no crest, no tail",
+ "size": 44,
+ "seed": 1216,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ibis_b",
+ "edit": "make it plumper and fluffier with a shorter curved beak and crimson-tipped feathers on its chest",
+ "seed": 1,
+ "desc": "Fluffy short-beaked ibis"
+ },
+ {
+ "name": "pl_ibis_c",
+ "edit": "make it taller and slimmer with longer legs, a longer beak and crimson stripes across its body",
+ "seed": 1,
+ "desc": "Tall striped ibis",
+ "anchors": {
+ "tail": [
+ 46,
+ 34
+ ]
+ }
+ },
+ {
+ "name": "pl_ibis_d",
+ "edit": "give it shaggy scruffy feathers with crimson scale-like speckles and a grumpy face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Scruffy speckled ibis"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_icebat.json b/pixellab_library/pl_icebat.json
new file mode 100644
index 0000000..79a874a
--- /dev/null
+++ b/pixellab_library/pl_icebat.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_icebat",
+ "plan": "avian",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "flying": 3,
+ "ghost": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "desc": "Upright bat wrapped in its folded wing-arms like a cloak, tall pointed ears, icicle fangs",
+ "prompt": "upright bat creature standing, its leathery wing-arms folded tightly around its body like a closed cloak with crimson inner lining showing at the edges, two tall pointed ears, flat upturned pig-like nose, two long pointed fangs like icicles, small clawed feet, no tail",
+ "size": 44,
+ "seed": 2801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_icebat_b",
+ "edit": "make it rounder and chubbier with a fluffy fur chest, shorter ears and crimson cheek spots, keeping its wing-arms folded tightly around its body like a cloak",
+ "seed": 2,
+ "desc": "Chubby fluffy-chested bat"
+ },
+ {
+ "name": "pl_icebat_c",
+ "edit": "make it taller and gaunter with much longer pointed ears, a narrower face and crimson vein lines on its folded wing-arms",
+ "seed": 1,
+ "desc": "Gaunt long-eared bat"
+ },
+ {
+ "name": "pl_icebat_d",
+ "edit": "make it squat and rounder with a fluffy chest ruff and bigger pointed ears",
+ "seed": 1,
+ "desc": "squat and rounder with a fluffy chest ruff and bigge"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_icefish.json b/pixellab_library/pl_icefish.json
new file mode 100644
index 0000000..d6f104a
--- /dev/null
+++ b/pixellab_library/pl_icefish.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_icefish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ice": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "desc": "Antarctic icefish: translucent body, long flat duck-bill snout, big eyes",
+ "prompt": "antarctic icefish creature hovering upright, pale translucent teal body showing faint ribs, long flat duck-bill shaped snout full of tiny teeth, huge round eyes, big fan-shaped side fins, crimson gill slits, no tail fin",
+ "size": 44,
+ "seed": 5201,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_icefish_b",
+ "edit": "make it chubbier and rounder with a shorter snout and crimson stripes along its body, keep it teal",
+ "seed": 1,
+ "desc": "Chubby striped icefish"
+ },
+ {
+ "name": "pl_icefish_c",
+ "edit": "make it longer and spikier with frosty spines along its back and crimson spots on its fins, keep it teal",
+ "seed": 1,
+ "desc": "Spiny frosty icefish"
+ },
+ {
+ "name": "pl_icefish_d",
+ "edit": "make it twice as round and fat like a puffy ball fish, keep its flat duck-bill snout and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change icefish"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_icicle.json b/pixellab_library/pl_icicle.json
new file mode 100644
index 0000000..1a4e885
--- /dev/null
+++ b/pixellab_library/pl_icicle.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_icicle",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "ice": 5,
+ "water": 3,
+ "ghost": 2
+ },
+ "desc": "Serpent whose body is a long tapered icicle of crystalline segments",
+ "prompt": "serpent made entirely of ice, its body is one long tapered icicle that curls upward from a sharp pointed tip on the ground, translucent pale teal ice with jagged little icicles hanging under it, a small smooth ice head with glowing eyes, crimson frost cracks inside the ice, no legs, no crest",
+ "size": 44,
+ "seed": 5102,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_icicle_b",
+ "edit": "make it thicker and chunkier with jagged cracked ice plates and crimson frost cracks, keep it teal",
+ "seed": 1,
+ "desc": "Chunky cracked icicle"
+ },
+ {
+ "name": "pl_icicle_c",
+ "edit": "make it slimmer and smoother with a long frosty mane of snow along its neck and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "Slim snow-maned icicle"
+ },
+ {
+ "name": "pl_icicle_d",
+ "edit": "make it twice as thick and chunky with big jagged ice crystal plates along its body, keep its face and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change icicle"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_igloo.json b/pixellab_library/pl_igloo.json
new file mode 100644
index 0000000..eea08f2
--- /dev/null
+++ b/pixellab_library/pl_igloo.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_igloo",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ice": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "desc": "Living igloo: snow-block dome with a doorway-tunnel mouth",
+ "prompt": "living igloo creature, a round dome built of teal packed snow blocks, a small arched entrance tunnel at the bottom front as its mouth, two round eyes on the dome, tiny stubby feet, crimson scarf wrapped around its base",
+ "size": 40,
+ "seed": 5301,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_igloo_b",
+ "edit": "make it taller and narrower like a tall snow tower with icicles hanging from the rim and crimson window eyes, keep it teal",
+ "seed": 1,
+ "desc": "Tall icicled igloo"
+ },
+ {
+ "name": "pl_igloo_c",
+ "edit": "make it wider and squatter with a fluffy snow cap on top and crimson spots on the blocks, keep it teal",
+ "seed": 1,
+ "desc": "Squat snow-capped igloo"
+ },
+ {
+ "name": "pl_igloo_d",
+ "edit": "make it very tall and narrow like a stacked snow-block tower dome, keep its doorway mouth and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change igloo"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_imp.json b/pixellab_library/pl_imp.json
index 3e51a59..aca115e 100644
--- a/pixellab_library/pl_imp.json
+++ b/pixellab_library/pl_imp.json
@@ -1,93 +1,113 @@
{
- "name": "pl_imp",
- "plan": "biped",
- "head": [
- "mammal_head"
- ],
- "types": {
- "electric": 2.5,
- "normal": 2,
- "psychic": 2
- },
- "desc": "Small hunched mischievous imp with a wide fanged grin, pointed chin and long thin arms",
- "prompt": "small mischievous imp creature standing upright, slightly hunched, bright teal skin, completely bald egg-shaped head with smooth sides and no ears at all, sly narrow eyes, very wide toothy grin with two tiny fangs, pointed chin, long thin arms with three-fingered hands, skinny legs with big flat feet, crimson spade-shaped mark on its belly, no tail",
- "size": 40,
- "seed": 317,
- "direction": "south-west",
- "parts": [
- {
- "slot": "head_top",
- "name": "pl_ears_bolt",
- "edit": "add two big zigzag bright yellow lightning bolt shaped ears growing out of the top sides of its head",
- "seed": 2,
- "types": {
- "electric": 8
- },
- "other": 0,
- "requires": [
- "mammal_head",
- "integrated_head"
- ],
- "tags": [
- "eared"
- ],
- "motif": "electric",
- "palette": "type",
- "fixed": "electric",
- "fixed_from": [
- "main",
- "accent",
- "type",
- "white"
- ]
+ "name": "pl_imp",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "electric": 2.5,
+ "normal": 2,
+ "psychic": 2
},
- {
- "slot": "tail",
- "name": "pl_tail_lightning",
- "edit": "add a zigzag bright yellow lightning bolt shaped tail sticking up on the right side",
- "seed": 1,
- "types": {
- "electric": 8
- },
- "other": 0,
- "tags": [
- "tailed"
- ],
- "motif": "electric",
- "palette": "type",
- "fixed": "electric",
- "fixed_from": [
- "main",
- "accent",
- "type",
- "white"
- ]
- },
- {
- "slot": "back",
- "name": "pl_coils_electric",
- "edit": "add two small gold coil prongs sticking up from behind its shoulders, crackling with bright yellow electric sparks",
- "seed": 1,
- "types": {
- "electric": 7
- },
- "other": 0,
- "motif": "electric",
- "palette": "type",
- "fixed": "electric"
- },
- {
- "slot": "head_top",
- "name": "pl_imp_halo",
- "edit": "add a thin glowing gold halo ring floating just above its head",
- "seed": 1,
- "types": {
- "psychic": 6,
- "normal": 1,
- "ghost": 1
- },
- "other": 0.1,
- "palette": "type"
- }
- ]
+ "desc": "Small hunched mischievous imp with a wide fanged grin, pointed chin and long thin arms",
+ "prompt": "small mischievous imp creature standing upright, slightly hunched, bright teal skin, completely bald egg-shaped head with smooth sides and no ears at all, sly narrow eyes, very wide toothy grin with two tiny fangs, pointed chin, long thin arms with three-fingered hands, skinny legs with big flat feet, crimson spade-shaped mark on its belly, no tail",
+ "size": 40,
+ "seed": 317,
+ "direction": "south-west",
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_ears_bolt",
+ "edit": "add two big zigzag bright yellow lightning bolt shaped ears growing out of the top sides of its head",
+ "seed": 2,
+ "types": {
+ "electric": 8
+ },
+ "other": 0,
+ "requires": [
+ "mammal_head",
+ "integrated_head"
+ ],
+ "tags": [
+ "eared"
+ ],
+ "motif": "electric",
+ "palette": "type",
+ "fixed": "electric",
+ "fixed_from": [
+ "main",
+ "accent",
+ "type",
+ "white"
+ ]
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_lightning",
+ "edit": "add a zigzag bright yellow lightning bolt shaped tail sticking up on the right side",
+ "seed": 1,
+ "types": {
+ "electric": 8
+ },
+ "other": 0,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "electric",
+ "palette": "type",
+ "fixed": "electric",
+ "fixed_from": [
+ "main",
+ "accent",
+ "type",
+ "white"
+ ]
+ },
+ {
+ "slot": "back",
+ "name": "pl_coils_electric",
+ "edit": "add two small gold coil prongs sticking up from behind its shoulders, crackling with bright yellow electric sparks",
+ "seed": 1,
+ "types": {
+ "electric": 7
+ },
+ "other": 0,
+ "motif": "electric",
+ "palette": "type",
+ "fixed": "electric"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_imp_halo",
+ "edit": "add a thin glowing gold halo ring floating just above its head",
+ "seed": 1,
+ "types": {
+ "psychic": 6,
+ "normal": 1,
+ "ghost": 1
+ },
+ "other": 0.1,
+ "palette": "type"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_imp_b",
+ "edit": "make it chubbier with a round pot belly, bigger pointed ears and crimson spots",
+ "seed": 1,
+ "desc": "Pot-bellied imp"
+ },
+ {
+ "name": "pl_imp_c",
+ "edit": "make it lankier with longer thin arms, bigger pointed ears and crimson stripes, same hunched pose and same size",
+ "seed": 2,
+ "desc": "Lanky striped imp"
+ },
+ {
+ "name": "pl_imp_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 2,
+ "desc": "Squat imp"
+ }
+ ]
}
diff --git a/pixellab_library/pl_incense.json b/pixellab_library/pl_incense.json
new file mode 100644
index 0000000..4aa85c8
--- /dev/null
+++ b/pixellab_library/pl_incense.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_incense",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "psychic": 3,
+ "ghost": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Spiral incense coil serpent with a face on the raised inner end",
+ "prompt": "living spiral incense coil creature, a flat thick teal coil body spiraling flat on the ground, its inner end rising up as a serpent neck with a cute sleepy face, crimson ember tip spots along the coil, a small crimson stand under the coil",
+ "size": 44,
+ "seed": 3601,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_incense_b",
+ "edit": "make the coil stack upward into a tall cone spiral like a tower and give it crimson bands",
+ "seed": 1,
+ "desc": "Tall cone incense",
+ "skip": true
+ },
+ {
+ "name": "pl_incense_c",
+ "edit": "make the coil thinner with more loops, and give the face wide open eyes and crimson cheek marks",
+ "seed": 1,
+ "desc": "Thin many-looped incense",
+ "skip": true
+ }
+ ],
+ "skip": true
+}
diff --git a/pixellab_library/pl_inchworm.json b/pixellab_library/pl_inchworm.json
new file mode 100644
index 0000000..8f69a46
--- /dev/null
+++ b/pixellab_library/pl_inchworm.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_inchworm",
+ "plan": "serpentine",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "grass": 3,
+ "normal": 2
+ },
+ "desc": "Inchworm looper arched in a tall loop with twig-like knobby segments",
+ "prompt": "inchworm looper caterpillar creature with its body bent up into a tall arch like a bridge, both ends standing on the ground, head end on the left with big friendly eyes and tiny mandibles, rear end with grippy feet on the right, smooth segmented twig-like body with knobby bumps, crimson spots along its sides, no antennae, no horns, no ground shadow",
+ "size": 44,
+ "seed": 1213,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_inchworm_b",
+ "edit": "make it chunkier and shorter with thick rounded segments and crimson bands around each segment",
+ "seed": 1,
+ "desc": "Chunky banded inchworm"
+ },
+ {
+ "name": "pl_inchworm_c",
+ "edit": "make it much thinner with long fuzzy bristles sticking out all along its back and big crimson eye spots on its sides",
+ "seed": 2,
+ "desc": "Thin bristly eyespot inchworm"
+ },
+ {
+ "name": "pl_inchworm_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, only a small low arch, keep its caterpillar face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young stubby inchworm"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_jadecoil.json b/pixellab_library/pl_jadecoil.json
new file mode 100644
index 0000000..23f03d3
--- /dev/null
+++ b/pixellab_library/pl_jadecoil.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_jadecoil",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "rock": 5,
+ "dragon": 3,
+ "psychic": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Carved polished jade serpent figurine with cloud-swirl carvings",
+ "prompt": "carved jade serpent figurine creature, smooth polished glossy teal jade body coiled on itself in a round pile, carved curly cloud swirl patterns on its body, small rounded serpent head raised up with calm eyes, crimson tassel cord tied around its neck",
+ "size": 44,
+ "seed": 9414,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_jadecoil_b",
+ "edit": "make the serpent much fatter and chubbier with wide round thick coils and crimson carved scale patterns on its coils, keep its head smooth and bald",
+ "seed": 2,
+ "desc": "Chubby carved jadecoil"
+ },
+ {
+ "name": "pl_jadecoil_c",
+ "edit": "make the serpent thinner with more coils stacked tall, a cracked chipped body and crimson inlay stripes",
+ "seed": 1,
+ "desc": "Tall cracked jadecoil"
+ },
+ {
+ "name": "pl_jadecoil_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young jadecoil"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_jelly.json b/pixellab_library/pl_jelly.json
new file mode 100644
index 0000000..9e01182
--- /dev/null
+++ b/pixellab_library/pl_jelly.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_jelly",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "water": 5,
+ "electric": 3,
+ "poison": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Jellyfish bell dome with a frilly skirt rim, standing on short stubby tendril feet",
+ "prompt": "jellyfish creature with a tall translucent bell-shaped dome body, a wavy frilly crimson skirt rim around the bottom edge of the bell, face on the front of the bell with a tiny smile, a short fringe of stubby curly tendrils underneath like little feet, small glowing dots inside the dome, no long tentacles, nothing on top",
+ "size": 44,
+ "seed": 1201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_jelly_b",
+ "edit": "make the bell flatter and wider like a mushroom cap with a much bigger crimson frilly skirt and longer wavy tendrils",
+ "seed": 1,
+ "desc": "Flat mushroom-cap jelly"
+ },
+ {
+ "name": "pl_jelly_c",
+ "edit": "make the bell taller and narrower like a bullet with crimson rings around it and short stubby tendrils",
+ "seed": 1,
+ "desc": "Tall ringed jelly"
+ },
+ {
+ "name": "pl_jelly_d",
+ "edit": "make the dome very tall and narrow like a bell tower with crimson rings around it, keep its frilly skirt rim and short stubby tendril feet",
+ "seed": 11,
+ "desc": "Tall ringed jelly",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_jerboa.json b/pixellab_library/pl_jerboa.json
new file mode 100644
index 0000000..d527196
--- /dev/null
+++ b/pixellab_library/pl_jerboa.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_jerboa",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ground": 5,
+ "normal": 3,
+ "fire": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Tiny round jerboa on long thin hind legs with enormous round ears",
+ "prompt": "tiny round desert jerboa creature standing upright on two very long thin kangaroo-like hind legs, huge oversized flat feet, small round fluffy body, enormous round ears bigger than its head, tiny front paws, big shiny eyes, crimson inner ears, no tail",
+ "size": 44,
+ "seed": 9404,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_jerboa_b",
+ "edit": "make it chubbier with a round pot belly, shorter legs and crimson stripes on its back",
+ "seed": 1,
+ "desc": "Chubby striped jerboa"
+ },
+ {
+ "name": "pl_jerboa_c",
+ "edit": "make its ears long and pointed instead of round, its snout longer and give it crimson spots on its cheeks",
+ "seed": 1,
+ "desc": "Pointy-eared jerboa"
+ },
+ {
+ "name": "pl_jerboa_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young jerboa"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_kasa.json b/pixellab_library/pl_kasa.json
new file mode 100644
index 0000000..c683df3
--- /dev/null
+++ b/pixellab_library/pl_kasa.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_kasa",
+ "plan": "biped",
+ "head": [
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "desc": "Umbrella yokai: closed paper umbrella body with one big eye, long tongue and a single hopping leg",
+ "prompt": "umbrella yokai creature, a closed paper parasol umbrella as its body with crimson ribs, one big round eye in the middle, wide grinning mouth with a long tongue sticking out, two small stubby arms, standing on a single leg with a wooden sandal, no tail",
+ "size": 44,
+ "seed": 4001,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_kasa_b",
+ "edit": "make the umbrella body fatter and rounder with crimson polka dots and a grumpy squinting eye, keep the same size and pose",
+ "seed": 1,
+ "desc": "Fat dotted grumpy kasa"
+ },
+ {
+ "name": "pl_kasa_c",
+ "edit": "make the umbrella body ragged and torn with holes and crimson patches stitched on, keep the same size and pose",
+ "seed": 1,
+ "desc": "Tattered patched kasa"
+ },
+ {
+ "name": "pl_kasa_d",
+ "edit": "open the umbrella body wider and flatter like a mushroom cap with crimson stripes along the ribs and a huge toothy grin, keep the same size and pose",
+ "seed": 1,
+ "desc": "Open wide-grin kasa"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_kindle.json b/pixellab_library/pl_kindle.json
new file mode 100644
index 0000000..49774cb
--- /dev/null
+++ b/pixellab_library/pl_kindle.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_kindle",
+ "plan": "quadruped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "grass": 3,
+ "normal": 2
+ },
+ "desc": "Living firewood log on four twig legs with a tree-ring face and crimson ember spots",
+ "prompt": "living log creature colored teal standing on four short stubby legs, a thick round cut log body lying horizontally, all of its bark is teal, its face on the pale cut front end of the log surrounded by tree rings, rough teal bark texture along its body, crimson ember spots on the bark, no twigs, no tail, no leaves",
+ "size": 44,
+ "seed": 2902,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_kindle_b",
+ "edit": "keep its teal bark color and make it a short stubby round teal stump standing upright with a wider face, deep teal bark grooves and crimson ember cracks along the grooves",
+ "seed": 2,
+ "desc": "Stubby stump kindle"
+ },
+ {
+ "name": "pl_kindle_c",
+ "edit": "keep its teal bark color and make the teal log body thinner with thick crimson charred bands wrapped around it, knobby knots, and a much smaller face with sleepy eyes",
+ "seed": 3,
+ "desc": "Banded knobby kindle"
+ },
+ {
+ "name": "pl_kindle_d",
+ "edit": "make it twice as tall and lanky standing upright on long thin legs, keep its log face and teal color",
+ "seed": 7,
+ "desc": "Armored kindle",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_kingfisher.json b/pixellab_library/pl_kingfisher.json
new file mode 100644
index 0000000..4d8b960
--- /dev/null
+++ b/pixellab_library/pl_kingfisher.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_kingfisher",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "flying": 5,
+ "water": 3,
+ "ice": 2
+ },
+ "desc": "Kingfisher with an oversized head, long dagger bill, tiny body and short legs",
+ "prompt": "kingfisher bird creature perched upright, oversized big round head, very long straight dagger-shaped bill, tiny compact body, very short stubby legs, crimson cheek stripe, pale cream throat patch, small folded wings at its sides, no crest, no tail",
+ "size": 44,
+ "seed": 1101,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_kingfisher_b",
+ "edit": "make its body much chubbier and rounder with a shorter thicker bill and crimson speckles on its chest",
+ "seed": 1,
+ "desc": "Chubby short-billed kingfisher"
+ },
+ {
+ "name": "pl_kingfisher_c",
+ "edit": "make it leaner and taller with a shaggy scruffy feathered head and crimson bands across its belly",
+ "seed": 1,
+ "desc": "Shaggy-headed banded kingfisher"
+ },
+ {
+ "name": "pl_kingfisher_d",
+ "edit": "give it fluffy puffed-up feathers with crimson scale-like speckles and sleepy half-closed eyes, keep the same size and pose",
+ "seed": 1,
+ "desc": "Puffed sleepy kingfisher"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_kite.json b/pixellab_library/pl_kite.json
new file mode 100644
index 0000000..e88843f
--- /dev/null
+++ b/pixellab_library/pl_kite.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_kite",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "flying": 5,
+ "psychic": 3,
+ "dragon": 2
+ },
+ "desc": "Floating paper-kite serpent: flat diamond-shaped head and a fringed ribbon body in an S-curve",
+ "prompt": "floating sky serpent creature shaped like a paper kite, flat diamond-shaped head with big eyes, thin flat ribbon body curving in an S shape in the air, small fringed crimson tassels along the edges of its ribbon body, no legs, no wings, no horns",
+ "size": 44,
+ "seed": 1801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_kite_b",
+ "edit": "keep its flat diamond-shaped head and S-curved ribbon body, make the ribbon body wider and flatter with crimson diamond patterns along it and give the head a crimson border",
+ "seed": 2,
+ "desc": "Wide diamond-patterned kite"
+ },
+ {
+ "name": "pl_kite_c",
+ "edit": "keep its flat diamond-shaped head and S-curved ribbon body, make the ribbon body thicker and chubbier with a scaly texture and crimson stripes",
+ "seed": 2,
+ "desc": "Chunky striped kite"
+ },
+ {
+ "name": "pl_kite_d",
+ "edit": "make its ribbon body thinner with tattered edges, crimson stitched seams and a sleepy face on the diamond head, keep the same size and pose",
+ "seed": 1,
+ "desc": "Tattered stitched kite"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_kiwi.json b/pixellab_library/pl_kiwi.json
new file mode 100644
index 0000000..c63213c
--- /dev/null
+++ b/pixellab_library/pl_kiwi.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_kiwi",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "ground": 5,
+ "normal": 3
+ },
+ "desc": "Flightless ball bird with a long probing beak",
+ "prompt": "round flightless kiwi bird creature, egg-shaped teal body covered in shaggy hair-like feathers, no visible wings, a very long thin slightly curved crimson beak pointing down at the ground, small round eyes, two thick sturdy legs with big three-toed feet",
+ "size": 44,
+ "seed": 7606,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_kiwi_b",
+ "edit": "make the kiwi bird taller and pear-shaped with longer thicker legs, a shorter straight beak and crimson speckles all over its feathers",
+ "seed": 2,
+ "desc": "Tall speckled kiwi"
+ },
+ {
+ "name": "pl_kiwi_c",
+ "edit": "make it much rounder and fluffier like a puffball with a messy crimson feather tuft on its forehead and tiny legs",
+ "seed": 1,
+ "desc": "Puffball kiwi"
+ },
+ {
+ "name": "pl_kiwi_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 1,
+ "desc": "Armored kiwi"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_knifefish.json b/pixellab_library/pl_knifefish.json
new file mode 100644
index 0000000..e434122
--- /dev/null
+++ b/pixellab_library/pl_knifefish.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_knifefish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "ghost": 3
+ },
+ "desc": "Black ghost knifefish: blade-shaped body tapering down, long rippling belly ribbon fin",
+ "prompt": "black ghost knifefish creature swimming diagonally upward, long flat tapering knife-blade body with a big wavy ribbon fin along its whole underside, rounded head with a small face and tiny eyes, two crimson bands near its pointed tail tip, smooth dark teal skin, no tail fin, no dorsal fin",
+ "size": 44,
+ "seed": 2301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_knifefish_b",
+ "edit": "make its body much thicker and shorter with a round belly and a wider rippling belly fin with crimson spots",
+ "seed": 1,
+ "desc": "Chunky spotted knifefish"
+ },
+ {
+ "name": "pl_knifefish_c",
+ "edit": "make it slimmer with a longer pointed snout, a wavier ribbon fin and crimson zigzag stripes along its body",
+ "seed": 1,
+ "desc": "Slim zigzag knifefish"
+ },
+ {
+ "name": "pl_knifefish_d",
+ "edit": "make it twice as thick and chunky with a big round belly and crimson spots, keep its blade-shaped knifefish body and rippling fin",
+ "seed": 11,
+ "desc": "Young chibi knifefish",
+ "skip": false
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_koala.json b/pixellab_library/pl_koala.json
new file mode 100644
index 0000000..3948d61
--- /dev/null
+++ b/pixellab_library/pl_koala.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_koala",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "grass": 3,
+ "psychic": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Chubby koala sitting upright with huge fluffy ears and a big oval nose, hugging its belly",
+ "prompt": "chubby koala creature sitting upright, huge round fluffy ears with crimson insides, big dark oval nose, small calm half-closed eyes, thick soft fur with a pale fluffy chest, stubby arms hugging its round belly, short legs with big paws, no tail",
+ "size": 44,
+ "seed": 2111,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_koala_b",
+ "edit": "make it much rounder and fluffier like a fur ball with even bigger shaggy ears and crimson stripes across its forehead",
+ "seed": 1,
+ "desc": "Fluffy ball koala"
+ },
+ {
+ "name": "pl_koala_c",
+ "edit": "make it slimmer and taller with smaller pointed ears, wide-awake big eyes and crimson spots on its belly",
+ "seed": 1,
+ "desc": "Slim wide-eyed koala"
+ },
+ {
+ "name": "pl_koala_d",
+ "edit": "give it shaggy spiky fur with crimson tips, a grumpy frown and smaller round ears, keep the same size and pose",
+ "seed": 1,
+ "desc": "Spiky grumpy koala"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_kobold.json b/pixellab_library/pl_kobold.json
new file mode 100644
index 0000000..326ff19
--- /dev/null
+++ b/pixellab_library/pl_kobold.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_kobold",
+ "plan": "biped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "ground": 3,
+ "fighting": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Scrappy little kobold with a dog-like scaly snout, big frill ears and a crimson belt",
+ "prompt": "scrappy little kobold creature standing upright on two legs, seen from the front, dog-like scaly reptile snout, a pair of large pointed fin-shaped frill ears on the sides of its head, narrow eyes, small clawed hands, crimson scale belt across its waist, pale belly scales, its rear hidden behind its body, no tail at all, no horns, no wings",
+ "size": 44,
+ "seed": 1902,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_kobold_b",
+ "edit": "make it chubbier and shorter with a round belly, a short blunt snout and crimson spots along its arms",
+ "seed": 1,
+ "desc": "Chubby blunt-snout kobold"
+ },
+ {
+ "name": "pl_kobold_c",
+ "edit": "make it lankier and taller with a long thin snout, drooping frill ears and crimson stripes across its chest",
+ "seed": 1,
+ "desc": "Lanky striped kobold"
+ },
+ {
+ "name": "pl_kobold_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat kobold"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_komodo.json b/pixellab_library/pl_komodo.json
new file mode 100644
index 0000000..e6debd0
--- /dev/null
+++ b/pixellab_library/pl_komodo.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_komodo",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "poison": 3,
+ "ground": 2
+ },
+ "desc": "Heavy komodo monitor dragon with a long neck, dewlap and pebbly hide",
+ "prompt": "heavy komodo monitor lizard creature standing on four thick bowed legs, seen from the front facing the viewer, raised long neck, long flat snout with a forked tongue poking out, loose throat dewlap, heavy-lidded eyes, pebbly beaded hide, crimson speckles along its flanks, its rear hidden behind its body, no tail at all",
+ "size": 44,
+ "seed": 2402,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_komodo_b",
+ "edit": "give it a short broad flat head, a pebbly bumpy hide with bold crimson bands across its back and a small throat dewlap, keep the same pose",
+ "seed": 2,
+ "desc": "Chubby banded komodo"
+ },
+ {
+ "name": "pl_komodo_c",
+ "edit": "make it taller with a raised head, thick armored bony scales on its back and a big crimson throat dewlap",
+ "seed": 1,
+ "desc": "Armored dewlap komodo"
+ },
+ {
+ "name": "pl_komodo_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat komodo"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_krill.json b/pixellab_library/pl_krill.json
new file mode 100644
index 0000000..bb38423
--- /dev/null
+++ b/pixellab_library/pl_krill.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_krill",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "ice": 5,
+ "water": 3,
+ "bug": 2
+ },
+ "excludes": [
+ "antennae"
+ ],
+ "desc": "Antarctic krill standing up with a curled shrimp body, feathery legs and big black eyes",
+ "prompt": "krill shrimp creature standing upright, curled translucent segmented shrimp body, big round shiny black eyes, two short antennae, many small feathery legs along its belly, small fan of tail flaps curled under it, crimson spots along its segments, nothing on its head",
+ "size": 44,
+ "seed": 4301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_krill_b",
+ "edit": "make its body plumper and shorter with a rounder head and bold crimson bands on each segment",
+ "seed": 1,
+ "desc": "Plump banded krill"
+ },
+ {
+ "name": "pl_krill_c",
+ "edit": "make it longer and slimmer with longer feathery legs and a pointed beak-like head spike and crimson speckles",
+ "seed": 1,
+ "desc": "Slender long-legged krill"
+ },
+ {
+ "name": "pl_krill_d",
+ "edit": "make it twice as round and chubby with a fat curled body and crimson spots, keep its shrimp face, big black eyes and feathery legs",
+ "seed": 11,
+ "desc": "Chubby spotted krill",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_lamprey.json b/pixellab_library/pl_lamprey.json
new file mode 100644
index 0000000..4a17c51
--- /dev/null
+++ b/pixellab_library/pl_lamprey.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_lamprey",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "water": 5,
+ "poison": 3,
+ "ghost": 2
+ },
+ "desc": "Coiled lamprey rearing up with a round sucker-disc mouth ringed with tiny teeth",
+ "prompt": "lamprey creature coiled in a pile with its front raised up facing the viewer, smooth slimy eel-like body, its face is a big round open sucker disc mouth ringed with tiny crimson teeth, two small eyes above the mouth, a row of seven small round gill holes along its neck, thin tail tip resting on the right side, no fins",
+ "size": 44,
+ "seed": 3401,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_lamprey_b",
+ "edit": "make its body thicker and chubbier with crimson spots along its coils and a smaller sucker mouth",
+ "seed": 1,
+ "desc": "Chubby spotted lamprey"
+ },
+ {
+ "name": "pl_lamprey_c",
+ "edit": "make it thinner with more coils, bold crimson bands around its body and a bigger sucker disc mouth",
+ "seed": 1,
+ "desc": "Thin banded lamprey"
+ },
+ {
+ "name": "pl_lamprey_d",
+ "edit": "make it armored with thick ridged plates along its coils and crimson gill marks",
+ "seed": 1,
+ "desc": "armored with thick ridged plates along its coils and"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_lantern.json b/pixellab_library/pl_lantern.json
new file mode 100644
index 0000000..40e62c4
--- /dev/null
+++ b/pixellab_library/pl_lantern.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_lantern",
+ "plan": "blob",
+ "head": [
+ "ghost_head",
+ "integrated_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "fire": 3,
+ "psychic": 2
+ },
+ "desc": "Paper lantern spirit: ribbed lantern body with a glowing face, tiny feet",
+ "prompt": "paper lantern spirit creature, round ribbed paper lantern body with horizontal ribs, a glowing warm light inside showing through the paper, a cute face drawn on the front with a long tongue sticking out, crimson top and bottom rims, two tiny stubby feet",
+ "size": 44,
+ "seed": 1109,
+ "variants": [
+ {
+ "name": "pl_lantern_b",
+ "edit": "make the lantern body tall and cylindrical with more ribs, a torn flap of paper on its side and a one-eyed winking face",
+ "seed": 1,
+ "desc": "Tall torn one-eyed lantern"
+ },
+ {
+ "name": "pl_lantern_c",
+ "edit": "make the lantern body squat and wide like a flattened ball, with crimson painted patterns and a big toothy grin",
+ "seed": 1,
+ "desc": "Squat painted lantern"
+ },
+ {
+ "name": "pl_lantern_d",
+ "edit": "make it a tall hexagonal paper lantern with a small pointed roof-shaped top, crimson tassels hanging from its corners and a sleepy face",
+ "seed": 1,
+ "desc": "Hexagonal roofed lantern"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_lavalamp.json b/pixellab_library/pl_lavalamp.json
new file mode 100644
index 0000000..d6c79eb
--- /dev/null
+++ b/pixellab_library/pl_lavalamp.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_lavalamp",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "psychic": 3,
+ "electric": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Living lava lamp: tapered glass body with floating crimson wax blobs, teal cap and base",
+ "prompt": "living lava lamp creature, a tall tapered teal glass body with round crimson wax blobs floating inside, a cute face with big eyes on the glass, a short cone-shaped teal metal cap on top and a wide cone-shaped teal metal base with two tiny feet",
+ "size": 44,
+ "seed": 3201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_lavalamp_b",
+ "edit": "make the glass body short and round like a ball with one big crimson wax blob inside and sleepy eyes",
+ "seed": 1,
+ "desc": "Round globe lava lamp"
+ },
+ {
+ "name": "pl_lavalamp_c",
+ "edit": "make the glass body very slender and tall with many tiny crimson wax bubbles and a wide grinning mouth",
+ "seed": 1,
+ "desc": "Slender bubbly lava lamp"
+ },
+ {
+ "name": "pl_lavalamp_d",
+ "edit": "make it twice as wide and squat like a round fat bubble jar, keep its face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded lavalamp"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_lilyray.json b/pixellab_library/pl_lilyray.json
new file mode 100644
index 0000000..9c25b71
--- /dev/null
+++ b/pixellab_library/pl_lilyray.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_lilyray",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "grass": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "desc": "Round lily-pad-shaped ray hovering upright, leaf veins and lotus spots",
+ "prompt": "flat round disc-shaped ray fish creature hovering upright facing the viewer like a coin, the whole body is one big round leaf disc with radiating leaf veins and a small notch on its right edge, small face in the center of the disc with two eyes and a tiny smile, crimson lotus blossom spots around its rim, two tiny fins at the bottom, no legs, nothing on top of its head",
+ "size": 44,
+ "seed": 1208,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_lilyray_b",
+ "edit": "turn its rim into big wavy petal-like ruffles all around with crimson edges, like a frilly lotus flower collar",
+ "seed": 2,
+ "desc": "Ruffled crimson-rimmed lilyray"
+ },
+ {
+ "name": "pl_lilyray_c",
+ "edit": "make it thicker and rounder like a puffy dome with crimson stripes along the leaf veins",
+ "seed": 1,
+ "desc": "Puffy striped lilyray"
+ },
+ {
+ "name": "pl_lilyray_d",
+ "edit": "make it heart-shaped like an arrowhead leaf with a pointed bottom tip and crimson leaf veins, keep it teal, no green, keep its small face",
+ "seed": 2,
+ "desc": "Arrowhead-leaf lilyray"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_lithops.json b/pixellab_library/pl_lithops.json
new file mode 100644
index 0000000..0fcd5ad
--- /dev/null
+++ b/pixellab_library/pl_lithops.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_lithops",
+ "plan": "blob",
+ "head": [
+ "rock_head"
+ ],
+ "types": {
+ "rock": 5,
+ "grass": 3
+ },
+ "desc": "Living stones succulent: two plump stone-like lobes split by a slit mouth",
+ "prompt": "living stones succulent creature, two plump rounded stone-like lobes pressed together, split across the top by a deep slit that forms its mouth, speckled pebble texture with crimson freckles, two small eyes on the front, sitting in a little mound of pebbles, no arms",
+ "size": 44,
+ "seed": 4301,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_lithops_b",
+ "edit": "make the lobes taller and more separated like two round stone hills with crimson windows on top, keep the same size and pose",
+ "seed": 1,
+ "desc": "Tall two-hill lithops"
+ },
+ {
+ "name": "pl_lithops_c",
+ "edit": "make it a single squat wide lobe with a cracked stone texture and crimson veins, keep the same size and pose",
+ "seed": 1,
+ "desc": "Squat cracked lithops"
+ },
+ {
+ "name": "pl_lithops_d",
+ "edit": "add tiny crimson flowers blooming between the stone lobes and give it a happy smiling face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Blooming happy lithops"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_lizard.json b/pixellab_library/pl_lizard.json
index 2359ec7..df1c018 100644
--- a/pixellab_library/pl_lizard.json
+++ b/pixellab_library/pl_lizard.json
@@ -1,32 +1,121 @@
{
"name": "pl_lizard",
"plan": "quadruped",
- "head": ["reptile_head"],
- "types": {"poison": 2, "electric": 1.5, "grass": 1.5},
- "other": 1,
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "poison": 2,
+ "electric": 1.5,
+ "grass": 1.5
+ },
"desc": "Slender quick gecko with huge bulging eyes, splayed sticky toe pads and crimson throat dots",
"prompt": "small slender tailless gecko creature crouching on four splayed legs, seen from the front facing the viewer, rounded head with huge bulging round eyes and a wide smiling mouth, round sticky toe pads on its feet, a row of small crimson dots along its sides, pale belly, bright teal skin, its rear is hidden behind its body, no tail at all",
"size": 44,
"seed": 734,
"direction": "south",
- "anchors": {"back": [32, 32]},
+ "anchors": {
+ "back": [
+ 32,
+ 32
+ ]
+ },
"parts": [
- {"slot": "head_top", "name": "pl_snowcap",
- "edit": "add a small cap of pale icy blue snow and ice crystals sitting on top of its head",
- "seed": 1, "types": {"ice": 7}, "other": 0,
- "tags": ["crystal"], "motif": "crystal", "palette": "type",
- "fixed": "ice", "fixed_from": ["main", "accent", "type", "white"]},
- {"slot": "head_top", "name": "pl_frill_neck",
- "edit": "add a crimson frilled lizard neck frill, one round fan of crimson skin with dark ribs spread open behind its head like a small umbrella, compact, only a bit wider than its head",
- "seed": 3, "types": {"poison": 4, "dragon": 3, "ground": 2}, "other": 0.15,
- "tags": ["finned"], "palette": "accent", "z": 25, "skip": true},
- {"slot": "back", "name": "pl_spines_toxic",
- "edit": "add a short row of five sharp crimson spines sticking up from behind its head, each spine tipped with a gold venom drop, nothing else",
- "seed": 2, "types": {"poison": 7}, "other": 0.05,
- "tags": ["spiky"], "palette": "accent", "box": [20, 0, 41, 40]},
- {"slot": "tail", "name": "pl_tail_lightning_lizard",
- "edit": "add a long thin teal lizard tail starting at its hip and curving out on the right side, crackling with bright yellow lightning bolts along it",
- "seed": 1, "types": {"electric": 7}, "other": 0,
- "tags": ["tailed"], "motif": "electric", "palette": "type", "fixed": "electric"}
+ {
+ "slot": "head_top",
+ "name": "pl_snowcap",
+ "edit": "add a small cap of pale icy blue snow and ice crystals sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "ice": 7
+ },
+ "other": 0,
+ "tags": [
+ "crystal"
+ ],
+ "motif": "crystal",
+ "palette": "type",
+ "fixed": "ice",
+ "fixed_from": [
+ "main",
+ "accent",
+ "type",
+ "white"
+ ]
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_frill_neck",
+ "edit": "add a crimson frilled lizard neck frill, one round fan of crimson skin with dark ribs spread open behind its head like a small umbrella, compact, only a bit wider than its head",
+ "seed": 3,
+ "types": {
+ "poison": 4,
+ "dragon": 3,
+ "ground": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "finned"
+ ],
+ "palette": "accent",
+ "z": 25,
+ "skip": true
+ },
+ {
+ "slot": "back",
+ "name": "pl_spines_toxic",
+ "edit": "add a short row of five sharp crimson spines sticking up from behind its head, each spine tipped with a gold venom drop, nothing else",
+ "seed": 2,
+ "types": {
+ "poison": 7
+ },
+ "other": 0.05,
+ "tags": [
+ "spiky"
+ ],
+ "palette": "accent",
+ "box": [
+ 20,
+ 0,
+ 41,
+ 40
+ ]
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_lightning_lizard",
+ "edit": "add a long thin teal lizard tail starting at its hip and curving out on the right side, crackling with bright yellow lightning bolts along it",
+ "seed": 1,
+ "types": {
+ "electric": 7
+ },
+ "other": 0,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "electric",
+ "palette": "type",
+ "fixed": "electric"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_lizard_b",
+ "edit": "make it chubbier with a thick body, bumpy textured scales and crimson spots",
+ "seed": 1,
+ "desc": "Chubby bumpy gecko"
+ },
+ {
+ "name": "pl_lizard_c",
+ "edit": "make it slimmer with a narrow snout, a small frill crest on its neck and crimson stripes, same pose and same short tail",
+ "seed": 2,
+ "desc": "Slim crested lizard"
+ },
+ {
+ "name": "pl_lizard_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded lizard"
+ }
]
}
diff --git a/pixellab_library/pl_lungfish.json b/pixellab_library/pl_lungfish.json
new file mode 100644
index 0000000..dae66bc
--- /dev/null
+++ b/pixellab_library/pl_lungfish.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_lungfish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ground": 5,
+ "water": 3,
+ "poison": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Lungfish curled in a cracked mud cocoon",
+ "prompt": "lungfish creature curled up inside a cracked dried-mud cocoon cup, thick eel-like teal body with a lobed blunt snout and sleepy eyes peeking out, thin whip-like threadlike crimson leg fins dangling over the cocoon rim, crimson spots on its skin",
+ "size": 44,
+ "seed": 9707,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_lungfish_b",
+ "edit": "make the fish bigger and rising out of the cocoon with a wide open yawning mouth and crimson stripes",
+ "seed": 1,
+ "desc": "Yawning striped lungfish"
+ },
+ {
+ "name": "pl_lungfish_c",
+ "edit": "make the fish skinnier with bumpy warty skin, frilly crimson gill tufts on its head and a smaller cocoon",
+ "seed": 1,
+ "desc": "Frilly-gilled lungfish"
+ },
+ {
+ "name": "pl_lungfish_d",
+ "edit": "make it very long and thin like an eel with a narrow head, keep its face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded lungfish"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_magnet.json b/pixellab_library/pl_magnet.json
new file mode 100644
index 0000000..dc9db31
--- /dev/null
+++ b/pixellab_library/pl_magnet.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_magnet",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "rock": 3
+ },
+ "desc": "Horseshoe magnet critter: upside-down U arch whose legs are crimson-tipped poles, face on the arch top",
+ "prompt": "horseshoe magnet creature shaped like a thick upside-down U arch, its two legs are the magnet poles ending in crimson tips like boots, a cute face with round eyes and a grin on the round top of the arch, two tiny stubby arms on the sides of the arch, no ears, no hair",
+ "size": 44,
+ "seed": 1204,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_magnet_b",
+ "edit": "make the arch much thicker and chunkier with a wider gap between its legs and crimson stripe bands around the arch",
+ "seed": 1,
+ "desc": "Chunky banded magnet"
+ },
+ {
+ "name": "pl_magnet_c",
+ "edit": "make the arch narrower and taller with longer thin legs and a flat square top, keeping the upside-down U shape with a gap between its legs",
+ "seed": 7,
+ "desc": "Tall square-topped magnet",
+ "skip": true
+ },
+ {
+ "name": "pl_magnet_d",
+ "edit": "make it twice as round and squat like a fat chunky horseshoe with very thick legs and crimson bands, keep its horseshoe magnet shape and face",
+ "seed": 11,
+ "desc": "Thin ringed magnet",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_mammoth.json b/pixellab_library/pl_mammoth.json
new file mode 100644
index 0000000..5c36fb5
--- /dev/null
+++ b/pixellab_library/pl_mammoth.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_mammoth",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "ground": 3,
+ "normal": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Woolly mammoth calf with a long shaggy coat, short trunk and tiny ears, no tusks",
+ "prompt": "woolly mammoth calf creature standing on four stubby legs, long shaggy fur coat hanging down like a curtain, short curled trunk, tiny round ears, small sleepy eyes peeking out from fur bangs, high domed head, crimson toenails, no tusks, no tail",
+ "size": 44,
+ "seed": 4201,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_mammoth_b",
+ "edit": "make it much rounder like a shaggy fur ball with shorter legs and crimson braids in its fur, keep the same size and pose",
+ "seed": 1,
+ "desc": "Round braided mammoth"
+ },
+ {
+ "name": "pl_mammoth_c",
+ "edit": "make its fur shorter and smoother so its body shape shows, with a taller domed head and crimson stripes on its back, keep the same size and pose",
+ "seed": 1,
+ "desc": "Short-furred striped mammoth"
+ },
+ {
+ "name": "pl_mammoth_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its mammoth face and shaggy teal fur and short trunk, no human features",
+ "seed": 1,
+ "desc": "Young chibi mammoth"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_manatee.json b/pixellab_library/pl_manatee.json
new file mode 100644
index 0000000..a20dc37
--- /dev/null
+++ b/pixellab_library/pl_manatee.json
@@ -0,0 +1,384 @@
+{
+ "name": "pl_manatee",
+ "plan": "aquatic",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "water": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "desc": "Chubby sea-cow pup sitting upright with a whiskery square muzzle and paddle flipper arms",
+ "prompt": "chubby sea cow manatee-like pup sitting upright, big wrinkly square muzzle with crimson whisker dots, tiny squinting kind eyes, no ears, round pear-shaped wrinkly body, two small paddle flipper arms resting on its belly, flat round bottom, no tail",
+ "size": 44,
+ "seed": 3601,
+ "direction": "south",
+ "anchors": {
+ "back": [
+ 32,
+ 34
+ ],
+ "head_top": [
+ 31,
+ 23
+ ]
+ },
+ "variants": [
+ {
+ "name": "pl_manatee_b",
+ "edit": "make it much fatter and wider with deep rolls of wrinkles, a huge droopy bulbous nose and crimson barnacle spots on its shoulders",
+ "seed": 1,
+ "desc": "Fat big-nosed barnacled manatee"
+ },
+ {
+ "name": "pl_manatee_c",
+ "edit": "make it slimmer and taller with a smooth sleek body, a narrow pointed muzzle, big round eyes and crimson wave stripes on its sides",
+ "seed": 1,
+ "desc": "Sleek striped manatee"
+ },
+ {
+ "name": "pl_manatee_d",
+ "edit": "make it an old elder manatee with a long droopy moustache of whiskers, heavy wrinkled brows over sleepy eyes and crimson freckles on its back",
+ "seed": 2,
+ "desc": "Elder moustached manatee"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_ears_round",
+ "edit": "add a pair of big round teal mouse ears with crimson insides on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "electric": 3,
+ "psychic": 2
+ },
+ "other": 0.3,
+ "requires": [
+ "mammal_head",
+ "integrated_head"
+ ],
+ "tags": [
+ "eared"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_candle_flame",
+ "edit": "add a short white candle on top of its head with a small orange and yellow flame on its wick",
+ "seed": 1,
+ "types": {
+ "fire": 5,
+ "ghost": 4
+ },
+ "other": 0,
+ "tags": [
+ "fiery"
+ ],
+ "motif": "fire",
+ "palette": "type",
+ "fixed": "fire"
+ },
+ {
+ "slot": "back",
+ "name": "pl_gears",
+ "edit": "add a cluster of three interlocking gold clockwork gears on its back",
+ "seed": 1,
+ "types": {
+ "electric": 5,
+ "rock": 2,
+ "normal": 2
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "electric",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_quills_gold",
+ "edit": "add a dense bristling cluster of long thin gold porcupine quills on its back",
+ "seed": 1,
+ "types": {
+ "poison": 4,
+ "ground": 3,
+ "fighting": 2,
+ "grass": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "spiky"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_croc",
+ "edit": "add a long thick teal crocodile tail with a row of crimson ridged scutes along the top coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "water": 4,
+ "dragon": 3,
+ "ground": 3
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed",
+ "spiky"
+ ],
+ "motif": "dragon",
+ "palette": "main"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_propeller",
+ "edit": "add a short thick teal tail coming out from its body on the right side ending in a gold boat propeller",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "electric": 3,
+ "flying": 1
+ },
+ "other": 0.1,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "water",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_beret",
+ "edit": "add a small crimson beret hat tilted on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 3,
+ "water": 1
+ },
+ "other": 0.3,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_octopus",
+ "edit": "add a bunch of curling teal octopus tentacles with crimson suckers coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "water": 6,
+ "poison": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "water",
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_pumpkin_hat",
+ "edit": "add a small crimson carved pumpkin with a spooky jack-o-lantern face worn as a hat on top of its head",
+ "seed": 1,
+ "types": {
+ "ghost": 6,
+ "grass": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "spooky",
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_coffin_back",
+ "edit": "add a small crimson coffin with a gold cross strapped upright on its back",
+ "seed": 1,
+ "types": {
+ "ghost": 6,
+ "rock": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "spooky",
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_dragon_mane",
+ "edit": "add a short compact crimson dragon mane tuft swept back on top of its head with two tiny gold antler nubs",
+ "seed": 2,
+ "types": {
+ "dragon": 6,
+ "water": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "dragon",
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_eastern_dragon",
+ "edit": "add a long gold-scaled dragon tail with a crimson fur tuft at the tip coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "dragon": 6,
+ "fire": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "dragon",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_ears_cat",
+ "edit": "add a pair of pointed triangular teal cat ears with crimson insides on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 3,
+ "ghost": 2,
+ "fire": 1
+ },
+ "other": 0.3,
+ "tags": [
+ "eared"
+ ],
+ "requires": [
+ "mammal_head",
+ "integrated_head"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_ossicones",
+ "edit": "add two small teal knobby giraffe ossicone horns with crimson tips on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "ground": 3,
+ "grass": 2
+ },
+ "other": 0.25,
+ "tags": [
+ "horned"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_back_fins",
+ "edit": "add a pair of small crimson fins sticking out from its back like little wings",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "ice": 2,
+ "dragon": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "finned"
+ ],
+ "motif": "water",
+ "palette": "accent",
+ "box": [
+ 0,
+ 24,
+ 64,
+ 64
+ ],
+ "min_area": 12,
+ "skip": true
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_fluke",
+ "edit": "add a teal whale tail with a wide horizontal crimson-edged fluke coming out from its body on the right side and curving up",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "ice": 3
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed",
+ "finned"
+ ],
+ "motif": "water",
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_eyestalks",
+ "edit": "add a pair of thick teal snail eyestalks with round crimson eyeballs on the tips growing straight up from the top of its head",
+ "seed": 1,
+ "types": {
+ "bug": 4,
+ "water": 3,
+ "poison": 2
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "bug",
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_flower_lei",
+ "edit": "add a crimson and gold flower lei garland around its neck",
+ "seed": 1,
+ "types": {
+ "grass": 4,
+ "water": 3,
+ "normal": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent",
+ "motif": "plant",
+ "z": 35
+ },
+ {
+ "slot": "back",
+ "name": "pl_flower_basket",
+ "edit": "add a small gold wicker basket full of crimson flowers strapped on its back",
+ "seed": 1,
+ "types": {
+ "grass": 4,
+ "normal": 3,
+ "bug": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "type",
+ "motif": "plant",
+ "skip": true
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_trident",
+ "edit": "add a long thin teal tail coming out from its body on the right side ending in a gold trident tip",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "dragon": 2,
+ "fighting": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type",
+ "motif": "water"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_mandrake.json b/pixellab_library/pl_mandrake.json
new file mode 100644
index 0000000..3c58c06
--- /dev/null
+++ b/pixellab_library/pl_mandrake.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_mandrake",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "grass": 5,
+ "ghost": 3,
+ "poison": 2
+ },
+ "desc": "Forked mandrake root person with a screaming wrinkled face",
+ "prompt": "mandrake root creature standing on two forked root legs, plump wrinkly teal root body like a carrot-shaped tuber, a screaming face with a wide open crimson mouth and squeezed shut eyes, thin rootlet arms raised up, a small tuft of three leaves on top of its head, thin root hairs on its sides no ground shadow",
+ "size": 44,
+ "seed": 2106,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_mandrake_b",
+ "edit": "make it fatter and rounder like a lumpy potato-shaped root with stubby root legs and crimson warts",
+ "seed": 1,
+ "desc": "Fat warty mandrake"
+ },
+ {
+ "name": "pl_mandrake_c",
+ "edit": "make it skinnier and taller with long tangled rootlet arms and a grumpy frown instead of a scream",
+ "seed": 1,
+ "desc": "Skinny grumpy mandrake"
+ },
+ {
+ "name": "pl_mandrake_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, a tiny sprout tuft, keep its mandrake root face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi mandrake sprout"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_mandrill.json b/pixellab_library/pl_mandrill.json
new file mode 100644
index 0000000..b25f408
--- /dev/null
+++ b/pixellab_library/pl_mandrill.json
@@ -0,0 +1,43 @@
+{
+ "name": "pl_mandrill",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "fighting": 3
+ },
+ "desc": "Seated mandrill with crimson ridged muzzle stripes and an open third eye on its forehead",
+ "prompt": "small mandrill monkey creature sitting upright with its long arms resting on its knees, long muzzle with crimson ridged stripes along both sides of its nose, a third eye wide open in the middle of its forehead, fluffy cheek tufts, small round ears, calm wise expression, no tail",
+ "size": 44,
+ "seed": 1212,
+ "direction": "south-west",
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_mandrill_b",
+ "edit": "make it chubbier with a round pot belly, shaggy long fur and a crimson diamond around its third eye",
+ "seed": 1,
+ "desc": "Chubby shaggy mandrill"
+ },
+ {
+ "name": "pl_mandrill_c",
+ "edit": "make it lanky and thinner with even longer arms, a shorter blunt muzzle and a crimson face patch",
+ "seed": 1,
+ "desc": "Lanky short-muzzled mandrill"
+ },
+ {
+ "name": "pl_mandrill_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its mandrill face and crimson ridged muzzle stripes, no human features",
+ "seed": 1,
+ "desc": "Young chibi mandrill"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_mantis.json b/pixellab_library/pl_mantis.json
new file mode 100644
index 0000000..66f97c5
--- /dev/null
+++ b/pixellab_library/pl_mantis.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_mantis",
+ "plan": "biped",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "fighting": 3,
+ "grass": 2
+ },
+ "desc": "Chibi orchid mantis with a triangular head, folded raptor arms and petal-lobed legs",
+ "prompt": "chibi orchid mantis creature standing upright, triangular head with huge round eyes on its corners, two thin short antennae, long neck, folded spiky raptor forearms held in front of its chest like praying, flat petal-shaped lobes on its legs, slender abdomen, crimson petal tips, no wings",
+ "size": 44,
+ "seed": 1109,
+ "direction": "south",
+ "excludes": [
+ "antennae"
+ ],
+ "variants": [
+ {
+ "name": "pl_mantis_b",
+ "edit": "make it chunkier with a fat round abdomen, thicker forearms and crimson stripes on its abdomen",
+ "seed": 1,
+ "desc": "Chunky striped mantis"
+ },
+ {
+ "name": "pl_mantis_c",
+ "edit": "make it taller and lankier with much bigger petal lobes on its legs and bigger rounder eyes",
+ "seed": 1,
+ "desc": "Lanky big-petal mantis"
+ },
+ {
+ "name": "pl_mantis_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, keep its mantis face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi mantis"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_marimo.json b/pixellab_library/pl_marimo.json
new file mode 100644
index 0000000..d97a8ad
--- /dev/null
+++ b/pixellab_library/pl_marimo.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_marimo",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "grass": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "desc": "Fuzzy moss-ball creature floating with short frond fins",
+ "prompt": "round fuzzy moss ball creature floating in the water, its whole body covered in dense soft fuzzy teal moss fibers, sleepy half-closed eyes and a small content smile, two short leafy frond fins on its sides, a few small bubbles, crimson freckles on its cheeks, no legs, no tail no ground shadow",
+ "size": 44,
+ "seed": 2103,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_marimo_b",
+ "edit": "make it shaggier with long wispy moss strands hanging down from its bottom like a beard and crimson tips on the strands",
+ "seed": 1,
+ "desc": "Shaggy bearded marimo"
+ },
+ {
+ "name": "pl_marimo_c",
+ "edit": "make it squash into a wide flat oval shape like a cushion with big wide-open eyes and crimson spots on its moss",
+ "seed": 1,
+ "desc": "Flat cushion marimo"
+ },
+ {
+ "name": "pl_marimo_d",
+ "edit": "make it a cluster of three fuzzy moss balls stuck together: a big one with the face in the middle and two smaller ones on its sides, with crimson freckles",
+ "seed": 1,
+ "desc": "Triple moss-ball cluster"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_marshmallow.json b/pixellab_library/pl_marshmallow.json
new file mode 100644
index 0000000..157bec4
--- /dev/null
+++ b/pixellab_library/pl_marshmallow.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_marshmallow",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "normal": 3
+ },
+ "desc": "Toasted marshmallow creature on stubby legs with crimson scorched patches",
+ "prompt": "toasted marshmallow creature standing on two short stubby legs, soft puffy cylinder body, a cute sleepy face on the front, crimson toasted scorch patches on its top edge and sides, tiny nub arms, soft rounded edges",
+ "size": 44,
+ "seed": 2801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_marshmallow_b",
+ "edit": "make it a stack of two marshmallows, the top one smaller as its head, with crimson scorch marks across the middle",
+ "seed": 1,
+ "desc": "Stacked marshmallow"
+ },
+ {
+ "name": "pl_marshmallow_c",
+ "edit": "make it melted and droopy, slumping wider at the bottom with gooey drips, big crimson charred spots and a wobbly smile",
+ "seed": 1,
+ "desc": "Melty marshmallow"
+ },
+ {
+ "name": "pl_marshmallow_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat marshmallow"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_mask.json b/pixellab_library/pl_mask.json
new file mode 100644
index 0000000..221d436
--- /dev/null
+++ b/pixellab_library/pl_mask.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_mask",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "ghost": 3
+ },
+ "desc": "Floating carved theatre mask with crimson tear marks, ribbon tassels and tiny floating hands",
+ "prompt": "living carved wooden tribal mask creature floating in the air, a flat oval mask face with hollow eye holes and a carved smiling mouth, a crimson painted stripe down its forehead, two crimson ribbon tassels hanging from its chin, two tiny floating hands beside it, nothing behind the mask, no body",
+ "size": 40,
+ "seed": 2308,
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "variants": [
+ {
+ "name": "pl_mask_b",
+ "edit": "make the mask rounder and wider like a full moon face with a crimson crescent marking on its forehead",
+ "seed": 1,
+ "desc": "Round moon mask",
+ "skip": true
+ },
+ {
+ "name": "pl_mask_c",
+ "edit": "make the mask narrow and long with a pointed chin and crimson zigzag patterns on its cheeks",
+ "seed": 1,
+ "desc": "Long pointed mask"
+ },
+ {
+ "name": "pl_mask_d",
+ "edit": "make the mask cracked down the middle with crimson cracks and a lopsided half-smile half-frown face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Cracked two-faced mask"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_meerkat.json b/pixellab_library/pl_meerkat.json
new file mode 100644
index 0000000..9c923dc
--- /dev/null
+++ b/pixellab_library/pl_meerkat.json
@@ -0,0 +1,483 @@
+{
+ "name": "pl_meerkat",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "psychic": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Upright sentinel meerkat standing tall on alert with dark eye patches and tiny paws",
+ "prompt": "meerkat-like creature standing tall and upright on its hind legs on alert, long slender body, small round head with a short pointed snout, dark crimson patches around its eyes, tiny curved ears, little front paws held in front of its belly, pale belly stripe, no tail",
+ "size": 44,
+ "seed": 3201,
+ "direction": "south",
+ "anchors": {
+ "back": [
+ 32,
+ 34
+ ]
+ },
+ "variants": [
+ {
+ "name": "pl_meerkat_b",
+ "edit": "make it short and very round and chubby with a big fluffy belly, sleepy droopy eyes and crimson cheek spots",
+ "seed": 1,
+ "desc": "Chubby sleepy meerkat"
+ },
+ {
+ "name": "pl_meerkat_c",
+ "edit": "make it lankier with a longer neck, a wider head with big round alert eyes and crimson bands across its back",
+ "seed": 1,
+ "desc": "Lanky banded meerkat"
+ },
+ {
+ "name": "pl_meerkat_d",
+ "edit": "make it a fluffy long-haired meerkat with a shaggy fur mane around its neck, pointier ears and crimson stripes under its eyes",
+ "seed": 1,
+ "desc": "Shaggy maned meerkat"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_tophat",
+ "edit": "add a small crimson top hat with a gold band sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "ghost": 3
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_crown_gold",
+ "edit": "add a small gold royal crown with three points and a crimson gem sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "dragon": 3,
+ "normal": 3,
+ "fighting": 1
+ },
+ "other": 0.3,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_windup_key",
+ "edit": "add a small gold wind-up toy key stuck in its back, with the key's looped handle sticking out sideways beside its right shoulder",
+ "seed": 2,
+ "types": {
+ "electric": 4,
+ "normal": 3,
+ "psychic": 2,
+ "rock": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_lantern_pack",
+ "edit": "add a short crimson pole rising from behind its shoulder with a small glowing gold lantern hanging from its hooked top",
+ "seed": 2,
+ "types": {
+ "ghost": 5,
+ "fire": 3,
+ "psychic": 2
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "spooky",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_ringed",
+ "edit": "add a long thin tail with alternating teal and crimson ring stripes coming out from its body on the right side and curving up",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 3,
+ "poison": 2
+ },
+ "other": 0.3,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_bell",
+ "edit": "add a long thin teal tail coming out from its body on the right side with a small gold bell tied to the tip",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "ghost": 2,
+ "electric": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_pinwheel",
+ "edit": "add a small gold pinwheel toy on a short crimson stick poking up from behind its shoulder",
+ "seed": 1,
+ "types": {
+ "flying": 4,
+ "electric": 3,
+ "normal": 2,
+ "psychic": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "motif": "sky",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_horn_unicorn",
+ "edit": "add a single small spiraled gold unicorn horn on the middle of its forehead",
+ "seed": 1,
+ "types": {
+ "psychic": 5,
+ "normal": 2,
+ "ice": 1
+ },
+ "other": 0.2,
+ "requires": [
+ "mammal_head",
+ "reptile_head",
+ "integrated_head"
+ ],
+ "tags": [
+ "horned"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_fan_folding",
+ "edit": "add a big gold folding hand fan spread open in a half circle behind its back",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "flying": 3,
+ "fighting": 2,
+ "normal": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_straw_hat",
+ "edit": "add a small gold straw sun hat with a crimson ribbon band sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 6,
+ "psychic": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_bindle",
+ "edit": "add a short stick resting on its shoulder with a crimson cloth bundle tied to the end hanging behind its back",
+ "seed": 1,
+ "types": {
+ "normal": 6,
+ "ground": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_earmuffs",
+ "edit": "add a pair of fluffy crimson earmuffs with a gold band over the top of its head",
+ "seed": 1,
+ "types": {
+ "ice": 6,
+ "normal": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_snowflake_back",
+ "edit": "add a big pale icy blue ice crystal snowflake rising from behind its back",
+ "seed": 1,
+ "types": {
+ "ice": 7
+ },
+ "other": 0,
+ "tags": [
+ "crystal"
+ ],
+ "motif": "crystal",
+ "fixed": "ice",
+ "fixed_from": [
+ "main",
+ "accent",
+ "type",
+ "white"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_winged_ears",
+ "edit": "add a pair of small gold feathered wings sprouting from the sides of its head",
+ "seed": 1,
+ "types": {
+ "flying": 6,
+ "psychic": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "feathered"
+ ],
+ "motif": "feather",
+ "palette": "type",
+ "box": [
+ 0,
+ 0,
+ 64,
+ 30
+ ]
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_swallow",
+ "edit": "add a long forked swallow tail of two crimson pointed feathers coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "flying": 6,
+ "normal": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed",
+ "feathered"
+ ],
+ "motif": "feather",
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_star_glasses",
+ "edit": "add a pair of crimson star-shaped sunglasses pushed up on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 3,
+ "electric": 2,
+ "fire": 1
+ },
+ "other": 0.3,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_bandana",
+ "edit": "add a crimson bandana tied on top of its head with the knot ends sticking up",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "normal": 3,
+ "ground": 2
+ },
+ "other": 0.3,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_bow",
+ "edit": "add a long thin teal tail coming out from its body on the right side with a crimson ribbon bow tied near the tip",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 4,
+ "water": 1
+ },
+ "other": 0.3,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_twin",
+ "edit": "add two short fluffy teal tails with crimson tips forking out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "ghost": 3,
+ "fire": 2,
+ "normal": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed",
+ "fluffy"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_teddy_bear",
+ "edit": "add a small gold teddy bear riding piggyback on its back, with the bear's head and paws peeking over its right shoulder",
+ "seed": 2,
+ "types": {
+ "normal": 4,
+ "psychic": 3,
+ "ghost": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "type",
+ "box": [
+ 0,
+ 0,
+ 64,
+ 30
+ ],
+ "skip": true
+ },
+ {
+ "slot": "back",
+ "name": "pl_feather_tuft_back",
+ "edit": "add a tuft of three long crimson feathers sticking up from its back",
+ "seed": 1,
+ "types": {
+ "flying": 4,
+ "normal": 2,
+ "fire": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "feathered"
+ ],
+ "motif": "feather",
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_nightcap",
+ "edit": "add a small floppy crimson sleeping nightcap with a gold pompom drooping to one side on top of its head",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "ghost": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_bell_collar",
+ "edit": "add a crimson collar around its neck with a big round gold bell hanging at the front",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 2,
+ "electric": 1
+ },
+ "other": 0.3,
+ "tags": [],
+ "palette": "type",
+ "z": 35
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_sombrero",
+ "edit": "add a small crimson sombrero hat with a gold rim sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "fire": 3,
+ "ground": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_key",
+ "edit": "add a long thin teal tail coming out from its body on the right side ending in a gold key",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "rock": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_shield_round",
+ "edit": "add a small round gold shield with a crimson emblem strapped on its back, sticking out above its shoulders",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "rock": 3,
+ "normal": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "type",
+ "motif": "armor",
+ "skip": true
+ },
+ {
+ "slot": "back",
+ "name": "pl_guitar",
+ "edit": "add a small gold guitar slung across its back with the neck sticking up over its shoulder",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 3,
+ "electric": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_mimic.json b/pixellab_library/pl_mimic.json
new file mode 100644
index 0000000..c75947d
--- /dev/null
+++ b/pixellab_library/pl_mimic.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_mimic",
+ "plan": "quadruped",
+ "head": [
+ "integrated_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "normal": 3,
+ "fighting": 2
+ },
+ "desc": "Treasure-chest mimic on four stubby legs with a toothy lid mouth and tongue",
+ "prompt": "treasure chest mimic creature standing on four stubby legs, a wooden teal chest with crimson metal corner trims, its lid open a little like a mouth showing sharp teeth and a lolling tongue, two glowing eyes in the dark gap under the lid",
+ "size": 44,
+ "seed": 2109,
+ "variants": [
+ {
+ "name": "pl_mimic_b",
+ "edit": "make the chest wider and lower with a rounded barrel-top lid, a big crimson lock plate on the front and a wide toothy grin",
+ "seed": 1,
+ "desc": "Round-lidded locked mimic"
+ },
+ {
+ "name": "pl_mimic_c",
+ "edit": "make the chest smaller and taller like a little box, with the lid opened wide and a long crimson tongue hanging out",
+ "seed": 1,
+ "desc": "Tall box mimic with long tongue"
+ },
+ {
+ "name": "pl_mimic_d",
+ "edit": "make it an ornate chest with crimson gems on its corners, a curved domed lid, longer spindly legs and a long curling tongue",
+ "seed": 1,
+ "desc": "Ornate gem mimic"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_mitten.json b/pixellab_library/pl_mitten.json
new file mode 100644
index 0000000..11e3ff4
--- /dev/null
+++ b/pixellab_library/pl_mitten.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_mitten",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ice": 5,
+ "normal": 3,
+ "fighting": 2
+ },
+ "desc": "Living knitted mitten with a ribbed cuff, its thumb as an arm and a face on the palm",
+ "prompt": "living knitted wool mitten creature standing upright on its ribbed cuff, the mitten shape is its body, the thumb sticks out to one side like a waving arm, knitted stitch texture, a crimson zigzag knit pattern band across it, a cute face knitted on the front, no legs, nothing on top",
+ "size": 44,
+ "seed": 4201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_mitten_b",
+ "edit": "make it chubbier and puffier with a fluffy pom-pom fur cuff and crimson snowflake knit pattern",
+ "seed": 1,
+ "desc": "Puffy pom-pom mitten"
+ },
+ {
+ "name": "pl_mitten_c",
+ "edit": "make it taller and thinner like a long glove with crimson stripes across the knit",
+ "seed": 1,
+ "desc": "Tall striped mitten"
+ },
+ {
+ "name": "pl_mitten_d",
+ "edit": "make it squat and wider with a thicker ribbed cuff and crimson snowflake stitches",
+ "seed": 1,
+ "desc": "squat and wider with a thicker ribbed cuff and crims"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_mochi.json b/pixellab_library/pl_mochi.json
index 6828c8f..4d9f37b 100644
--- a/pixellab_library/pl_mochi.json
+++ b/pixellab_library/pl_mochi.json
@@ -79,5 +79,25 @@
"palette": "type",
"skip": true
}
+ ],
+ "variants": [
+ {
+ "name": "pl_mochi_b",
+ "edit": "make it taller and rounder like a stacked double dumpling with crimson cheek blush",
+ "seed": 1,
+ "desc": "Stacked dumpling"
+ },
+ {
+ "name": "pl_mochi_c",
+ "edit": "make it wider and squatter with crimson swirl markings and a bigger pinched top, still a soft dumpling creature with face and stub feet",
+ "seed": 2,
+ "desc": "Flat swirled dumpling"
+ },
+ {
+ "name": "pl_mochi_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 2,
+ "desc": "Chibi young mochi"
+ }
]
-}
\ No newline at end of file
+}
diff --git a/pixellab_library/pl_mola.json b/pixellab_library/pl_mola.json
new file mode 100644
index 0000000..a57f1a3
--- /dev/null
+++ b/pixellab_library/pl_mola.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_mola",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "normal": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "desc": "Ocean sunfish: tall flat disc body with a tall top fin and bottom fin, no tail",
+ "prompt": "ocean sunfish creature, very tall flat rounded disc-shaped body, a tall fin on top and a tall fin on the bottom, small round mouth, big calm eyes, tiny side fins, rough skin with crimson speckles, the body ends abruptly with a frilly edge, no tail",
+ "size": 44,
+ "seed": 3901,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_mola_b",
+ "edit": "make it rounder and chubbier with shorter fins, a pale cream belly and crimson stripes, keep it teal",
+ "seed": 1,
+ "desc": "Round striped sunfish"
+ },
+ {
+ "name": "pl_mola_c",
+ "edit": "make it taller and narrower with longer pointed fins, a pouty mouth and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "Tall spiky-finned sunfish"
+ },
+ {
+ "name": "pl_mola_d",
+ "edit": "make it covered in crimson polka dots with a pale cream face and a tiny pouty mouth, keep it teal",
+ "seed": 1,
+ "desc": "Covered in crimson polka dots"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_mole.json b/pixellab_library/pl_mole.json
new file mode 100644
index 0000000..cf48d2b
--- /dev/null
+++ b/pixellab_library/pl_mole.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_mole",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ground": 5,
+ "normal": 3
+ },
+ "desc": "Upright star-nosed mole digger with huge spade claws",
+ "prompt": "plump upright mole creature standing on two short legs, velvety teal fur, a crimson star-shaped fleshy nose made of small tentacles, tiny squinting eyes almost hidden in fur, two huge flat shovel-shaped front claws held in front of its belly, no ears, short stubby tail hidden",
+ "size": 44,
+ "seed": 7101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_mole_b",
+ "edit": "make the mole much chubbier and rounder with a fat round belly and a thick shaggy crimson fur collar around its neck, keep its big claws as claws",
+ "seed": 2,
+ "desc": "Fat banded mole"
+ },
+ {
+ "name": "pl_mole_c",
+ "edit": "give the mole long shaggy scruffy fur all over its body, a big pale belly patch and crimson stripes on its arms, keep its face, nose and claws the same",
+ "seed": 3,
+ "desc": "Lanky spotted mole"
+ },
+ {
+ "name": "pl_mole_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 1,
+ "desc": "Armored mole"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_molecricket.json b/pixellab_library/pl_molecricket.json
new file mode 100644
index 0000000..aaaa6a5
--- /dev/null
+++ b/pixellab_library/pl_molecricket.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_molecricket",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "ground": 5,
+ "bug": 3
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Velvety mole cricket with huge shovel front legs",
+ "prompt": "mole cricket creature facing the viewer, fuzzy velvety teal body, big rounded armored shell-like thorax, two huge broad shovel-shaped front digging legs with crimson toothed edges held out to the sides, small head with beady eyes and two short antennae, four short back legs, no wings",
+ "size": 44,
+ "seed": 9606,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_molecricket_b",
+ "edit": "make it chubbier with a much fatter round abdomen and crimson bands across its thorax",
+ "seed": 1,
+ "desc": "Fat banded mole cricket"
+ },
+ {
+ "name": "pl_molecricket_c",
+ "edit": "give the cricket a thick shaggy fuzzy velvet coat, a pattern of crimson spots on its back and much bigger glossy round eyes, keep its body shape and its big shovel legs",
+ "seed": 2,
+ "desc": "Slim spotted mole cricket"
+ },
+ {
+ "name": "pl_molecricket_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy molecricket"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_moloch.json b/pixellab_library/pl_moloch.json
new file mode 100644
index 0000000..73115bf
--- /dev/null
+++ b/pixellab_library/pl_moloch.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_moloch",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "ground": 3,
+ "poison": 2
+ },
+ "tags": [
+ "spiky"
+ ],
+ "desc": "Thorny devil lizard covered in conical spikes with a knobby false head on its neck",
+ "prompt": "thorny devil lizard creature on four short legs, seen from the front, a wide flat round body covered all over in big cone-shaped thorns, a small round head with thorns over its eyes and a big thorny knob on the back of its neck, crimson patches between the thorns, its rear hidden behind its body, no tail at all",
+ "size": 44,
+ "seed": 4402,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_moloch_b",
+ "edit": "make it rounder and puffed up with fewer bigger spikes and crimson spots",
+ "seed": 1,
+ "desc": "Puffed-up moloch"
+ },
+ {
+ "name": "pl_moloch_c",
+ "edit": "make it flatter and wider with many tiny spikes and crimson stripes along its back",
+ "seed": 1,
+ "desc": "Flat stripy moloch"
+ },
+ {
+ "name": "pl_moloch_d",
+ "edit": "make it very tall and lanky standing upright on long legs, keep its spiky face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded moloch",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_monk.json b/pixellab_library/pl_monk.json
index c06d397..ba96537 100644
--- a/pixellab_library/pl_monk.json
+++ b/pixellab_library/pl_monk.json
@@ -1,85 +1,104 @@
{
- "name": "pl_monk",
- "plan": "biped",
- "head": [
- "mammal_head"
- ],
- "types": {
- "fighting": 3,
- "normal": 2,
- "psychic": 1.5
- },
- "other": 1,
- "excludes": [
- "eared"
- ],
- "desc": "Small calm bald monk creature with a blunt muzzle, crimson brow marks, hand wraps and sash",
- "prompt": "small upright martial artist monk creature standing calmly with palms pressed together in front of its chest, big round head with a short blunt animal muzzle and a dark button nose, calm determined half-closed eyes under thick crimson brow marks, small round animal ears on the sides of its head, slim body with a crimson sash tied around its waist, forearms and hands wrapped in crimson cloth hand wraps, short sturdy legs with bare three-toed feet, bald smooth head, no hair, no tail, nothing behind it",
- "size": 44,
- "seed": 613,
- "direction": "south-west",
- "parts": [
- {
- "slot": "back",
- "name": "pl_scarf_long",
- "edit": "add a long crimson scarf wrapped around its neck, with its long end trailing out behind it to the right",
- "seed": 1,
- "types": {
- "fighting": 5,
- "normal": 3,
- "flying": 1
- },
- "other": 0.4,
- "tags": [],
- "palette": "accent"
+ "name": "pl_monk",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fighting": 3,
+ "normal": 2,
+ "psychic": 1.5
},
- {
- "slot": "back",
- "name": "pl_cape_short",
- "edit": "add a short gold cape draped from its shoulders behind its back",
- "seed": 1,
- "types": {
- "fighting": 4,
- "psychic": 2,
- "normal": 2
- },
- "other": 0.2,
- "tags": [],
- "palette": "type"
- },
- {
- "slot": "tail",
- "name": "pl_tail_wrapped",
- "edit": "add a long teal tail wrapped in crimson bandage strips, starting at its lower back and curling up on the right side",
- "seed": 1,
- "types": {
- "fighting": 6,
- "normal": 1
- },
- "other": 0.1,
- "tags": [
- "tailed"
- ],
- "palette": "main"
- },
- {
- "slot": "head_top",
- "name": "pl_topknot",
- "edit": "add a small teal topknot of hair on top of its head, tied with a crimson band",
- "seed": 1,
- "types": {
- "fighting": 4,
- "normal": 3,
- "psychic": 1
- },
- "other": 0.3,
- "requires": [
- "mammal_head",
- "reptile_head",
- "integrated_head"
- ],
- "tags": [],
- "palette": "main"
- }
- ]
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Small calm bald monk creature with a blunt muzzle, crimson brow marks, hand wraps and sash",
+ "prompt": "small upright martial artist monk creature standing calmly with palms pressed together in front of its chest, big round head with a short blunt animal muzzle and a dark button nose, calm determined half-closed eyes under thick crimson brow marks, small round animal ears on the sides of its head, slim body with a crimson sash tied around its waist, forearms and hands wrapped in crimson cloth hand wraps, short sturdy legs with bare three-toed feet, bald smooth head, no hair, no tail, nothing behind it",
+ "size": 44,
+ "seed": 613,
+ "direction": "south-west",
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_scarf_long",
+ "edit": "add a long crimson scarf wrapped around its neck, with its long end trailing out behind it to the right",
+ "seed": 1,
+ "types": {
+ "fighting": 5,
+ "normal": 3,
+ "flying": 1
+ },
+ "other": 0.4,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_cape_short",
+ "edit": "add a short gold cape draped from its shoulders behind its back",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "psychic": 2,
+ "normal": 2
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_wrapped",
+ "edit": "add a long teal tail wrapped in crimson bandage strips, starting at its lower back and curling up on the right side",
+ "seed": 1,
+ "types": {
+ "fighting": 6,
+ "normal": 1
+ },
+ "other": 0.1,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_topknot",
+ "edit": "add a small teal topknot of hair on top of its head, tied with a crimson band",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "normal": 3,
+ "psychic": 1
+ },
+ "other": 0.3,
+ "requires": [
+ "mammal_head",
+ "reptile_head",
+ "integrated_head"
+ ],
+ "tags": [],
+ "palette": "main"
+ }
+ ],
+ "variants": [
+ {
+ "name": "pl_monk_b",
+ "edit": "make it bulkier with a broad muscular chest, a thick neck and crimson arm wraps",
+ "seed": 1,
+ "desc": "Burly monk"
+ },
+ {
+ "name": "pl_monk_c",
+ "edit": "make it slimmer with a long wispy beard, droopy brows and crimson bead marks, same creature muzzle and teal skin",
+ "seed": 2,
+ "desc": "Slim bearded elder"
+ },
+ {
+ "name": "pl_monk_d",
+ "edit": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush",
+ "seed": 1,
+ "desc": "Baby monk"
+ }
+ ]
}
diff --git a/pixellab_library/pl_moose.json b/pixellab_library/pl_moose.json
new file mode 100644
index 0000000..1367ef4
--- /dev/null
+++ b/pixellab_library/pl_moose.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_moose",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Gangly moose calf with a big bulbous droopy nose and a dangling dewlap bell",
+ "prompt": "gangly moose calf creature standing on four long knobby legs, 3/4 view facing the viewer, long head with a huge bulbous droopy overhanging nose, a dangling furry dewlap bell under its chin, long floppy ears out to the sides, humped shoulders, crimson saddle patch on its back, no antlers, nothing on top of its head, no tail",
+ "size": 44,
+ "seed": 4401,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_moose_b",
+ "edit": "make it shorter and chubbier with stubby legs, an even bigger nose and crimson spots on its back",
+ "seed": 1,
+ "desc": "Stubby big-nosed moose"
+ },
+ {
+ "name": "pl_moose_c",
+ "edit": "make it shaggier with long fur on its hump and neck and a bigger dewlap with crimson stripes",
+ "seed": 1,
+ "desc": "Shaggy-humped moose"
+ },
+ {
+ "name": "pl_moose_d",
+ "edit": "make it a young chibi version with a bigger head and longer legs, keep its face, no human features",
+ "seed": 1,
+ "desc": "a young chibi version with a bigger head and longer "
+ }
+ ]
+}
diff --git a/pixellab_library/pl_morel.json b/pixellab_library/pl_morel.json
new file mode 100644
index 0000000..3b93b45
--- /dev/null
+++ b/pixellab_library/pl_morel.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_morel",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "grass": 5,
+ "poison": 3,
+ "ghost": 2
+ },
+ "desc": "Morel mushroom person with a tall honeycomb-pitted conical cap and skinny stalk limbs",
+ "prompt": "small mushroom person shaped like a morel mushroom, tall conical teal cap covered in a deep honeycomb pattern of crimson pits between teal ridges, the cap sits over a round face with small dark eyes and a tiny mouth, thick pale stalk body, skinny stick arms and short stubby legs, no gills, no spots, no brown",
+ "size": 44,
+ "seed": 1102,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_morel_b",
+ "edit": "make the cap shorter, wider and rounder like a puffy wrinkled brain cap, and make the stalk body chubbier",
+ "seed": 1,
+ "desc": "Squat puffy-capped morel"
+ },
+ {
+ "name": "pl_morel_c",
+ "edit": "make it taller and thinner with a long narrow pointed cap and crimson bands around its stalk body",
+ "seed": 1,
+ "desc": "Tall narrow banded morel"
+ },
+ {
+ "name": "pl_morel_d",
+ "edit": "split its cap into a bumpy cluster of three small honeycomb caps of different heights sitting together on top of its head",
+ "seed": 2,
+ "desc": "Young button-cap morel",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_mosquito.json b/pixellab_library/pl_mosquito.json
new file mode 100644
index 0000000..98b90ba
--- /dev/null
+++ b/pixellab_library/pl_mosquito.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_mosquito",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "poison": 3,
+ "flying": 2
+ },
+ "desc": "Gangly mosquito with a long needle proboscis and stilt legs",
+ "prompt": "gangly mosquito bug creature standing on six long thin stilt legs, small round teal body, round head with huge crimson compound eyes, a long thin needle-shaped proboscis nose pointing down, two feathery short antennae, striped abdomen, no wings no ground shadow",
+ "size": 44,
+ "seed": 2111,
+ "direction": "south",
+ "excludes": [
+ "antennae"
+ ],
+ "variants": [
+ {
+ "name": "pl_mosquito_b",
+ "edit": "make its abdomen big round and swollen with crimson stripes like it just ate",
+ "seed": 1,
+ "desc": "Bloated striped mosquito"
+ },
+ {
+ "name": "pl_mosquito_c",
+ "edit": "make it fuzzier with a hairy body, shorter legs and bushier crimson antennae",
+ "seed": 1,
+ "desc": "Fuzzy short-legged mosquito"
+ },
+ {
+ "name": "pl_mosquito_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, a short needle nose, keep its mosquito face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi mosquito",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_moth.json b/pixellab_library/pl_moth.json
new file mode 100644
index 0000000..61e81cd
--- /dev/null
+++ b/pixellab_library/pl_moth.json
@@ -0,0 +1,17 @@
+{
+ "name": "pl_moth",
+ "plan": "insectoid",
+ "head": ["insect_head"],
+ "types": {"bug": 5, "psychic": 3, "ghost": 2},
+ "desc": "Fluffy round moth creature with feathery antennae baked in and a thick fur collar",
+ "prompt": "fluffy round moth creature sitting upright, thick fur collar around its neck, big round eyes, short fuzzy legs, feathery antennae, no wings",
+ "size": 44,
+ "seed": 901,
+ "excludes": ["antennae"],
+ "variants": [
+ {"name": "pl_moth_b", "edit": "make it slimmer with a longer fuzzy body, crimson stripes across its belly and droopier antennae", "seed": 1,
+ "desc": "Slimmer striped moth"},
+ {"name": "pl_moth_c", "edit": "make it chubbier and rounder with a much bigger fluffy fur collar and tiny crimson spots on its head", "seed": 1,
+ "desc": "Chubby big-collared moth"}
+ ]
+}
diff --git a/pixellab_library/pl_mourner.json b/pixellab_library/pl_mourner.json
new file mode 100644
index 0000000..c4f0ecf
--- /dev/null
+++ b/pixellab_library/pl_mourner.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_mourner",
+ "plan": "avian",
+ "head": [
+ "beak_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "flying": 3,
+ "normal": 2
+ },
+ "desc": "Plump mourning dove wearing a black lace widow's veil",
+ "prompt": "plump round dove creature with a small beak, wearing a dark lace widow's veil draped over its head and shoulders, sad droopy eyes peeking through the veil, soft teal feathers, crimson eye rings, small pink feet, no wings spread",
+ "size": 44,
+ "seed": 2114,
+ "variants": [
+ {
+ "name": "pl_mourner_b",
+ "edit": "keep it a round bird with the same pose and size, make the lace veil longer so it drapes down to its feet, give it droopier sad eyes and crimson spots on its chest feathers",
+ "seed": 2,
+ "desc": "Long-veiled spotted dove"
+ },
+ {
+ "name": "pl_mourner_c",
+ "edit": "make it extra fluffy and round with a short lace veil like a bonnet and a crimson ribbon bow at its neck",
+ "seed": 1,
+ "desc": "Fluffy bonneted dove"
+ },
+ {
+ "name": "pl_mourner_d",
+ "edit": "young chibi fledgling version with a huge round fluffy head, a tiny body and a small lace doily veil on top of its head, keep its bird face and beak, no human features",
+ "seed": 1,
+ "desc": "Fledgling with doily veil",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_mudskipper.json b/pixellab_library/pl_mudskipper.json
new file mode 100644
index 0000000..22dd47c
--- /dev/null
+++ b/pixellab_library/pl_mudskipper.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_mudskipper",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ground": 5,
+ "water": 3
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Mudskipper propped on arm-like fins, eyes on top",
+ "prompt": "mudskipper fish creature facing the viewer, scaly teal fish body lying on the ground propped up on two muscular arm-like front fins, two big round goggly eyes bulging up from the very top of its head like periscopes, small toothless pouting mouth, crimson spots on its sides, body tapering behind it",
+ "size": 44,
+ "seed": 7717,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_mudskipper_b",
+ "edit": "make the fish chubbier with a fatter round body, a tall spiky crimson fin along its back, and crimson stripes instead of spots",
+ "seed": 2,
+ "desc": "Sail-finned mudskipper"
+ },
+ {
+ "name": "pl_mudskipper_c",
+ "edit": "make the fish flatter and wider with bumpy warty skin, smaller eyes and frilly crimson gills on its cheeks",
+ "seed": 2,
+ "desc": "Slim warty mudskipper"
+ },
+ {
+ "name": "pl_mudskipper_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy mudskipper"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_narwhal.json b/pixellab_library/pl_narwhal.json
new file mode 100644
index 0000000..f987504
--- /dev/null
+++ b/pixellab_library/pl_narwhal.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_narwhal",
+ "plan": "aquatic",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "slots": [
+ "back"
+ ],
+ "desc": "Chubby narwhal calf with a short spiral tusk on its forehead, mottled spots and baked-in tail flukes",
+ "prompt": "chubby narwhal calf creature sitting upright on its belly, plump rounded body, a short straight spiral crimson tusk pointing up from its forehead, mottled darker spots on its back, small front flippers, small smiling mouth, no tail",
+ "size": 44,
+ "seed": 3801,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_narwhal_b",
+ "edit": "make it slimmer and sleeker with a bigger head and bold crimson spots instead of mottling",
+ "seed": 1,
+ "desc": "Sleek spotted narwhal"
+ },
+ {
+ "name": "pl_narwhal_c",
+ "edit": "make it much fatter and rounder like a ball with tiny flippers and crimson stripes across its back",
+ "seed": 1,
+ "desc": "Round striped narwhal"
+ },
+ {
+ "name": "pl_narwhal_d",
+ "edit": "make it squat and rounder with crimson mottled spots and a fluffy-looking soft belly",
+ "seed": 1,
+ "desc": "squat and rounder with crimson mottled spots and a f"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_neon.json b/pixellab_library/pl_neon.json
new file mode 100644
index 0000000..7bd1490
--- /dev/null
+++ b/pixellab_library/pl_neon.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_neon",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "electric": 5,
+ "ghost": 3
+ },
+ "desc": "Glowing glass neon-tube serpent rising in an S-curve, crimson glow outline",
+ "prompt": "serpent creature whose whole body is one glowing glass neon tube, rising upright in an S-curve from a coiled base, a round glass tube head with a simple cute face, small metal caps where the tube bends, crimson glow along its outline, no limbs",
+ "size": 44,
+ "seed": 2504,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_neon_b",
+ "edit": "make the tube thicker with fewer bends forming a big loose spiral, with crimson tube clips along it",
+ "seed": 1,
+ "desc": "Thick spiral neon"
+ },
+ {
+ "name": "pl_neon_c",
+ "edit": "make the tube thinner and bent into sharp angular zigzags like a lightning bolt, with crimson tube ends",
+ "seed": 1,
+ "desc": "Zigzag neon"
+ },
+ {
+ "name": "pl_neon_d",
+ "edit": "make the glowing tube twice as thick and chunky like a fat glowing worm coiled in a big round spiral, keep its teal neon tube body and crimson glow",
+ "seed": 11,
+ "desc": "Looped thin neon",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_nudibranch.json b/pixellab_library/pl_nudibranch.json
new file mode 100644
index 0000000..0998f3f
--- /dev/null
+++ b/pixellab_library/pl_nudibranch.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_nudibranch",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "excludes": [
+ "antennae"
+ ],
+ "desc": "Sea slug with frilly crimson gill tufts along its sides and two rhinophore stubs",
+ "prompt": "soft sea slug creature, long flat squishy body lying low, wavy frilly crimson ruffles running along both sides of its body, a crown of small feathery crimson gill tufts on its rear, two short stubby feelers on its head, big sleepy eyes, gentle smile",
+ "size": 44,
+ "seed": 1104,
+ "variants": [
+ {
+ "name": "pl_nudibranch_b",
+ "edit": "make its body plumper and shorter, cover it with rows of small soft finger-like crimson-tipped bumps, and give it wide round eyes",
+ "seed": 1,
+ "desc": "Bumpy plump sea slug"
+ },
+ {
+ "name": "pl_nudibranch_c",
+ "edit": "keep it lying low and flat on the ground in the same pose, but make it longer and thinner with bold crimson stripes across its back and bigger wavy side frills",
+ "seed": 2,
+ "desc": "Long striped frilly sea slug"
+ },
+ {
+ "name": "pl_nudibranch_d",
+ "edit": "make it shorter and wider like a flat oval pancake with a wavy crimson rim all around its edge and two big curled feelers on its head, same pose",
+ "seed": 1,
+ "desc": "Flat pancake sea slug",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_nutcracker.json b/pixellab_library/pl_nutcracker.json
new file mode 100644
index 0000000..1bc832e
--- /dev/null
+++ b/pixellab_library/pl_nutcracker.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_nutcracker",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "rock": 3,
+ "normal": 2
+ },
+ "desc": "Nutcracker soldier toy with a huge square jaw, stiff stance and crimson uniform trim",
+ "prompt": "nutcracker soldier toy creature standing stiffly on two straight legs, big wooden head with a huge square jaw full of teeth, bushy white moustache, round eyes, short flat cap, teal uniform jacket with crimson trim and buttons, arms at its sides holding fists",
+ "size": 44,
+ "seed": 3701,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_nutcracker_b",
+ "edit": "make it shorter and stockier with a giant oversized jaw, a wide chest and crimson stripes on its legs, keep it teal",
+ "seed": 1,
+ "desc": "Stocky big-jawed nutcracker"
+ },
+ {
+ "name": "pl_nutcracker_c",
+ "edit": "make it taller and thinner with a long narrow face, a pointed beard and crimson spots on its jacket, keep it teal",
+ "seed": 1,
+ "desc": "Tall bearded nutcracker"
+ },
+ {
+ "name": "pl_nutcracker_d",
+ "edit": "make it a round chubby toy with a barrel belly, painted crimson cheeks and a checkered crimson sash, keep it teal",
+ "seed": 1,
+ "desc": "A round chubby toy"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_nymph.json b/pixellab_library/pl_nymph.json
new file mode 100644
index 0000000..23cc399
--- /dev/null
+++ b/pixellab_library/pl_nymph.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_nymph",
+ "plan": "aquatic",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "water": 3,
+ "dragon": 2
+ },
+ "desc": "Dragonfly nymph with a flat wide head, hinged jaw mask and gill stubs",
+ "prompt": "dragonfly nymph creature crawling facing the viewer, flat wide head with huge bulging eyes on the sides, a folded hinged jaw plate covering its chin like a mask, broad flat segmented body, six spindly bent legs, short spiky gill stubs at its rear, crimson stripes on its back, no wings",
+ "size": 44,
+ "seed": 1114,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_nymph_b",
+ "edit": "make it rounder and plumper with a short wide body and crimson spots on its jaw mask",
+ "seed": 1,
+ "desc": "Plump spotted nymph"
+ },
+ {
+ "name": "pl_nymph_c",
+ "edit": "make its body longer and slimmer with a narrower head and bumpy armored plates along its back, keep it low and crawling on six legs",
+ "seed": 2,
+ "desc": "Slim armored nymph"
+ },
+ {
+ "name": "pl_nymph_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, keep its nymph face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi nymph"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_obsidian.json b/pixellab_library/pl_obsidian.json
new file mode 100644
index 0000000..e3e4383
--- /dev/null
+++ b/pixellab_library/pl_obsidian.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_obsidian",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "rock": 5,
+ "fire": 3,
+ "dragon": 2
+ },
+ "desc": "Squat chuckwalla lizard of glassy faceted obsidian plates",
+ "prompt": "squat flat chuckwalla lizard creature in three-quarter view, four splayed short legs, low flattened body made of sharp angular glossy obsidian glass shards with bright white shine highlights, smooth rounded blunt head with nothing on top, crimson glowing cracks between the shards, small narrow eyes",
+ "size": 44,
+ "seed": 8232,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_obsidian_b",
+ "edit": "make its body fatter and rounder with a big throat pouch and crimson stripes across its back",
+ "seed": 1,
+ "desc": "Fat pouched obsidian lizard"
+ },
+ {
+ "name": "pl_obsidian_c",
+ "edit": "make it leaner and taller on its legs with jagged pointed shard spikes along its spine and big round eyes",
+ "seed": 1,
+ "desc": "Spiny lean obsidian lizard"
+ },
+ {
+ "name": "pl_obsidian_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy obsidian"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_onigiri.json b/pixellab_library/pl_onigiri.json
new file mode 100644
index 0000000..cf6fd39
--- /dev/null
+++ b/pixellab_library/pl_onigiri.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_onigiri",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "normal": 5,
+ "grass": 3,
+ "water": 2
+ },
+ "desc": "Triangular rice-ball creature with a crimson seaweed band",
+ "prompt": "rice ball creature, a rounded triangle shaped body of pale teal rice grains, a cheerful face in the upper middle, a wide crimson seaweed wrapper band across its bottom, tiny stubby arms and feet",
+ "size": 40,
+ "seed": 4201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_onigiri_b",
+ "edit": "make it rounder and puffier like a ball with a smaller crimson band and blush cheeks, keep it teal",
+ "seed": 1,
+ "desc": "Round rice ball"
+ },
+ {
+ "name": "pl_onigiri_c",
+ "edit": "make it a taller sharper triangle with a sleepy face and crimson dots on its rice, keep it teal",
+ "seed": 2,
+ "desc": "Tall sleepy triangle rice ball"
+ },
+ {
+ "name": "pl_onigiri_d",
+ "edit": "make it flatter and wider like a rice cake disc with a crimson plum dot on its forehead, keep it teal",
+ "seed": 1,
+ "desc": "Flatter and wider like a rice cake disc"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_origami.json b/pixellab_library/pl_origami.json
new file mode 100644
index 0000000..3adafbe
--- /dev/null
+++ b/pixellab_library/pl_origami.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_origami",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "flying": 5,
+ "psychic": 3,
+ "normal": 2
+ },
+ "desc": "Folded paper crane creature with flat creased facets and a pointed paper beak",
+ "prompt": "origami paper crane creature standing upright, body made of flat folded teal paper with sharp crease lines and triangular facets, pointed folded paper beak, small dot eyes, folded paper wings tucked at its sides, two thin folded paper legs, small crimson paper accents, no tail",
+ "size": 44,
+ "seed": 3201,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_origami_b",
+ "edit": "make its folded teal paper body rounder and puffier like a folded paper balloon with crimson stripes on the paper, keep the teal paper color, keep the same size and pose",
+ "seed": 2,
+ "desc": "Puffy striped origami"
+ },
+ {
+ "name": "pl_origami_c",
+ "edit": "fold its teal paper body into sharper spiky points with crimson triangle patterns on the paper, keep the teal paper color and its short neck, keep the same size and pose",
+ "seed": 2,
+ "desc": "Spiky triangle-patterned origami",
+ "skip": true
+ },
+ {
+ "name": "pl_origami_d",
+ "edit": "make the folded paper body crumpled and wrinkled with crimson ink splotches on the paper, keep the teal paper color, keep the same size and pose",
+ "seed": 1,
+ "desc": "Crumpled ink-splotched origami",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ouija.json b/pixellab_library/pl_ouija.json
new file mode 100644
index 0000000..346b3e8
--- /dev/null
+++ b/pixellab_library/pl_ouija.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_ouija",
+ "plan": "blob",
+ "head": [
+ "integrated_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "psychic": 3,
+ "normal": 2
+ },
+ "desc": "Living ouija planchette: heart-shaped board body with a round glass eye window on stubby legs",
+ "prompt": "living wooden ouija planchette creature, a flat heart-shaped teal board body standing up, a round glass window in the middle of the board acting as one big eye, crimson painted symbols around its edge, small smiling mouth below the window, three short stubby peg legs",
+ "size": 44,
+ "seed": 2113,
+ "variants": [
+ {
+ "name": "pl_ouija_b",
+ "edit": "make the board body rounder and puffier like a cushion with two smaller glass window eyes and crimson stars",
+ "seed": 1,
+ "desc": "Round two-eyed planchette"
+ },
+ {
+ "name": "pl_ouija_c",
+ "edit": "make the board body narrower and pointier like an arrowhead with a cracked glass eye and crimson letter carvings",
+ "seed": 1,
+ "desc": "Pointed cracked planchette"
+ },
+ {
+ "name": "pl_ouija_d",
+ "edit": "make it a tall wooden spirit board standing upright like a sign, with crimson letters painted on it and a crescent moon face in its upper corner",
+ "seed": 1,
+ "desc": "Upright spirit board",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_ouroboros.json b/pixellab_library/pl_ouroboros.json
new file mode 100644
index 0000000..f93de30
--- /dev/null
+++ b/pixellab_library/pl_ouroboros.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_ouroboros",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "psychic": 3,
+ "ghost": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "tags": [
+ "tailed"
+ ],
+ "desc": "Serpent dragon biting its own tail, its body forming a standing ring",
+ "prompt": "serpent dragon creature biting its own tail so its body forms a round ring standing upright, the dragon head at the top of the ring holding the tail tip in its mouth, crimson belly scales on the inside of the ring, scaly teal body, no wings, no horns, no legs",
+ "size": 44,
+ "seed": 4101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_ouroboros_b",
+ "edit": "make the ring body thicker and chunkier with crimson diamond patterns",
+ "seed": 1,
+ "desc": "Thick diamond ouroboros"
+ },
+ {
+ "name": "pl_ouroboros_c",
+ "edit": "make the ring body thinner and twisted into a figure eight with crimson bands",
+ "seed": 1,
+ "desc": "Figure-eight ouroboros"
+ },
+ {
+ "name": "pl_ouroboros_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 1,
+ "desc": "Armored ouroboros"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_outlet.json b/pixellab_library/pl_outlet.json
new file mode 100644
index 0000000..eb7d2ea
--- /dev/null
+++ b/pixellab_library/pl_outlet.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_outlet",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "normal": 3
+ },
+ "desc": "Living wall outlet plate whose face is the socket: slot eyes, ground-hole mouth, forehead screw",
+ "prompt": "living electrical wall outlet creature, a rounded square plate body, its face is a power socket: two tall vertical rectangular slots as its eyes and a round hole as its open mouth, a flat crimson screw in the middle of its forehead, tiny stubby arms and tiny stubby feet",
+ "size": 40,
+ "seed": 2303,
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "variants": [
+ {
+ "name": "pl_outlet_b",
+ "edit": "make it chunkier and rounder like a puffy cushion with crimson trim around its edge and bigger slot eyes",
+ "seed": 1,
+ "desc": "Puffy cushion outlet"
+ },
+ {
+ "name": "pl_outlet_c",
+ "edit": "make it a narrow tall rectangular plate with a light switch nose and crimson screws at its top and bottom",
+ "seed": 1,
+ "desc": "Tall light-switch plate"
+ },
+ {
+ "name": "pl_outlet_d",
+ "edit": "make the outlet plate round instead of rectangular with a crimson rim and a surprised face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Round surprised outlet"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_owl.json b/pixellab_library/pl_owl.json
index e3f26c5..a5b352b 100644
--- a/pixellab_library/pl_owl.json
+++ b/pixellab_library/pl_owl.json
@@ -82,5 +82,25 @@
"tags": [],
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_owl_b",
+ "edit": "make it rounder and fluffier with smaller ear tufts and crimson heart-shaped face disc",
+ "seed": 1,
+ "desc": "Round fluffy owl"
+ },
+ {
+ "name": "pl_owl_c",
+ "edit": "make it very tall and lanky like a long-legged owl standing on long thin legs, keep its big round owl eyes, beak and teal color",
+ "seed": 11,
+ "desc": "Tall slim owl"
+ },
+ {
+ "name": "pl_owl_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 2,
+ "desc": "Armored owl"
+ }
]
}
diff --git a/pixellab_library/pl_pangolin.json b/pixellab_library/pl_pangolin.json
new file mode 100644
index 0000000..1962d23
--- /dev/null
+++ b/pixellab_library/pl_pangolin.json
@@ -0,0 +1,402 @@
+{
+ "name": "pl_pangolin",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ground": 5,
+ "rock": 3,
+ "dragon": 2
+ },
+ "desc": "Small pangolin covered in overlapping pinecone-like scale plates with a narrow pointed head",
+ "prompt": "small pangolin-like creature standing on four short sturdy legs, whole body covered in big overlapping rounded scale plates with crimson edges, small narrow pointed head with a tiny crimson nose and beady eyes, long curved front claws, hunched rounded back, no tail",
+ "size": 44,
+ "seed": 3101,
+ "direction": "south-west",
+ "anchors": {
+ "head_top": [
+ 33,
+ 29
+ ]
+ },
+ "variants": [
+ {
+ "name": "pl_pangolin_b",
+ "edit": "make it curled up rounder like a ball with much bigger pointed scale plates and a stubbier head",
+ "seed": 1,
+ "desc": "Round big-scaled pangolin"
+ },
+ {
+ "name": "pl_pangolin_c",
+ "edit": "make it longer and lower with small fine scales like chainmail, a longer snout and crimson stripes down its sides",
+ "seed": 1,
+ "desc": "Long chainmail pangolin"
+ },
+ {
+ "name": "pl_pangolin_d",
+ "edit": "make its scales into big flat crimson-edged hexagon armor plates in a tortoise shell pattern, with a shorter blunt head and short stubby thick legs",
+ "seed": 3,
+ "desc": "Hex-plated stubby pangolin",
+ "skip": true
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_goggles",
+ "edit": "add a pair of gold aviator goggles with round lenses strapped on top of its head",
+ "seed": 1,
+ "types": {
+ "electric": 4,
+ "fire": 2,
+ "flying": 2,
+ "ground": 2,
+ "normal": 2
+ },
+ "other": 0.3,
+ "requires": [
+ "mammal_head",
+ "reptile_head",
+ "integrated_head",
+ "insect_head"
+ ],
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_acorn_cap",
+ "edit": "add a small gold acorn cap hat with a short stem sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "grass": 4,
+ "bug": 3,
+ "ground": 3,
+ "normal": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_backpack",
+ "edit": "add a small crimson backpack with gold buckles strapped on its back",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "ground": 3,
+ "fighting": 2,
+ "grass": 1
+ },
+ "other": 0.3,
+ "tags": [],
+ "palette": "accent",
+ "plans": [
+ "quadruped",
+ "serpentine",
+ "aquatic",
+ "insectoid"
+ ],
+ "z": 35
+ },
+ {
+ "slot": "back",
+ "name": "pl_saddle_riding",
+ "edit": "add a small crimson leather riding saddle with gold trim on its back",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "fighting": 3,
+ "ground": 2,
+ "dragon": 2
+ },
+ "other": 0.2,
+ "plans": [
+ "quadruped",
+ "serpentine",
+ "aquatic",
+ "insectoid"
+ ],
+ "tags": [],
+ "palette": "accent",
+ "z": 35
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_beaver",
+ "edit": "add a flat wide paddle-shaped crimson beaver tail with crosshatch scale pattern coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "water": 4,
+ "ground": 3,
+ "normal": 3
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_armadillo",
+ "edit": "add a short thick armored tail made of gold ring bands coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "ground": 5,
+ "rock": 4,
+ "fighting": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed",
+ "armored"
+ ],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_cattail",
+ "edit": "add a thin teal tail coming out from its body on the right side ending in a fuzzy crimson cattail reed head",
+ "seed": 1,
+ "types": {
+ "grass": 4,
+ "water": 3,
+ "ground": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "plant",
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_miner_helmet",
+ "edit": "add a small gold miner hard hat with a round headlamp on the front sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "ground": 6,
+ "rock": 3
+ },
+ "other": 0.15,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_shovel",
+ "edit": "add a thick teal tail coming out from its body on the right side ending in a gold shovel blade",
+ "seed": 1,
+ "types": {
+ "ground": 6,
+ "fighting": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_cactus_back",
+ "edit": "add a small round teal cactus with crimson flowers and tiny spines growing on top of its back",
+ "seed": 1,
+ "types": {
+ "grass": 6,
+ "ground": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "spiky"
+ ],
+ "motif": "plant",
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_bonsai",
+ "edit": "add a tiny bonsai tree with a crimson twisted trunk and round gold leaf clumps growing on top of its head",
+ "seed": 1,
+ "types": {
+ "grass": 6,
+ "psychic": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_boulders",
+ "edit": "add a tail made of a row of round gold boulders getting smaller toward the tip coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "rock": 6,
+ "ground": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed",
+ "armored"
+ ],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_cowlick_curl",
+ "edit": "add a single curly teal hair cowlick sprouting from the top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 2,
+ "water": 1
+ },
+ "other": 0.3,
+ "tags": [
+ "fluffy"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_tufts_shoulder",
+ "edit": "add two fluffy teal fur tufts sticking up from its shoulders",
+ "seed": 1,
+ "types": {
+ "normal": 3,
+ "ice": 3,
+ "fighting": 2
+ },
+ "other": 0.25,
+ "tags": [
+ "fluffy"
+ ],
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_wings_leaf",
+ "edit": "add a pair of big gold leaf-shaped wings with visible veins spread out from its back",
+ "seed": 2,
+ "types": {
+ "grass": 5,
+ "flying": 3,
+ "bug": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "winged",
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_rope",
+ "edit": "add a thick frayed crimson rope tail with a knot near the end coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "normal": 3,
+ "ground": 2
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_blossom",
+ "edit": "add a thin teal tail coming out from its body on the right side ending in a big gold flower blossom",
+ "seed": 1,
+ "types": {
+ "grass": 5,
+ "psychic": 2,
+ "normal": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "plant",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_cherries",
+ "edit": "add a pair of round crimson cherries on a short stem sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "grass": 4,
+ "normal": 3,
+ "fire": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent",
+ "motif": "plant"
+ },
+ {
+ "slot": "back",
+ "name": "pl_wings_petal",
+ "edit": "add a pair of small crimson flower petal wings on its back",
+ "seed": 1,
+ "types": {
+ "grass": 4,
+ "bug": 3,
+ "flying": 2
+ },
+ "other": 0.25,
+ "tags": [
+ "winged"
+ ],
+ "palette": "accent",
+ "motif": "plant",
+ "skip": true
+ },
+ {
+ "slot": "back",
+ "name": "pl_bedroll",
+ "edit": "add a rolled-up crimson blanket bedroll strapped on top of its back",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "ground": 3,
+ "fighting": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_satchel",
+ "edit": "add a tiny crimson satchel bag with a gold buckle sitting on top of its back",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 2,
+ "ground": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_pebble.json b/pixellab_library/pl_pebble.json
index 08af6cf..072162b 100644
--- a/pixellab_library/pl_pebble.json
+++ b/pixellab_library/pl_pebble.json
@@ -53,5 +53,25 @@
"motif": "crystal",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_pebble_b",
+ "edit": "make it taller and more jagged like a crystal-studded rock with crimson veins",
+ "seed": 1,
+ "desc": "Jagged veined rock"
+ },
+ {
+ "name": "pl_pebble_c",
+ "edit": "make it flatter and smoother like a river stone with crimson bands",
+ "seed": 1,
+ "desc": "Smooth banded stone"
+ },
+ {
+ "name": "pl_pebble_d",
+ "edit": "cover its body in thick overlapping armor plates with crimson plate edges, same pose",
+ "seed": 1,
+ "desc": "Armored pebble"
+ }
]
-}
\ No newline at end of file
+}
diff --git a/pixellab_library/pl_pegasus.json b/pixellab_library/pl_pegasus.json
new file mode 100644
index 0000000..8bca7e4
--- /dev/null
+++ b/pixellab_library/pl_pegasus.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_pegasus",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "flying": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Pony foal with a white feathery mane and fluffy feather tufts on its hooves (tail baked in), no wings",
+ "prompt": "small pony foal creature standing on four slender legs with hooves, horse-shaped long muzzle, big fluffy white feather tufts around each hoof, a short mane made of soft white feathers along its neck, small pointed horse ears, big sparkly eyes, crimson star mark on its chest, plain smooth teal coat, no wings, no horn, no tail",
+ "size": 44,
+ "seed": 3302,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_pegasus_b",
+ "edit": "make it much rounder and fluffier with bigger feather tufts on its hooves and crimson dapple spots on its body, keep the same size and pose",
+ "seed": 1,
+ "desc": "Fluffy dappled pegasus"
+ },
+ {
+ "name": "pl_pegasus_c",
+ "edit": "make it leaner with longer thinner legs, a longer muzzle and a crimson blaze stripe down its face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Leggy blazed pegasus"
+ },
+ {
+ "name": "pl_pegasus_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its pony face and teal coat and white feather tufts, no human features",
+ "seed": 1,
+ "desc": "Young chibi pegasus"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_pelican.json b/pixellab_library/pl_pelican.json
new file mode 100644
index 0000000..5d48137
--- /dev/null
+++ b/pixellab_library/pl_pelican.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_pelican",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "water": 5,
+ "flying": 3,
+ "normal": 2
+ },
+ "desc": "Chubby pelican chick with a huge pouch bill resting on its chest",
+ "prompt": "chubby pelican chick creature standing upright, round fluffy body, very long flat bill with a big saggy crimson throat pouch resting on its chest, small round eyes, short stubby wing arms at its sides, big teal webbed feet, no crest, no tail",
+ "size": 44,
+ "seed": 1701,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_pelican_b",
+ "edit": "make it slimmer and smoother with a much longer flat pelican bill and a bigger saggy crimson throat pouch under the bill, with crimson stripes on its folded stubby wing arms",
+ "seed": 3,
+ "desc": "Slim long-billed pelican"
+ },
+ {
+ "name": "pl_pelican_c",
+ "edit": "make it squatter and much fluffier like a ball of down feathers with a shorter bill and crimson spots on its chest",
+ "seed": 1,
+ "desc": "Fluffy squat pelican"
+ },
+ {
+ "name": "pl_pelican_d",
+ "edit": "make it extra fluffy with puffy downy feathers all over and a shorter pouch bill",
+ "seed": 1,
+ "desc": "extra fluffy with puffy downy feathers all over and "
+ }
+ ]
+}
diff --git a/pixellab_library/pl_penguin.json b/pixellab_library/pl_penguin.json
new file mode 100644
index 0000000..79d0117
--- /dev/null
+++ b/pixellab_library/pl_penguin.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_penguin",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "ice": 5,
+ "water": 3,
+ "normal": 2
+ },
+ "desc": "Downy emperor-penguin chick covered in thick fuzz with a crimson bib",
+ "prompt": "downy penguin chick creature standing upright, egg-shaped body covered in thick fluffy fuzz, darker teal face mask around its eyes, small short pointed beak, crimson bib patch on its chest, short flipper arms held out, big flat feet, no crest, no tail",
+ "size": 44,
+ "seed": 2101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_penguin_b",
+ "edit": "make it slimmer with smooth sleek short feathers instead of fuzz, a rounder smaller head and crimson stripes across its flippers",
+ "seed": 2,
+ "desc": "Sleek slim penguin"
+ },
+ {
+ "name": "pl_penguin_c",
+ "edit": "make it much rounder and messier with very puffy scruffy fuzz sticking out everywhere and crimson cheek spots",
+ "seed": 1,
+ "desc": "Scruffy round penguin chick"
+ },
+ {
+ "name": "pl_penguin_d",
+ "edit": "make it squat and round with extra fluffy fuzz and a bigger crimson bib",
+ "seed": 1,
+ "desc": "squat and round with extra fluffy fuzz and a bigger ",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_phoenix.json b/pixellab_library/pl_phoenix.json
new file mode 100644
index 0000000..a5a1a4d
--- /dev/null
+++ b/pixellab_library/pl_phoenix.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_phoenix",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "fire": 5,
+ "flying": 3,
+ "psychic": 2
+ },
+ "desc": "Slender long-necked phoenix fledgling with a three-feather flame crest stub",
+ "prompt": "slender phoenix fledgling bird standing upright on two thin legs, long elegant neck, small hooked beak, short crest of three teardrop flame-shaped feathers on its head, scruffy downy chest with crimson ember speckles, small folded wing stubs, no tail feathers",
+ "size": 44,
+ "seed": 1501,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_phoenix_b",
+ "edit": "make it plumper with a short neck, a big puffed scruffy chest with crimson chevron markings and wide round eyes",
+ "seed": 1,
+ "desc": "Plump chevron phoenix"
+ },
+ {
+ "name": "pl_phoenix_c",
+ "edit": "give it a big scruffy fluffy chest ruff, narrow sleepy eyes and crimson feather bands around its neck, keep the same height and pose",
+ "seed": 2,
+ "desc": "Lanky banded phoenix"
+ },
+ {
+ "name": "pl_phoenix_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young phoenix"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_pinefinch.json b/pixellab_library/pl_pinefinch.json
new file mode 100644
index 0000000..a400c41
--- /dev/null
+++ b/pixellab_library/pl_pinefinch.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_pinefinch",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "grass": 5,
+ "flying": 3,
+ "rock": 2
+ },
+ "desc": "Plump finch whose plumage is overlapping pinecone scales, with a seed-cracker beak",
+ "prompt": "plump round finch bird standing upright, its whole body covered in overlapping layered scales like a pinecone, short thick conical seed-cracking beak, small bright eyes, crimson cheek patches, tiny twig legs, wings folded flat against its sides, no crest, no tail",
+ "size": 44,
+ "seed": 1107,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_pinefinch_b",
+ "edit": "make it taller and egg-shaped with a much bigger thick grosbeak beak and crimson tips on its scales",
+ "seed": 1,
+ "desc": "Tall big-beaked pinefinch"
+ },
+ {
+ "name": "pl_pinefinch_c",
+ "edit": "make it rounder and fluffier with soft downy fluff on its chest and a crimson eye mask",
+ "seed": 1,
+ "desc": "Fluffy masked pinefinch"
+ },
+ {
+ "name": "pl_pinefinch_d",
+ "edit": "make it twice as round and squat like a ball, keep its overlapping pinecone scale plumage and its finch beak",
+ "seed": 11,
+ "desc": "Young chibi fledgling pinefinch",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_pipe.json b/pixellab_library/pl_pipe.json
new file mode 100644
index 0000000..3ca1c84
--- /dev/null
+++ b/pixellab_library/pl_pipe.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_pipe",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "ground": 3,
+ "water": 2
+ },
+ "desc": "Rusty segmented sewer pipe serpent leaking sludge with a face in the open pipe end",
+ "prompt": "serpent creature made of a bent teal metal sewer pipe with bolted joint rings between segments, coiled on the ground and rising up, the open round pipe end is its head with two eyes peering out of the dark opening, thick slime dripping from the opening and leaking from a crack, crimson rust spots",
+ "size": 44,
+ "seed": 2106,
+ "variants": [
+ {
+ "name": "pl_pipe_b",
+ "edit": "make the pipe much thicker and shorter with big crimson valve wheels on its side and a wider opening",
+ "seed": 1,
+ "desc": "Thick valved pipe"
+ },
+ {
+ "name": "pl_pipe_c",
+ "edit": "make the pipe thinner and bendier like a flexible ribbed hose with crimson bands, curling in more loops",
+ "seed": 1,
+ "desc": "Thin ribbed hose"
+ },
+ {
+ "name": "pl_pipe_d",
+ "edit": "make it a cracked old clay drain pipe covered in moss patches with crimson rust drips and a wide flared opening",
+ "seed": 1,
+ "desc": "Mossy clay drain pipe",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_pitcher.json b/pixellab_library/pl_pitcher.json
new file mode 100644
index 0000000..edb71a8
--- /dev/null
+++ b/pixellab_library/pl_pitcher.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_pitcher",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "grass": 3,
+ "bug": 2
+ },
+ "desc": "Pitcher plant creature: jug-shaped body with a lid hood and nectar rim on root legs",
+ "prompt": "pitcher plant creature, its whole body is one tall bulging teal jug-shaped pitcher with a thick curled crimson lip rim around its open top, a small round teal leaf lid hinged above the rim, a face on the front of the jug, sticky drips running down from the rim, two stubby root feet, no arms, crimson vein lines on its body",
+ "size": 44,
+ "seed": 1205,
+ "variants": [
+ {
+ "name": "pl_pitcher_b",
+ "edit": "make the jug body short and very round like a pot, with a wide open rim and crimson speckles, and a cheekier grin",
+ "seed": 1,
+ "desc": "Round pot pitcher plant"
+ },
+ {
+ "name": "pl_pitcher_c",
+ "edit": "make the jug body tall and thin like a vase with a long narrow neck, bold crimson vein stripes and a sleepy face",
+ "seed": 1,
+ "desc": "Tall vase pitcher plant"
+ },
+ {
+ "name": "pl_pitcher_d",
+ "edit": "make the jug body very tall and narrow like a vase, keep its pitcher plant lid hood, nectar rim and root legs",
+ "seed": 11,
+ "desc": "Tall vase pitcher",
+ "skip": false
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_pitohui.json b/pixellab_library/pl_pitohui.json
new file mode 100644
index 0000000..fdc391d
--- /dev/null
+++ b/pixellab_library/pl_pitohui.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_pitohui",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "poison": 5,
+ "flying": 3,
+ "fire": 2
+ },
+ "desc": "Hooded pitohui songbird: round body, pointed dark hood cowl, crimson belly",
+ "prompt": "round songbird creature with a dark teal hood of feathers over its whole head that ends in a point at the back like a cowl, a short black beak, a bright crimson belly and chest, small feet, fluffy round body, no wings spread",
+ "size": 44,
+ "seed": 2107,
+ "variants": [
+ {
+ "name": "pl_pitohui_b",
+ "edit": "keep the same size and pose, make its body a bit slimmer and its legs a bit longer, give it a longer pointed beak and crimson bars across its chest",
+ "seed": 2,
+ "desc": "Slim barred pitohui"
+ },
+ {
+ "name": "pl_pitohui_c",
+ "edit": "make it very fluffy and puffed up into a ball with a big shaggy hood and crimson cheek spots",
+ "seed": 1,
+ "desc": "Puffed shaggy pitohui"
+ },
+ {
+ "name": "pl_pitohui_d",
+ "edit": "make it twice as round and fluffy like a puffball, keep its pointed dark hood cowl and crimson belly",
+ "seed": 11,
+ "desc": "Puffball pitohui",
+ "skip": false
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_plaguecrow.json b/pixellab_library/pl_plaguecrow.json
new file mode 100644
index 0000000..385cda9
--- /dev/null
+++ b/pixellab_library/pl_plaguecrow.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_plaguecrow",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "poison": 5,
+ "flying": 3,
+ "ghost": 2
+ },
+ "desc": "Crow wearing a long-beaked plague-doctor mask and a ragged feather cloak",
+ "prompt": "small round crow creature wearing a long curved bird-beak plague doctor mask with round glass goggle eyes, a ragged shaggy feather cloak around its body, thin bird legs with claws, a crimson strap on the mask, no wings visible",
+ "size": 44,
+ "seed": 1108,
+ "variants": [
+ {
+ "name": "pl_plaguecrow_b",
+ "edit": "make it plumper and rounder with a short stubby beak mask, a fluffy feather collar and crimson goggle lenses",
+ "seed": 1,
+ "desc": "Plump short-masked crow"
+ },
+ {
+ "name": "pl_plaguecrow_c",
+ "edit": "make it taller and skinnier with a very long hooked beak mask, long thin legs and crimson stitched patches on its cloak",
+ "seed": 1,
+ "desc": "Tall hooked-mask crow"
+ },
+ {
+ "name": "pl_plaguecrow_d",
+ "edit": "replace the long beak mask with a crimson full-face respirator mask with two round glass eyes and a short snout filter, and make its feather cloak longer and more tattered",
+ "seed": 1,
+ "desc": "Respirator-masked crow"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_platypus.json b/pixellab_library/pl_platypus.json
new file mode 100644
index 0000000..067dab6
--- /dev/null
+++ b/pixellab_library/pl_platypus.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_platypus",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "water": 5,
+ "poison": 3,
+ "ground": 2
+ },
+ "desc": "Duck-billed platypus with a flat rubbery bill, webbed paws and ankle spurs",
+ "prompt": "platypus creature standing on four short legs, teal fur, wide flat rubbery crimson duck-like bill, small round eyes, sleek low furry body, webbed front paws, small crimson spurs on its back ankles, no ears, no tail",
+ "size": 44,
+ "seed": 2402,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_platypus_b",
+ "edit": "make it much chubbier and rounder with a shorter wider bill and crimson stripes across its back",
+ "seed": 1,
+ "desc": "Chubby wide-billed platypus"
+ },
+ {
+ "name": "pl_platypus_c",
+ "edit": "keep it standing on four legs, make it slimmer and longer with a longer narrower bill and a crimson patch on its chest",
+ "seed": 2,
+ "desc": "Slim narrow-billed platypus",
+ "skip": true
+ },
+ {
+ "name": "pl_platypus_d",
+ "edit": "give it shaggy fluffy fur, crimson rings around its eyes and a happy open bill, keep the same size and pose",
+ "seed": 1,
+ "desc": "Shaggy ring-eyed platypus"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_plesio.json b/pixellab_library/pl_plesio.json
new file mode 100644
index 0000000..8097d2a
--- /dev/null
+++ b/pixellab_library/pl_plesio.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_plesio",
+ "plan": "aquatic",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "desc": "Chubby plesiosaur with a long neck and four flippers",
+ "prompt": "long-necked plesiosaur creature resting on the ground, smooth plump seal-like body low and wide, four broad paddle flippers splayed flat, very long thin neck curving up in an S-shape to a small head with a wide smile, crimson stripes across its back, pale belly, smooth skin, no shell, no tail, no water ripples",
+ "size": 44,
+ "seed": 2204,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_plesio_b",
+ "edit": "make its neck short and thick, its head bigger and wider with a toothy grin and crimson stripes on its back",
+ "seed": 1,
+ "desc": "Thick-necked toothy plesio"
+ },
+ {
+ "name": "pl_plesio_c",
+ "edit": "make its neck even longer and thinner, its body slimmer and add crimson bands around the neck",
+ "seed": 1,
+ "desc": "Long-necked banded plesio"
+ },
+ {
+ "name": "pl_plesio_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy plesio"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_plugpig.json b/pixellab_library/pl_plugpig.json
new file mode 100644
index 0000000..f0e7f9b
--- /dev/null
+++ b/pixellab_library/pl_plugpig.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_plugpig",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "electric": 5,
+ "normal": 3
+ },
+ "desc": "Piglet whose snout is a flat crimson electric plug with two metal prongs",
+ "prompt": "chubby piglet creature standing on four short stubby legs, its snout is a flat round crimson electric plug face with two short metal prongs sticking forward instead of nostrils, small round ears, round barrel body, small hooves, cheerful eyes, pale cream belly, no tail",
+ "size": 44,
+ "seed": 1205,
+ "direction": "south-west",
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_plugpig_b",
+ "edit": "make it rounder and chubbier with crimson spots all over its body and big floppy ears",
+ "seed": 1,
+ "desc": "Chubby spotted plug-pig"
+ },
+ {
+ "name": "pl_plugpig_c",
+ "edit": "make it longer and leaner with taller legs, small pointed ears and a crimson stripe down its back",
+ "seed": 1,
+ "desc": "Lean striped plug-pig"
+ },
+ {
+ "name": "pl_plugpig_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its piglet face and flat crimson plug snout and teal skin, no human features",
+ "seed": 1,
+ "desc": "Young chibi plug-pig"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_polar.json b/pixellab_library/pl_polar.json
new file mode 100644
index 0000000..d95fe17
--- /dev/null
+++ b/pixellab_library/pl_polar.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_polar",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "fighting": 3,
+ "water": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Lanky polar bear cub on all fours with a long neck, long snout and tiny ears",
+ "prompt": "stocky polar bear cub creature standing on all fours facing the viewer, chunky rounded body with thick fluffy fur, long rounded muzzle with a small crimson nose tip, tiny round ears, very big wide flat paws, crimson paw pads, small dark eyes, gentle expression, no tail",
+ "size": 44,
+ "seed": 3902,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_polar_b",
+ "edit": "make it chubbier and rounder with a short snout, a thick fluffy neck ruff and crimson paw pads showing",
+ "seed": 1,
+ "desc": "Chubby ruffed polar cub"
+ },
+ {
+ "name": "pl_polar_c",
+ "edit": "make it bulkier and more muscular with huge shoulders and crimson scar stripes on its side",
+ "seed": 1,
+ "desc": "Burly scarred polar cub",
+ "skip": true
+ },
+ {
+ "name": "pl_polar_d",
+ "edit": "make it extra fluffy with a thick shaggy coat and a crimson patch on its chest",
+ "seed": 1,
+ "desc": "extra fluffy with a thick shaggy coat and a crimson "
+ }
+ ]
+}
diff --git a/pixellab_library/pl_popcorn.json b/pixellab_library/pl_popcorn.json
new file mode 100644
index 0000000..7455974
--- /dev/null
+++ b/pixellab_library/pl_popcorn.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_popcorn",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "normal": 3
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Puffy popped popcorn kernel creature with crimson husk bits",
+ "prompt": "popped popcorn kernel creature, a lumpy cloud-like body made of big round pale teal puffs, a cute face on the front puff, small crimson husk flakes stuck between the puffs, two tiny stubby feet",
+ "size": 44,
+ "seed": 3301,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_popcorn_b",
+ "edit": "make it a small tight unpopped kernel shape with a single big puff bursting from its top and a crimson husk shell around its bottom",
+ "seed": 1,
+ "desc": "Half-popped kernel",
+ "skip": true
+ },
+ {
+ "name": "pl_popcorn_c",
+ "edit": "make it a much bigger fluffy cluster of many small puffs with a wide open happy mouth and crimson husk flakes all over",
+ "seed": 1,
+ "desc": "Big cluster popcorn"
+ },
+ {
+ "name": "pl_popcorn_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat popcorn"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_psitta.json b/pixellab_library/pl_psitta.json
new file mode 100644
index 0000000..f98d0b8
--- /dev/null
+++ b/pixellab_library/pl_psitta.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_psitta",
+ "plan": "biped",
+ "head": [
+ "beak_head",
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "rock": 3,
+ "normal": 2
+ },
+ "desc": "Upright psittacosaurus: boxy head with a parrot-like beak and small cheek knobs",
+ "prompt": "psittacosaurus dinosaur creature standing upright on two hind legs, a boxy head with a hooked parrot-like beak, two small cheek knobs on the sides of its face, short arms held in front, sturdy legs, pebbly teal scales with crimson speckles, pale belly, its rear hidden behind its body, no tail, no horns",
+ "size": 44,
+ "seed": 4302,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_psitta_b",
+ "edit": "keep its parrot beak and teal skin, make it chubbier and shorter with a round belly and crimson bands across its back",
+ "seed": 1,
+ "desc": "Chubby psitta"
+ },
+ {
+ "name": "pl_psitta_c",
+ "edit": "keep its parrot beak and teal skin, make it taller and lankier with a bigger hooked beak and crimson stripes along its arms and legs",
+ "seed": 1,
+ "desc": "Lanky big-beaked psitta"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ptarmigan.json b/pixellab_library/pl_ptarmigan.json
new file mode 100644
index 0000000..e48dcde
--- /dev/null
+++ b/pixellab_library/pl_ptarmigan.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_ptarmigan",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "ice": 5,
+ "flying": 3,
+ "normal": 2
+ },
+ "desc": "Round snow grouse with fluffy feathered snowshoe feet and crimson eyebrow combs",
+ "prompt": "round plump grouse bird creature standing, egg-shaped fluffy body, small stubby beak, bright crimson eyebrow combs above its eyes, big fluffy feather-covered snowshoe feet, short folded wings at its sides, speckled feather pattern on its back, no crest, no tail",
+ "size": 40,
+ "seed": 4001,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ptarmigan_b",
+ "edit": "make it taller with a longer neck, bigger crimson eyebrow combs and crimson bars across its chest",
+ "seed": 1,
+ "desc": "Tall barred ptarmigan"
+ },
+ {
+ "name": "pl_ptarmigan_c",
+ "edit": "make it extra fluffy and round like a snowball with huge puffy feathered feet and tiny crimson eyebrows",
+ "seed": 1,
+ "desc": "Puffball ptarmigan"
+ },
+ {
+ "name": "pl_ptarmigan_d",
+ "edit": "make it very tall and lanky with a long neck and long legs, keep its fluffy feathered snowshoe feet and crimson eyebrow combs, wings folded tight against its body, no spread wings",
+ "seed": 11,
+ "desc": "Tall lanky ptarmigan",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ptero.json b/pixellab_library/pl_ptero.json
new file mode 100644
index 0000000..79f9935
--- /dev/null
+++ b/pixellab_library/pl_ptero.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_ptero",
+ "plan": "biped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "flying": 5,
+ "rock": 3,
+ "dragon": 2
+ },
+ "desc": "Pterosaur hatchling propped on folded membrane wing-arms with a long toothless beak",
+ "prompt": "baby pterosaur hatchling creature standing upright, very long sharp pointed toothless beak longer than its head, narrow head with a backward pointing skull point, folded leathery wing membranes hanging from its arms like sleeves down to the ground, big curious eyes, small crimson patch on its throat, chubby body, short legs, no tail",
+ "size": 44,
+ "seed": 1602,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ptero_b",
+ "edit": "make it chubbier with a shorter blunter beak and crimson zigzag stripes across its belly",
+ "seed": 1,
+ "desc": "Chubby blunt-beaked ptero"
+ },
+ {
+ "name": "pl_ptero_c",
+ "edit": "make it lankier and taller with a longer thinner beak, a throat pouch and crimson spots on its head",
+ "seed": 1,
+ "desc": "Lanky pouch-throated ptero"
+ },
+ {
+ "name": "pl_ptero_d",
+ "edit": "make it a young chibi version with a big round head and big shiny eyes, keep its very long pointed beak and teal skin, no human features",
+ "seed": 2,
+ "desc": "Knobbly grumpy ptero"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_pumice.json b/pixellab_library/pl_pumice.json
new file mode 100644
index 0000000..ff673f5
--- /dev/null
+++ b/pixellab_library/pl_pumice.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_pumice",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "rock": 5,
+ "flying": 3,
+ "fire": 2
+ },
+ "desc": "Porous pumice-stone pigeon riddled with holes",
+ "prompt": "round plump pigeon bird creature made of porous teal pumice stone, its body riddled with many small round holes and pits, small stone wings folded tight to its sides, short thick crimson beak, puffed out chest, two short crimson legs",
+ "size": 44,
+ "seed": 8515,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_pumice_b",
+ "edit": "make it slimmer and taller with a long neck, fewer bigger holes and a crimson collar ring around its neck",
+ "seed": 1,
+ "desc": "Tall collared pumice bird"
+ },
+ {
+ "name": "pl_pumice_c",
+ "edit": "make it rounder like a lumpy stone ball with a tiny head and crimson ember speckles all over",
+ "seed": 1,
+ "desc": "Lumpy speckled pumice bird"
+ },
+ {
+ "name": "pl_pumice_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young pumice"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_pup.json b/pixellab_library/pl_pup.json
new file mode 100644
index 0000000..1831ce2
--- /dev/null
+++ b/pixellab_library/pl_pup.json
@@ -0,0 +1,45 @@
+{
+ "name": "pl_pup",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "fire": 3
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Long-bodied short-legged pup with floppy ears and an eye patch",
+ "prompt": "dachshund-like puppy creature, very long low sausage body close to the ground on four tiny stubby legs, short neck, big floppy droopy ears, square snout with a round nose, a crimson patch around one eye, crimson collar, no tail",
+ "size": 44,
+ "seed": 2002,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_pup_b",
+ "edit": "make it shorter and fluffier with a round fluffy body, curly fur and crimson spots on its back",
+ "seed": 1,
+ "desc": "Curly fluffy pup"
+ },
+ {
+ "name": "pl_pup_c",
+ "edit": "make it taller with longer legs, a long narrow snout, longer silky ears and a crimson saddle marking on its back",
+ "seed": 1,
+ "desc": "Leggy saddle-marked pup",
+ "anchors": {
+ "back": [
+ 34,
+ 29
+ ]
+ }
+ },
+ {
+ "name": "pl_pup_d",
+ "edit": "make it a tiny baby puppy with a round head, huge eyes, very short ears and crimson spots, keep it teal",
+ "seed": 1,
+ "desc": "A tiny baby puppy"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_qilin.json b/pixellab_library/pl_qilin.json
new file mode 100644
index 0000000..8d5b44e
--- /dev/null
+++ b/pixellab_library/pl_qilin.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_qilin",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "psychic": 3,
+ "fire": 2
+ },
+ "desc": "Scaly deer-like qilin with a dragon face, cloven hooves and curly mane tufts",
+ "prompt": "qilin creature, a slender deer-like body covered in teal scales standing on four thin legs with crimson cloven hooves, a dragon-like face with a short snout and whiskers, curly flowing mane tufts along its neck, no antlers, no horns, no tail",
+ "size": 44,
+ "seed": 3901,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_qilin_b",
+ "edit": "make it a stocky foal with a short neck, big round eyes and thick curly mane and crimson scale spots",
+ "seed": 1,
+ "desc": "Stocky foal qilin"
+ },
+ {
+ "name": "pl_qilin_c",
+ "edit": "make it taller and more elegant with a long neck and crimson scales on its chest and legs",
+ "seed": 1,
+ "desc": "Elegant tall qilin"
+ },
+ {
+ "name": "pl_qilin_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat qilin"
+ }
+ ],
+ "excludes": [
+ "horned"
+ ]
+}
diff --git a/pixellab_library/pl_quail.json b/pixellab_library/pl_quail.json
new file mode 100644
index 0000000..4d34570
--- /dev/null
+++ b/pixellab_library/pl_quail.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_quail",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "normal": 5,
+ "flying": 3,
+ "ground": 2
+ },
+ "desc": "Round quail with a teardrop topknot plume and scaled breast",
+ "prompt": "round plump quail bird creature on short legs, egg-shaped body, small head with a single curled teardrop plume bobbing forward from its forehead, tiny beak, crimson face stripe, scaly patterned breast, tiny wings tucked in, no tail feathers",
+ "size": 40,
+ "seed": 4001,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_quail_b",
+ "edit": "make it even rounder like a ball with fluffy feathers and crimson spots on its breast, keep it teal",
+ "seed": 1,
+ "desc": "Ball-shaped quail"
+ },
+ {
+ "name": "pl_quail_c",
+ "edit": "make it taller with longer legs, a longer neck and crimson bars across its wings, keep it teal",
+ "seed": 1,
+ "desc": "Leggy barred quail"
+ },
+ {
+ "name": "pl_quail_d",
+ "edit": "make it a tiny baby chick with fluffy down, a huge round head and a tiny plume, keep it teal",
+ "seed": 1,
+ "desc": "A tiny baby chick"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_quetzal.json b/pixellab_library/pl_quetzal.json
new file mode 100644
index 0000000..89d3b1d
--- /dev/null
+++ b/pixellab_library/pl_quetzal.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_quetzal",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "flying": 3,
+ "grass": 2
+ },
+ "desc": "Stout coiled feathered serpent with a big feather ruff collar",
+ "prompt": "stout feathered serpent creature coiled upright, thick round serpent body, big fluffy ruff collar of feathers around its neck, short rounded reptile snout, big eyes, crimson diamond pattern along its body, tail tip tucked in on the right, no wings, no horns",
+ "size": 44,
+ "seed": 2001,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_quetzal_b",
+ "edit": "make its body thinner with crimson bands around it and a smaller spiky feather ruff, keep the same height and coiled pose",
+ "seed": 2,
+ "desc": "Slim banded quetzal"
+ },
+ {
+ "name": "pl_quetzal_c",
+ "edit": "make it chubbier and shorter with a huge round puffy feather ruff that covers its chest and crimson spots on its face",
+ "seed": 1,
+ "desc": "Puffy ruffed quetzal"
+ },
+ {
+ "name": "pl_quetzal_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young quetzal"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_raccoon.json b/pixellab_library/pl_raccoon.json
new file mode 100644
index 0000000..382bca9
--- /dev/null
+++ b/pixellab_library/pl_raccoon.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_raccoon",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "poison": 3,
+ "ghost": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Upright masked raccoon with ringed arms and nimble hands",
+ "prompt": "raccoon-like creature standing upright on two short legs, wide face with a crimson bandit mask around its eyes, pointed snout, small rounded ears, crimson rings around its arms, nimble little hands held together, chubby belly, no tail",
+ "size": 44,
+ "seed": 2101,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_raccoon_b",
+ "edit": "make it much chubbier with a big round belly, short arms and fluffy cheek tufts",
+ "seed": 1,
+ "desc": "Chubby tufted raccoon"
+ },
+ {
+ "name": "pl_raccoon_c",
+ "edit": "make it lankier and taller with long thin arms, big pointed ears and a crimson stripe down its back",
+ "seed": 1,
+ "desc": "Lanky striped raccoon"
+ },
+ {
+ "name": "pl_raccoon_d",
+ "edit": "make it a fluffy elder raccoon with long whiskers, a grey beard and a hunched posture, keep it teal",
+ "seed": 1,
+ "desc": "A fluffy elder raccoon"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_radio.json b/pixellab_library/pl_radio.json
new file mode 100644
index 0000000..c076acb
--- /dev/null
+++ b/pixellab_library/pl_radio.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_radio",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "excludes": [
+ "antennae"
+ ],
+ "desc": "Retro tabletop radio critter with a speaker-grille face and dial eyes",
+ "prompt": "retro tabletop radio creature, rounded boxy teal body, a round speaker grille as its mouth, two round tuning dials as eyes, a short telescoping antenna on top, crimson knobs, tiny stubby feet",
+ "size": 40,
+ "seed": 5401,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_radio_b",
+ "edit": "make it taller with an arched cathedral-shaped top and crimson stripes on the grille, keep it teal",
+ "seed": 1,
+ "desc": "Cathedral radio"
+ },
+ {
+ "name": "pl_radio_c",
+ "edit": "make it wider and flatter like a boombox with two big speaker grilles and crimson dials, keep it teal",
+ "seed": 1,
+ "desc": "Boombox radio",
+ "skip": true
+ },
+ {
+ "name": "pl_radio_d",
+ "edit": "make it very tall and narrow like an upright cathedral radio with an arched top, keep its speaker-grille face and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change radio"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ram.json b/pixellab_library/pl_ram.json
new file mode 100644
index 0000000..6488e44
--- /dev/null
+++ b/pixellab_library/pl_ram.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_ram",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "rock": 5,
+ "normal": 3,
+ "fighting": 2
+ },
+ "excludes": [
+ "horned"
+ ],
+ "slots": [
+ "back",
+ "tail"
+ ],
+ "desc": "Boulder ram with a fleece of round stones and baked curled horns",
+ "prompt": "sturdy ram creature on four short thick legs, its woolly fleece is made of round teal pebbles and boulders clumped together, flat dark teal face with a stubborn frown, two thick small crimson horns curled tight beside its ears, hooves",
+ "size": 44,
+ "seed": 8313,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_ram_b",
+ "edit": "make its fleece made of big flat slate slabs instead of pebbles and make its face longer with a beard",
+ "seed": 1,
+ "desc": "Slate-fleeced bearded ram"
+ },
+ {
+ "name": "pl_ram_c",
+ "edit": "make it rounder and woollier like a puffball of tiny pebbles with very short legs and crimson spots on its face",
+ "seed": 1,
+ "desc": "Puffball pebble ram"
+ },
+ {
+ "name": "pl_ram_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded ram"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_redpanda.json b/pixellab_library/pl_redpanda.json
new file mode 100644
index 0000000..066362d
--- /dev/null
+++ b/pixellab_library/pl_redpanda.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_redpanda",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fire": 5,
+ "normal": 3,
+ "grass": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Red panda standing up on its hind legs with a ringed face mask and tear marks",
+ "prompt": "red panda creature standing up on its hind legs with its front paws raised, round fluffy face with a pale mask and crimson tear marks under its eyes, big pointed fluffy ears with pale rims, dark legs, thick soft fur, no tail",
+ "size": 44,
+ "seed": 3801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_redpanda_b",
+ "edit": "make it chubbier and fluffier with a huge fluffy cheek ruff and crimson rings around its arms, keep the same size and pose",
+ "seed": 1,
+ "desc": "Fluffy ring-armed red panda"
+ },
+ {
+ "name": "pl_redpanda_c",
+ "edit": "make it slimmer with a narrower pointed snout, smaller rounder ears and crimson stripes across its forehead, keep the same size and pose",
+ "seed": 1,
+ "desc": "Slim striped red panda"
+ },
+ {
+ "name": "pl_redpanda_d",
+ "edit": "give it a shaggy scruffy coat with crimson ringed bands on its legs and a sleepy smug face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Scruffy smug red panda"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_rhinobug.json b/pixellab_library/pl_rhinobug.json
new file mode 100644
index 0000000..5f3b463
--- /dev/null
+++ b/pixellab_library/pl_rhinobug.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_rhinobug",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "bug": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "horned"
+ ],
+ "desc": "Upright rhino-beetle grappler with a blunt nose horn stub and four burly arms",
+ "prompt": "upright beetle wrestler creature standing on two short thick insect legs, glossy rounded beetle shell on its back split down the middle, insect face with big round compound eyes and small mandibles, one tiny blunt horn nub on its forehead, four burly segmented arms with the upper pair flexed, crimson wrist wraps",
+ "size": 44,
+ "seed": 1402,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_rhinobug_b",
+ "edit": "make it heavier and squatter with a much wider chest plate and crimson stripes down its shell",
+ "seed": 1,
+ "desc": "Squat striped rhinobug"
+ },
+ {
+ "name": "pl_rhinobug_c",
+ "edit": "make it leaner with a narrower waist, longer arms and crimson spots on its shoulders",
+ "seed": 1,
+ "desc": "Lean spotted rhinobug"
+ },
+ {
+ "name": "pl_rhinobug_d",
+ "edit": "make it a young chibi beetle with a huge round shell, big compound eyes, small mandibles and stubby arms, keep its animal face and teal skin, no human features",
+ "seed": 2,
+ "desc": "Chibi young rhinobug",
+ "skip": true
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_roadrunner.json b/pixellab_library/pl_roadrunner.json
new file mode 100644
index 0000000..3b29540
--- /dev/null
+++ b/pixellab_library/pl_roadrunner.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_roadrunner",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "ground": 5,
+ "flying": 3,
+ "normal": 2
+ },
+ "desc": "Lean sprinting roadrunner with a shaggy crest stub",
+ "prompt": "lean desert roadrunner bird creature leaning forward ready to sprint, long strong legs, long straight pointed beak, short shaggy spiky crest stub on its head, crimson patch of bare skin behind each eye, streaky speckled teal feathers, folded small wings, no tail",
+ "size": 44,
+ "seed": 9202,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_roadrunner_b",
+ "edit": "make the bird chubbier and rounder with a puffed chest, shorter legs and bold crimson stripes on its chest",
+ "seed": 1,
+ "desc": "Chubby striped roadrunner"
+ },
+ {
+ "name": "pl_roadrunner_c",
+ "edit": "make the bird taller and skinnier with a longer neck, a bigger shaggy crest and wide startled eyes",
+ "seed": 1,
+ "desc": "Lanky startled roadrunner"
+ },
+ {
+ "name": "pl_roadrunner_d",
+ "edit": "make it twice as round and fat like a puffball with short legs, keep its long beak and crest and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded roadrunner"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_robodog.json b/pixellab_library/pl_robodog.json
new file mode 100644
index 0000000..8389d79
--- /dev/null
+++ b/pixellab_library/pl_robodog.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_robodog",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "electric": 5,
+ "normal": 3
+ },
+ "desc": "Boxy tin robot puppy toy with riveted panels, speaker-grille mouth and a crimson chest button",
+ "prompt": "boxy tin robot puppy toy standing on four short cylindrical legs, square metal head with round glowing eyes and a speaker grille mouth, riveted metal panels, small square flap ears, a crimson round button on its chest, no tail, no antenna",
+ "size": 44,
+ "seed": 2202,
+ "direction": "south-west",
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_robodog_b",
+ "edit": "make it rounder like a dome-shaped robot with round ball joints and crimson stripes along its sides",
+ "seed": 1,
+ "desc": "Round domed robot pup"
+ },
+ {
+ "name": "pl_robodog_c",
+ "edit": "make it taller with long thin legs, a long rectangular snout and crimson rivets all over",
+ "seed": 1,
+ "desc": "Lanky long-snouted robot dog"
+ },
+ {
+ "name": "pl_robodog_d",
+ "edit": "make it rusty and dented with crimson patch panels bolted on and one droopy ear, keep the same size and pose",
+ "seed": 1,
+ "desc": "Rusty patched robodog"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_rocket.json b/pixellab_library/pl_rocket.json
new file mode 100644
index 0000000..9a9f4f5
--- /dev/null
+++ b/pixellab_library/pl_rocket.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_rocket",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "flying": 3,
+ "electric": 2
+ },
+ "desc": "Firework rocket critter with a cone nose cap, tube body and fin legs",
+ "prompt": "firework rocket creature standing upright on three stubby fins as legs, tall round teal tube body with crimson spiral stripes, pointed cone nose cap on top, a cheeky face on the tube, tiny arms, no flames",
+ "size": 44,
+ "seed": 5801,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_rocket_b",
+ "edit": "make it shorter and chubbier like a round barrel with a wide blunt nose cap and crimson stars, keep it teal",
+ "seed": 1,
+ "desc": "Chubby star rocket"
+ },
+ {
+ "name": "pl_rocket_c",
+ "edit": "make it taller and thinner with a long pointed nose and crimson rings around its body, keep it teal",
+ "seed": 1,
+ "desc": "Tall thin rocket"
+ },
+ {
+ "name": "pl_rocket_d",
+ "edit": "make it twice as round and squat like a fat stubby rocket with a short cone nose, keep its face and teal color",
+ "seed": 7,
+ "desc": "Strong silhouette change rocket"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_roo.json b/pixellab_library/pl_roo.json
new file mode 100644
index 0000000..307fe02
--- /dev/null
+++ b/pixellab_library/pl_roo.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_roo",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Kangaroo boxer standing upright on huge hind feet with crimson boxing-glove forepaws",
+ "prompt": "kangaroo-like boxer creature standing upright on two huge long hind feet, small deer-like head with tall narrow upright ears, short muscular arms raised in a guard with big round crimson boxing gloves, cream belly with a small pouch, lean athletic build, no tail",
+ "size": 44,
+ "seed": 1101,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_roo_b",
+ "edit": "make it much bulkier and more muscular with a broad chest, thicker arms and crimson stripes on its shoulders",
+ "seed": 1,
+ "desc": "Bulky muscled roo"
+ },
+ {
+ "name": "pl_roo_c",
+ "edit": "make it smaller and scrappier with a rounder head, short rounded ears and crimson spots on its cheeks",
+ "seed": 1,
+ "desc": "Scrappy round-eared roo"
+ },
+ {
+ "name": "pl_roo_d",
+ "edit": "make it an old grizzled elder kangaroo with a scruffy chin tuft, droopy ears, a hunched back and crimson bandages on its legs, keep its animal face and teal skin, no human features",
+ "seed": 2,
+ "desc": "Grizzled elder roo"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_ropefist.json b/pixellab_library/pl_ropefist.json
new file mode 100644
index 0000000..07fba5e
--- /dev/null
+++ b/pixellab_library/pl_ropefist.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_ropefist",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "desc": "Living coiled rope serpent whose head is a heavy monkey-fist knot with a face",
+ "prompt": "living rope creature, a thick braided teal rope coiled on the ground and rising up like a snake, its head is a big round woven monkey-fist knot with a stern face and narrow eyes, crimson frayed fibers at the rope joints, no arms, no legs",
+ "size": 44,
+ "seed": 3101,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ropefist_b",
+ "edit": "make it a frayed hairy rope with bristly fibers sticking out all over, a huge shaggy knot head and crimson tassels hanging from its neck, keep it teal",
+ "seed": 2,
+ "desc": "Frayed shaggy rope"
+ },
+ {
+ "name": "pl_ropefist_c",
+ "edit": "make the rope coil into a tall tight spiral tower with fewer loops on the ground, a small round knot head on top and wide crimson bands, keep it teal",
+ "seed": 2,
+ "desc": "Tall spiral rope",
+ "skip": true
+ },
+ {
+ "name": "pl_ropefist_d",
+ "edit": "make it a short chubby rope with one fat coil and a huge round knot head covered in a crimson checker pattern, keep it teal",
+ "seed": 2,
+ "desc": "Chubby checkered rope"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_sandcastle.json b/pixellab_library/pl_sandcastle.json
new file mode 100644
index 0000000..15f396a
--- /dev/null
+++ b/pixellab_library/pl_sandcastle.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_sandcastle",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ground": 5,
+ "water": 3,
+ "normal": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Living bucket-shaped sandcastle mound with a door mouth",
+ "prompt": "living sandcastle creature, a bucket-shaped mound of packed teal sand with a square notched battlement rim on top, a little arched crimson doorway as its mouth, two round window eyes, crimson seashell stuck on its side, two stubby sand feet, sand ripple lines on its sides",
+ "size": 44,
+ "seed": 7404,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_sandcastle_b",
+ "edit": "make it a tall narrow tower with a rounded dome top, a spiral ramp groove around it and crimson flag stripe markings",
+ "seed": 1,
+ "desc": "Tower sandcastle"
+ },
+ {
+ "name": "pl_sandcastle_c",
+ "edit": "make it a wide squat lumpy teal sand mound with melted drippy edges and a big grinning mouth, keep the teal color, add small crimson pebbles stuck on it",
+ "seed": 2,
+ "desc": "Drippy squat sandcastle"
+ },
+ {
+ "name": "pl_sandcastle_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 1,
+ "desc": "Chibi young sandcastle"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_scarab.json b/pixellab_library/pl_scarab.json
new file mode 100644
index 0000000..19f06ea
--- /dev/null
+++ b/pixellab_library/pl_scarab.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_scarab",
+ "plan": "insectoid",
+ "head": [
+ "insect_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "ground": 3,
+ "psychic": 2
+ },
+ "desc": "Carved stone scarab-amulet beetle with hieroglyph markings and sunken glowing eyes",
+ "prompt": "scarab beetle creature that looks like a carved stone amulet, smooth teal stone shell engraved with crimson hieroglyph symbols, a wide flat carved head with sunken glowing eyes, six short stubby carved legs, chipped cracked edges",
+ "size": 44,
+ "seed": 2112,
+ "variants": [
+ {
+ "name": "pl_scarab_b",
+ "edit": "make its shell rounder and taller with a big crimson sun disc carving on it and give it a broader head",
+ "seed": 1,
+ "desc": "Domed sun-disc scarab"
+ },
+ {
+ "name": "pl_scarab_c",
+ "edit": "make it longer and narrower with deep cracks, crumbling chipped pieces and crimson glowing lines in the cracks",
+ "seed": 1,
+ "desc": "Cracked crumbling scarab"
+ },
+ {
+ "name": "pl_scarab_d",
+ "edit": "make it twice as round and domed like a big stone ball with crimson glowing cracks, keep its carved stone scarab beetle shape and hieroglyph markings",
+ "seed": 11,
+ "desc": "Domed cracked scarab",
+ "skip": false
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_scorpion.json b/pixellab_library/pl_scorpion.json
new file mode 100644
index 0000000..85a3474
--- /dev/null
+++ b/pixellab_library/pl_scorpion.json
@@ -0,0 +1,45 @@
+{
+ "name": "pl_scorpion",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "poison": 5,
+ "ground": 3,
+ "fighting": 2
+ },
+ "desc": "Chibi scorpion with oversized pincers, plated back and a short curled stinger tail",
+ "prompt": "chibi scorpion creature facing the viewer, low wide teal body, two oversized round pincers held up at its sides, flat plated back, six short pointy legs, small head with a cluster of shiny eyes, crimson pincer tips, a short segmented stinger tail curling up on the right side of its body",
+ "size": 44,
+ "seed": 1303,
+ "variants": [
+ {
+ "name": "pl_scorpion_b",
+ "edit": "make its pincers much bigger and blockier, its body narrower, and add crimson bands across each back plate",
+ "seed": 1,
+ "desc": "Big-clawed banded scorpion"
+ },
+ {
+ "name": "pl_scorpion_c",
+ "edit": "keep its two big pincers and its curled stinger tail, but make its body rounder and covered in shaggy fuzzy fur, with crimson spots on its back",
+ "seed": 2,
+ "desc": "Fuzzy spotted scorpion"
+ },
+ {
+ "name": "pl_scorpion_d",
+ "edit": "cover its body in thick shaggy teal fur with crimson stripes, keep its oversized pincers, plated back and short curled stinger tail",
+ "seed": 11,
+ "desc": "Shaggy striped scorpion",
+ "skip": false
+ }
+ ],
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "tags": [
+ "tailed"
+ ]
+}
diff --git a/pixellab_library/pl_seacucumber.json b/pixellab_library/pl_seacucumber.json
new file mode 100644
index 0000000..d920368
--- /dev/null
+++ b/pixellab_library/pl_seacucumber.json
@@ -0,0 +1,47 @@
+{
+ "name": "pl_seacucumber",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "water": 3,
+ "normal": 2
+ },
+ "desc": "Warty sausage sea cucumber on rows of tube feet with frilly mouth tentacles",
+ "prompt": "plump sausage-shaped sea cucumber creature lying on the ground, soft warty bumpy skin with crimson-tipped bumps, rows of tiny tube feet underneath, a ring of short frilly feeding tentacles around its mouth at the front end, small sleepy eyes",
+ "size": 44,
+ "seed": 2105,
+ "variants": [
+ {
+ "name": "pl_seacucumber_b",
+ "edit": "make it shorter and fatter like a squishy ball with long crimson spiky papillae sticking out of its back",
+ "seed": 1,
+ "desc": "Fat spiky sea cucumber"
+ },
+ {
+ "name": "pl_seacucumber_c",
+ "edit": "make it longer and smoother with bold crimson stripes along its body and a bigger fluffy crown of mouth tentacles",
+ "seed": 1,
+ "desc": "Long striped sea cucumber"
+ },
+ {
+ "name": "pl_seacucumber_d",
+ "edit": "make it stand upright like a short fat sausage with its frilly tentacle crown on top of its head, a face below the crown and big crimson spots on its body",
+ "seed": 1,
+ "desc": "Upright spotted sea cucumber"
+ }
+ ],
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "anchors": {
+ "head_top": [
+ 42,
+ 36
+ ]
+ }
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_seahorse.json b/pixellab_library/pl_seahorse.json
new file mode 100644
index 0000000..bde85dd
--- /dev/null
+++ b/pixellab_library/pl_seahorse.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_seahorse",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "water": 5,
+ "dragon": 3,
+ "psychic": 2
+ },
+ "desc": "Pot-bellied seahorse with a long tube snout, ridged crown bumps and a curled tail under it",
+ "prompt": "pot-bellied seahorse creature standing upright, round bulging belly with crimson ridged rings, long thin tube-shaped snout, small knobby bony ridge bumps on top of its head, short stubby arm fins, its short tail curled into a tight spiral underneath its body as a stand, no fin on its back, nothing on its head",
+ "size": 44,
+ "seed": 1501,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_seahorse_b",
+ "edit": "make its belly much bigger and rounder with crimson polka dots and a shorter thicker snout",
+ "seed": 1,
+ "desc": "Big-bellied dotted seahorse"
+ },
+ {
+ "name": "pl_seahorse_c",
+ "edit": "make it slimmer and taller with a longer neck, a longer thin snout and spiky knobbly skin bumps along its front",
+ "seed": 1,
+ "desc": "Slim spiky seahorse"
+ },
+ {
+ "name": "pl_seahorse_d",
+ "edit": "make it armored with thick bony ridged plates down its body and a taller spiky crown",
+ "seed": 1,
+ "desc": "armored with thick bony ridged plates down its body "
+ }
+ ]
+}
diff --git a/pixellab_library/pl_seal.json b/pixellab_library/pl_seal.json
index 576d834..646903f 100644
--- a/pixellab_library/pl_seal.json
+++ b/pixellab_library/pl_seal.json
@@ -101,5 +101,25 @@
"motif": "water",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_seal_b",
+ "edit": "make it chubbier and rounder with thick blubber, whiskery cheeks and crimson spots",
+ "seed": 1,
+ "desc": "Blubbery spotted seal"
+ },
+ {
+ "name": "pl_seal_c",
+ "edit": "make it sleeker and slimmer like an otter with a longer neck and crimson stripes",
+ "seed": 1,
+ "desc": "Sleek otter"
+ },
+ {
+ "name": "pl_seal_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy seal"
+ }
]
}
diff --git a/pixellab_library/pl_secretary.json b/pixellab_library/pl_secretary.json
new file mode 100644
index 0000000..4e867da
--- /dev/null
+++ b/pixellab_library/pl_secretary.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_secretary",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "flying": 3,
+ "poison": 2
+ },
+ "desc": "Secretary bird with long kicking legs, quill crest and a crimson face mask",
+ "prompt": "secretary bird creature standing on very long thin legs with one leg raised in a kick, compact body, short hooked beak, bare crimson face mask around its eyes, a small fan of quill feathers at the back of its head, folded wings, no tail feathers",
+ "size": 44,
+ "seed": 3301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_secretary_b",
+ "edit": "make it chunkier with a fluffy puffed chest, thicker legs and crimson bands on its legs, keep it teal",
+ "seed": 1,
+ "desc": "Fluffy thick-legged secretary"
+ },
+ {
+ "name": "pl_secretary_c",
+ "edit": "make it taller and lankier with an even longer neck, a sharper scowl and crimson spots on its chest, keep it teal",
+ "seed": 1,
+ "desc": "Lanky scowling secretary"
+ },
+ {
+ "name": "pl_secretary_d",
+ "edit": "make it a fluffy baby chick with a round downy body, stubby legs and a tiny crest, keep it teal",
+ "seed": 1,
+ "desc": "A fluffy baby chick"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_shoebill.json b/pixellab_library/pl_shoebill.json
new file mode 100644
index 0000000..0bbfca6
--- /dev/null
+++ b/pixellab_library/pl_shoebill.json
@@ -0,0 +1,327 @@
+{
+ "name": "pl_shoebill",
+ "plan": "avian",
+ "head": [
+ "beak_head"
+ ],
+ "types": {
+ "water": 5,
+ "fighting": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Grumpy shoebill stork chick with an enormous clog-shaped bill and a stern glare",
+ "prompt": "grumpy shoebill stork-like bird chick standing on two thin legs, enormous wide clog-shaped bill with a hooked crimson tip, stern glaring eyes under heavy brows, small fluffy tuft at the back of its head, round fluffy body with folded wings, no tail",
+ "size": 44,
+ "seed": 3301,
+ "direction": "south",
+ "anchors": {
+ "back": [
+ 32,
+ 34
+ ]
+ },
+ "variants": [
+ {
+ "name": "pl_shoebill_b",
+ "edit": "make it much rounder and fluffier like a downy ball with a shorter stubby bill and crimson speckles on its chest",
+ "seed": 1,
+ "desc": "Round downy shoebill"
+ },
+ {
+ "name": "pl_shoebill_c",
+ "edit": "make it taller with longer thin legs, a much bigger heavier bill, a shaggy crest of feathers at the back of its head and crimson scalloped bands on its folded wings, wings stay folded tight against its body",
+ "seed": 2,
+ "desc": "Tall heavy-billed shoebill"
+ },
+ {
+ "name": "pl_shoebill_d",
+ "edit": "make it stockier with a short thick neck, a huge shaggy crest of feathers sticking out from the back of its head and crimson bars across its chest",
+ "seed": 1,
+ "desc": "Stocky shaggy-crested shoebill"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_propeller_cap",
+ "edit": "add a small crimson beanie cap with a gold propeller on top sitting on its head",
+ "seed": 1,
+ "types": {
+ "flying": 5,
+ "electric": 2,
+ "normal": 2,
+ "psychic": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "motif": "sky",
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_bow_ribbon",
+ "edit": "add a big crimson ribbon bow tied on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 4,
+ "water": 1,
+ "ice": 1
+ },
+ "other": 0.3,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_scuba_tank",
+ "edit": "add a gold scuba diving air tank strapped on its back",
+ "seed": 1,
+ "types": {
+ "water": 6,
+ "ice": 2
+ },
+ "other": 0.1,
+ "tags": [],
+ "motif": "water",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_jetpack",
+ "edit": "add a boxy gold rocket jetpack on its back with two short rocket thrusters pointing down, the jetpack sticking out above both of its shoulders",
+ "seed": 3,
+ "types": {
+ "flying": 4,
+ "electric": 4,
+ "fire": 2,
+ "normal": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "motif": "sky",
+ "palette": "type",
+ "box": [
+ 0,
+ 0,
+ 64,
+ 28
+ ],
+ "skip": true
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_anchor",
+ "edit": "add a long thin teal tail coming out from its body on the right side ending in a gold anchor",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "fighting": 2,
+ "rock": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "water",
+ "palette": "type",
+ "box": [
+ 38,
+ 0,
+ 64,
+ 64
+ ]
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_comet",
+ "edit": "add a gold comet tail coming out from its body on the right side, a sparkling trail curving up and ending in a small gold star",
+ "seed": 2,
+ "types": {
+ "psychic": 5,
+ "flying": 3,
+ "electric": 2,
+ "fire": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "sky",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_quill",
+ "edit": "add a single long crimson quill feather tail coming out from its body on the right side and sweeping up",
+ "seed": 1,
+ "types": {
+ "flying": 4,
+ "psychic": 3,
+ "normal": 2
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed",
+ "feathered"
+ ],
+ "motif": "feather",
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_kite",
+ "edit": "add a long thin crimson string tail coming out from its body on the right side and rising up to a small gold diamond-shaped kite",
+ "seed": 1,
+ "types": {
+ "flying": 5,
+ "psychic": 2,
+ "normal": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "sky",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_brain_dome",
+ "edit": "add a small clear glass jar with a crimson brain inside sitting on top of its head",
+ "seed": 2,
+ "types": {
+ "psychic": 6,
+ "electric": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_crescent_moon",
+ "edit": "add a big gold crescent moon rising from behind its back",
+ "seed": 1,
+ "types": {
+ "psychic": 6,
+ "ghost": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "sky",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_kabuto",
+ "edit": "add a small crimson samurai helmet with a gold crescent crest on the front sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "fighting": 6,
+ "dragon": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_barbell",
+ "edit": "add a gold weightlifting barbell with round crimson weights resting across its shoulders behind its head",
+ "seed": 1,
+ "types": {
+ "fighting": 6,
+ "normal": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_laurel",
+ "edit": "add a gold laurel leaf wreath around the top of its head",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "fighting": 3,
+ "normal": 2,
+ "grass": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_ruff_feather",
+ "edit": "add a fluffy ruff collar of crimson feathers sticking out around its neck behind its head",
+ "seed": 1,
+ "types": {
+ "flying": 5,
+ "normal": 2,
+ "ice": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "feathered",
+ "fluffy"
+ ],
+ "motif": "feather",
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_wings_origami",
+ "edit": "add a pair of small folded gold paper origami wings on its back",
+ "seed": 1,
+ "types": {
+ "flying": 4,
+ "psychic": 3,
+ "normal": 2
+ },
+ "other": 0.25,
+ "tags": [
+ "winged"
+ ],
+ "motif": "sky",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_horsetail",
+ "edit": "add a long flowing crimson horse hair tail coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "fire": 3,
+ "fighting": 2
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_viking_helmet",
+ "edit": "add a small round gold viking helmet with two short crimson horns on top of its head",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "ice": 3,
+ "normal": 2
+ },
+ "other": 0.2,
+ "tags": [
+ "horned"
+ ],
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_silverfish.json b/pixellab_library/pl_silverfish.json
new file mode 100644
index 0000000..5a4193f
--- /dev/null
+++ b/pixellab_library/pl_silverfish.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_silverfish",
+ "plan": "serpentine",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "normal": 3,
+ "ghost": 2
+ },
+ "desc": "Flattened tapered silverfish with overlapping shiny scales",
+ "prompt": "silverfish bug creature shaped like a little fish, flat teardrop body widest at the head and tapering to a thin pointed end, covered in shiny overlapping teal scales like fish scales, lying in a gentle S curve with the thin end on the right, rounded head with small eyes and two long thin antennae, tiny legs hidden underneath, crimson scale edges, no ground shadow",
+ "size": 44,
+ "seed": 2213,
+ "direction": "south-west",
+ "excludes": [
+ "antennae"
+ ],
+ "variants": [
+ {
+ "name": "pl_silverfish_b",
+ "edit": "make it fatter and shorter with chunky scales and crimson bands across its body",
+ "seed": 1,
+ "desc": "Fat banded silverfish"
+ },
+ {
+ "name": "pl_silverfish_c",
+ "edit": "make its scales into a shimmering diamond pattern with crimson diamonds and make its body thinner and longer",
+ "seed": 1,
+ "desc": "Slim diamond-scaled silverfish"
+ },
+ {
+ "name": "pl_silverfish_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, a short stubby scaled body, keep its silverfish face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young stubby silverfish"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_skullbat.json b/pixellab_library/pl_skullbat.json
new file mode 100644
index 0000000..13f6c58
--- /dev/null
+++ b/pixellab_library/pl_skullbat.json
@@ -0,0 +1,49 @@
+{
+ "name": "pl_skullbat",
+ "plan": "avian",
+ "head": [
+ "ghost_head",
+ "mammal_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "flying": 3,
+ "poison": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Furry round bat with small wings, a bone-white skull face mask and big pointed ears",
+ "prompt": "round furry bat creature without wings, wearing a bone-white skull mask over its face with hollow eye holes showing glowing eyes, two big pointed bat ears, tiny fangs, small clawed feet, fluffy crimson chest fur",
+ "size": 44,
+ "seed": 1111,
+ "variants": [
+ {
+ "name": "pl_skullbat_b",
+ "edit": "make it chubbier and fluffier with a huge fur ruff around its neck and a cracked skull mask",
+ "seed": 1,
+ "desc": "Fluffy cracked-mask bat"
+ },
+ {
+ "name": "pl_skullbat_c",
+ "edit": "make it slimmer with a long pointed fox-like skull mask, very tall narrow ears and crimson ear tips",
+ "seed": 1,
+ "desc": "Long-snouted skull bat"
+ },
+ {
+ "name": "pl_skullbat_d",
+ "edit": "young chibi version with a huge head, a tiny round body and a cute round skull mask with a cracked forehead, keep its bat face and teal fur, no human features",
+ "seed": 1,
+ "desc": "Young big-headed skull bat",
+ "skip": true
+ }
+ ],
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "tags": [
+ "winged"
+ ]
+}
diff --git a/pixellab_library/pl_skywhale.json b/pixellab_library/pl_skywhale.json
new file mode 100644
index 0000000..fab6aa1
--- /dev/null
+++ b/pixellab_library/pl_skywhale.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_skywhale",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "flying": 5,
+ "water": 3,
+ "psychic": 2
+ },
+ "desc": "Floating sperm-whale calf with a boxy square head and tiny flippers",
+ "prompt": "baby sperm whale creature floating in the air, big boxy square head taking up half its body, small round eyes on the sides, narrow underslung jaw with a little smile, tiny flippers, wrinkled skin lines, crimson cheek blush, tail fluke curled under its body",
+ "size": 44,
+ "seed": 3701,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_skywhale_b",
+ "edit": "make it rounder and chubbier with a shorter head and crimson spots along its back, keep the same size and pose",
+ "seed": 1,
+ "desc": "Round spotted skywhale"
+ },
+ {
+ "name": "pl_skywhale_c",
+ "edit": "make its square head even bigger and blockier with deep wrinkles and crimson stripes on its belly, keep the same size and pose",
+ "seed": 1,
+ "desc": "Block-headed striped skywhale"
+ },
+ {
+ "name": "pl_skywhale_d",
+ "edit": "make it a young chibi version with enormous shiny eyes and tiny flippers, keep its huge boxy square head and teal skin, no human features",
+ "seed": 2,
+ "desc": "Young chibi skywhale"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_sleepsheep.json b/pixellab_library/pl_sleepsheep.json
new file mode 100644
index 0000000..c7808af
--- /dev/null
+++ b/pixellab_library/pl_sleepsheep.json
@@ -0,0 +1,39 @@
+{
+ "name": "pl_sleepsheep",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "normal": 3
+ },
+ "desc": "Sleepwalking sheep upright on its hind legs, front hooves stretched forward, eyes closed, cloud wool",
+ "prompt": "sleepwalking sheep creature standing upright on its two hind legs with both front hooves stretched straight forward like a sleepwalker, eyes peacefully closed, small drowsy smile, dark teal face, round fluffy cloud-shaped wool body, short droopy ears, a crimson crescent moon marking on its wool, thin legs, no horns, no tail",
+ "size": 44,
+ "seed": 1211,
+ "direction": "south-west",
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_sleepsheep_b",
+ "edit": "make its teal wool much longer and shaggier, hanging down to its knees like a long fringe, with crimson star spots in the wool",
+ "seed": 7,
+ "desc": "Shaggy fringe-wooled sheep"
+ },
+ {
+ "name": "pl_sleepsheep_c",
+ "edit": "make it skinny with short shaggy wool, long thin legs and longer droopier ears",
+ "seed": 1,
+ "desc": "Skinny shaggy sheep"
+ },
+ {
+ "name": "pl_sleepsheep_d",
+ "edit": "make its wool short and curly like tight teal curls with crimson pajama stripes on its body, keep the same size and pose",
+ "seed": 1,
+ "desc": "Curly pajama sheep"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_slime.json b/pixellab_library/pl_slime.json
index e9253ee..91926fe 100644
--- a/pixellab_library/pl_slime.json
+++ b/pixellab_library/pl_slime.json
@@ -63,5 +63,25 @@
],
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_slime_b",
+ "edit": "make it wider and flatter like a puddle blob with crimson bubbles inside",
+ "seed": 1,
+ "desc": "Puddle slime"
+ },
+ {
+ "name": "pl_slime_c",
+ "edit": "make it taller and pointier like a dripping teardrop with crimson swirls inside, keep teal goo color",
+ "seed": 2,
+ "desc": "Tall pointy slime"
+ },
+ {
+ "name": "pl_slime_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 2,
+ "desc": "Extra-fluffy slime"
+ }
]
-}
\ No newline at end of file
+}
diff --git a/pixellab_library/pl_slinky.json b/pixellab_library/pl_slinky.json
new file mode 100644
index 0000000..9862489
--- /dev/null
+++ b/pixellab_library/pl_slinky.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_slinky",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "electric": 5,
+ "fighting": 3
+ },
+ "desc": "Spring-coil serpent made of stacked ribbed metal coils like a toy slinky, coils piled at its base",
+ "prompt": "spring coil serpent creature rising upright in an S-curve, its long body is made of stacked ribbed metal spring coils like a toy slinky, crimson bands every few coils, the bottom coils resting in a pile at its base, round smooth head with big eyes and a small smile, no limbs, no horns, no ground",
+ "size": 44,
+ "seed": 1208,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_slinky_b",
+ "edit": "make the spring coils much thicker and chunkier with fewer bigger rings and a wider head",
+ "seed": 1,
+ "desc": "Chunky thick-coiled spring"
+ },
+ {
+ "name": "pl_slinky_c",
+ "edit": "make it much taller: the spring body stretched up into a tall upright column of coils, with a small oval head and bold crimson stripes on every other coil",
+ "seed": 7,
+ "desc": "Tall coil-column spring"
+ },
+ {
+ "name": "pl_slinky_d",
+ "edit": "make the coils wider at the bottom and narrow at the top like a cone with crimson stripes on every other coil, keep the same size and pose",
+ "seed": 1,
+ "desc": "Cone-stacked striped slinky",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_sloth.json b/pixellab_library/pl_sloth.json
new file mode 100644
index 0000000..912644a
--- /dev/null
+++ b/pixellab_library/pl_sloth.json
@@ -0,0 +1,57 @@
+{
+ "name": "pl_sloth",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "grass": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "desc": "Moss-covered sloth on all fours with long hook claws and a sleepy mask face",
+ "prompt": "chibi three-toed sloth creature standing on all fours, shaggy fur overgrown with tufts of moss, long curved hook claws on all four feet, sleepy smiling face with a crimson mask stripe across its eyes, short blunt snout, round hunched back, no ears, no tail",
+ "size": 44,
+ "seed": 1101,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_sloth_b",
+ "edit": "make it chubbier and rounder with much longer shaggy fur hanging down from its belly and crimson stripes along its back",
+ "seed": 1,
+ "desc": "Chubby long-haired striped sloth"
+ },
+ {
+ "name": "pl_sloth_c",
+ "edit": "make it lankier with longer thinner legs, a smaller round head and a big crimson patch on its back",
+ "seed": 1,
+ "desc": "Lanky saddle-patched sloth"
+ },
+ {
+ "name": "pl_sloth_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, keep its sloth face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi sloth"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_brambles_back",
+ "edit": "add a curling gold thorny bramble vine with sharp thorns arching along the top of its back",
+ "seed": 1,
+ "types": {
+ "grass": 6,
+ "poison": 3,
+ "bug": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "leafy",
+ "spiky"
+ ],
+ "motif": "plant",
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_sludgerat.json b/pixellab_library/pl_sludgerat.json
new file mode 100644
index 0000000..bc373ce
--- /dev/null
+++ b/pixellab_library/pl_sludgerat.json
@@ -0,0 +1,61 @@
+{
+ "name": "pl_sludgerat",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "poison": 5,
+ "normal": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Sewer rat dripping sludge, buck teeth, round ears, matted fur",
+ "prompt": "chubby teal sewer rat creature standing on four short legs in a 3/4 view, teal fur that is slimy and matted with thick teal slime drips oozing off its back and chin, long pointed snout with a round crimson nose and whiskers, small round teal ears, beady squinting eyes, sly smirk, no tail",
+ "size": 44,
+ "seed": 1302,
+ "variants": [
+ {
+ "name": "pl_sludgerat_b",
+ "edit": "make it chubbier and squatter with a big round belly, a stubby blunt snout and crimson patches on its fur",
+ "seed": 1,
+ "desc": "Chubby patchy sludge rat"
+ },
+ {
+ "name": "pl_sludgerat_c",
+ "edit": "make it scrawny and lanky with a long narrow snout, ragged torn ears and crimson stripes across its back",
+ "seed": 1,
+ "desc": "Scrawny ragged sludge rat"
+ },
+ {
+ "name": "pl_sludgerat_d",
+ "edit": "make it twice as round and chubby like a fat ball with crimson sludge spots, keep its rat face, buck teeth and round ears",
+ "seed": 11,
+ "desc": "Fat spotted sludge rat",
+ "skip": false
+ }
+ ],
+ "direction": "south",
+ "parts": [
+ {
+ "slot": "tail",
+ "name": "pl_tail_slime",
+ "edit": "add a thick drooping tail made of dripping gold slime coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "poison": 7,
+ "water": 1
+ },
+ "other": 0.05,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "tailed"
+ ],
+ "excludes": [],
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_smog.json b/pixellab_library/pl_smog.json
new file mode 100644
index 0000000..5e03ccc
--- /dev/null
+++ b/pixellab_library/pl_smog.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_smog",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "poison": 5,
+ "ghost": 3,
+ "fire": 2
+ },
+ "desc": "Lumpy smog cloud wearing a crimson gas-mask respirator, stubby arms",
+ "prompt": "lumpy puffy cloud of thick smog shaped like a bumpy blob, wearing a crimson gas mask respirator over its mouth with a round filter canister, two round goggle eyes, two stubby little arms, wisps of smoke curling off its sides, flat bottom resting on the ground",
+ "size": 44,
+ "seed": 1106,
+ "variants": [
+ {
+ "name": "pl_smog_b",
+ "edit": "make the smog cloud a little taller, made of two puffy lumps stacked on top of each other, with a bigger crimson gas mask with two filters, keeping the same overall size",
+ "seed": 2,
+ "desc": "Two-lump smog with double-filter mask"
+ },
+ {
+ "name": "pl_smog_c",
+ "edit": "make the smog cloud wider and flatter with drippy oozing bottom edges, crimson spots in the cloud and narrow angry eyes",
+ "seed": 1,
+ "desc": "Wide drippy smog"
+ },
+ {
+ "name": "pl_smog_d",
+ "edit": "make the smog cloud very tall and lanky like a column of stacked smoke puffs, keep its crimson gas-mask respirator and stubby arms",
+ "seed": 11,
+ "desc": "Tall column smog",
+ "skip": true
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_snail.json b/pixellab_library/pl_snail.json
new file mode 100644
index 0000000..2e70321
--- /dev/null
+++ b/pixellab_library/pl_snail.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_snail",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "bug": 5,
+ "water": 3,
+ "poison": 2
+ },
+ "desc": "Plump snail with a big spiral shell behind it and eye stalks",
+ "prompt": "snail creature facing the viewer, soft plump body sticking up in front of a big round spiral shell behind it, two eye stalks with round eyes on top of its head, wide happy mouth, crimson spiral stripe on the shell, slimy soft skin, no legs",
+ "size": 44,
+ "seed": 1112,
+ "direction": "south",
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "excludes": [
+ "antennae"
+ ],
+ "variants": [
+ {
+ "name": "pl_snail_b",
+ "edit": "make the shell taller and pointed like a cone with crimson ridges, and make the body slimmer",
+ "seed": 1,
+ "desc": "Cone-shelled slim snail"
+ },
+ {
+ "name": "pl_snail_c",
+ "edit": "make the shell flatter and wider with bumpy knobs and add crimson spots on its soft body",
+ "seed": 1,
+ "desc": "Knobby flat-shelled spotted snail"
+ },
+ {
+ "name": "pl_snail_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, a tiny round shell, keep its snail face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi snail"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_snake.json b/pixellab_library/pl_snake.json
index d7283be..e54fa47 100644
--- a/pixellab_library/pl_snake.json
+++ b/pixellab_library/pl_snake.json
@@ -26,7 +26,9 @@
"ground": 1
},
"other": 0.05,
- "requires": ["reptile_head"],
+ "requires": [
+ "reptile_head"
+ ],
"palette": "accent"
},
{
@@ -66,5 +68,25 @@
],
"palette": "accent"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_snake_b",
+ "edit": "make it thicker with a wide flattened hood-like head and crimson bands",
+ "seed": 1,
+ "desc": "Thick hooded snake"
+ },
+ {
+ "name": "pl_snake_c",
+ "edit": "make it slimmer with a narrow pointed head and crimson zigzag stripes",
+ "seed": 1,
+ "desc": "Slim zigzag snake"
+ },
+ {
+ "name": "pl_snake_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded snake"
+ }
]
}
diff --git a/pixellab_library/pl_snowcat.json b/pixellab_library/pl_snowcat.json
new file mode 100644
index 0000000..b1adc15
--- /dev/null
+++ b/pixellab_library/pl_snowcat.json
@@ -0,0 +1,45 @@
+{
+ "name": "pl_snowcat",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "normal": 3,
+ "fighting": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Fluffy teal mountain-cat cub on oversized snowshoe paws with a cheek ruff, ring spots and a baked-in curled tail",
+ "prompt": "small chubby teal-furred mountain cat cub standing on four short legs facing the viewer, round compact body, enormous fluffy oversized round paws like snowshoes, thick fluffy fur ruff around its cheeks, small round ears, crimson ring spots on its back, short wide muzzle, cute sleepy smile, tailless, no tail",
+ "size": 44,
+ "seed": 2303,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_snowcat_b",
+ "edit": "make it lankier with longer legs, a slimmer body and bold crimson stripes instead of spots",
+ "seed": 1,
+ "desc": "Lanky striped snowcat"
+ },
+ {
+ "name": "pl_snowcat_c",
+ "edit": "make it chubbier and fluffier with a much bigger cheek ruff mane, shorter legs and bigger crimson rosettes",
+ "seed": 1,
+ "desc": "Chubby maned snowcat"
+ },
+ {
+ "name": "pl_snowcat_d",
+ "edit": "make it twice as round and squat like a fat fluffy ball with crimson ring spots, keep its cat face, cheek ruff and oversized snowshoe paws",
+ "seed": 11,
+ "desc": "Fat round snowcat",
+ "skip": false
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_snowman.json b/pixellab_library/pl_snowman.json
new file mode 100644
index 0000000..c615891
--- /dev/null
+++ b/pixellab_library/pl_snowman.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_snowman",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "ice": 5,
+ "normal": 3,
+ "ghost": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Two stacked packed-snow balls with twig stub arms and a crimson scarf",
+ "prompt": "snowman creature made of two stacked lumpy packed snowballs, a big bottom ball and a smaller head ball, rough lumpy snow texture, two short crimson twig stub arms, crimson pebble buttons, face on the top ball with a tiny round nose, a short crimson scarf wrapped at the neck, no hat, nothing on its head",
+ "size": 44,
+ "seed": 2601,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_snowman_b",
+ "edit": "change its body into a tall tower of three stacked snowballs of the same small size, the head on top, with crimson pebble buttons on each ball",
+ "seed": 2,
+ "desc": "Three-ball tower snowman"
+ },
+ {
+ "name": "pl_snowman_c",
+ "edit": "make it one huge squat melting snowball with drips at the bottom and the head ball sunk into it, crimson scarf longer",
+ "seed": 1,
+ "desc": "Melting squat snowman"
+ },
+ {
+ "name": "pl_snowman_d",
+ "edit": "make it crystal-studded with small pale ice crystals stuck in the snow and a crimson scarf",
+ "seed": 1,
+ "desc": "crystal-studded with small pale ice crystals stuck i"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_snowmonkey.json b/pixellab_library/pl_snowmonkey.json
new file mode 100644
index 0000000..87072cd
--- /dev/null
+++ b/pixellab_library/pl_snowmonkey.json
@@ -0,0 +1,42 @@
+{
+ "name": "pl_snowmonkey",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "psychic": 3,
+ "normal": 2
+ },
+ "desc": "Snow macaque sitting upright in a thick fluffy coat with a bare crimson face",
+ "prompt": "snow macaque monkey creature sitting upright with arms folded on its knees, very thick fluffy fur coat, bare crimson face with a calm sleepy expression, small round ears hidden in fur, fluffy fur hood around its face, crimson hands and feet, no tail",
+ "size": 44,
+ "seed": 4101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_snowmonkey_b",
+ "edit": "make it slimmer with shorter smoother fur and bigger crimson cheeks, sitting a bit taller",
+ "seed": 1,
+ "desc": "Slim smooth macaque"
+ },
+ {
+ "name": "pl_snowmonkey_c",
+ "edit": "make its fur extremely fluffy and puffy like a big ball of fur, with crimson stripes on its arms",
+ "seed": 1,
+ "desc": "Puffball macaque"
+ },
+ {
+ "name": "pl_snowmonkey_d",
+ "edit": "make it extra fluffy with a huge fluffy fur hood around its face, keep its face",
+ "seed": 1,
+ "desc": "extra fluffy with a huge fluffy fur hood around its ",
+ "skip": true
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_sockeye.json b/pixellab_library/pl_sockeye.json
new file mode 100644
index 0000000..aaceb9e
--- /dev/null
+++ b/pixellab_library/pl_sockeye.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_sockeye",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "water": 3,
+ "fighting": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Spawning sockeye salmon with a humped back, hooked kype jaw and crimson body",
+ "prompt": "spawning sockeye salmon creature hovering, tall humped back, a hooked kype jaw with small teeth and a fierce look, crimson body with a teal head, small fins, short forked tail fin on the right",
+ "size": 44,
+ "seed": 3701,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_sockeye_b",
+ "edit": "keep the teal head and crimson body colors, make it a chubby rounder young salmon with a small round head, no hump, big round eyes and teal spots on its back",
+ "seed": 2,
+ "desc": "Chubby young salmon"
+ },
+ {
+ "name": "pl_sockeye_c",
+ "edit": "make the hump much taller and the hooked jaw bigger with crimson stripes along its sides",
+ "seed": 1,
+ "desc": "Big-humped salmon"
+ },
+ {
+ "name": "pl_sockeye_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy sockeye"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_sockworm.json b/pixellab_library/pl_sockworm.json
new file mode 100644
index 0000000..28f5616
--- /dev/null
+++ b/pixellab_library/pl_sockworm.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_sockworm",
+ "plan": "serpentine",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "normal": 5,
+ "psychic": 3,
+ "ghost": 2
+ },
+ "desc": "Living striped sock creature coiled up with a face at the toe",
+ "prompt": "living sock creature, a long knitted teal sock with crimson stripes curled in an S shape like a worm, the toe end is its head with two button eyes and a small smile, a crimson heel patch, ribbed cuff at the other end, no legs",
+ "size": 44,
+ "seed": 3801,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_sockworm_b",
+ "edit": "make it fluffier and fatter like a thick wool sock with crimson polka dots instead of stripes, keep it teal",
+ "seed": 1,
+ "desc": "Fluffy dotted sock"
+ },
+ {
+ "name": "pl_sockworm_c",
+ "edit": "make it longer and thinner with a darned patch on its body, mismatched button eyes and a crimson zigzag pattern, keep it teal",
+ "seed": 1,
+ "desc": "Long darned sock"
+ },
+ {
+ "name": "pl_sockworm_d",
+ "edit": "make it a fuzzy fluffy wool sock with a big pompom on its cuff end and a crimson argyle diamond pattern, keep it teal",
+ "seed": 2,
+ "desc": "Fuzzy argyle pompom sock"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_solenodon.json b/pixellab_library/pl_solenodon.json
new file mode 100644
index 0000000..899d82a
--- /dev/null
+++ b/pixellab_library/pl_solenodon.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_solenodon",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "poison": 5,
+ "ground": 3,
+ "normal": 2
+ },
+ "desc": "Venomous solenodon shrew with a very long bendy snout and big digging claws",
+ "prompt": "chunky teal shrew creature walking on all four short legs in a 3/4 view, a very long thin flexible snout pointing forward and curving down at the tip with a crimson nose, tiny beady eyes, small round ears, rough bristly teal fur, big curved digging claws on its front feet, no tail",
+ "size": 44,
+ "seed": 2201,
+ "variants": [
+ {
+ "name": "pl_solenodon_b",
+ "edit": "make it rounder and fluffier like a ball of fur with a shorter upturned snout and crimson stripes along its back",
+ "seed": 1,
+ "desc": "Fluffy round short-snouted shrew"
+ },
+ {
+ "name": "pl_solenodon_c",
+ "edit": "make it leaner and longer-bodied with an even longer drooping snout, bigger claws and a crimson saddle patch on its back",
+ "seed": 1,
+ "desc": "Lean long-snouted shrew"
+ },
+ {
+ "name": "pl_solenodon_d",
+ "edit": "make it twice as round and chubby with thick shaggy fur, keep its very long bendy snout and big digging claws",
+ "seed": 11,
+ "desc": "Chubby shaggy solenodon",
+ "skip": false
+ }
+ ],
+ "direction": "south"
+}
diff --git a/pixellab_library/pl_solifuge.json b/pixellab_library/pl_solifuge.json
new file mode 100644
index 0000000..4b4f245
--- /dev/null
+++ b/pixellab_library/pl_solifuge.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_solifuge",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "fire": 5,
+ "bug": 3,
+ "ground": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Sun spider (camel spider) with huge forward jaws and long feeler pedipalps",
+ "prompt": "sun spider creature (solifuge), a big bulbous head with two huge forward-pointing crimson-tipped jaws, two long thick feeler arms in front, a hairy segmented teal body, six legs, fuzzy hair, tiny eyes on top of its head",
+ "size": 44,
+ "seed": 3501,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_solifuge_b",
+ "edit": "make it chubbier with a huge round fuzzy abdomen with crimson bands and shorter jaws",
+ "seed": 1,
+ "desc": "Chubby banded solifuge"
+ },
+ {
+ "name": "pl_solifuge_c",
+ "edit": "make it lankier with very long thin legs, oversized jaws and a crimson stripe down its back",
+ "seed": 1,
+ "desc": "Lanky big-jawed solifuge"
+ },
+ {
+ "name": "pl_solifuge_d",
+ "edit": "cover it in thick shaggy fur and make its body twice as round, keep its big jaws and teal color",
+ "seed": 7,
+ "desc": "Armored solifuge"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_spectercat.json b/pixellab_library/pl_spectercat.json
new file mode 100644
index 0000000..6803b5d
--- /dev/null
+++ b/pixellab_library/pl_spectercat.json
@@ -0,0 +1,47 @@
+{
+ "name": "pl_spectercat",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Slender sitting ghost cat with tattered ears, hollow eyes and a crimson bell collar",
+ "prompt": "slender ghostly cat spirit sitting upright on its haunches facing the viewer, long thin neck, two large triangular ears with tattered notched tips, big hollow dark eyes with tiny glowing pupils, wispy smoke-like fur tuft on its chest, thin front legs, a crimson collar with a small bell, no tail",
+ "size": 44,
+ "seed": 1412,
+ "variants": [
+ {
+ "name": "pl_spectercat_b",
+ "edit": "keep the same sitting pose, but make it plump and round with a big fluffy chest, wide round eyes and crimson tabby stripes on its fur",
+ "seed": 1,
+ "desc": "Plump tabby ghost cat"
+ },
+ {
+ "name": "pl_spectercat_c",
+ "edit": "make it look like a ghost: its eyes become hollow dark sockets with tiny glowing pupils, its ear tips tattered and notched, and its fur frays into wispy smoky tufts along its sides and paws, with crimson rings around its front legs",
+ "seed": 2,
+ "desc": "Tattered hollow-eyed ghost cat"
+ },
+ {
+ "name": "pl_spectercat_d",
+ "edit": "young chibi kitten version with an oversized head, huge round hollow eyes, tiny paws and a crimson ribbon bow instead of the collar, keep its cat face and teal fur, no human features",
+ "seed": 1,
+ "desc": "Ghost kitten"
+ }
+ ],
+ "direction": "south",
+ "anchors": {
+ "back": [
+ 32,
+ 40
+ ]
+ }
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_sphynx.json b/pixellab_library/pl_sphynx.json
new file mode 100644
index 0000000..b01d309
--- /dev/null
+++ b/pixellab_library/pl_sphynx.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_sphynx",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "ground": 3,
+ "ghost": 2
+ },
+ "desc": "Hairless wrinkly sphynx cat sitting upright with huge bat ears, a forehead gem and a beaded collar",
+ "prompt": "hairless sphynx cat creature sitting upright, wrinkly bare skin, long slender neck, enormous wide bat-like ears, narrow slanted lemon-shaped eyes, a crimson diamond gem set in its forehead, a crimson beaded collar necklace, thin front legs held together, no tail",
+ "size": 44,
+ "seed": 1210,
+ "direction": "south-west",
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_sphynx_b",
+ "edit": "make it fluffy with long silky fur, a big fur ruff around its neck and big round eyes",
+ "seed": 1,
+ "desc": "Fluffy ruffed mystic cat"
+ },
+ {
+ "name": "pl_sphynx_c",
+ "edit": "make it plumper and rounder with shorter ears and crimson stripes like hieroglyph markings on its body",
+ "seed": 1,
+ "desc": "Plump hieroglyph cat"
+ },
+ {
+ "name": "pl_sphynx_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its cat face and huge bat ears and wrinkly teal skin, no human features",
+ "seed": 1,
+ "desc": "Young chibi sphynx"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ]
+}
diff --git a/pixellab_library/pl_spider.json b/pixellab_library/pl_spider.json
new file mode 100644
index 0000000..7f1df69
--- /dev/null
+++ b/pixellab_library/pl_spider.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_spider",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "poison": 3,
+ "ghost": 2
+ },
+ "desc": "Fuzzy jumping spider with two huge front eyes and mitten pedipalps",
+ "prompt": "fuzzy jumping spider creature facing the viewer, round fluffy body, square head with two huge glossy front eyes and four tiny eyes above them, two fluffy crimson pedipalps under its eyes like mittens, eight short thick fuzzy legs spread around it, crimson stripe across its forehead, no fangs",
+ "size": 44,
+ "seed": 1111,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_spider_b",
+ "edit": "make its round body bigger and fatter with crimson spots on its back, keep its eight short legs and its fluffy pedipalps",
+ "seed": 2,
+ "desc": "Big-bodied spotted spider"
+ },
+ {
+ "name": "pl_spider_c",
+ "edit": "make its fur much shaggier and spikier and add crimson bands on its eight legs, keep the same pose",
+ "seed": 2,
+ "desc": "Shaggy banded spider"
+ },
+ {
+ "name": "pl_spider_d",
+ "edit": "make it twice as round and fluffy like a fuzzy ball with crimson stripes, keep its eight legs and two huge front eyes",
+ "seed": 11,
+ "desc": "Young chibi spider",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_spittle.json b/pixellab_library/pl_spittle.json
new file mode 100644
index 0000000..e247ffd
--- /dev/null
+++ b/pixellab_library/pl_spittle.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_spittle",
+ "plan": "blob",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "water": 3,
+ "grass": 2
+ },
+ "desc": "Spittlebug nymph peeking out of a bubbly foam nest",
+ "prompt": "small spittlebug nymph creature peeking out from the top of a big round mound of bubbly frothy teal foam bubbles, cute round head with big eyes and a tiny crimson nose, two little hands resting on the foam, the foam mound is its body, no legs visible no ground shadow",
+ "size": 44,
+ "seed": 2110,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_spittle_b",
+ "edit": "make the foam mound taller and drippier with foam dripping down its sides and crimson bubbles mixed in",
+ "seed": 1,
+ "desc": "Tall drippy-foam spittlebug"
+ },
+ {
+ "name": "pl_spittle_c",
+ "edit": "make the foam mound wider and flatter and make the bug bigger, leaning out with a crimson striped back",
+ "seed": 1,
+ "desc": "Wide-foam big spittlebug"
+ },
+ {
+ "name": "pl_spittle_d",
+ "edit": "make the bug climb further out so its whole upper body and two little legs rest on top, and make the foam smaller like a frothy skirt around its waist, with crimson spots on the bug",
+ "seed": 1,
+ "desc": "Bug half-out of a small foam skirt"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_springtail.json b/pixellab_library/pl_springtail.json
new file mode 100644
index 0000000..c9fccdd
--- /dev/null
+++ b/pixellab_library/pl_springtail.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_springtail",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "ice": 5,
+ "bug": 3,
+ "normal": 2
+ },
+ "excludes": [
+ "antennae"
+ ],
+ "desc": "Plump snow-flea springtail standing on six short legs with a forked spring tucked under its belly",
+ "prompt": "plump springtail snow flea creature standing upright, chubby segmented bean-shaped body with soft velvety skin, six short stubby legs, a forked crimson spring lever tucked under its belly, two short thick bent antennae, big round eyes, crimson speckle dots on its back, no wings, no tail",
+ "size": 44,
+ "seed": 2451,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_springtail_b",
+ "edit": "make it longer and slimmer with more segments, longer bent antennae and crimson bands across each segment",
+ "seed": 1,
+ "desc": "Long banded springtail"
+ },
+ {
+ "name": "pl_springtail_c",
+ "edit": "make it very round like a ball with tiny legs, a bigger crimson spring under it and fuzzy hairs all over",
+ "seed": 1,
+ "desc": "Round fuzzy springtail"
+ },
+ {
+ "name": "pl_springtail_d",
+ "edit": "make it armored with segmented crimson-edged plates along its back and longer antennae",
+ "seed": 1,
+ "desc": "armored with segmented crimson-edged plates along it"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_sprite.json b/pixellab_library/pl_sprite.json
index 5eeab14..94ec382 100644
--- a/pixellab_library/pl_sprite.json
+++ b/pixellab_library/pl_sprite.json
@@ -107,5 +107,25 @@
"palette": "type",
"fixed": "bluefire"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_sprite_b",
+ "edit": "make it chubbier with a rounder body, fluffy hair tuft and crimson cheek spots",
+ "seed": 1,
+ "desc": "Chubby tufted sprite"
+ },
+ {
+ "name": "pl_sprite_c",
+ "edit": "make it slimmer with a narrow pointed face, big pointed ears and crimson stripes",
+ "seed": 1,
+ "desc": "Slim pointy sprite"
+ },
+ {
+ "name": "pl_sprite_d",
+ "edit": "make it muscular and athletic with defined arms and legs, crimson bands on its limbs",
+ "seed": 1,
+ "desc": "Muscular sprite"
+ }
]
}
diff --git a/pixellab_library/pl_starfish.json b/pixellab_library/pl_starfish.json
new file mode 100644
index 0000000..a6ca7d7
--- /dev/null
+++ b/pixellab_library/pl_starfish.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_starfish",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "water": 5,
+ "psychic": 3,
+ "rock": 2
+ },
+ "desc": "Five-armed starfish standing on two of its arms with a face in its center",
+ "prompt": "chubby starfish creature standing upright like a little person, its two lower arms are thick legs with feet, its two side arms are stubby arms, its top arm is a rounded head point, a big friendly face with large eyes and an open smile on its upper body, bumpy skin with rows of crimson knobs along each arm",
+ "size": 44,
+ "seed": 3302,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_starfish_b",
+ "edit": "make its arms thinner and longer with tapered pointy tips and crimson stripes along each arm",
+ "seed": 1,
+ "desc": "Slender striped starfish"
+ },
+ {
+ "name": "pl_starfish_c",
+ "edit": "make it chubbier and puffier like a cushion star with short fat rounded arms and a crimson spot pattern",
+ "seed": 1,
+ "desc": "Puffy cushion starfish"
+ },
+ {
+ "name": "pl_starfish_d",
+ "edit": "make it crystal-studded with pale crystal knobs on its arms and crimson tips",
+ "seed": 1,
+ "desc": "crystal-studded with pale crystal knobs on its arms "
+ }
+ ]
+}
diff --git a/pixellab_library/pl_stick.json b/pixellab_library/pl_stick.json
new file mode 100644
index 0000000..c4d8fec
--- /dev/null
+++ b/pixellab_library/pl_stick.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_stick",
+ "plan": "quadruped",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "grass": 3,
+ "psychic": 2
+ },
+ "desc": "Stick insect on four stilt legs with a knobby bark twig body",
+ "prompt": "stick insect creature standing tall on four long thin stilt legs, upright twig-shaped body with bark texture and knobby joints, small oval head with round eyes and two short antennae, two thin front arms held up in front of it, crimson knobby joints and a crimson leaf bud on its chest, slender like a walking twig, no wings, no ground shadow",
+ "size": 44,
+ "seed": 1215,
+ "direction": "south-west",
+ "excludes": [
+ "antennae"
+ ],
+ "variants": [
+ {
+ "name": "pl_stick_b",
+ "edit": "make its twig body much thicker and chunkier with rough teal bark plates and crimson lichen spots, keep it teal, no brown",
+ "seed": 2,
+ "desc": "Chunky barky stick insect"
+ },
+ {
+ "name": "pl_stick_c",
+ "edit": "give it flat teal leaf-shaped lobes on its body and legs like a leaf insect, with crimson leaf veins, keep it teal, no green",
+ "seed": 2,
+ "desc": "Leaf-insect variant"
+ },
+ {
+ "name": "pl_stick_d",
+ "edit": "make it hunch forward on all four legs with a long bent twig body stretched out, a knobby thorny back and crimson thorn tips",
+ "seed": 2,
+ "desc": "Young chibi stick insect",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_stonefish.json b/pixellab_library/pl_stonefish.json
new file mode 100644
index 0000000..de6c987
--- /dev/null
+++ b/pixellab_library/pl_stonefish.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_stonefish",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "rock": 5,
+ "water": 3,
+ "poison": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Lumpy warty camouflaged stonefish with a grumpy frown",
+ "prompt": "lumpy stonefish creature resting on the ground facing the viewer, wide flat bumpy teal body covered in rocky warts, huge upturned grumpy frowning mouth, small eyes set on top, two broad fan-shaped side fins with crimson edges, small tail fin",
+ "size": 44,
+ "seed": 8616,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_stonefish_b",
+ "edit": "make it rounder like a puffed ball with bigger wart bumps and crimson blotches all over",
+ "seed": 1,
+ "desc": "Puffed blotchy stonefish"
+ },
+ {
+ "name": "pl_stonefish_c",
+ "edit": "make it flatter and wider with ragged frilly edges around its body and a wide toothy grin",
+ "seed": 1,
+ "desc": "Frilly flat stonefish"
+ },
+ {
+ "name": "pl_stonefish_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 1,
+ "desc": "Armored stonefish"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_strider.json b/pixellab_library/pl_strider.json
new file mode 100644
index 0000000..58679dc
--- /dev/null
+++ b/pixellab_library/pl_strider.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_strider",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "water": 5,
+ "bug": 3,
+ "flying": 2
+ },
+ "desc": "Water strider with a tiny narrow body on four very long splayed thin legs",
+ "prompt": "water strider bug creature facing the viewer, long narrow boat-shaped body held level just above the ground, four long thin legs splayed far out sideways and resting flat on the ground, two short front arms, a small round head with big round friendly eyes, crimson bands on its knee joints, no wings, no antennae, nothing on its head",
+ "size": 44,
+ "seed": 3602,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_strider_b",
+ "edit": "make its body rounder and plumper and its legs shorter and thicker with crimson spots on its back",
+ "seed": 1,
+ "desc": "Plump short-legged strider"
+ },
+ {
+ "name": "pl_strider_c",
+ "edit": "make its legs even longer and spindlier with knobby joints and give its body crimson stripes",
+ "seed": 1,
+ "desc": "Spindly striped strider"
+ },
+ {
+ "name": "pl_strider_d",
+ "edit": "make its body twice as round and fat like a ball with crimson stripes, keep its four very long thin splayed legs",
+ "seed": 11,
+ "desc": "Ball-bodied striped strider",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tadpole.json b/pixellab_library/pl_tadpole.json
new file mode 100644
index 0000000..8fc77f1
--- /dev/null
+++ b/pixellab_library/pl_tadpole.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_tadpole",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "water": 5,
+ "grass": 3,
+ "normal": 2
+ },
+ "desc": "Giant-headed tadpole with two tiny sprouting hind legs and a stub tail nub",
+ "prompt": "tadpole creature with a huge round bulbous head that is most of its body, wide smiling mouth, big eyes set far apart on the sides, two tiny thin hind legs just sprouting underneath it, small crimson freckles, a short stubby tail nub, glossy smooth skin, nothing on its head",
+ "size": 40,
+ "seed": 3101,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_tadpole_b",
+ "edit": "make its head more pear-shaped and taller, with longer froggy hind legs and two tiny front arms sprouting, crimson stripes on its back",
+ "seed": 1,
+ "desc": "Older leggy tadpole"
+ },
+ {
+ "name": "pl_tadpole_c",
+ "edit": "make it squatter and much wider like a flat bean with a huge grinning mouth and big crimson spots",
+ "seed": 1,
+ "desc": "Wide bean tadpole"
+ },
+ {
+ "name": "pl_tadpole_d",
+ "edit": "make it a young chibi version with an even rounder head and crimson spots, keep its face, no human features",
+ "seed": 1,
+ "desc": "a young chibi version with an even rounder head and ",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_taiko.json b/pixellab_library/pl_taiko.json
new file mode 100644
index 0000000..9607a0b
--- /dev/null
+++ b/pixellab_library/pl_taiko.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_taiko",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "normal": 3,
+ "fighting": 2
+ },
+ "desc": "Taiko thunder drum creature with a face on the drumhead, crimson rope bands and stubby legs",
+ "prompt": "taiko barrel drum creature standing upright, round barrel-shaped wooden drum body, a determined face painted on the round drumhead on its front, crimson rope bands and metal studs around the rim, two short stubby arms, two stubby legs",
+ "size": 44,
+ "seed": 4401,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_taiko_b",
+ "edit": "make the drum body shorter and wider like a flat hand drum with crimson zigzag lightning patterns on its sides, keep the same size and pose",
+ "seed": 1,
+ "desc": "Wide zigzag taiko"
+ },
+ {
+ "name": "pl_taiko_c",
+ "edit": "make the drum body taller and slimmer like an hourglass drum with crimson rope lacing on its sides, keep its painted face on the front and its teal arms and legs",
+ "seed": 2,
+ "desc": "Hourglass laced taiko"
+ },
+ {
+ "name": "pl_taiko_d",
+ "edit": "make the drum smaller and rounder with crimson swirl symbols painted around the rim, keep its painted face on the drumhead and its teal arms and legs, keep the same size and pose",
+ "seed": 2,
+ "desc": "Small swirl-painted taiko"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tapir.json b/pixellab_library/pl_tapir.json
new file mode 100644
index 0000000..53f436d
--- /dev/null
+++ b/pixellab_library/pl_tapir.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_tapir",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ground": 5,
+ "grass": 3,
+ "normal": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Tapir calf with a short drooping trunk-snout and a pale saddle marking",
+ "prompt": "malayan tapir calf creature standing on four short chunky legs, long flexible drooping nose like a short trunk, small oval ears with crimson rims, chunky rounded body with a pale cream band around its middle, small calm eyes, smooth skin, no tusks, no tail",
+ "size": 44,
+ "seed": 2503,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_tapir_b",
+ "edit": "make its body much fatter and rounder like a barrel with shorter stubbier legs, and add bold crimson stripes across its back",
+ "seed": 3,
+ "desc": "Barrel-bodied striped tapir"
+ },
+ {
+ "name": "pl_tapir_c",
+ "edit": "give it a short shaggy mane along the top of its neck and crimson spots on its sides, keep the same size and pose",
+ "seed": 2,
+ "desc": "Maned spotted tapir"
+ },
+ {
+ "name": "pl_tapir_d",
+ "edit": "make it a young chibi version with a big round head and big shiny eyes, keep its long drooping trunk nose, teal skin and pale band, no human features",
+ "seed": 2,
+ "desc": "Young chibi striped tapir"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tardigrade.json b/pixellab_library/pl_tardigrade.json
new file mode 100644
index 0000000..a59f827
--- /dev/null
+++ b/pixellab_library/pl_tardigrade.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_tardigrade",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "water": 3,
+ "ice": 2
+ },
+ "desc": "Chubby water bear: wrinkled barrel body, eight stubby clawed legs, round tube mouth",
+ "prompt": "chubby tardigrade water bear creature standing on eight stubby little legs with tiny claws, plump wrinkled segmented barrel body, small round head with a round tube-shaped mouth, tiny dot eyes, soft squishy skin, crimson spots along its segments, pale cream belly",
+ "size": 44,
+ "seed": 1215,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_tardigrade_b",
+ "edit": "make it much rounder and puffier like a balloon with deep wrinkles and crimson bands between its segments",
+ "seed": 1,
+ "desc": "Puffy banded water bear"
+ },
+ {
+ "name": "pl_tardigrade_c",
+ "edit": "make it longer and slimmer like a stretched barrel lying low to the ground on longer stubby legs, a pointed snout and bumpy skin with crimson dots",
+ "seed": 7,
+ "desc": "Long low water bear"
+ },
+ {
+ "name": "pl_tardigrade_d",
+ "edit": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its water bear face and wrinkled teal body and stubby clawed legs, no human features",
+ "seed": 1,
+ "desc": "Young chibi water bear"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tarotcard.json b/pixellab_library/pl_tarotcard.json
new file mode 100644
index 0000000..5da0b0d
--- /dev/null
+++ b/pixellab_library/pl_tarotcard.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_tarotcard",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "normal": 3
+ },
+ "desc": "Living tarot card on stick limbs with an ornate crimson border, eye symbol and a face at the top",
+ "prompt": "living tarot card creature, a tall flat rectangular card body with an ornate crimson border and a mystical eye symbol in the middle of its front, a cute face at the top of the card, thin stick arms and thin stick legs",
+ "size": 44,
+ "seed": 2209,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_tarotcard_b",
+ "edit": "make the card wider and shorter with rounded corners and a crimson sun symbol instead of the eye",
+ "seed": 1,
+ "desc": "Wide sun card"
+ },
+ {
+ "name": "pl_tarotcard_c",
+ "edit": "make the card narrower with notched cut corners and a crimson spiral symbol instead of the eye",
+ "seed": 1,
+ "desc": "Narrow spiral card"
+ },
+ {
+ "name": "pl_tarotcard_d",
+ "edit": "make the card bent and dog-eared with torn corners and a crimson moon symbol in its center, keep the same size and pose",
+ "seed": 1,
+ "desc": "Dog-eared moon card"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tasdevil.json b/pixellab_library/pl_tasdevil.json
new file mode 100644
index 0000000..9c5d625
--- /dev/null
+++ b/pixellab_library/pl_tasdevil.json
@@ -0,0 +1,62 @@
+{
+ "name": "pl_tasdevil",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "ghost": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Stocky Tasmanian-devil brawler with huge jaws, crimson ears and a pale chest band",
+ "prompt": "tasmanian devil creature standing on four short sturdy legs, low long stocky body, broad wedge-shaped head with a pointed pink-tipped muzzle and huge jaws open showing teeth, small round ears with crimson insides, a big pale cream crescent band across its chest, short dark fur, no tail",
+ "size": 44,
+ "seed": 3602,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_tasdevil_b",
+ "edit": "make it much bulkier with a massive head, an even wider jaw and crimson stripes on its back, keep it teal",
+ "seed": 1,
+ "desc": "Massive-jawed devil"
+ },
+ {
+ "name": "pl_tasdevil_c",
+ "edit": "make it leaner and scruffier with spiky ruffled fur, longer legs and crimson spots on its face, keep it teal",
+ "seed": 1,
+ "desc": "Scruffy lean devil"
+ },
+ {
+ "name": "pl_tasdevil_d",
+ "edit": "make it a young chibi devil with a huge round head, big eyes, a small pink snout and fluffy fur, keep its animal face and teal skin, no human features",
+ "seed": 2,
+ "desc": "Chibi young devil"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_gloves_slung",
+ "edit": "add a pair of small crimson boxing gloves tied together by their laces, draped over the top of its back between its shoulders",
+ "seed": 2,
+ "types": {
+ "fighting": 7,
+ "normal": 1
+ },
+ "other": 0.05,
+ "tags": [],
+ "palette": "accent",
+ "z": 35
+ }
+ ],
+ "anchors": {
+ "back": [
+ 41,
+ 31
+ ]
+ }
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_tatzel.json b/pixellab_library/pl_tatzel.json
new file mode 100644
index 0000000..2fafb0a
--- /dev/null
+++ b/pixellab_library/pl_tatzel.json
@@ -0,0 +1,47 @@
+{
+ "name": "pl_tatzel",
+ "plan": "serpentine",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "ice": 3,
+ "normal": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Tatzelwurm: cat-faced serpent with two front paws and pointed cat ears",
+ "prompt": "tatzelwurm creature: the front half is a cat with a cat face, pointed cat ears, whiskers, slit eyes and two stout front cat paws, the back half has no hind legs and is a thick scaly snake body lying coiled on the ground behind it, crimson stripes on the scaly snake body, pale belly scales, no horns",
+ "size": 44,
+ "seed": 2102,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_tatzel_b",
+ "edit": "make its head rounder and fluffier with a thick fur cheek ruff and crimson spots instead of stripes",
+ "seed": 1,
+ "desc": "Fluffy-cheeked tatzel"
+ },
+ {
+ "name": "pl_tatzel_c",
+ "edit": "give it a narrow angular face with big tufted lynx ears and thick crimson bands around its snake body, keep the same pose, keep the coiled snake body lying on the ground and no hind legs",
+ "seed": 2,
+ "desc": "Lean angular tatzel"
+ },
+ {
+ "name": "pl_tatzel_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 1,
+ "desc": "Armored tatzel"
+ }
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "tags": [
+ "tailed"
+ ]
+}
diff --git a/pixellab_library/pl_teapot.json b/pixellab_library/pl_teapot.json
new file mode 100644
index 0000000..4e219b6
--- /dev/null
+++ b/pixellab_library/pl_teapot.json
@@ -0,0 +1,384 @@
+{
+ "name": "pl_teapot",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "normal": 5,
+ "fire": 3,
+ "psychic": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Living round teapot with a spout nose, lid cap and crimson flower band",
+ "prompt": "living round teapot creature, chubby round ceramic pot body with a cute face on the front, short curved spout on the left side, small round lid on top with a little knob, crimson flower pattern band around its middle, two tiny stubby feet, no handle",
+ "size": 44,
+ "seed": 3401,
+ "direction": "south",
+ "anchors": {
+ "head_top": [
+ 32,
+ 28
+ ]
+ },
+ "variants": [
+ {
+ "name": "pl_teapot_b",
+ "edit": "make it a tall narrow coffee pot shape with a longer thin spout, a domed lid and crimson polka dots",
+ "seed": 1,
+ "desc": "Tall dotted coffee pot"
+ },
+ {
+ "name": "pl_teapot_c",
+ "edit": "make it very wide and flat like a pumpkin-shaped teapot with deep vertical ribbed grooves all around its body, a tiny lid and big crimson leaf patches",
+ "seed": 2,
+ "desc": "Wide ribbed pumpkin teapot"
+ },
+ {
+ "name": "pl_teapot_d",
+ "edit": "make it a squat teal teapot with a much bigger round belly, a short stubby spout, a tall pointed lid like a little hat and glowing crimson cracks all over",
+ "seed": 3,
+ "desc": "Pot-bellied cracked teapot with a pointed lid",
+ "skip": true
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_witch_hat",
+ "edit": "add a small crimson pointy witch hat with a crooked tip and gold band sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "ghost": 5,
+ "psychic": 3,
+ "poison": 3
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "spooky",
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_lure_bulb",
+ "edit": "add a single thick teal antenna stalk growing straight up from the middle of its head, bending forward at the top with a glowing gold bulb on the end",
+ "seed": 2,
+ "types": {
+ "water": 5,
+ "electric": 3,
+ "ghost": 2
+ },
+ "other": 0.15,
+ "requires": [
+ "integrated_head",
+ "reptile_head",
+ "mammal_head",
+ "insect_head"
+ ],
+ "tags": [],
+ "motif": "water",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_drum_back",
+ "edit": "add a small round crimson drum with gold rims strapped on its back, sticking out above its shoulder",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "normal": 3,
+ "psychic": 2,
+ "ground": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_parasol",
+ "edit": "add a small gold parasol umbrella on a short stick held up from behind its back",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "water": 3,
+ "grass": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_plug",
+ "edit": "add a short thick crimson power cable tail coming out from the right side of its body, curving up and ending in a gold electric plug",
+ "seed": 2,
+ "types": {
+ "electric": 6,
+ "normal": 1
+ },
+ "other": 0.1,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "electric",
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_chain",
+ "edit": "add a tail made of gold chain links coming out from its body on the right side ending in a heavy round gold weight",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "ghost": 3,
+ "rock": 2,
+ "dragon": 1
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_chef_hat",
+ "edit": "add a small puffy white chef hat sitting on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 5,
+ "fire": 3
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "main"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_volcano_head",
+ "edit": "add a small crimson rocky volcano cone on top of its head with orange and yellow flames bursting from the crater",
+ "seed": 1,
+ "types": {
+ "fire": 6,
+ "rock": 2
+ },
+ "other": 0,
+ "tags": [
+ "fiery"
+ ],
+ "motif": "fire",
+ "fixed": "fire",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_smokestack",
+ "edit": "add a short crimson brick chimney on its back with orange and yellow flames puffing out of the top",
+ "seed": 1,
+ "types": {
+ "fire": 6,
+ "normal": 1
+ },
+ "other": 0,
+ "tags": [
+ "fiery"
+ ],
+ "motif": "fire",
+ "fixed": "fire",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_tesla_coil",
+ "edit": "add a small gold tesla coil on top of its head with a bright yellow lightning spark crackling from the top ball",
+ "seed": 1,
+ "types": {
+ "electric": 7
+ },
+ "other": 0,
+ "tags": [],
+ "motif": "electric",
+ "fixed": "electric",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_solar_panels",
+ "edit": "add a pair of small gold solar panels spread out like wings from its back",
+ "seed": 1,
+ "types": {
+ "electric": 6,
+ "fire": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "electric",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_blowhole_spout",
+ "edit": "add a big splashing fountain of teal and white water spraying up from the top of its head and falling to both sides",
+ "seed": 2,
+ "types": {
+ "water": 6,
+ "ice": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "water",
+ "palette": "main",
+ "box": [
+ 8,
+ 0,
+ 56,
+ 29
+ ]
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_jester_hat",
+ "edit": "add a small crimson two-pointed jester hat with gold bells on the tips on top of its head",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "ghost": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_hibiscus",
+ "edit": "add a single big crimson hibiscus flower tucked on top of its head",
+ "seed": 1,
+ "types": {
+ "grass": 4,
+ "water": 3,
+ "normal": 2,
+ "psychic": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_lollipop",
+ "edit": "add a short thick teal tail coming out from its body on the right side ending in a round swirled crimson and gold lollipop",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 4
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_spring",
+ "edit": "add a coiled gold metal spring tail coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "electric": 5,
+ "normal": 2,
+ "rock": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "electric",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_pencil",
+ "edit": "add a thin teal tail coming out from its body on the right side ending in a gold pencil tip with a crimson eraser",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "electric": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_yarn",
+ "edit": "add a thin crimson yarn string tail coming out from its body on the right side ending in a round gold ball of yarn",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 2,
+ "bug": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_antenna_heart",
+ "edit": "add a single thin teal antenna on top of its head with a small crimson heart on the tip",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "electric": 2
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_bow_gift",
+ "edit": "add a big crimson gift ribbon bow tied on its back",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 3,
+ "ice": 1
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_wrench",
+ "edit": "add a short thick teal tail coming out from its body on the right side ending in a gold wrench",
+ "seed": 1,
+ "types": {
+ "electric": 4,
+ "fighting": 3,
+ "rock": 2
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_teslacoil.json b/pixellab_library/pl_teslacoil.json
new file mode 100644
index 0000000..0a89e72
--- /dev/null
+++ b/pixellab_library/pl_teslacoil.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_teslacoil",
+ "plan": "biped",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "electric": 5,
+ "normal": 3
+ },
+ "desc": "Tesla coil critter: wire-wound cylinder body under a donut toroid head with a face",
+ "prompt": "small tesla coil creature, a short cylinder body wrapped in tight crimson copper wire windings, topped by a big smooth metal donut-shaped toroid ring, the only face is on the front of the cylinder body, two short stubby legs and stubby arms",
+ "size": 44,
+ "seed": 2406,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_teslacoil_b",
+ "edit": "make it short and squat with thick wide windings and a much wider flat donut head",
+ "seed": 1,
+ "desc": "Squat wide tesla coil",
+ "skip": true
+ },
+ {
+ "name": "pl_teslacoil_c",
+ "edit": "make it taller and slimmer with a smaller round ball head instead of a donut and crimson zigzag windings",
+ "seed": 1,
+ "desc": "Slim ball-topped tesla coil"
+ },
+ {
+ "name": "pl_teslacoil_d",
+ "edit": "make the toroid head bigger and puffier with crimson copper wire bands wrapped around its body and a grinning face, keep the same size and pose",
+ "seed": 1,
+ "desc": "Big-toroid wired tesla coil",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tombstone.json b/pixellab_library/pl_tombstone.json
new file mode 100644
index 0000000..c6e82fe
--- /dev/null
+++ b/pixellab_library/pl_tombstone.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_tombstone",
+ "plan": "quadruped",
+ "head": [
+ "integrated_head",
+ "ghost_head"
+ ],
+ "types": {
+ "ghost": 5,
+ "rock": 3,
+ "ground": 2
+ },
+ "desc": "Gravestone critter: a stone slab body with a cracked face on four stubby legs",
+ "prompt": "small gravestone creature, its body is a tall upright teal stone tombstone with an arched rounded top and a carved crimson cross engraved near the top, a cute face below the cross, a crack on one edge, standing on four short stubby legs at the bottom of the stone",
+ "size": 44,
+ "seed": 1313,
+ "variants": [
+ {
+ "name": "pl_tombstone_b",
+ "edit": "make the gravestone wider and squatter with a flat top, several deep cracks, a chipped corner and a grumpy face, nothing on top of it",
+ "seed": 2,
+ "desc": "Squat cracked grumpy tombstone"
+ },
+ {
+ "name": "pl_tombstone_c",
+ "edit": "make the gravestone rounder and lumpier like an old weathered boulder headstone, covered in thick moss and hanging crimson ivy vines, with a sleepy half-closed face, keeping the same size",
+ "seed": 3,
+ "desc": "Mossy ivy-covered weathered tombstone"
+ },
+ {
+ "name": "pl_tombstone_d",
+ "edit": "make it a wide double tombstone with a heart-shaped top split down the middle, crimson flowers carved at its base and a shy blushing face",
+ "seed": 1,
+ "desc": "Heart double tombstone"
+ }
+ ],
+ "direction": "south"
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_topiary.json b/pixellab_library/pl_topiary.json
new file mode 100644
index 0000000..26dd922
--- /dev/null
+++ b/pixellab_library/pl_topiary.json
@@ -0,0 +1,60 @@
+{
+ "name": "pl_topiary",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "grass": 5,
+ "normal": 3,
+ "psychic": 2
+ },
+ "desc": "Topiary poodle sculpted from a trimmed hedge, clipped pom-pom bush shapes",
+ "prompt": "topiary poodle dog creature sculpted from a trimmed teal hedge bush, standing on four legs, its body made of neatly clipped round pom-pom bush balls with tiny leaf texture, a round pom-pom head with a short square snout, black button eyes and a small crimson collar, pom-pom puffs on its ankles, no tail, no ears, no ground shadow",
+ "size": 44,
+ "seed": 2101,
+ "direction": "south-west",
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_topiary_b",
+ "edit": "make it chunkier and squarer like a boxy clipped hedge block with flat sides and a crimson ribbon around its neck",
+ "seed": 1,
+ "desc": "Boxy clipped-block topiary"
+ },
+ {
+ "name": "pl_topiary_c",
+ "edit": "make it lankier with longer thinner legs, a longer neck and crimson berries dotted all over its pom-poms",
+ "seed": 1,
+ "desc": "Lanky berry-dotted topiary"
+ },
+ {
+ "name": "pl_topiary_d",
+ "edit": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, a giant pom-pom head, keep its poodle face and teal colors, no human features",
+ "seed": 1,
+ "desc": "Young chibi topiary puppy"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_dandelion_puff",
+ "edit": "add a small round gold dandelion seed puff ball on a short thin stem sprouting from the top of its head",
+ "seed": 1,
+ "types": {
+ "grass": 6,
+ "flying": 3,
+ "psychic": 1.5
+ },
+ "other": 0.2,
+ "tags": [
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tortoise.json b/pixellab_library/pl_tortoise.json
new file mode 100644
index 0000000..3544ef7
--- /dev/null
+++ b/pixellab_library/pl_tortoise.json
@@ -0,0 +1,50 @@
+{
+ "name": "pl_tortoise",
+ "plan": "quadruped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "rock": 5,
+ "psychic": 3
+ },
+ "excludes": [
+ "shelled"
+ ],
+ "slots": [
+ "head_top",
+ "tail"
+ ],
+ "desc": "Crystal tortoise with a faceted high-domed shell",
+ "prompt": "old tortoise creature on four thick stumpy elephant-like legs, high domed teal shell made of big flat geometric crystal facets with crimson gem centres, long wrinkly neck, small beaked old-man face with bushy crimson eyebrows and droopy wise eyes",
+ "size": 44,
+ "seed": 7919,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_tortoise_b",
+ "edit": "make its shell low and flat and wide with jagged pointed crystal rim edges and give it a longer neck",
+ "seed": 1,
+ "desc": "Flat jagged tortoise"
+ },
+ {
+ "name": "pl_tortoise_c",
+ "edit": "make its shell taller and rounder like a smooth polished dome with crimson stripe rings, and make its head bigger and rounder",
+ "seed": 1,
+ "desc": "Dome ringed tortoise"
+ },
+ {
+ "name": "pl_tortoise_d",
+ "edit": "make it very tall and lanky with long thin legs and a long neck under a small high shell, keep its face and teal color",
+ "seed": 7,
+ "desc": "Squat tortoise",
+ "skip": true
+ }
+ ],
+ "anchors": {
+ "tail": [
+ 52,
+ 42
+ ]
+ }
+}
diff --git a/pixellab_library/pl_trilobite.json b/pixellab_library/pl_trilobite.json
new file mode 100644
index 0000000..a0982a4
--- /dev/null
+++ b/pixellab_library/pl_trilobite.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_trilobite",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "rock": 5,
+ "bug": 3,
+ "water": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Three-lobed segmented trilobite on many legs",
+ "prompt": "trilobite fossil creature facing the viewer, wide flat oval body split lengthwise into three ridged lobes with many horizontal segments, big crescent head shield with two large crimson compound eyes, many tiny legs peeking out under its edges",
+ "size": 44,
+ "seed": 8414,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_trilobite_b",
+ "edit": "make it rounder and taller with a bumpy domed head shield, small spikes along its rim and crimson segment stripes",
+ "seed": 1,
+ "desc": "Domed spiky trilobite"
+ },
+ {
+ "name": "pl_trilobite_c",
+ "edit": "make it longer and narrower with a smooth polished stone texture and crimson dots in rows down its back",
+ "seed": 1,
+ "desc": "Long dotted trilobite"
+ },
+ {
+ "name": "pl_trilobite_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 1,
+ "desc": "Squat trilobite"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_tuatara.json b/pixellab_library/pl_tuatara.json
new file mode 100644
index 0000000..c8910cb
--- /dev/null
+++ b/pixellab_library/pl_tuatara.json
@@ -0,0 +1,34 @@
+{
+ "name": "pl_tuatara",
+ "plan": "biped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "dragon": 5,
+ "rock": 3,
+ "psychic": 2
+ },
+ "desc": "Upright tuatara with beaded skin, small spiny neck crest and a third-eye spot",
+ "prompt": "tuatara lizard creature standing upright on two legs, beaded bumpy skin, a short row of small soft crest spines on its neck, a crimson third-eye spot on its forehead, wide mouth, dark eyes, crimson speckles on its arms, no tail",
+ "size": 44,
+ "seed": 4301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_tuatara_b",
+ "edit": "make it stockier with a big round belly, a short wide head and crimson bands across its chest",
+ "seed": 1,
+ "desc": "Stocky tuatara",
+ "skip": true
+ },
+ {
+ "name": "pl_tuatara_c",
+ "edit": "make it taller and thinner with a longer pointy head and crimson stripes on its back and arms",
+ "seed": 1,
+ "desc": "Lanky tuatara",
+ "skip": true
+ }
+ ],
+ "skip": true
+}
diff --git a/pixellab_library/pl_urchin.json b/pixellab_library/pl_urchin.json
new file mode 100644
index 0000000..f7df569
--- /dev/null
+++ b/pixellab_library/pl_urchin.json
@@ -0,0 +1,44 @@
+{
+ "name": "pl_urchin",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "rock": 5,
+ "water": 3,
+ "poison": 2
+ },
+ "excludes": [
+ "spiky"
+ ],
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Sea urchin ball of short blunt stone spines with a peeking face",
+ "prompt": "sea urchin creature shaped like a low wide dome, short thick blunt teal stone spines only on its top and sides, a big clear smooth front face area with two large eyes and a small smile, crimson tips on the spines, a row of tiny crimson tube feet underneath",
+ "size": 44,
+ "seed": 9121,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_urchin_b",
+ "edit": "make it flatter like a sand dollar dome with fewer longer spines and crimson star pattern on top",
+ "seed": 1,
+ "desc": "Flat star urchin"
+ },
+ {
+ "name": "pl_urchin_c",
+ "edit": "make the urchin a tall round ball covered in many long thin needle spines like a pincushion, with crimson rings on the spines and a sleepy half-closed face",
+ "seed": 2,
+ "desc": "Pincushion urchin"
+ },
+ {
+ "name": "pl_urchin_d",
+ "edit": "make it much taller and oval like an egg with long sparse spines, keep its face and teal color",
+ "seed": 7,
+ "desc": "Extra-fluffy urchin"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_velvetmite.json b/pixellab_library/pl_velvetmite.json
new file mode 100644
index 0000000..1286207
--- /dev/null
+++ b/pixellab_library/pl_velvetmite.json
@@ -0,0 +1,58 @@
+{
+ "name": "pl_velvetmite",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "fire": 3,
+ "normal": 2
+ },
+ "desc": "Plush round velvet mite with dense velvet pile and eight stubby legs",
+ "prompt": "round plush velvet mite bug creature, chubby oval body covered in dense soft velvety teal fuzz like a velvet cushion, tiny head with two little dark eyes at the front, eight short stubby fuzzy legs, crimson velvet patches on its back no ground shadow",
+ "size": 44,
+ "seed": 2112,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_velvetmite_b",
+ "edit": "make it taller and egg-shaped with a crimson velvet stripe down the middle and longer fuzz",
+ "seed": 1,
+ "desc": "Tall striped velvet mite"
+ },
+ {
+ "name": "pl_velvetmite_c",
+ "edit": "make it wider and flatter like a heart-shaped pillow with bigger eyes and crimson polka dots",
+ "seed": 1,
+ "desc": "Flat heart-shaped velvet mite"
+ },
+ {
+ "name": "pl_velvetmite_d",
+ "edit": "make it very tall and lanky like a tall oval egg on longer legs, keep its dense velvet pile texture and eight legs",
+ "seed": 11,
+ "desc": "Young chibi velvet mite",
+ "skip": false
+ }
+ ],
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_wings_butterfly",
+ "edit": "add a pair of small gold butterfly wings with round crimson eyespots, rooted on its back and spreading out to both sides",
+ "seed": 1,
+ "types": {
+ "bug": 6,
+ "flying": 3,
+ "psychic": 2,
+ "grass": 1.5
+ },
+ "other": 0.15,
+ "tags": [
+ "winged"
+ ],
+ "motif": "bug",
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_ventangler.json b/pixellab_library/pl_ventangler.json
new file mode 100644
index 0000000..0d6443a
--- /dev/null
+++ b/pixellab_library/pl_ventangler.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_ventangler",
+ "plan": "aquatic",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "water": 3,
+ "electric": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Boxy deep-sea vent anglerfish with a huge underbite and crimson glow spots",
+ "prompt": "boxy deep-sea anglerfish creature hovering, big blocky head with a smooth rounded bald top, a huge underbite full of small pointy teeth, small grumpy eyes, rows of crimson glowing spots along its sides, small side fins, short stubby tail fin on the right, nothing on top of its head, no lure, no antenna, no stalk",
+ "size": 44,
+ "seed": 1702,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_ventangler_b",
+ "edit": "make it rounder and puffier like a balloon with a small underbite, big round eyes and crimson stripes",
+ "seed": 1,
+ "desc": "Round puffy angler"
+ },
+ {
+ "name": "pl_ventangler_c",
+ "edit": "make it lumpy with bumpy warty skin, an enormous gaping mouth and big crimson patches, keep the same size and keep it facing the viewer",
+ "seed": 2,
+ "desc": "Long gaping angler"
+ },
+ {
+ "name": "pl_ventangler_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy ventangler"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_vine.json b/pixellab_library/pl_vine.json
new file mode 100644
index 0000000..c2dfc23
--- /dev/null
+++ b/pixellab_library/pl_vine.json
@@ -0,0 +1,43 @@
+{
+ "name": "pl_vine",
+ "plan": "serpentine",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "grass": 5,
+ "dragon": 3,
+ "poison": 2
+ },
+ "desc": "Coiled serpent of braided vines with a seed-pod head and berry clusters",
+ "prompt": "serpent creature made of thick braided twisting vines coiled in a pile, its head is a pointed almond-shaped seed pod with two narrow eyes and a split mouth, small leaves sprouting along its coils, crimson berry clusters on its body, thin tail tip resting on the right side, no horns",
+ "size": 44,
+ "seed": 1106,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_vine_b",
+ "edit": "make the vine coils much thicker and chunkier with big round bark knots and crimson berries, and make its pod head rounder and bigger, nothing sticking up",
+ "seed": 2,
+ "desc": "Knotted gnarled vine serpent"
+ },
+ {
+ "name": "pl_vine_c",
+ "edit": "make it slimmer and coiled higher with crimson thorns along its back and fewer leaves",
+ "seed": 1,
+ "desc": "Slim thorny vine serpent"
+ },
+ {
+ "name": "pl_vine_d",
+ "edit": "make it coil into a tall upright spiral tower with its pod head on top and big crimson flower buds blooming along its coils",
+ "seed": 2,
+ "desc": "Young sprout vine serpent"
+ }
+ ],
+ "anchors": {
+ "tail": [
+ 50,
+ 47
+ ]
+ }
+}
diff --git a/pixellab_library/pl_volcano.json b/pixellab_library/pl_volcano.json
new file mode 100644
index 0000000..c8c44fe
--- /dev/null
+++ b/pixellab_library/pl_volcano.json
@@ -0,0 +1,41 @@
+{
+ "name": "pl_volcano",
+ "plan": "blob",
+ "head": [
+ "integrated_head"
+ ],
+ "types": {
+ "fire": 5,
+ "ground": 3,
+ "rock": 2
+ },
+ "slots": [
+ "head_top",
+ "back"
+ ],
+ "desc": "Little cone-shaped volcano creature with a crater rim and crimson lava streaks",
+ "prompt": "little volcano creature, a squat cone-shaped rocky mountain body with a jagged open crater at the top, a cute face with big eyes on the front of the cone, crimson lava streaks running down its rocky sides, two tiny stubby feet, no smoke, no fire, no lid",
+ "size": 44,
+ "seed": 2702,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_volcano_b",
+ "edit": "make it a tall narrow steep cone with a small crater rim, layered ledges on its sides and one thick crimson lava stream down the front",
+ "seed": 1,
+ "desc": "Tall steep volcano"
+ },
+ {
+ "name": "pl_volcano_c",
+ "edit": "make it lumpy and rounder like a pile of boulders with a wide grin and crimson cracks all over its surface, keep the same size",
+ "seed": 2,
+ "desc": "Wide dome volcano"
+ },
+ {
+ "name": "pl_volcano_d",
+ "edit": "make it very tall and narrow like a steep spire volcano with long legs, keep its crater top, face and teal color",
+ "seed": 7,
+ "desc": "Crystal-studded volcano"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_walrus.json b/pixellab_library/pl_walrus.json
new file mode 100644
index 0000000..e862e26
--- /dev/null
+++ b/pixellab_library/pl_walrus.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_walrus",
+ "plan": "aquatic",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "water": 3,
+ "fighting": 2
+ },
+ "desc": "Bulky walrus pup with short tusks, a bristly moustache and skin folds",
+ "prompt": "bulky walrus pup creature sitting upright on front flippers, heavy round body with thick skin folds and wrinkles, broad puffy muzzle with a bristly crimson moustache, two short white tusks pointing down, small sleepy eyes, no ears, no tail",
+ "size": 44,
+ "seed": 2501,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_walrus_b",
+ "edit": "make it slimmer and younger with a smoother body, tiny stub tusks, a smaller muzzle and crimson spots on its back",
+ "seed": 1,
+ "desc": "Slim young walrus"
+ },
+ {
+ "name": "pl_walrus_c",
+ "edit": "make it much fatter and wrinklier with a huge bushy moustache and crimson battle scar stripes across its chest",
+ "seed": 1,
+ "desc": "Fat grizzled walrus"
+ },
+ {
+ "name": "pl_walrus_d",
+ "edit": "make it squat and wider with thick armored skin folds and bigger tusks",
+ "seed": 1,
+ "desc": "squat and wider with thick armored skin folds and bi"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_weevil.json b/pixellab_library/pl_weevil.json
new file mode 100644
index 0000000..27287c2
--- /dev/null
+++ b/pixellab_library/pl_weevil.json
@@ -0,0 +1,322 @@
+{
+ "name": "pl_weevil",
+ "plan": "insectoid",
+ "head": [
+ "insect_head"
+ ],
+ "types": {
+ "bug": 5,
+ "rock": 3,
+ "fighting": 2
+ },
+ "desc": "Round armored weevil with a long down-curved snout and six short stubby legs",
+ "prompt": "round armored weevil-like bug creature standing on six short stubby legs, small head with a long thin down-curved snout and tiny crimson tip, small elbowed antennae on the snout, glossy round pear-shaped shell body with crimson dots, small beady eyes, no wings",
+ "size": 44,
+ "seed": 3501,
+ "direction": "south-west",
+ "anchors": {
+ "back": [
+ 36,
+ 31
+ ]
+ },
+ "excludes": [
+ "eared"
+ ],
+ "variants": [
+ {
+ "name": "pl_weevil_b",
+ "edit": "make its body taller and bumpier with rough rocky warts all over its shell and thick crimson bands across its back",
+ "seed": 1,
+ "desc": "Bumpy warty banded weevil"
+ },
+ {
+ "name": "pl_weevil_c",
+ "edit": "make it longer and flatter like a cylinder with a much shorter thick snout, big round eyes and crimson stripes running along its shell",
+ "seed": 1,
+ "desc": "Long flat short-snouted weevil"
+ },
+ {
+ "name": "pl_weevil_d",
+ "edit": "make it round and fuzzy like a pom-pom with soft teal fur covering its shell, a short stubby snout and crimson spots",
+ "seed": 1,
+ "desc": "Fuzzy pom-pom weevil"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_mohawk",
+ "edit": "add a short compact spiky crimson punk mohawk hair crest along the top of its head",
+ "seed": 2,
+ "types": {
+ "fighting": 5,
+ "poison": 3,
+ "normal": 2,
+ "dragon": 1
+ },
+ "other": 0.2,
+ "requires": [
+ "mammal_head",
+ "reptile_head",
+ "integrated_head",
+ "insect_head"
+ ],
+ "tags": [
+ "spiky"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_headphones",
+ "edit": "add a pair of gold headphones with a crimson headband arching over the top of its head",
+ "seed": 1,
+ "types": {
+ "electric": 4,
+ "normal": 3,
+ "psychic": 3
+ },
+ "other": 0.25,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_swords_crossed",
+ "edit": "add two big gold swords crossed in an X strapped behind its back, with crimson hilts sticking up high above its back",
+ "seed": 2,
+ "types": {
+ "fighting": 6,
+ "dragon": 2,
+ "rock": 1
+ },
+ "other": 0.1,
+ "tags": [],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_honeycomb",
+ "edit": "add a chunk of gold honeycomb with hexagon cells stuck on its back",
+ "seed": 1,
+ "types": {
+ "bug": 6,
+ "grass": 2,
+ "normal": 1
+ },
+ "other": 0.1,
+ "tags": [],
+ "motif": "bug",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_lobster",
+ "edit": "add a segmented crimson lobster tail with a wide fan of flat paddles at the end coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "bug": 3,
+ "rock": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed",
+ "shelled"
+ ],
+ "motif": "water",
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_bone",
+ "edit": "add a thick teal tail coming out from its body on the right side with a big white bone sticking through the end",
+ "seed": 1,
+ "types": {
+ "ground": 4,
+ "ghost": 4,
+ "fighting": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "spooky",
+ "palette": "main"
+ },
+ {
+ "slot": "back",
+ "name": "pl_moss_mantle",
+ "edit": "add a thick shaggy patch of gold moss with tiny crimson berries growing on top of its back",
+ "seed": 1,
+ "types": {
+ "grass": 5,
+ "bug": 3,
+ "ground": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_ladybug_cap",
+ "edit": "add a small round crimson ladybug shell cap with black spots on top of its head",
+ "seed": 1,
+ "types": {
+ "bug": 6,
+ "grass": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "bug",
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_glowbulb",
+ "edit": "add a plump glowing gold firefly abdomen tail with segmented bands coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "bug": 6,
+ "electric": 2
+ },
+ "other": 0.15,
+ "tags": [
+ "tailed"
+ ],
+ "motif": "bug",
+ "palette": "type"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_spore_puffs",
+ "edit": "add a cluster of round gold puffball mushrooms with crimson spots and tiny spore puffs growing on top of its head",
+ "seed": 1,
+ "types": {
+ "poison": 6,
+ "grass": 2
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "plant",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_potion_flasks",
+ "edit": "add two round crimson potion flasks with bubbling gold liquid strapped on its back",
+ "seed": 1,
+ "types": {
+ "poison": 6,
+ "psychic": 1
+ },
+ "other": 0.15,
+ "tags": [],
+ "palette": "accent"
+ },
+ {
+ "slot": "head_top",
+ "name": "pl_stone_stack",
+ "edit": "add a small stack of three round gold stones balanced on top of its head",
+ "seed": 1,
+ "types": {
+ "rock": 6,
+ "ground": 2
+ },
+ "other": 0.15,
+ "tags": [],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_shoulder_pads",
+ "edit": "add a pair of crimson armored shoulder pads with gold rivets on its shoulders",
+ "seed": 1,
+ "types": {
+ "fighting": 5,
+ "rock": 2,
+ "normal": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "armored"
+ ],
+ "motif": "armor",
+ "palette": "accent"
+ },
+ {
+ "slot": "back",
+ "name": "pl_sprouts_back",
+ "edit": "add three tall teal leafy sprouts with big round leaves growing up from its back",
+ "seed": 2,
+ "types": {
+ "grass": 5,
+ "bug": 2,
+ "ground": 1
+ },
+ "other": 0.2,
+ "tags": [
+ "leafy"
+ ],
+ "motif": "plant",
+ "palette": "main"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_tassel",
+ "edit": "add a thin teal tail coming out from its body on the right side ending in a crimson silk tassel with a gold cap",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "dragon": 3,
+ "normal": 2
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_coral",
+ "edit": "add a branching crimson coral tail coming out from its body on the right side",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "rock": 2,
+ "poison": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "accent",
+ "motif": "water"
+ },
+ {
+ "slot": "back",
+ "name": "pl_scallop_shell",
+ "edit": "add a gold scallop seashell stuck on top of its back",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "rock": 2,
+ "normal": 1
+ },
+ "other": 0.25,
+ "tags": [
+ "shelled"
+ ],
+ "palette": "type",
+ "motif": "water"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_wisp.json b/pixellab_library/pl_wisp.json
index 014d7cb..20fb48f 100644
--- a/pixellab_library/pl_wisp.json
+++ b/pixellab_library/pl_wisp.json
@@ -89,5 +89,25 @@
"white"
]
}
+ ],
+ "variants": [
+ {
+ "name": "pl_wisp_b",
+ "edit": "make it rounder and puffier like a cloud with a frilly bottom edge and crimson spots",
+ "seed": 1,
+ "desc": "Puffy cloud wisp"
+ },
+ {
+ "name": "pl_wisp_c",
+ "edit": "make it taller and thinner with a long pointed hood and crimson stripes",
+ "seed": 1,
+ "desc": "Tall pointed wisp"
+ },
+ {
+ "name": "pl_wisp_d",
+ "edit": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush",
+ "seed": 1,
+ "desc": "Baby wisp"
+ }
]
-}
\ No newline at end of file
+}
diff --git a/pixellab_library/pl_wolverine.json b/pixellab_library/pl_wolverine.json
new file mode 100644
index 0000000..9172b47
--- /dev/null
+++ b/pixellab_library/pl_wolverine.json
@@ -0,0 +1,40 @@
+{
+ "name": "pl_wolverine",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "fighting": 5,
+ "ice": 3,
+ "ground": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Stocky snarling wolverine brawler standing hunched on its hind legs, pale chest, huge crimson claws",
+ "prompt": "stocky wolverine creature standing on four short powerful legs, low wide shaggy body, broad head with a short blunt muzzle and a fierce snarl, small rounded ears, a pale cream band along its sides, huge front paws with long crimson claws, no tail",
+ "size": 44,
+ "seed": 1801,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_wolverine_b",
+ "edit": "make it bigger and bulkier with massive hunched shoulders and crimson stripes on its back",
+ "seed": 1,
+ "desc": "Hulking striped wolverine"
+ },
+ {
+ "name": "pl_wolverine_c",
+ "edit": "make it leaner and lower with a longer narrower face, sleek short fur and crimson spots on its face",
+ "seed": 1,
+ "desc": "Sleek spotted wolverine"
+ },
+ {
+ "name": "pl_wolverine_d",
+ "edit": "make it armored with crimson studded leather bracers and shoulder pads and a scarred face, keep it teal",
+ "seed": 1,
+ "desc": "Armored"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_wombat.json b/pixellab_library/pl_wombat.json
new file mode 100644
index 0000000..3898228
--- /dev/null
+++ b/pixellab_library/pl_wombat.json
@@ -0,0 +1,72 @@
+{
+ "name": "pl_wombat",
+ "plan": "quadruped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "normal": 5,
+ "ground": 3,
+ "rock": 2
+ },
+ "excludes": [
+ "eared"
+ ],
+ "desc": "Cube-shaped wombat with a broad nose and tiny ears",
+ "prompt": "wombat creature standing on four very short stubby legs, chunky boxy cube-shaped body, big round head with a wide flat nose, tiny rounded ears, small sleepy eyes, coarse fur, crimson patch on its nose, no tail",
+ "size": 44,
+ "seed": 4301,
+ "direction": "south-west",
+ "variants": [
+ {
+ "name": "pl_wombat_b",
+ "edit": "make it fluffier and rounder with a fuzzy coat, a big blush on its cheeks and crimson stripes on its back, keep it teal",
+ "seed": 1,
+ "desc": "Fuzzy round wombat"
+ },
+ {
+ "name": "pl_wombat_c",
+ "edit": "make it bigger and more square with a huge flat nose, a grumpy face and crimson spots on its sides, keep it teal",
+ "seed": 1,
+ "desc": "Grumpy square wombat"
+ },
+ {
+ "name": "pl_wombat_d",
+ "edit": "make it a tiny baby wombat with a huge head, big eyes and soft fuzzy fur, keep it teal",
+ "seed": 1,
+ "desc": "A tiny baby wombat"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_party_hat",
+ "edit": "add a small gold cone party hat with crimson stripes on top of its head",
+ "seed": 1,
+ "types": {
+ "normal": 6,
+ "psychic": 2,
+ "electric": 1,
+ "fire": 1
+ },
+ "other": 0.2,
+ "tags": [],
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_heart",
+ "edit": "add a long thin teal tail ending in a gold heart shape, curling up on the right side",
+ "seed": 1,
+ "types": {
+ "normal": 5,
+ "psychic": 4
+ },
+ "other": 0.2,
+ "tags": [
+ "tailed"
+ ],
+ "palette": "type"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pixellab_library/pl_worm.json b/pixellab_library/pl_worm.json
index 9802aab..d468369 100644
--- a/pixellab_library/pl_worm.json
+++ b/pixellab_library/pl_worm.json
@@ -9,7 +9,6 @@
"grass": 1.5,
"bug": 1.5
},
- "other": 1,
"desc": "Chubby burrowing worm poking upright with a blunt snout, crimson ring bands and stubby digging claws",
"prompt": "chubby burrowing worm creature poking upright out of the ground, thick soft segmented teal body that is widest at the bottom, blunt rounded snout with a tiny button nose, small sleepy half-closed eyes, thick crimson ring bands around its body, two small stubby shovel-like digging claws on its chest, its lower body bending out to the right in a short round stub, no legs, no antennae, no tail, no dirt",
"size": 44,
@@ -87,5 +86,25 @@
"motif": "armor",
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_worm_b",
+ "edit": "make it fatter with fewer thicker segments and fuzzy hair and crimson spots",
+ "seed": 1,
+ "desc": "Fat fuzzy worm"
+ },
+ {
+ "name": "pl_worm_c",
+ "edit": "make it thinner and taller with a pointed snout and many crimson rings",
+ "seed": 1,
+ "desc": "Thin ringed worm"
+ },
+ {
+ "name": "pl_worm_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 2,
+ "desc": "Crystal-studded worm"
+ }
]
}
diff --git a/pixellab_library/pl_wyrm.json b/pixellab_library/pl_wyrm.json
index 6f8489e..e8a7a28 100644
--- a/pixellab_library/pl_wyrm.json
+++ b/pixellab_library/pl_wyrm.json
@@ -9,7 +9,6 @@
"water": 2,
"psychic": 1.5
},
- "other": 1,
"desc": "Elegant young serpentine dragon in an S-curve with whisker barbels and crimson belly scutes",
"prompt": "elegant young eastern-style serpent dragon rising in a graceful S-curve, slender long teal body, long narrow snout with two thin drooping crimson whisker barbels, almond-shaped narrow eyes, small crimson scale ridge dots along its spine, pale segmented belly scales, two tiny clawed forelegs near its chest, body ending in a short blunt tail stub on the right side, no horns, no wings, no fins",
"size": 44,
@@ -70,5 +69,25 @@
"tags": [],
"palette": "type"
}
+ ],
+ "variants": [
+ {
+ "name": "pl_wyrm_b",
+ "edit": "make it thicker with a broader head, a fluffy mane and crimson belly scales",
+ "seed": 1,
+ "desc": "Maned thick wyrm"
+ },
+ {
+ "name": "pl_wyrm_c",
+ "edit": "make it slimmer with a narrow head, a fin crest along its back and crimson spots",
+ "seed": 1,
+ "desc": "Slim finned wyrm"
+ },
+ {
+ "name": "pl_wyrm_d",
+ "edit": "cover its body in thick overlapping armor plates with crimson plate edges, same pose",
+ "seed": 1,
+ "desc": "Armored wyrm"
+ }
]
}
diff --git a/pixellab_library/pl_x_bagworm.json b/pixellab_library/pl_x_bagworm.json
new file mode 100644
index 0000000..020bfc9
--- /dev/null
+++ b/pixellab_library/pl_x_bagworm.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_x_bagworm",
+ "plan": "blob",
+ "types": {
+ "bug": 5,
+ "grass": 3
+ },
+ "desc": "Bagworm larva poking out of a cone-shaped case of twigs",
+ "prompt": "a round bag-shaped cocoon case covered in twigs and dry leaves, with a small cute caterpillar head poking out of the top opening, tiny legs below the head, crimson head",
+ "size": 44,
+ "seed": 1361,
+ "variants": [
+ {
+ "name": "pl_x_bagworm_b",
+ "edit": "make the case rounder and covered in small pebbles and crimson beads",
+ "seed": 1,
+ "desc": "Pebble-cased bagworm"
+ },
+ {
+ "name": "pl_x_bagworm_c",
+ "edit": "make the case taller and thinner made of pine needles with crimson bands",
+ "seed": 1,
+ "desc": "Needle-cased bagworm"
+ },
+ {
+ "name": "pl_x_bagworm_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy bagworm"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_basilisk.json b/pixellab_library/pl_x_basilisk.json
new file mode 100644
index 0000000..500e161
--- /dev/null
+++ b/pixellab_library/pl_x_basilisk.json
@@ -0,0 +1,82 @@
+{
+ "name": "pl_x_basilisk",
+ "plan": "biped",
+ "types": {
+ "dragon": 5,
+ "fighting": 3
+ },
+ "desc": "Crested basilisk lizard standing upright in a running stance",
+ "prompt": "stocky crested lizard standing upright on two thick legs, tall rounded sail crest on its head and back, wide jaw, heavy brow, short arms, crimson belly",
+ "size": 44,
+ "seed": 1365,
+ "variants": [
+ {
+ "name": "pl_x_basilisk_b",
+ "edit": "make it bulkier with armored scale plates and crimson stripes",
+ "seed": 1,
+ "desc": "Armored basilisk"
+ },
+ {
+ "name": "pl_x_basilisk_c",
+ "edit": "make it slimmer with a frilly neck crest and crimson spots",
+ "seed": 1,
+ "desc": "Frilled basilisk"
+ },
+ {
+ "name": "pl_x_basilisk_d",
+ "edit": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face",
+ "seed": 2,
+ "desc": "Squat basilisk"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_wings_ice",
+ "edit": "add a pair of small pale icy blue ice crystal wings rooted at its upper back",
+ "seed": 1,
+ "types": {
+ "ice": 6,
+ "flying": 2
+ },
+ "other": 0,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "winged",
+ "crystal"
+ ],
+ "excludes": [],
+ "motif": "crystal",
+ "palette": "type",
+ "fixed": "ice",
+ "fixed_from": [
+ "main",
+ "accent",
+ "type",
+ "white"
+ ]
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_crystal_tip",
+ "edit": "add a thick tail ending in a cluster of gold crystals, starting at its body edge and curving up on the right side",
+ "seed": 1,
+ "types": {
+ "rock": 5,
+ "psychic": 3,
+ "dragon": 2
+ },
+ "other": 0.2,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "tailed",
+ "crystal"
+ ],
+ "excludes": [],
+ "motif": "crystal",
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_bison.json b/pixellab_library/pl_x_bison.json
new file mode 100644
index 0000000..747c079
--- /dev/null
+++ b/pixellab_library/pl_x_bison.json
@@ -0,0 +1,97 @@
+{
+ "name": "pl_x_bison",
+ "plan": "quadruped",
+ "types": {
+ "normal": 5,
+ "ground": 3
+ },
+ "desc": "Shaggy bison calf with a huge woolly shoulder hump, low head and short legs",
+ "prompt": "shaggy bison calf standing on four short legs, huge woolly shoulder hump, low broad head, small beard, no horns",
+ "size": 44,
+ "seed": 1300,
+ "variants": [
+ {
+ "name": "pl_x_bison_b",
+ "edit": "make it leaner with shorter smooth fur, a smaller hump and crimson bands across its back",
+ "seed": 1,
+ "desc": "Lean smooth bison"
+ },
+ {
+ "name": "pl_x_bison_c",
+ "edit": "make it much woollier and rounder with a thick fluffy mane covering its front and crimson spots",
+ "seed": 1,
+ "desc": "Woolly maned bison"
+ },
+ {
+ "name": "pl_x_bison_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded bison"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_cowboy_hat",
+ "edit": "add a small gold cowboy hat on top of its head",
+ "seed": 1,
+ "types": {
+ "ground": 4,
+ "normal": 3,
+ "fighting": 2
+ },
+ "other": 0.4,
+ "plans": "all",
+ "requires": [],
+ "tags": [],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type",
+ "skip": true
+ },
+ {
+ "slot": "back",
+ "name": "pl_gems_back",
+ "edit": "add a row of small faceted gold gems along the top of its back",
+ "seed": 1,
+ "types": {
+ "rock": 5,
+ "psychic": 3,
+ "ground": 2
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "crystal",
+ "spiky"
+ ],
+ "excludes": [],
+ "motif": "crystal",
+ "palette": "type",
+ "skip": true
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_cactus",
+ "edit": "add a short segmented cactus tail with tiny spines in gold, starting at its body edge and curving up on the right side",
+ "seed": 1,
+ "types": {
+ "grass": 5,
+ "ground": 4
+ },
+ "other": 0.2,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "tailed",
+ "spiky",
+ "leafy"
+ ],
+ "excludes": [],
+ "motif": "plant",
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_cactus.json b/pixellab_library/pl_x_cactus.json
new file mode 100644
index 0000000..c503920
--- /dev/null
+++ b/pixellab_library/pl_x_cactus.json
@@ -0,0 +1,33 @@
+{
+ "name": "pl_x_cactus",
+ "plan": "biped",
+ "types": {
+ "grass": 5,
+ "ground": 3,
+ "fighting": 2
+ },
+ "desc": "Barrel cactus creature with stubby arm pads and tiny spines",
+ "prompt": "round barrel cactus creature standing on stubby root feet, two short paddle arms, tiny spines, ribbed body, crimson flower dot on cheek",
+ "size": 44,
+ "seed": 1303,
+ "variants": [
+ {
+ "name": "pl_x_cactus_b",
+ "edit": "make it taller and thinner like a saguaro column with crimson stripes along the ribs",
+ "seed": 1,
+ "desc": "Tall column cactus"
+ },
+ {
+ "name": "pl_x_cactus_c",
+ "edit": "make it squatter and lumpier like a prickly pear with flat pad arms and crimson spots",
+ "seed": 1,
+ "desc": "Prickly pear cactus"
+ },
+ {
+ "name": "pl_x_cactus_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 2,
+ "desc": "Chibi young cactus"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_chili.json b/pixellab_library/pl_x_chili.json
new file mode 100644
index 0000000..3d3fd8f
--- /dev/null
+++ b/pixellab_library/pl_x_chili.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_x_chili",
+ "plan": "biped",
+ "types": {
+ "fire": 5,
+ "grass": 3
+ },
+ "desc": "Living chili pepper creature, curved pod body with stem cap and stubby legs",
+ "prompt": "small living chili pepper creature standing on stubby legs, curved pod-shaped body, green stem cap on top, angry eyebrows, tiny arms",
+ "size": 44,
+ "seed": 1301,
+ "variants": [
+ {
+ "name": "pl_x_chili_b",
+ "edit": "make it shorter and rounder with wrinkled lobes and crimson cheeks, keep the teal color and same pose",
+ "seed": 2,
+ "desc": "Round bell pepper"
+ },
+ {
+ "name": "pl_x_chili_c",
+ "edit": "make it longer and thinner with a wavy twisted pod body and crimson tip stripes",
+ "seed": 1,
+ "desc": "Thin twisted chili"
+ },
+ {
+ "name": "pl_x_chili_d",
+ "edit": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush",
+ "seed": 1,
+ "desc": "Baby chili"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_clam.json b/pixellab_library/pl_x_clam.json
new file mode 100644
index 0000000..bf9a93b
--- /dev/null
+++ b/pixellab_library/pl_x_clam.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_x_clam",
+ "plan": "blob",
+ "types": {
+ "water": 5,
+ "rock": 3
+ },
+ "desc": "Clam creature peeking out between two ridged shell halves",
+ "prompt": "round clam creature, two ridged shell halves slightly open, cute face peeking out between them, tiny feet, crimson lip of the shell",
+ "size": 44,
+ "seed": 1302,
+ "variants": [
+ {
+ "name": "pl_x_clam_b",
+ "edit": "make the shell taller and fan-shaped like a scallop with crimson ridges",
+ "seed": 1,
+ "desc": "Fan scallop"
+ },
+ {
+ "name": "pl_x_clam_c",
+ "edit": "make the shell flatter and wider like an oyster with bumpy rough texture and crimson spots",
+ "seed": 1,
+ "desc": "Rough oyster"
+ },
+ {
+ "name": "pl_x_clam_d",
+ "edit": "make the clam shell very tall and narrow like a razor clam standing upright, keep its peeking face and teal color",
+ "seed": 11,
+ "desc": "Armored clam"
+ }
+ ],
+ "anchors": {
+ "head_top": [
+ 30,
+ 22
+ ]
+ }
+}
diff --git a/pixellab_library/pl_x_dragturtle.json b/pixellab_library/pl_x_dragturtle.json
new file mode 100644
index 0000000..6deb892
--- /dev/null
+++ b/pixellab_library/pl_x_dragturtle.json
@@ -0,0 +1,33 @@
+{
+ "name": "pl_x_dragturtle",
+ "plan": "quadruped",
+ "types": {
+ "dragon": 5,
+ "water": 3
+ },
+ "desc": "Turtle with a dragon head and scaly ridged shell",
+ "prompt": "turtle with a dragon-like head and snout, scaly ridged shell, four sturdy clawed legs, crimson shell rim",
+ "size": 44,
+ "seed": 1314,
+ "variants": [
+ {
+ "name": "pl_x_dragturtle_b",
+ "edit": "make the shell taller and rounder with crimson hexagon plates, no spikes, same pose",
+ "seed": 2,
+ "desc": "Spiky-shelled dragon turtle",
+ "skip": true
+ },
+ {
+ "name": "pl_x_dragturtle_c",
+ "edit": "make it flatter with a smooth wide shell and a longer snout and crimson spots",
+ "seed": 1,
+ "desc": "Flat dragon turtle"
+ },
+ {
+ "name": "pl_x_dragturtle_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy dragturtle"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_hedgehog.json b/pixellab_library/pl_x_hedgehog.json
new file mode 100644
index 0000000..e18fa53
--- /dev/null
+++ b/pixellab_library/pl_x_hedgehog.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_x_hedgehog",
+ "plan": "quadruped",
+ "types": {
+ "electric": 5,
+ "normal": 3
+ },
+ "desc": "Hedgehog with a static-frizzed spiky coat and bright round eyes",
+ "prompt": "round hedgehog on four tiny legs, spiky coat frizzed with static electricity, pointed snout, round eyes, crimson spark marks on cheeks",
+ "size": 44,
+ "seed": 1304,
+ "variants": [
+ {
+ "name": "pl_x_hedgehog_b",
+ "edit": "make it rounder like a curled spiky ball with only its face showing and crimson tipped spines",
+ "seed": 1,
+ "desc": "Spiky ball hedgehog"
+ },
+ {
+ "name": "pl_x_hedgehog_c",
+ "edit": "make it slimmer with a longer pointed snout, shorter sleek spines and crimson zigzag stripes, same round hedgehog body and same pose",
+ "seed": 2,
+ "desc": "Sleek zigzag hedgehog"
+ },
+ {
+ "name": "pl_x_hedgehog_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy hedgehog"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_ibex.json b/pixellab_library/pl_x_ibex.json
new file mode 100644
index 0000000..600bba9
--- /dev/null
+++ b/pixellab_library/pl_x_ibex.json
@@ -0,0 +1,36 @@
+{
+ "name": "pl_x_ibex",
+ "plan": "quadruped",
+ "types": {
+ "fighting": 5,
+ "rock": 3
+ },
+ "desc": "Sturdy mountain goat kid with baked curled horns and a shaggy beard",
+ "prompt": "sturdy hornless mountain goat kid standing on four legs, smooth round head with no horns at all, long shaggy beard, thick neck, crimson hoof bands",
+ "size": 44,
+ "seed": 1356,
+ "variants": [
+ {
+ "name": "pl_x_ibex_b",
+ "edit": "make it bulkier with a thick muscular chest and crimson stripes on its shoulders",
+ "seed": 1,
+ "desc": "Burly goat"
+ },
+ {
+ "name": "pl_x_ibex_c",
+ "edit": "make it shaggier with long flowing fur and a bigger beard and crimson patches",
+ "seed": 1,
+ "desc": "Shaggy goat"
+ },
+ {
+ "name": "pl_x_ibex_d",
+ "edit": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose",
+ "seed": 2,
+ "desc": "Extra-fluffy ibex"
+ }
+ ],
+ "slots": [
+ "back",
+ "tail"
+ ]
+}
diff --git a/pixellab_library/pl_x_lionfish.json b/pixellab_library/pl_x_lionfish.json
new file mode 100644
index 0000000..2fc0e47
--- /dev/null
+++ b/pixellab_library/pl_x_lionfish.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_x_lionfish",
+ "plan": "aquatic",
+ "types": {
+ "poison": 5,
+ "water": 3
+ },
+ "desc": "Lionfish with a fan of striped venomous fin rays",
+ "prompt": "lionfish creature hovering upright, fan of striped spiny fin rays around its body, grumpy face, crimson stripes",
+ "size": 44,
+ "seed": 1307,
+ "variants": [
+ {
+ "name": "pl_x_lionfish_b",
+ "edit": "make it rounder and puffier with shorter fin rays and crimson spots",
+ "seed": 1,
+ "desc": "Puffy spotted lionfish"
+ },
+ {
+ "name": "pl_x_lionfish_c",
+ "edit": "make it slimmer with longer feathery fin rays and bolder crimson bands, same upright fish body and same pose",
+ "seed": 2,
+ "desc": "Slim feathery lionfish"
+ },
+ {
+ "name": "pl_x_lionfish_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded lionfish"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_loris.json b/pixellab_library/pl_x_loris.json
new file mode 100644
index 0000000..1501e80
--- /dev/null
+++ b/pixellab_library/pl_x_loris.json
@@ -0,0 +1,96 @@
+{
+ "name": "pl_x_loris",
+ "plan": "biped",
+ "types": {
+ "psychic": 5,
+ "normal": 3,
+ "ghost": 2
+ },
+ "desc": "Slow loris with enormous round staring eyes and dark eye rings",
+ "prompt": "slow loris standing upright, enormous round staring eyes with dark rings, small round ears, fluffy fur, hugging its arms, crimson nose",
+ "size": 44,
+ "seed": 1310,
+ "variants": [
+ {
+ "name": "pl_x_loris_b",
+ "edit": "make it chubbier with thicker fluffy fur and crimson stripe down its forehead",
+ "seed": 1,
+ "desc": "Fluffy chubby loris"
+ },
+ {
+ "name": "pl_x_loris_c",
+ "edit": "make it lankier with thin long limbs and bigger eye rings and crimson spots",
+ "seed": 1,
+ "desc": "Lanky big-eyed loris"
+ },
+ {
+ "name": "pl_x_loris_d",
+ "edit": "make it muscular and athletic with defined arms and legs, crimson bands on its limbs",
+ "seed": 1,
+ "desc": "Muscular loris"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_antennae_pompom",
+ "edit": "add a pair of short thin antennae on top of its head, each ending in a small fluffy gold pom-pom",
+ "seed": 1,
+ "types": {
+ "bug": 4,
+ "psychic": 3,
+ "electric": 2
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "fluffy"
+ ],
+ "excludes": [],
+ "motif": "bug",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_wings_fairy",
+ "edit": "add a pair of small translucent gold fairy wings sticking out from behind its shoulders on both sides of its body",
+ "seed": 2,
+ "types": {
+ "psychic": 5,
+ "bug": 3,
+ "flying": 3
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "winged"
+ ],
+ "excludes": [],
+ "motif": "sky",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_braid",
+ "edit": "add a long braided hair tail with a gold tie at the end, starting at its body edge and curling up on the right side",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "normal": 3,
+ "psychic": 2
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "tailed"
+ ],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_moai.json b/pixellab_library/pl_x_moai.json
new file mode 100644
index 0000000..efdd20a
--- /dev/null
+++ b/pixellab_library/pl_x_moai.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_x_moai",
+ "plan": "biped",
+ "types": {
+ "rock": 5,
+ "psychic": 3
+ },
+ "desc": "Moai stone head walking on two stubby legs",
+ "prompt": "moai stone statue head with long face, heavy brow and long nose, walking on two stubby legs, stone texture, crimson topknot band",
+ "size": 44,
+ "seed": 1312,
+ "variants": [
+ {
+ "name": "pl_x_moai_b",
+ "edit": "make it shorter and wider with a squat blocky face and crimson carved patterns",
+ "seed": 1,
+ "desc": "Squat moai"
+ },
+ {
+ "name": "pl_x_moai_c",
+ "edit": "make it taller and narrower with mossy cracks and crimson eyes",
+ "seed": 1,
+ "desc": "Tall cracked moai"
+ },
+ {
+ "name": "pl_x_moai_d",
+ "edit": "make it twice as wide and squat like a short fat moai block on stubby legs, keep its long stone moai face and teal color",
+ "seed": 11,
+ "desc": "Crystal-studded moai"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_mummy.json b/pixellab_library/pl_x_mummy.json
new file mode 100644
index 0000000..caf82b9
--- /dev/null
+++ b/pixellab_library/pl_x_mummy.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_x_mummy",
+ "plan": "biped",
+ "types": {
+ "ghost": 5,
+ "ground": 3
+ },
+ "desc": "Small mummy creature wrapped in loose bandages with one eye showing",
+ "prompt": "small mummy creature wrapped in loose bandages, one glowing eye peeking out, stubby arms reaching forward, trailing bandage ends, crimson wrap band",
+ "size": 44,
+ "seed": 1313,
+ "variants": [
+ {
+ "name": "pl_x_mummy_b",
+ "edit": "make it chubbier with thicker bandages and two eyes showing and crimson patches",
+ "seed": 1,
+ "desc": "Chubby mummy"
+ },
+ {
+ "name": "pl_x_mummy_c",
+ "edit": "make it taller and thinner with tattered bandages and crimson stripes",
+ "seed": 1,
+ "desc": "Tattered mummy"
+ },
+ {
+ "name": "pl_x_mummy_d",
+ "edit": "make it twice as round and fat like a ball wrapped in thick bandages, keep its one glowing eye, bandages and teal color",
+ "seed": 11,
+ "desc": "Squat mummy"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_potato.json b/pixellab_library/pl_x_potato.json
new file mode 100644
index 0000000..8355983
--- /dev/null
+++ b/pixellab_library/pl_x_potato.json
@@ -0,0 +1,71 @@
+{
+ "name": "pl_x_potato",
+ "plan": "blob",
+ "types": {
+ "ground": 5,
+ "grass": 3
+ },
+ "desc": "Lumpy potato creature with eye sprouts and stubby feet",
+ "prompt": "lumpy potato creature with tiny sprouts on top, sleepy face, stubby feet, bumpy brown-spotted skin, crimson cheeks",
+ "size": 44,
+ "seed": 1308,
+ "variants": [
+ {
+ "name": "pl_x_potato_b",
+ "edit": "make it longer and thinner like a fingerling potato with crimson spots",
+ "seed": 1,
+ "desc": "Long fingerling"
+ },
+ {
+ "name": "pl_x_potato_c",
+ "edit": "make it rounder and bigger with deep wrinkles and a crimson patch",
+ "seed": 1,
+ "desc": "Big round spud"
+ },
+ {
+ "name": "pl_x_potato_d",
+ "edit": "cover its body in thick overlapping armor plates with crimson plate edges, same pose",
+ "seed": 1,
+ "desc": "Armored potato"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_hair_buns",
+ "edit": "add two small round gold hair buns on top of its head, one on each side",
+ "seed": 1,
+ "types": {
+ "normal": 3,
+ "psychic": 3,
+ "fighting": 2
+ },
+ "other": 0.4,
+ "plans": "all",
+ "requires": [],
+ "tags": [],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_paintbrush",
+ "edit": "add a short thin tail ending in a gold paintbrush tip, starting at its body edge and curling up on the right side",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 3
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "tailed"
+ ],
+ "excludes": [],
+ "motif": "plant",
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_puffin.json b/pixellab_library/pl_x_puffin.json
new file mode 100644
index 0000000..0e9ebfd
--- /dev/null
+++ b/pixellab_library/pl_x_puffin.json
@@ -0,0 +1,35 @@
+{
+ "name": "pl_x_puffin",
+ "plan": "avian",
+ "types": {
+ "ice": 5,
+ "water": 3,
+ "flying": 2
+ },
+ "desc": "Stout puffin with a big striped triangular beak",
+ "prompt": "stout puffin bird standing upright, big triangular crimson striped beak, white face, chunky body, orange feet, folded wings",
+ "size": 44,
+ "seed": 1305,
+ "variants": [
+ {
+ "name": "pl_x_puffin_b",
+ "edit": "make it chubbier and fluffier like a downy puffin chick with a smaller beak",
+ "seed": 1,
+ "desc": "Downy puffin chick"
+ },
+ {
+ "name": "pl_x_puffin_c",
+ "edit": "make it slightly taller and slimmer with crimson eye stripes, keep the same short triangular beak and same pose",
+ "seed": 2,
+ "desc": "Sleek tall puffin",
+ "skip": true
+ },
+ {
+ "name": "pl_x_puffin_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 2,
+ "desc": "Chibi young puffin",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_x_toucan.json b/pixellab_library/pl_x_toucan.json
new file mode 100644
index 0000000..f8aa7db
--- /dev/null
+++ b/pixellab_library/pl_x_toucan.json
@@ -0,0 +1,53 @@
+{
+ "name": "pl_x_toucan",
+ "plan": "avian",
+ "types": {
+ "flying": 5,
+ "grass": 3
+ },
+ "desc": "Toucan with an enormous banded bill",
+ "prompt": "toucan bird perched upright, enormous banded beak, round body, folded wings, crimson band on the beak",
+ "size": 44,
+ "seed": 1309,
+ "variants": [
+ {
+ "name": "pl_x_toucan_b",
+ "edit": "make it chubbier and rounder with a shorter thicker beak and crimson chest",
+ "seed": 1,
+ "desc": "Chubby toucan"
+ },
+ {
+ "name": "pl_x_toucan_c",
+ "edit": "make it slimmer with a longer curved beak and crimson spotted chest",
+ "seed": 1,
+ "desc": "Slim curved toucan"
+ },
+ {
+ "name": "pl_x_toucan_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 2,
+ "desc": "Armored toucan"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_tiara_gem",
+ "edit": "add a small gold tiara with a single gem on top of its head",
+ "seed": 1,
+ "types": {
+ "psychic": 4,
+ "normal": 3,
+ "rock": 2
+ },
+ "other": 0.4,
+ "plans": "all",
+ "requires": [],
+ "tags": [],
+ "excludes": [],
+ "motif": "crystal",
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_ammonite.json b/pixellab_library/pl_y_ammonite.json
new file mode 100644
index 0000000..bb9a725
--- /dev/null
+++ b/pixellab_library/pl_y_ammonite.json
@@ -0,0 +1,33 @@
+{
+ "name": "pl_y_ammonite",
+ "plan": "aquatic",
+ "types": {
+ "rock": 5,
+ "water": 3
+ },
+ "desc": "Fossil ammonite creature with a spiral stone shell and tentacles",
+ "prompt": "ammonite creature with a coiled ridged spiral stone shell, face peeking out with a few short tentacles, stony texture, crimson ridges",
+ "size": 44,
+ "seed": 1512,
+ "variants": [
+ {
+ "name": "pl_y_ammonite_b",
+ "edit": "make the shell bigger and spikier with crimson knobs",
+ "seed": 1,
+ "desc": "Knobby ammonite"
+ },
+ {
+ "name": "pl_y_ammonite_c",
+ "edit": "make the spiral shell much flatter and wider with smooth glossy stone and bold crimson bands, face larger, same pose",
+ "seed": 2,
+ "desc": "Polished ammonite",
+ "skip": true
+ },
+ {
+ "name": "pl_y_ammonite_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded ammonite"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_anemone.json b/pixellab_library/pl_y_anemone.json
new file mode 100644
index 0000000..4889b69
--- /dev/null
+++ b/pixellab_library/pl_y_anemone.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_anemone",
+ "plan": "blob",
+ "types": {
+ "water": 5,
+ "poison": 3
+ },
+ "desc": "Sea anemone blob with a crown of stubby tentacles",
+ "prompt": "round sea anemone creature, squat column body with a crown of short stubby tentacles on top, cute face on its body, crimson tentacle tips",
+ "size": 44,
+ "seed": 1502,
+ "variants": [
+ {
+ "name": "pl_y_anemone_b",
+ "edit": "make it taller with a longer column body and crimson stripes",
+ "seed": 1,
+ "desc": "Tall striped anemone"
+ },
+ {
+ "name": "pl_y_anemone_c",
+ "edit": "make it flatter and wider with many more tiny tentacles and crimson spots",
+ "seed": 1,
+ "desc": "Flat spotted anemone"
+ },
+ {
+ "name": "pl_y_anemone_d",
+ "edit": "make it muscular and athletic with defined arms and legs, crimson bands on its limbs",
+ "seed": 1,
+ "desc": "Muscular anemone"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_broccoli.json b/pixellab_library/pl_y_broccoli.json
new file mode 100644
index 0000000..4210fa7
--- /dev/null
+++ b/pixellab_library/pl_y_broccoli.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_broccoli",
+ "plan": "biped",
+ "types": {
+ "grass": 5,
+ "normal": 3
+ },
+ "desc": "Broccoli floret creature with a bumpy crown and stalk legs",
+ "prompt": "broccoli floret creature, big bumpy floret crown head with a face, thick stalk body splitting into two stubby legs, tiny arms",
+ "size": 44,
+ "seed": 1503,
+ "variants": [
+ {
+ "name": "pl_y_broccoli_b",
+ "edit": "make it rounder like a cauliflower with a lumpy crown and crimson cheeks",
+ "seed": 1,
+ "desc": "Cauliflower"
+ },
+ {
+ "name": "pl_y_broccoli_c",
+ "edit": "make it a tall thin broccoli with a small floret crown on a long thick stalk body, crimson leaf marks, standing on two stubby legs",
+ "seed": 2,
+ "desc": "Tall stalky broccoli"
+ },
+ {
+ "name": "pl_y_broccoli_d",
+ "edit": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush",
+ "seed": 1,
+ "desc": "Baby broccoli"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_candle.json b/pixellab_library/pl_y_candle.json
new file mode 100644
index 0000000..74c5eb4
--- /dev/null
+++ b/pixellab_library/pl_y_candle.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_candle",
+ "plan": "blob",
+ "types": {
+ "ghost": 5,
+ "fire": 3
+ },
+ "desc": "Melting candle ghost with wax drips and a sleepy face",
+ "prompt": "melting candle creature, white wax body with drips, unlit black wick on top, sleepy ghostly face, wax puddle feet",
+ "size": 44,
+ "seed": 1513,
+ "variants": [
+ {
+ "name": "pl_y_candle_b",
+ "edit": "make it shorter and fatter with thick drips and crimson wax streaks",
+ "seed": 1,
+ "desc": "Stubby candle"
+ },
+ {
+ "name": "pl_y_candle_c",
+ "edit": "make it taller and thinner with a crooked lean and crimson drips",
+ "seed": 1,
+ "desc": "Tall crooked candle"
+ },
+ {
+ "name": "pl_y_candle_d",
+ "edit": "make it very tall and thin like a long taper candle with wax drips, keep its wick, sleepy face and pale wax color",
+ "seed": 11,
+ "desc": "Extra-fluffy candle"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_dragonfruit.json b/pixellab_library/pl_y_dragonfruit.json
new file mode 100644
index 0000000..8d1d509
--- /dev/null
+++ b/pixellab_library/pl_y_dragonfruit.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_dragonfruit",
+ "plan": "blob",
+ "types": {
+ "dragon": 5,
+ "grass": 3
+ },
+ "desc": "Dragon fruit creature with scaly petal flaps",
+ "prompt": "round dragon fruit creature, oval body covered in pointed scale-like petal flaps, face peeking from the front, stubby feet, crimson flap tips",
+ "size": 44,
+ "seed": 1515,
+ "variants": [
+ {
+ "name": "pl_y_dragonfruit_b",
+ "edit": "make it taller and oval with fewer bigger flaps",
+ "seed": 1,
+ "desc": "Tall dragon fruit"
+ },
+ {
+ "name": "pl_y_dragonfruit_c",
+ "edit": "make it cut open showing a speckled inside with crimson seeds",
+ "seed": 1,
+ "desc": "Split dragon fruit"
+ },
+ {
+ "name": "pl_y_dragonfruit_d",
+ "edit": "cover its body in thick overlapping armor plates with crimson plate edges, same pose",
+ "seed": 1,
+ "desc": "Armored dragonfruit"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_dungbeetle.json b/pixellab_library/pl_y_dungbeetle.json
new file mode 100644
index 0000000..26a22ea
--- /dev/null
+++ b/pixellab_library/pl_y_dungbeetle.json
@@ -0,0 +1,55 @@
+{
+ "name": "pl_y_dungbeetle",
+ "plan": "insectoid",
+ "types": {
+ "ground": 5,
+ "bug": 3
+ },
+ "desc": "Stout dung beetle with a shovel-shaped head and strong legs",
+ "prompt": "stout dung beetle creature standing on six strong legs, shovel-shaped flat head, round smooth shell, determined face, crimson shell edge",
+ "size": 44,
+ "seed": 1508,
+ "variants": [
+ {
+ "name": "pl_y_dungbeetle_b",
+ "edit": "make it bulkier with a ridged shell and crimson spots",
+ "seed": 1,
+ "desc": "Ridged beetle"
+ },
+ {
+ "name": "pl_y_dungbeetle_c",
+ "edit": "make it rounder and fuzzier with crimson stripes",
+ "seed": 1,
+ "desc": "Fuzzy round beetle"
+ },
+ {
+ "name": "pl_y_dungbeetle_d",
+ "edit": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose",
+ "seed": 1,
+ "desc": "Extra-fluffy dungbeetle"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_shell_hex",
+ "edit": "add a small round gold turtle shell with hexagon plates covering its upper back, behind its body",
+ "seed": 2,
+ "types": {
+ "rock": 4,
+ "bug": 3,
+ "water": 2
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "shelled",
+ "armored"
+ ],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_frilldrake.json b/pixellab_library/pl_y_frilldrake.json
new file mode 100644
index 0000000..ffab7ec
--- /dev/null
+++ b/pixellab_library/pl_y_frilldrake.json
@@ -0,0 +1,74 @@
+{
+ "name": "pl_y_frilldrake",
+ "plan": "quadruped",
+ "types": {
+ "dragon": 5,
+ "ground": 3
+ },
+ "desc": "Frilled-neck lizard dragon with a folded frill collar",
+ "prompt": "frilled-neck dragon lizard on four legs, folded frill collar around its neck, wide jaw, scaly body, crimson frill edges",
+ "size": 44,
+ "seed": 1514,
+ "variants": [
+ {
+ "name": "pl_y_frilldrake_b",
+ "edit": "make it bulkier with armored plates and crimson stripes",
+ "seed": 1,
+ "desc": "Armored frill drake"
+ },
+ {
+ "name": "pl_y_frilldrake_c",
+ "edit": "make it slimmer with a wider open frill and crimson spots",
+ "seed": 1,
+ "desc": "Open-frill drake"
+ },
+ {
+ "name": "pl_y_frilldrake_d",
+ "edit": "cover its body in a bold crimson checker and diamond pattern, same shape and pose",
+ "seed": 1,
+ "desc": "Patterned frilldrake"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "back",
+ "name": "pl_lilypad_back",
+ "edit": "add a round gold lily pad with a tiny flower resting on its upper back",
+ "seed": 1,
+ "types": {
+ "water": 5,
+ "grass": 5
+ },
+ "other": 0.2,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "leafy"
+ ],
+ "excludes": [],
+ "motif": "water",
+ "palette": "type",
+ "skip": true
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_sunflower",
+ "edit": "add a thick green stem tail growing from the right side of its body, curving up and ending in a small gold sunflower",
+ "seed": 2,
+ "types": {
+ "grass": 6,
+ "fire": 2
+ },
+ "other": 0.2,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "tailed",
+ "leafy"
+ ],
+ "excludes": [],
+ "motif": "plant",
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_gull.json b/pixellab_library/pl_y_gull.json
new file mode 100644
index 0000000..b17fbf7
--- /dev/null
+++ b/pixellab_library/pl_y_gull.json
@@ -0,0 +1,33 @@
+{
+ "name": "pl_y_gull",
+ "plan": "avian",
+ "types": {
+ "flying": 5,
+ "water": 3
+ },
+ "desc": "Scruffy seagull with a big hooked beak and a cheeky look",
+ "prompt": "scruffy seagull standing on webbed feet, big hooked beak with crimson spot, puffed chest, folded wings, cheeky look",
+ "size": 44,
+ "seed": 1509,
+ "variants": [
+ {
+ "name": "pl_y_gull_b",
+ "edit": "make it chubbier and rounder like a fluffy gull chick with crimson spots",
+ "seed": 1,
+ "desc": "Fluffy gull chick"
+ },
+ {
+ "name": "pl_y_gull_c",
+ "edit": "make it much leaner and lankier with long thin legs, a narrow head and crimson wing bands, same pose",
+ "seed": 2,
+ "desc": "Lean gull"
+ },
+ {
+ "name": "pl_y_gull_d",
+ "edit": "make it twice as round and fat like a puffball gull with very short legs, keep its hooked beak, white head and teal wings",
+ "seed": 11,
+ "desc": "Squat gull",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_icecube.json b/pixellab_library/pl_y_icecube.json
new file mode 100644
index 0000000..ba07082
--- /dev/null
+++ b/pixellab_library/pl_y_icecube.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_icecube",
+ "plan": "blob",
+ "types": {
+ "ice": 5,
+ "water": 3
+ },
+ "desc": "Ice cube creature with frosty edges and a shy face",
+ "prompt": "translucent ice cube creature with frosty rounded edges, shy face inside, tiny stub feet, small air bubbles, crimson cheeks",
+ "size": 44,
+ "seed": 1505,
+ "variants": [
+ {
+ "name": "pl_y_icecube_b",
+ "edit": "make it taller like a stacked pair of ice cubes with crimson bubbles",
+ "seed": 1,
+ "desc": "Stacked ice cubes"
+ },
+ {
+ "name": "pl_y_icecube_c",
+ "edit": "make it much rounder and lumpier like a snowball-shaped chunk of ice with frosty crystals on top and crimson cheeks",
+ "seed": 2,
+ "desc": "Melting ice cube"
+ },
+ {
+ "name": "pl_y_icecube_d",
+ "edit": "make it very tall and narrow like an icicle pillar block, keep its shy face and translucent ice color",
+ "seed": 11,
+ "desc": "Squat icecube"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_ladybug.json b/pixellab_library/pl_y_ladybug.json
new file mode 100644
index 0000000..ff0f5ae
--- /dev/null
+++ b/pixellab_library/pl_y_ladybug.json
@@ -0,0 +1,55 @@
+{
+ "name": "pl_y_ladybug",
+ "plan": "insectoid",
+ "types": {
+ "bug": 5,
+ "normal": 3
+ },
+ "desc": "Chubby round ladybird beetle with a big polka-dot dome",
+ "prompt": "chubby round ladybird beetle creature with a big polka-dot dome shell, small round head with cute face, short stubby legs",
+ "size": 44,
+ "seed": 1511,
+ "variants": [
+ {
+ "name": "pl_y_ladybug_b",
+ "edit": "make it taller with an oval shell and crimson stripes instead of dots",
+ "seed": 1,
+ "desc": "Striped ladybird"
+ },
+ {
+ "name": "pl_y_ladybug_c",
+ "edit": "make it flatter and wider with many tiny crimson dots",
+ "seed": 1,
+ "desc": "Many-dot ladybird"
+ },
+ {
+ "name": "pl_y_ladybug_d",
+ "edit": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush",
+ "seed": 1,
+ "desc": "Baby ladybug"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_horns_ringed",
+ "edit": "add a pair of short ringed gold goat horns on top of its head",
+ "seed": 1,
+ "types": {
+ "fighting": 4,
+ "ground": 3,
+ "rock": 3
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "horned"
+ ],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_lotus.json b/pixellab_library/pl_y_lotus.json
new file mode 100644
index 0000000..686603f
--- /dev/null
+++ b/pixellab_library/pl_y_lotus.json
@@ -0,0 +1,33 @@
+{
+ "name": "pl_y_lotus",
+ "plan": "serpentine",
+ "types": {
+ "psychic": 5,
+ "grass": 3
+ },
+ "desc": "Lotus-bud spirit with a long swaying stem body",
+ "prompt": "lotus flower bud spirit with a calm face, long curving stem body rising from the ground in an S curve, small leaf pads, crimson petal tips",
+ "size": 44,
+ "seed": 1510,
+ "variants": [
+ {
+ "name": "pl_y_lotus_b",
+ "edit": "make the bud fuller and rounder with more petals and crimson stripes",
+ "seed": 1,
+ "desc": "Full bloom lotus"
+ },
+ {
+ "name": "pl_y_lotus_c",
+ "edit": "make the stem thicker and shorter with crimson rings",
+ "seed": 1,
+ "desc": "Stubby lotus"
+ },
+ {
+ "name": "pl_y_lotus_d",
+ "edit": "make the lotus bud huge and the stem very short and thick, keep its calm face, petals and teal color",
+ "seed": 11,
+ "desc": "Squat lotus",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_match.json b/pixellab_library/pl_y_match.json
new file mode 100644
index 0000000..173fb2a
--- /dev/null
+++ b/pixellab_library/pl_y_match.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_match",
+ "plan": "biped",
+ "types": {
+ "fire": 5,
+ "normal": 3
+ },
+ "desc": "Matchstick creature with a big round crimson match head",
+ "prompt": "tall thin matchstick creature standing on two little legs, big round crimson match head with a face, wooden stick body, tiny arms",
+ "size": 44,
+ "seed": 1501,
+ "variants": [
+ {
+ "name": "pl_y_match_b",
+ "edit": "make it shorter and chubbier with a stubby stick body and bigger head",
+ "seed": 1,
+ "desc": "Stubby match"
+ },
+ {
+ "name": "pl_y_match_c",
+ "edit": "make the match head charred and cracked with crimson glowing cracks",
+ "seed": 1,
+ "desc": "Burnt match"
+ },
+ {
+ "name": "pl_y_match_d",
+ "edit": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks",
+ "seed": 2,
+ "desc": "Chibi young match"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_mongoose.json b/pixellab_library/pl_y_mongoose.json
new file mode 100644
index 0000000..8c0d265
--- /dev/null
+++ b/pixellab_library/pl_y_mongoose.json
@@ -0,0 +1,72 @@
+{
+ "name": "pl_y_mongoose",
+ "plan": "quadruped",
+ "types": {
+ "fighting": 5,
+ "normal": 3
+ },
+ "desc": "Alert mongoose standing tall on its hind legs in a guard pose",
+ "prompt": "alert mongoose standing up on hind legs with fists raised in a guard pose, slim body, small round ears, pointed snout, crimson bands on arms",
+ "size": 44,
+ "seed": 1506,
+ "variants": [
+ {
+ "name": "pl_y_mongoose_b",
+ "edit": "make it stockier with a broader chest and crimson stripes",
+ "seed": 1,
+ "desc": "Stocky mongoose"
+ },
+ {
+ "name": "pl_y_mongoose_c",
+ "edit": "make it fluffier with puffed-up fur and crimson spots",
+ "seed": 1,
+ "desc": "Puffed mongoose"
+ },
+ {
+ "name": "pl_y_mongoose_d",
+ "edit": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose",
+ "seed": 2,
+ "desc": "Armored mongoose"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_beanie",
+ "edit": "add a small knitted gold beanie hat with a pom-pom on top of its head",
+ "seed": 1,
+ "types": {
+ "ice": 4,
+ "normal": 3
+ },
+ "other": 0.4,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "fluffy"
+ ],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_quiver",
+ "edit": "add a small gold quiver with a few arrows sticking up behind its right shoulder",
+ "seed": 2,
+ "types": {
+ "fighting": 4,
+ "flying": 3,
+ "normal": 2
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type",
+ "skip": true
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_opossum.json b/pixellab_library/pl_y_opossum.json
new file mode 100644
index 0000000..bbe3416
--- /dev/null
+++ b/pixellab_library/pl_y_opossum.json
@@ -0,0 +1,99 @@
+{
+ "name": "pl_y_opossum",
+ "plan": "quadruped",
+ "types": {
+ "normal": 5,
+ "ghost": 3
+ },
+ "desc": "Scruffy opossum with a pale pointed face and round black ears",
+ "prompt": "scruffy opossum on four short legs, pale pointed face, round dark ears, pink nose, messy grey-teal fur, sly grin",
+ "size": 44,
+ "seed": 1500,
+ "variants": [
+ {
+ "name": "pl_y_opossum_b",
+ "edit": "make it chubbier with fluffier fur and crimson stripes on its back",
+ "seed": 1,
+ "desc": "Fluffy fat opossum"
+ },
+ {
+ "name": "pl_y_opossum_c",
+ "edit": "make it skinnier and lankier with a longer snout and crimson eye mask",
+ "seed": 1,
+ "desc": "Lanky masked opossum"
+ },
+ {
+ "name": "pl_y_opossum_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 2,
+ "desc": "Crystal-studded opossum"
+ }
+ ],
+ "parts": [
+ {
+ "slot": "head_top",
+ "name": "pl_sprouts_twin",
+ "edit": "add two small gold leaf sprouts growing side by side on top of its head",
+ "seed": 1,
+ "types": {
+ "grass": 6,
+ "bug": 2
+ },
+ "other": 0.2,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "leafy"
+ ],
+ "excludes": [],
+ "motif": "plant",
+ "palette": "type"
+ },
+ {
+ "slot": "back",
+ "name": "pl_snow_pile",
+ "edit": "add a small mound of pale icy blue snow resting on its shoulders and upper back, not on its head",
+ "seed": 2,
+ "types": {
+ "ice": 6
+ },
+ "other": 0,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "crystal"
+ ],
+ "excludes": [],
+ "motif": "crystal",
+ "palette": "type",
+ "fixed": "ice",
+ "fixed_from": [
+ "main",
+ "accent",
+ "type",
+ "white"
+ ],
+ "skip": true
+ },
+ {
+ "slot": "tail",
+ "name": "pl_tail_candy_cane",
+ "edit": "add a short striped candy cane shaped tail with gold and crimson stripes, starting at its body edge and hooking up on the right side",
+ "seed": 1,
+ "types": {
+ "normal": 4,
+ "psychic": 2,
+ "ice": 2
+ },
+ "other": 0.3,
+ "plans": "all",
+ "requires": [],
+ "tags": [
+ "tailed"
+ ],
+ "excludes": [],
+ "motif": "armor",
+ "palette": "type"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_toadstool.json b/pixellab_library/pl_y_toadstool.json
new file mode 100644
index 0000000..110475a
--- /dev/null
+++ b/pixellab_library/pl_y_toadstool.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_toadstool",
+ "plan": "blob",
+ "types": {
+ "poison": 5,
+ "grass": 3
+ },
+ "desc": "Round toadstool mushroom creature with a spotted cap",
+ "prompt": "squat toadstool mushroom creature with a wide flat lumpy teal cap covered in warts and crimson freckles, thick short stem body, grumpy droopy face, stubby feet",
+ "size": 44,
+ "seed": 1557,
+ "variants": [
+ {
+ "name": "pl_y_toadstool_b",
+ "edit": "make the cap flatter and wider like a parasol with crimson rings",
+ "seed": 1,
+ "desc": "Parasol toadstool"
+ },
+ {
+ "name": "pl_y_toadstool_c",
+ "edit": "make the cap taller and bell-shaped with drippy edges and crimson spots",
+ "seed": 1,
+ "desc": "Bell cap toadstool"
+ },
+ {
+ "name": "pl_y_toadstool_d",
+ "edit": "give it small crystal growths along its back and crimson crystal tips, same pose",
+ "seed": 1,
+ "desc": "Crystal-studded toadstool"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_y_toaster.json b/pixellab_library/pl_y_toaster.json
new file mode 100644
index 0000000..1986b29
--- /dev/null
+++ b/pixellab_library/pl_y_toaster.json
@@ -0,0 +1,32 @@
+{
+ "name": "pl_y_toaster",
+ "plan": "biped",
+ "types": {
+ "electric": 5,
+ "fire": 3
+ },
+ "desc": "Toaster appliance creature with two bread slots on top",
+ "prompt": "boxy toaster appliance creature with two bread slots on top, face on the front, little lever arm, stubby legs, power cord tail stub",
+ "size": 44,
+ "seed": 1504,
+ "variants": [
+ {
+ "name": "pl_y_toaster_b",
+ "edit": "make it rounder and retro with chrome curves and crimson trim",
+ "seed": 1,
+ "desc": "Retro round toaster"
+ },
+ {
+ "name": "pl_y_toaster_c",
+ "edit": "make it much taller and narrower like a four-slot tower toaster with a big round dial on the front and crimson stripes",
+ "seed": 2,
+ "desc": "Tall dial toaster"
+ },
+ {
+ "name": "pl_y_toaster_d",
+ "edit": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose",
+ "seed": 2,
+ "desc": "Crystal-studded toaster"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_yeti.json b/pixellab_library/pl_yeti.json
new file mode 100644
index 0000000..296b82e
--- /dev/null
+++ b/pixellab_library/pl_yeti.json
@@ -0,0 +1,37 @@
+{
+ "name": "pl_yeti",
+ "plan": "biped",
+ "head": [
+ "mammal_head"
+ ],
+ "types": {
+ "ice": 5,
+ "fighting": 3,
+ "ground": 2
+ },
+ "desc": "Squat shaggy yeti with long knuckle-dragging arms and a small face in its fur",
+ "prompt": "squat shaggy yeti creature standing hunched, wide barrel body covered in long shaggy fur, very long thick arms reaching down to the ground, big flat bare feet, small bare crimson face peeking out from the fur with tiny eyes and a wide grin, no horns, nothing on its head, no tail",
+ "size": 44,
+ "seed": 2201,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_yeti_b",
+ "edit": "make it taller and leaner with shorter arms, a bigger bare face, and crimson stripes in its fur",
+ "seed": 1,
+ "desc": "Tall striped yeti"
+ },
+ {
+ "name": "pl_yeti_c",
+ "edit": "make it extremely round and fluffy like a ball of shaggy fur with stubby arms and crimson fur tufts on its cheeks",
+ "seed": 1,
+ "desc": "Round fluffy yeti"
+ },
+ {
+ "name": "pl_yeti_d",
+ "edit": "make it extra fluffy with a huge shaggy mane of fur and crimson stripes on its arms",
+ "seed": 1,
+ "desc": "extra fluffy with a huge shaggy mane of fur and crim"
+ }
+ ]
+}
diff --git a/pixellab_library/pl_zenfrog.json b/pixellab_library/pl_zenfrog.json
new file mode 100644
index 0000000..d4c795d
--- /dev/null
+++ b/pixellab_library/pl_zenfrog.json
@@ -0,0 +1,38 @@
+{
+ "name": "pl_zenfrog",
+ "plan": "biped",
+ "head": [
+ "reptile_head"
+ ],
+ "types": {
+ "psychic": 5,
+ "water": 3,
+ "grass": 2
+ },
+ "desc": "Frog sitting cross-legged in meditation, eyes closed, palms up, crimson bead necklace",
+ "prompt": "plump frog creature sitting cross-legged in meditation, eyes peacefully closed with a serene smile, webbed hands resting palms up on its knees, wide flat head, a small crimson round dot on its forehead, a crimson prayer bead necklace, pale cream belly, no tail",
+ "size": 44,
+ "seed": 1213,
+ "direction": "south",
+ "variants": [
+ {
+ "name": "pl_zenfrog_b",
+ "edit": "make it much fatter and wartier with crimson spots all over its back and a big puffed throat",
+ "seed": 1,
+ "desc": "Fat warty zen frog"
+ },
+ {
+ "name": "pl_zenfrog_c",
+ "edit": "make it slimmer with longer thin limbs while still sitting cross-legged in meditation, a narrower pointed snout and crimson stripes down its arms",
+ "seed": 7,
+ "desc": "Slim striped zen frog"
+ },
+ {
+ "name": "pl_zenfrog_d",
+ "edit": "make it twice as round and squat like a fat ball, keep its cross-legged meditation pose, closed eyes and teal frog skin",
+ "seed": 11,
+ "desc": "Young chibi zen frog",
+ "skip": false
+ }
+ ]
+}
diff --git a/pixellab_src/ledger.jsonl b/pixellab_src/ledger.jsonl
index 71bf063..4f1c534 100644
--- a/pixellab_src/ledger.jsonl
+++ b/pixellab_src/ledger.jsonl
@@ -243,3 +243,2571 @@
{"time": 1790911913, "label": "pl_lizard/pl_frill_neck", "endpoint": "edit-image-pixen", "usage": {"type": "usd", "usd": 0.011213760746849908}, "ok": true}
{"time": 1790911951, "label": "pl_boar/pl_saddle_rock", "endpoint": "edit-image-pixen", "usage": {"type": "usd", "usd": 0.007961846457587348}, "ok": true}
{"time": 1790912044, "label": "pl_boar/pl_mane_bristle", "endpoint": "edit-image-pixen", "usage": {"type": "usd", "usd": 0.009079684257507326}, "ok": true}
+{"time": 1790914045, "label": "pl_moth/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914075, "label": "pl_moth/pl_moth_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914082, "label": "pl_moth/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914087, "label": "pl_moth/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914100, "label": "pl_moth/pl_moth_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914109, "label": "pl_moth/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914234, "label": "pl_brawler/pl_brawler_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914238, "label": "pl_beetle/pl_beetle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914243, "label": "pl_brawler/pl_brawler_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914251, "label": "pl_boar/pl_boar_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914251, "label": "pl_beetle/pl_beetle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914255, "label": "pl_bee/pl_bee_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914259, "label": "pl_bee/pl_bee_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914263, "label": "pl_axolotl/pl_axolotl_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914271, "label": "pl_axolotl/pl_axolotl_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914272, "label": "pl_boar/pl_boar_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914280, "label": "pl_bunny/pl_bunny_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914289, "label": "pl_cub/pl_cub_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914289, "label": "pl_bunny/pl_bunny_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914293, "label": "pl_cub/pl_cub_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914297, "label": "pl_crab/pl_crab_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914297, "label": "pl_crab/pl_crab_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914302, "label": "pl_chick/pl_chick_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914306, "label": "pl_dino/pl_dino_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914314, "label": "pl_dino/pl_dino_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914331, "label": "pl_eel/pl_eel_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914335, "label": "pl_eel/pl_eel_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914335, "label": "pl_drake/pl_drake_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914339, "label": "pl_duck/pl_duck_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914339, "label": "pl_fawn/pl_fawn_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914342, "label": "pl_fawn/pl_fawn_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914347, "label": "pl_drake/pl_drake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914348, "label": "pl_duck/pl_duck_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914355, "label": "pl_fox/pl_fox_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914361, "label": "pl_chick/pl_chick_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914365, "label": "pl_grub/pl_grub_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914373, "label": "pl_guppy/pl_guppy_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914380, "label": "pl_hawk/pl_hawk_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914381, "label": "pl_guppy/pl_guppy_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914385, "label": "pl_imp/pl_imp_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914390, "label": "pl_hawk/pl_hawk_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914394, "label": "pl_grub/pl_grub_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914398, "label": "pl_fox/pl_fox_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914402, "label": "pl_imp/pl_imp_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914411, "label": "pl_lizard/pl_lizard_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914415, "label": "pl_mochi/pl_mochi_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914419, "label": "pl_monk/pl_monk_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914422, "label": "pl_mochi/pl_mochi_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914427, "label": "pl_monk/pl_monk_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914432, "label": "pl_owl/pl_owl_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914441, "label": "pl_lizard/pl_lizard_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914452, "label": "pl_owl/pl_owl_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914453, "label": "pl_pebble/pl_pebble_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914456, "label": "pl_pebble/pl_pebble_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914461, "label": "pl_seal/pl_seal_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914465, "label": "pl_snake/pl_snake_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914469, "label": "pl_seal/pl_seal_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914472, "label": "pl_slime/pl_slime_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914486, "label": "pl_sprite/pl_sprite_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914487, "label": "pl_snake/pl_snake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914490, "label": "pl_slime/pl_slime_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914498, "label": "pl_wyrm/pl_wyrm_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914498, "label": "pl_worm/pl_worm_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914502, "label": "pl_wisp/pl_wisp_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914510, "label": "pl_circuitbug/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914511, "label": "pl_wisp/pl_wisp_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914514, "label": "pl_wyrm/pl_wyrm_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914516, "label": "pl_worm/pl_worm_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914516, "label": "pl_claypot/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914520, "label": "pl_sprite/pl_sprite_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914526, "label": "pl_magnet/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914537, "label": "pl_weevil/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914537, "label": "pl_diver/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914561, "label": "pl_pitcher/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914564, "label": "pl_plugpig/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914567, "label": "pl_hatchetfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914574, "label": "pl_pumice/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914574, "label": "pl_scorpion/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914586, "label": "pl_flutter/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914588, "label": "pl_frizzbird/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914589, "label": "pl_sphynx/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914590, "label": "pl_slinky/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914593, "label": "pl_sleepsheep/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914601, "label": "pl_nymph/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914604, "label": "pl_ram/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914605, "label": "pl_furnace/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914615, "label": "pl_hermit/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914617, "label": "pl_tardigrade/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914622, "label": "pl_kiwi/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914637, "label": "pl_sandcastle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914640, "label": "pl_zenfrog/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914640, "label": "pl_sludgerat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914648, "label": "pl_crystalball/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914652, "label": "pl_drake/pl_drake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914658, "label": "pl_flytrap/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914674, "label": "pl_pinefinch/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914674, "label": "pl_kingfisher/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914675, "label": "pl_morel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914677, "label": "pl_tortoise/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914679, "label": "pl_stonefish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914685, "label": "pl_sloth/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914691, "label": "pl_smog/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914694, "label": "pl_owl/pl_owl_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914697, "label": "pl_bogtoad/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914700, "label": "pl_spider/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914714, "label": "pl_trilobite/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914721, "label": "pl_seahorse/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914723, "label": "pl_stick/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914723, "label": "pl_vine/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914724, "label": "pl_kite/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914727, "label": "pl_betta/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914727, "label": "pl_snail/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914730, "label": "pl_spectercat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914736, "label": "pl_slime/pl_slime_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914746, "label": "pl_boxfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914760, "label": "pl_lantern/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914760, "label": "pl_gamecock/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914767, "label": "pl_imp/pl_imp_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914769, "label": "pl_snowcat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914771, "label": "pl_tombstone/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914777, "label": "pl_penguin/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914777, "label": "pl_fox/pl_fox_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914784, "label": "pl_snowman/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914787, "label": "pl_skullbat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914790, "label": "pl_platypus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914799, "label": "pl_walrus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914803, "label": "pl_pup/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914810, "label": "pl_hoatzin/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914812, "label": "pl_meerkat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914822, "label": "pl_ptero/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914824, "label": "pl_yeti/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914830, "label": "pl_obsidian/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914838, "label": "pl_axolotl/pl_axolotl_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914854, "label": "pl_raccoon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914857, "label": "pl_quokka/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914861, "label": "pl_alien/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914862, "label": "pl_plesio/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914866, "label": "pl_teapot/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914866, "label": "pl_gourd/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914872, "label": "pl_coffinbug/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914883, "label": "pl_ape/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914885, "label": "pl_quetzal/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914888, "label": "pl_dragonegg/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914897, "label": "pl_golem/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914898, "label": "pl_dodo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914899, "label": "pl_rhinobug/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914906, "label": "pl_tapir/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914909, "label": "pl_doll/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914916, "label": "pl_aardvark/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914927, "label": "pl_tatzel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914936, "label": "pl_ventangler/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914941, "label": "pl_firefly/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914942, "label": "pl_cinderhound/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914946, "label": "pl_wolverine/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914948, "label": "pl_pelican/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914948, "label": "pl_ferret/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914959, "label": "pl_centipede/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914963, "label": "pl_manatee/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914967, "label": "pl_gargoyle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914980, "label": "pl_phoenix/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914996, "label": "pl_bulb/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790914998, "label": "pl_bee/pl_bee_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915001, "label": "pl_flyfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915001, "label": "pl_mochi/pl_mochi_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915024, "label": "pl_frigate/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915027, "label": "pl_pangolin/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915028, "label": "pl_daruma/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915029, "label": "pl_volcano/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915031, "label": "pl_catfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915033, "label": "pl_frostspider/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915038, "label": "pl_marshmallow/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915050, "label": "pl_jelly/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915052, "label": "pl_emberant/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915052, "label": "pl_cell/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915058, "label": "pl_lilyray/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915064, "label": "pl_camel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915068, "label": "pl_plaguecrow/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915073, "label": "pl_roo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915076, "label": "pl_ant/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915080, "label": "pl_komodo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915084, "label": "pl_alpaca/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915087, "label": "pl_brawler/pl_brawler_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915097, "label": "pl_bunny/pl_bunny_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915098, "label": "pl_dracobeetle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915098, "label": "pl_beaver/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915100, "label": "pl_nudibranch/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915101, "label": "pl_shoebill/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915104, "label": "pl_hare/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915107, "label": "pl_hellbender/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915110, "label": "pl_icebat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915123, "label": "pl_cassowary/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915125, "label": "pl_ibis/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915127, "label": "pl_catloaf/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915128, "label": "pl_hummer/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915131, "label": "pl_coilfist/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915133, "label": "pl_dartfrog/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915147, "label": "pl_cuttle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915151, "label": "pl_mudskipper/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915152, "label": "pl_bonesnake/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915155, "label": "pl_kobold/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915161, "label": "pl_lizard/pl_lizard_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915163, "label": "pl_manatee/pl_ears_round", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915164, "label": "pl_mantis/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915166, "label": "pl_meerkat/pl_crown_gold", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915167, "label": "pl_glider/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915173, "label": "pl_gryphon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915176, "label": "pl_mole/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915182, "label": "pl_monk/pl_monk_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915195, "label": "pl_meerkat/pl_lantern_pack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915197, "label": "pl_manatee/pl_tail_croc", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915200, "label": "pl_dumbo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915200, "label": "pl_dormouse/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915209, "label": "pl_meerkat/pl_windup_key", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915210, "label": "pl_meerkat/pl_tophat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915215, "label": "pl_manatee/pl_candle_flame", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915219, "label": "pl_manatee/pl_quills_gold", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915220, "label": "pl_inchworm/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915229, "label": "pl_pup/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915237, "label": "pl_meerkat/pl_tail_ringed", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915243, "label": "pl_rhinobug/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915247, "label": "pl_antlion/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915254, "label": "pl_diver/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915266, "label": "pl_meerkat/pl_tail_bell", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915268, "label": "pl_meerkat/pl_meerkat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915269, "label": "pl_bonesnake/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915272, "label": "pl_mandrill/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915295, "label": "pl_pangolin/pl_backpack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915298, "label": "pl_pangolin/pl_goggles", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915301, "label": "pl_ant/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915307, "label": "pl_pangolin/pl_saddle_riding", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915316, "label": "pl_pangolin/pl_acorn_cap", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915319, "label": "pl_alpaca/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915326, "label": "pl_scorpion/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915333, "label": "pl_pangolin/pl_tail_armadillo", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915336, "label": "pl_pangolin/pl_pangolin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915339, "label": "pl_pangolin/pl_tail_beaver", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915340, "label": "pl_ape/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915341, "label": "pl_pangolin/pl_pangolin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915357, "label": "pl_ape/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915358, "label": "pl_manatee/pl_manatee_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915359, "label": "pl_manatee/pl_manatee_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915371, "label": "pl_shoebill/pl_bow_ribbon", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915376, "label": "pl_alien/pl_alien_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915378, "label": "pl_shoebill/pl_propeller_cap", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915386, "label": "pl_alpaca/pl_alpaca_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915388, "label": "pl_shoebill/pl_shoebill_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915395, "label": "pl_shoebill/pl_tail_comet", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915395, "label": "pl_shoebill/pl_tail_anchor", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915406, "label": "pl_shoebill/pl_jetpack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915407, "label": "pl_ape/pl_ape_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915416, "label": "pl_teapot/pl_lure_bulb", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915418, "label": "pl_cell/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915426, "label": "pl_shoebill/pl_shoebill_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915432, "label": "pl_teapot/pl_leaf_umbrella", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915433, "label": "pl_teapot/pl_tail_plug", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915438, "label": "pl_teapot/pl_witch_hat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915438, "label": "pl_teapot/pl_cocoon_silk", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915445, "label": "pl_cell/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915448, "label": "pl_teapot/pl_tail_chain", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915452, "label": "pl_cell/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915464, "label": "pl_teapot/pl_teapot_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915470, "label": "pl_weevil/pl_mohawk", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915470, "label": "pl_betta/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915475, "label": "pl_teapot/pl_teapot_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915476, "label": "pl_weevil/pl_swords_crossed", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915478, "label": "pl_cell/pl_cell_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915484, "label": "pl_weevil/pl_honeycomb", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915490, "label": "pl_weevil/pl_tail_lobster", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915492, "label": "pl_weevil/pl_tiara_gem", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915507, "label": "pl_cumulus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915507, "label": "pl_weevil/pl_weevil_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915508, "label": "pl_betta/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915509, "label": "pl_weevil/pl_weevil_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915510, "label": "pl_cell/pl_cell_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915514, "label": "pl_hermit/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915520, "label": "pl_circuitbug/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915526, "label": "pl_x_basilisk/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915526, "label": "pl_weevil/pl_tail_bone", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915532, "label": "pl_x_chili/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915546, "label": "pl_betta/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915549, "label": "pl_ant/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915550, "label": "pl_x_dragturtle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915558, "label": "pl_x_loris/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915561, "label": "pl_geode/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915578, "label": "pl_ape/pl_ape_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915578, "label": "pl_circuitbug/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915580, "label": "pl_x_potato/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915585, "label": "pl_x_moai/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915587, "label": "pl_x_mummy/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915595, "label": "pl_ant/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915602, "label": "pl_circuitbug/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915617, "label": "pl_x_puffin/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915620, "label": "pl_catfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915621, "label": "pl_betta/pl_betta_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915625, "label": "pl_betta/pl_betta_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915625, "label": "pl_circuitbug/pl_circuitbug_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915626, "label": "pl_catfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915626, "label": "pl_x_toucan/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915633, "label": "pl_alien/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915635, "label": "pl_circuitbug/pl_circuitbug_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915645, "label": "pl_platypus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915658, "label": "pl_obsidian/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915659, "label": "pl_catfish/pl_catfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915663, "label": "pl_crystalball/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915666, "label": "pl_crystalball/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915672, "label": "pl_coilfist/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915678, "label": "pl_catfish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915690, "label": "pl_coffinbug/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915695, "label": "pl_bulb/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915696, "label": "pl_catfish/pl_catfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915698, "label": "pl_crystalball/pl_crystalball_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915700, "label": "pl_coilfist/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915701, "label": "pl_coilfist/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915701, "label": "pl_x_bison/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915704, "label": "pl_crystalball/pl_crystalball_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915708, "label": "pl_frizzbird/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915710, "label": "pl_camel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915729, "label": "pl_ventangler/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915733, "label": "pl_frizzbird/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915738, "label": "pl_daruma/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915740, "label": "pl_frizzbird/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915741, "label": "pl_coilfist/pl_coilfist_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915744, "label": "pl_frizzbird/pl_frizzbird_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915750, "label": "pl_frizzbird/pl_frizzbird_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915750, "label": "pl_coilfist/pl_coilfist_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915756, "label": "pl_x_lionfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915769, "label": "pl_daruma/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915775, "label": "pl_kobold/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915779, "label": "pl_daruma/pl_daruma_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915781, "label": "pl_hatchetfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915784, "label": "pl_daruma/pl_daruma_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915784, "label": "pl_hatchetfish/pl_hatchetfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915791, "label": "pl_alien/pl_alien_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915795, "label": "pl_mudskipper/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915797, "label": "pl_daruma/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915807, "label": "pl_dodo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915808, "label": "pl_dodo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915817, "label": "pl_dodo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915819, "label": "pl_hatchetfish/pl_hatchetfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915823, "label": "pl_catloaf/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915823, "label": "pl_hatchetfish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915830, "label": "pl_ant/pl_ant_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915839, "label": "pl_ibis/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915843, "label": "pl_dodo/pl_dodo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915850, "label": "pl_ferret/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915853, "label": "pl_ibis/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915855, "label": "pl_ferret/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915861, "label": "pl_dodo/pl_dodo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915871, "label": "pl_ibis/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915872, "label": "pl_ferret/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915881, "label": "pl_ferret/pl_ferret_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915883, "label": "pl_ferret/pl_ferret_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915886, "label": "pl_ibis/pl_ibis_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915894, "label": "pl_magnet/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915901, "label": "pl_ibis/pl_ibis_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915908, "label": "pl_magnet/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915919, "label": "pl_ant/pl_ant_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915921, "label": "pl_raccoon/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915923, "label": "pl_gamecock/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915924, "label": "pl_sludgerat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915928, "label": "pl_magnet/pl_magnet_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915931, "label": "pl_hellbender/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915933, "label": "pl_gamecock/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915934, "label": "pl_gamecock/pl_gamecock_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915940, "label": "pl_magnet/pl_magnet_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915946, "label": "pl_mandrill/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915961, "label": "pl_raccoon/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915969, "label": "pl_raccoon/pl_raccoon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915976, "label": "pl_raccoon/pl_raccoon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915983, "label": "pl_mandrill/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915986, "label": "pl_catloaf/pl_catloaf_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915990, "label": "pl_mandrill/pl_mandrill_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915996, "label": "pl_catloaf/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790915999, "label": "pl_roo/pl_roo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916001, "label": "pl_roo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916004, "label": "pl_mandrill/pl_mandrill_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916007, "label": "pl_roo/pl_roo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916026, "label": "pl_roo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916033, "label": "pl_plugpig/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916035, "label": "pl_rhinobug/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916038, "label": "pl_plugpig/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916044, "label": "pl_plugpig/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916048, "label": "pl_wolverine/pl_wolverine_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916048, "label": "pl_wolverine/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916062, "label": "pl_wolverine/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916063, "label": "pl_wolverine/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916068, "label": "pl_wolverine/pl_wolverine_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916069, "label": "pl_rhinobug/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916078, "label": "pl_rhinobug/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916079, "label": "pl_plugpig/pl_plugpig_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916086, "label": "pl_sleepsheep/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916087, "label": "pl_pup/pl_pup_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916088, "label": "pl_volcano/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916096, "label": "pl_tapir/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916098, "label": "pl_bulb/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916100, "label": "pl_plugpig/pl_plugpig_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916101, "label": "pl_hummer/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916121, "label": "pl_quokka/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916122, "label": "pl_sleepsheep/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916122, "label": "pl_glider/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916132, "label": "pl_sleepsheep/pl_sleepsheep_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916133, "label": "pl_rhinobug/pl_rhinobug_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916137, "label": "pl_rhinobug/pl_rhinobug_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916137, "label": "pl_x_cactus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916139, "label": "pl_sleepsheep/pl_sleepsheep_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916142, "label": "pl_pitcher/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916145, "label": "pl_sleepsheep/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916154, "label": "pl_bulb/pl_bulb_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916163, "label": "pl_bulb/pl_bulb_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916167, "label": "pl_meerkat/pl_meerkat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916170, "label": "pl_slinky/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916181, "label": "pl_slinky/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916192, "label": "pl_alpaca/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916197, "label": "pl_alien/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916199, "label": "pl_slinky/pl_slinky_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916200, "label": "pl_pup/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916204, "label": "pl_sphynx/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916212, "label": "pl_alien/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916221, "label": "pl_slinky/pl_slinky_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916225, "label": "pl_gamecock/pl_gamecock_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916226, "label": "pl_sphynx/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916227, "label": "pl_sphynx/pl_sphynx_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916244, "label": "pl_sphynx/pl_sphynx_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916245, "label": "pl_tardigrade/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916245, "label": "pl_tardigrade/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916267, "label": "pl_alpaca/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916267, "label": "pl_slinky/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916268, "label": "pl_catloaf/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916268, "label": "pl_tardigrade/pl_tardigrade_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916268, "label": "pl_tardigrade/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916271, "label": "pl_tardigrade/pl_tardigrade_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916285, "label": "pl_zenfrog/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916291, "label": "pl_zenfrog/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916291, "label": "pl_zenfrog/pl_zenfrog_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916292, "label": "pl_x_clam/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916294, "label": "pl_zenfrog/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916294, "label": "pl_spectercat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916297, "label": "pl_pup/pl_pup_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916305, "label": "pl_zenfrog/pl_zenfrog_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916305, "label": "pl_magnet/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916317, "label": "pl_x_hedgehog/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916321, "label": "pl_alpaca/pl_alpaca_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916322, "label": "pl_ptero/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916326, "label": "pl_komodo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916328, "label": "pl_ape/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916330, "label": "pl_catloaf/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916330, "label": "pl_snowcat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916336, "label": "pl_tortoise/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916337, "label": "pl_cicada/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916339, "label": "pl_pup/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916350, "label": "pl_boxfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916351, "label": "pl_x_ibex/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916353, "label": "pl_tombstone/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916360, "label": "pl_plesio/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916364, "label": "pl_x_bagworm/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916372, "label": "pl_gargoyle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916372, "label": "pl_catloaf/pl_catloaf_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916373, "label": "pl_camel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916377, "label": "pl_pup/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916381, "label": "pl_springtail/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916381, "label": "pl_obsidian/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916395, "label": "pl_hatchetfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916402, "label": "pl_x_basilisk/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916407, "label": "pl_manatee/pl_gears", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916412, "label": "pl_x_bagworm/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916419, "label": "pl_alpaca/pl_alpaca_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916424, "label": "pl_x_ibex/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916429, "label": "pl_camel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916440, "label": "pl_tatzel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916444, "label": "pl_lilyray/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916450, "label": "pl_centipede/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916450, "label": "pl_plesio/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916456, "label": "pl_bonesnake/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916457, "label": "pl_ferret/pl_ferret_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916457, "label": "pl_dracobeetle/pl_dracobeetle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916474, "label": "pl_dracobeetle/pl_dracobeetle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916491, "label": "pl_dracobeetle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916494, "label": "pl_catloaf/pl_catloaf_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916495, "label": "pl_dragonegg/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916496, "label": "pl_centipede/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916498, "label": "pl_centipede/pl_centipede_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916500, "label": "pl_coffinbug/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916507, "label": "pl_coffinbug/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916508, "label": "pl_x_bagworm/pl_x_bagworm_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916520, "label": "pl_dragonegg/pl_dragonegg_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916529, "label": "pl_dragonegg/pl_dragonegg_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916530, "label": "pl_coffinbug/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916532, "label": "pl_x_bagworm/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916532, "label": "pl_emberant/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916536, "label": "pl_coffinbug/pl_coffinbug_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916545, "label": "pl_dartfrog/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916554, "label": "pl_cassowary/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916558, "label": "pl_x_bison/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916558, "label": "pl_emberant/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916559, "label": "pl_x_bison/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916562, "label": "pl_emberant/pl_emberant_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916564, "label": "pl_dartfrog/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916570, "label": "pl_emberant/pl_emberant_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916572, "label": "pl_dartfrog/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916578, "label": "pl_dartfrog/pl_dartfrog_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916599, "label": "pl_x_bison/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916604, "label": "pl_dartfrog/pl_dartfrog_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916606, "label": "pl_diver/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916609, "label": "pl_furnace/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916612, "label": "pl_furnace/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916613, "label": "pl_cumulus/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916622, "label": "pl_diver/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916625, "label": "pl_furnace/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916630, "label": "pl_x_bison/pl_x_bison_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916650, "label": "pl_diver/pl_diver_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916659, "label": "pl_x_cactus/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916664, "label": "pl_diver/pl_diver_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916671, "label": "pl_x_bison/pl_x_bison_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916672, "label": "pl_doll/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916675, "label": "pl_furnace/pl_furnace_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916675, "label": "pl_furnace/pl_furnace_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916675, "label": "pl_hellbender/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916676, "label": "pl_cuttle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916679, "label": "pl_diver/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916691, "label": "pl_doll/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916710, "label": "pl_hellbender/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916710, "label": "pl_doll/pl_doll_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916713, "label": "pl_x_cactus/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916714, "label": "pl_hellbender/pl_hellbender_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916714, "label": "pl_doll/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916717, "label": "pl_doll/pl_doll_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916718, "label": "pl_cuttle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916718, "label": "pl_hellbender/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916738, "label": "pl_sludgerat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916743, "label": "pl_x_cactus/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916751, "label": "pl_lantern/pl_lantern_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916759, "label": "pl_hoatzin/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916760, "label": "pl_x_cactus/pl_x_cactus_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916761, "label": "pl_lantern/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916768, "label": "pl_hoatzin/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916769, "label": "pl_lantern/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916772, "label": "pl_lantern/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916776, "label": "pl_lantern/pl_lantern_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916789, "label": "pl_cuttle/pl_cuttle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916790, "label": "pl_hellbender/pl_hellbender_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916801, "label": "pl_nudibranch/pl_nudibranch_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916810, "label": "pl_hoatzin/pl_hoatzin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916815, "label": "pl_cicada/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916822, "label": "pl_x_chili/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916843, "label": "pl_nudibranch/pl_nudibranch_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916845, "label": "pl_hoatzin/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916852, "label": "pl_x_cactus/pl_x_cactus_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916853, "label": "pl_nudibranch/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916860, "label": "pl_cuttle/pl_cuttle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916861, "label": "pl_flytrap/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916867, "label": "pl_kobold/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916878, "label": "pl_hoatzin/pl_hoatzin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916885, "label": "pl_pitcher/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916890, "label": "pl_pitcher/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916891, "label": "pl_kobold/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916893, "label": "pl_nudibranch/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916893, "label": "pl_x_chili/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916898, "label": "pl_flutter/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916898, "label": "pl_x_chili/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916907, "label": "pl_flytrap/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916917, "label": "pl_kobold/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916924, "label": "pl_kobold/pl_kobold_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916931, "label": "pl_pitcher/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916932, "label": "pl_pitcher/pl_pitcher_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916932, "label": "pl_kobold/pl_kobold_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916940, "label": "pl_x_chili/pl_x_chili_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916944, "label": "pl_flutter/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916958, "label": "pl_centipede/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916960, "label": "pl_pitcher/pl_pitcher_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916973, "label": "pl_plaguecrow/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916974, "label": "pl_x_clam/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916978, "label": "pl_plaguecrow/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916978, "label": "pl_komodo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916981, "label": "pl_flutter/pl_flutter_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916989, "label": "pl_komodo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916991, "label": "pl_komodo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790916999, "label": "pl_flytrap/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917004, "label": "pl_plaguecrow/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917011, "label": "pl_x_clam/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917016, "label": "pl_komodo/pl_komodo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917023, "label": "pl_komodo/pl_komodo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917023, "label": "pl_plaguecrow/pl_plaguecrow_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917023, "label": "pl_flutter/pl_flutter_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917036, "label": "pl_plaguecrow/pl_plaguecrow_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917045, "label": "pl_flytrap/pl_flytrap_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917046, "label": "pl_x_clam/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917050, "label": "pl_marshmallow/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917050, "label": "pl_skullbat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917060, "label": "pl_marshmallow/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917066, "label": "pl_marshmallow/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917075, "label": "pl_circuitbug/pl_circuitbug_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917079, "label": "pl_flytrap/pl_flytrap_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917080, "label": "pl_x_clam/pl_x_clam_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917082, "label": "pl_skullbat/pl_skullbat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917082, "label": "pl_flyfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917090, "label": "pl_skullbat/pl_skullbat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917092, "label": "pl_marshmallow/pl_marshmallow_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917094, "label": "pl_marshmallow/pl_marshmallow_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917097, "label": "pl_smog/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917104, "label": "pl_phoenix/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917117, "label": "pl_cicada/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917126, "label": "pl_phoenix/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917130, "label": "pl_gourd/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917132, "label": "pl_smog/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917134, "label": "pl_smog/pl_smog_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917140, "label": "pl_phoenix/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917145, "label": "pl_smog/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917149, "label": "pl_flyfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917154, "label": "pl_phoenix/pl_phoenix_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917157, "label": "pl_smog/pl_smog_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917159, "label": "pl_gourd/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917160, "label": "pl_phoenix/pl_phoenix_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917163, "label": "pl_x_clam/pl_x_clam_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917167, "label": "pl_gourd/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917176, "label": "pl_spectercat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917186, "label": "pl_quetzal/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917192, "label": "pl_quetzal/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917194, "label": "pl_quetzal/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917195, "label": "pl_flyfish/pl_flyfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917201, "label": "pl_gourd/pl_gourd_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917209, "label": "pl_gourd/pl_gourd_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917214, "label": "pl_spectercat/pl_spectercat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917216, "label": "pl_spectercat/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917218, "label": "pl_x_dragturtle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917233, "label": "pl_flyfish/pl_flyfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917236, "label": "pl_spectercat/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917237, "label": "pl_bogtoad/pl_bogtoad_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917243, "label": "pl_mantis/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917247, "label": "pl_mantis/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917266, "label": "pl_x_chili/pl_x_chili_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917270, "label": "pl_frigate/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917273, "label": "pl_spectercat/pl_spectercat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917279, "label": "pl_boxfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917281, "label": "pl_mantis/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917285, "label": "pl_quetzal/pl_quetzal_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917289, "label": "pl_mantis/pl_mantis_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917297, "label": "pl_x_dragturtle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917308, "label": "pl_geode/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917308, "label": "pl_x_dragturtle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917312, "label": "pl_boxfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917316, "label": "pl_frigate/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917323, "label": "pl_mantis/pl_mantis_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917340, "label": "pl_x_basilisk/pl_x_basilisk_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917344, "label": "pl_nymph/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917344, "label": "pl_x_dragturtle/pl_x_dragturtle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917366, "label": "pl_boxfish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917367, "label": "pl_x_dragturtle/pl_x_dragturtle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917369, "label": "pl_nymph/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917377, "label": "pl_nymph/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917379, "label": "pl_ventangler/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917387, "label": "pl_frigate/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917390, "label": "pl_x_hedgehog/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917395, "label": "pl_geode/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917403, "label": "pl_x_hedgehog/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917404, "label": "pl_ventangler/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917409, "label": "pl_boxfish/pl_boxfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917425, "label": "pl_frigate/pl_frigate_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917427, "label": "pl_nymph/pl_nymph_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917436, "label": "pl_nymph/pl_nymph_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917439, "label": "pl_x_hedgehog/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917442, "label": "pl_boxfish/pl_boxfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917444, "label": "pl_x_hedgehog/pl_x_hedgehog_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917445, "label": "pl_geode/pl_geode_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917458, "label": "pl_ventangler/pl_ventangler_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917471, "label": "pl_bogtoad/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917475, "label": "pl_pinefinch/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917482, "label": "pl_pinefinch/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917489, "label": "pl_dumbo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917491, "label": "pl_geode/pl_geode_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917496, "label": "pl_volcano/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917501, "label": "pl_x_ibex/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917504, "label": "pl_dumbo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917507, "label": "pl_x_ibex/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917516, "label": "pl_x_hedgehog/pl_x_hedgehog_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917517, "label": "pl_pinefinch/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917517, "label": "pl_frigate/pl_frigate_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917537, "label": "pl_golem/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917539, "label": "pl_dumbo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917540, "label": "pl_volcano/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917540, "label": "pl_pinefinch/pl_pinefinch_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917543, "label": "pl_coffinbug/pl_coffinbug_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917554, "label": "pl_x_ibex/pl_x_ibex_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917555, "label": "pl_dumbo/pl_dumbo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917555, "label": "pl_plesio/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917559, "label": "pl_pinefinch/pl_pinefinch_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917582, "label": "pl_volcano/pl_volcano_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917582, "label": "pl_sloth/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917582, "label": "pl_x_lionfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917585, "label": "pl_beaver/pl_beaver_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917592, "label": "pl_hare/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917594, "label": "pl_dumbo/pl_dumbo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917600, "label": "pl_golem/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917601, "label": "pl_zenfrog/pl_zenfrog_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917609, "label": "pl_sloth/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917620, "label": "pl_x_lionfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917632, "label": "pl_volcano/pl_volcano_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917636, "label": "pl_hare/pl_hare_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917638, "label": "pl_hare/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917645, "label": "pl_x_lionfish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917647, "label": "pl_sloth/pl_sloth_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917651, "label": "pl_golem/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917651, "label": "pl_hare/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917653, "label": "pl_sloth/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917656, "label": "pl_firefly/pl_firefly_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917662, "label": "pl_x_lionfish/pl_x_lionfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917680, "label": "pl_hermit/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917688, "label": "pl_hare/pl_hare_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917688, "label": "pl_sloth/pl_sloth_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917689, "label": "pl_plesio/pl_plesio_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917690, "label": "pl_inchworm/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917694, "label": "pl_firefly/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917703, "label": "pl_snail/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917708, "label": "pl_x_loris/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917709, "label": "pl_hermit/pl_hermit_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917712, "label": "pl_x_lionfish/pl_x_lionfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917713, "label": "pl_golem/pl_golem_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917718, "label": "pl_snail/pl_snail_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917723, "label": "pl_aardvark/pl_aardvark_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917725, "label": "pl_hermit/pl_hermit_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917737, "label": "pl_x_loris/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917745, "label": "pl_snail/pl_snail_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917745, "label": "pl_x_basilisk/pl_x_basilisk_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917749, "label": "pl_spider/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917751, "label": "pl_spider/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917751, "label": "pl_icebat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917767, "label": "pl_icebat/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917774, "label": "pl_x_loris/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917777, "label": "pl_golem/pl_golem_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917782, "label": "pl_kiwi/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917783, "label": "pl_x_loris/pl_x_loris_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917787, "label": "pl_spider/pl_spider_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917793, "label": "pl_icebat/pl_icebat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917795, "label": "pl_spider/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917797, "label": "pl_spider/pl_spider_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917805, "label": "pl_icebat/pl_icebat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917808, "label": "pl_x_moai/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917812, "label": "pl_vine/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917825, "label": "pl_kiwi/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917827, "label": "pl_kiwi/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917829, "label": "pl_x_moai/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917834, "label": "pl_jelly/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917835, "label": "pl_vine/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917836, "label": "pl_vine/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917846, "label": "pl_x_moai/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917852, "label": "pl_jelly/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917859, "label": "pl_tatzel/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917860, "label": "pl_kiwi/pl_kiwi_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917863, "label": "pl_vine/pl_vine_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917870, "label": "pl_tardigrade/pl_tardigrade_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917872, "label": "pl_jelly/pl_jelly_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917879, "label": "pl_kiwi/pl_kiwi_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917881, "label": "pl_vine/pl_vine_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917893, "label": "pl_meerkat/pl_lantern_pack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917894, "label": "pl_mole/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917899, "label": "pl_jelly/pl_jelly_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917917, "label": "pl_mole/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917921, "label": "pl_x_loris/pl_x_loris_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917921, "label": "pl_beaver/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917921, "label": "pl_x_moai/pl_x_moai_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917931, "label": "pl_pelican/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917937, "label": "pl_tapir/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917941, "label": "pl_pelican/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917943, "label": "pl_antlion/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917944, "label": "pl_mole/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917955, "label": "pl_mole/pl_mole_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917971, "label": "pl_pelican/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917972, "label": "pl_x_mummy/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917972, "label": "pl_mole/pl_mole_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917977, "label": "pl_mudskipper/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917978, "label": "pl_pelican/pl_pelican_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917979, "label": "pl_firefly/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917982, "label": "pl_pelican/pl_pelican_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917983, "label": "pl_x_mummy/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790917997, "label": "pl_mudskipper/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918012, "label": "pl_penguin/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918021, "label": "pl_plesio/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918024, "label": "pl_penguin/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918026, "label": "pl_x_mummy/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918027, "label": "pl_mudskipper/pl_mudskipper_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918034, "label": "pl_aardvark/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918035, "label": "pl_obsidian/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918037, "label": "pl_teapot/pl_tail_plug", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918052, "label": "pl_mudskipper/pl_mudskipper_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918055, "label": "pl_penguin/pl_penguin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918058, "label": "pl_sleepsheep/pl_sleepsheep_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918060, "label": "pl_x_mummy/pl_x_mummy_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918074, "label": "pl_hermit/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918075, "label": "pl_penguin/pl_penguin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918075, "label": "pl_obsidian/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918077, "label": "pl_obsidian/pl_obsidian_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918083, "label": "pl_penguin/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918086, "label": "pl_obsidian/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918089, "label": "pl_pumice/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918101, "label": "pl_seahorse/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918110, "label": "pl_pumice/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918113, "label": "pl_seahorse/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918117, "label": "pl_centipede/pl_centipede_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918125, "label": "pl_pumice/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918128, "label": "pl_pumice/pl_pumice_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918128, "label": "pl_pumice/pl_pumice_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918138, "label": "pl_seahorse/pl_seahorse_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918147, "label": "pl_scorpion/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918155, "label": "pl_snowman/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918161, "label": "pl_ram/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918162, "label": "pl_ram/pl_ram_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918164, "label": "pl_x_potato/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918170, "label": "pl_beaver/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918180, "label": "pl_ram/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918180, "label": "pl_x_basilisk/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918190, "label": "pl_ram/pl_ram_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918193, "label": "pl_snowman/pl_snowman_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918195, "label": "pl_sandcastle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918203, "label": "pl_sandcastle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918208, "label": "pl_snowman/pl_snowman_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918222, "label": "pl_x_bagworm/pl_x_bagworm_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918227, "label": "pl_x_potato/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918234, "label": "pl_sandcastle/pl_sandcastle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918239, "label": "pl_springtail/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918241, "label": "pl_stonefish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918243, "label": "pl_x_potato/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918260, "label": "pl_x_potato/pl_x_potato_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918262, "label": "pl_stonefish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918271, "label": "pl_springtail/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918276, "label": "pl_stonefish/pl_stonefish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918276, "label": "pl_x_puffin/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918282, "label": "pl_x_potato/pl_x_potato_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918283, "label": "pl_stonefish/pl_stonefish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918297, "label": "pl_x_puffin/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918302, "label": "pl_springtail/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918304, "label": "pl_tortoise/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918308, "label": "pl_tortoise/pl_tortoise_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918309, "label": "pl_tortoise/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918315, "label": "pl_x_puffin/pl_x_puffin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918337, "label": "pl_seahorse/pl_seahorse_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918339, "label": "pl_x_puffin/pl_x_puffin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918343, "label": "pl_trilobite/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918343, "label": "pl_x_puffin/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918346, "label": "pl_trilobite/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918347, "label": "pl_springtail/pl_springtail_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918349, "label": "pl_x_toucan/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918357, "label": "pl_sandcastle/pl_sandcastle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918367, "label": "pl_tortoise/pl_tortoise_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918369, "label": "pl_springtail/pl_springtail_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918374, "label": "pl_walrus/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918382, "label": "pl_x_toucan/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918388, "label": "pl_cell/pl_cell_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918392, "label": "pl_x_toucan/pl_x_toucan_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918402, "label": "pl_trilobite/pl_trilobite_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918403, "label": "pl_x_toucan/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918412, "label": "pl_trilobite/pl_trilobite_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918416, "label": "pl_walrus/pl_walrus_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918419, "label": "pl_walrus/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918420, "label": "pl_firefly/pl_firefly_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918422, "label": "pl_walrus/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918443, "label": "pl_cumulus/pl_cumulus_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918444, "label": "pl_x_toucan/pl_x_toucan_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918450, "label": "pl_beaver/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918453, "label": "pl_morel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918453, "label": "pl_yeti/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918460, "label": "pl_cumulus/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918470, "label": "pl_walrus/pl_walrus_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918475, "label": "pl_bogtoad/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918482, "label": "pl_plesio/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918483, "label": "pl_tatzel/pl_tatzel_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918494, "label": "pl_yeti/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918496, "label": "pl_yeti/pl_yeti_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918504, "label": "pl_yeti/pl_yeti_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918513, "label": "pl_gargoyle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918515, "label": "pl_plesio/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918518, "label": "pl_hyena/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918531, "label": "pl_gargoyle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918533, "label": "pl_snowman/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918533, "label": "pl_hatchetfish/pl_hatchetfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918534, "label": "pl_yeti/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918535, "label": "pl_gargoyle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918549, "label": "pl_bonesnake/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918550, "label": "pl_x_basilisk/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918553, "label": "pl_x_bagworm/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918559, "label": "pl_gargoyle/pl_gargoyle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918563, "label": "pl_tombstone/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918565, "label": "pl_dracobeetle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918566, "label": "pl_gargoyle/pl_gargoyle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918575, "label": "pl_x_moai/pl_x_moai_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918584, "label": "pl_cassowary/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918591, "label": "pl_bogtoad/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918597, "label": "pl_glider/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918599, "label": "pl_cinderhound/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918601, "label": "pl_aardvark/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918605, "label": "pl_quetzal/pl_quetzal_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918607, "label": "pl_cassowary/pl_cassowary_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918615, "label": "pl_glider/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918624, "label": "pl_glider/pl_glider_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918625, "label": "pl_glider/pl_glider_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918626, "label": "pl_seahorse/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918629, "label": "pl_cumulus/pl_cumulus_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918639, "label": "pl_scorpion/pl_scorpion_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918643, "label": "pl_gryphon/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918649, "label": "pl_weevil/pl_headphones", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918662, "label": "pl_hummer/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918667, "label": "pl_sludgerat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918675, "label": "pl_gryphon/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918676, "label": "pl_aardvark/pl_aardvark_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918677, "label": "pl_firefly/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918680, "label": "pl_hummer/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918682, "label": "pl_antlion/pl_antlion_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918690, "label": "pl_gryphon/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918695, "label": "pl_gryphon/pl_gryphon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918705, "label": "pl_dormouse/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918705, "label": "pl_tombstone/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918712, "label": "pl_sludgerat/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918712, "label": "pl_hummer/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918719, "label": "pl_tombstone/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918722, "label": "pl_hummer/pl_hummer_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918727, "label": "pl_tombstone/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918745, "label": "pl_kingfisher/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918747, "label": "pl_kingfisher/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918748, "label": "pl_kingfisher/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918749, "label": "pl_tombstone/pl_tombstone_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918750, "label": "pl_tombstone/pl_tombstone_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918759, "label": "pl_hummer/pl_hummer_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918764, "label": "pl_sludgerat/pl_sludgerat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918769, "label": "pl_dormouse/pl_dormouse_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918779, "label": "pl_kingfisher/pl_kingfisher_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918781, "label": "pl_kite/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918782, "label": "pl_morel/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918785, "label": "pl_sludgerat/pl_sludgerat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918794, "label": "pl_dragonegg/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918803, "label": "pl_kite/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918806, "label": "pl_kingfisher/pl_kingfisher_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918818, "label": "pl_kite/pl_kite_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918836, "label": "pl_bogtoad/pl_bogtoad_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918837, "label": "pl_kite/pl_kite_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918844, "label": "pl_gryphon/pl_gryphon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918849, "label": "pl_dormouse/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918853, "label": "pl_teapot/pl_drum_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918857, "label": "pl_platypus/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918868, "label": "pl_platypus/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918868, "label": "pl_dormouse/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918869, "label": "pl_platypus/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918877, "label": "pl_dustdevil/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918879, "label": "pl_platypus/pl_platypus_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918887, "label": "pl_nudibranch/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918902, "label": "pl_ptero/pl_ptero_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918903, "label": "pl_morel/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918911, "label": "pl_aardvark/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918916, "label": "pl_ptero/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918918, "label": "pl_ptero/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918923, "label": "pl_ptero/pl_ptero_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918925, "label": "pl_cinderhound/pl_cinderhound_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918931, "label": "pl_cassowary/pl_cassowary_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918941, "label": "pl_cinderhound/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918953, "label": "pl_scorpion/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918958, "label": "pl_beaver/pl_beaver_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918961, "label": "pl_x_ibex/pl_x_ibex_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918961, "label": "pl_dormouse/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918965, "label": "pl_antlion/pl_antlion_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918977, "label": "pl_scorpion/pl_scorpion_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918985, "label": "pl_cicada/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790918988, "label": "pl_bonesnake/pl_bonesnake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919007, "label": "pl_dormouse/pl_dormouse_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919008, "label": "pl_daruma/pl_daruma_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919010, "label": "pl_stick/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919012, "label": "pl_cicada/pl_cicada_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919012, "label": "pl_bulb/pl_bulb_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919015, "label": "pl_slinky/pl_slinky_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919023, "label": "pl_x_bagworm/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919048, "label": "pl_x_mummy/pl_x_mummy_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919050, "label": "pl_weevil/pl_swords_crossed", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919050, "label": "pl_antlion/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919056, "label": "pl_hyena/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919057, "label": "pl_sludgerat/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919058, "label": "pl_dustdevil/pl_dustdevil_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919059, "label": "pl_hyena/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919066, "label": "pl_meerkat/pl_windup_key", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919076, "label": "pl_morel/pl_morel_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919082, "label": "pl_cinderhound/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919088, "label": "pl_beaver/pl_beaver_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919088, "label": "pl_inchworm/pl_inchworm_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919091, "label": "pl_icebat/pl_icebat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919097, "label": "pl_snowman/pl_snowman_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919111, "label": "pl_cicada/pl_cicada_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919116, "label": "pl_inchworm/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919121, "label": "pl_lilyray/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919126, "label": "pl_snail/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919128, "label": "pl_shoebill/pl_scuba_tank", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919130, "label": "pl_bonesnake/pl_bonesnake_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919143, "label": "pl_stick/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919150, "label": "pl_lilyray/pl_lilyray_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919154, "label": "pl_teapot/pl_teapot_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919155, "label": "pl_dumbo/pl_dumbo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919156, "label": "pl_ventangler/pl_ventangler_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919167, "label": "pl_hyena/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919170, "label": "pl_stick/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919171, "label": "pl_hyena/pl_hyena_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919178, "label": "pl_x_basilisk/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919184, "label": "pl_stick/pl_stick_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919188, "label": "pl_koala/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919195, "label": "pl_hermit/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919196, "label": "pl_mudskipper/pl_mudskipper_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919200, "label": "pl_inchworm/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919201, "label": "pl_stick/pl_stick_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919202, "label": "pl_dustdevil/pl_dustdevil_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919207, "label": "pl_mudskipper/pl_mudskipper_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919211, "label": "pl_nutcracker/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919212, "label": "pl_quail/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919216, "label": "pl_stick/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919227, "label": "pl_plesio/pl_plesio_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919246, "label": "pl_morel/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919253, "label": "pl_tatzel/pl_tatzel_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919256, "label": "pl_sandcastle/pl_sandcastle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919256, "label": "pl_antlion/pl_antlion_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919258, "label": "pl_cicada/pl_cicada_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919258, "label": "pl_vine/pl_vine_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919261, "label": "pl_penguin/pl_penguin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919262, "label": "pl_nymph/pl_nymph_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919267, "label": "pl_inchworm/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919275, "label": "pl_circuitbug/pl_circuitbug_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919282, "label": "pl_secretary/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919287, "label": "pl_chipmunk/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919295, "label": "pl_ropefist/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919302, "label": "pl_aphid/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919303, "label": "pl_spider/pl_spider_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919307, "label": "pl_tasdevil/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919308, "label": "pl_tapir/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919311, "label": "pl_obsidian/pl_obsidian_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919325, "label": "pl_hermit/pl_hermit_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919329, "label": "pl_tapir/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919329, "label": "pl_wombat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919333, "label": "pl_heavybag/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919335, "label": "pl_sockworm/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919341, "label": "pl_mole/pl_mole_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919353, "label": "pl_gourd/pl_gourd_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919355, "label": "pl_onigiri/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919357, "label": "pl_x_hedgehog/pl_x_hedgehog_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919362, "label": "pl_inchworm/pl_inchworm_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919365, "label": "pl_shoebill/pl_jetpack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919371, "label": "pl_bulb/pl_bulb_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919375, "label": "pl_koala/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919378, "label": "pl_mola/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919387, "label": "pl_dustdevil/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919389, "label": "pl_hatchetfish/pl_hatchetfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919394, "label": "pl_hyena/pl_hyena_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919399, "label": "pl_lilyray/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919401, "label": "pl_hammerhead/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919412, "label": "pl_hermit/pl_hermit_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919417, "label": "pl_spider/pl_spider_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919429, "label": "pl_tapir/pl_tapir_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919431, "label": "pl_shoebill/pl_tail_quill", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919432, "label": "pl_lilyray/pl_lilyray_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919437, "label": "pl_x_chili/pl_x_chili_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919437, "label": "pl_koala/pl_koala_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919438, "label": "pl_cumulus/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919445, "label": "pl_pelican/pl_pelican_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919446, "label": "pl_koala/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919455, "label": "pl_dustdevil/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919466, "label": "pl_cricket/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919467, "label": "pl_manatee/pl_tail_propeller", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919469, "label": "pl_x_puffin/pl_x_puffin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919479, "label": "pl_shoebill/pl_tail_comet", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919482, "label": "pl_tatzel/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919483, "label": "pl_tapir/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919488, "label": "pl_meerkat/pl_pinwheel", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919493, "label": "pl_scorpion/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919500, "label": "pl_lilyray/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919501, "label": "pl_x_lionfish/pl_x_lionfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919502, "label": "pl_koala/pl_koala_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919507, "label": "pl_kiwi/pl_kiwi_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919512, "label": "pl_koala/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919517, "label": "pl_cuttle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919517, "label": "pl_shoebill/pl_shoebill_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919526, "label": "pl_hermit/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919530, "label": "pl_teapot/pl_chef_hat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919540, "label": "pl_cinderhound/pl_cinderhound_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919540, "label": "pl_pelican/pl_pelican_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919542, "label": "pl_tatzel/pl_tatzel_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919551, "label": "pl_cricket/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919552, "label": "pl_snowcat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919553, "label": "pl_chipmunk/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919553, "label": "pl_morel/pl_morel_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919559, "label": "pl_tasdevil/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919571, "label": "pl_skullbat/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919572, "label": "pl_scorpion/pl_scorpion_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919576, "label": "pl_chipmunk/pl_chipmunk_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919589, "label": "pl_tapir/pl_tapir_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919595, "label": "pl_cassowary/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919602, "label": "pl_cricket/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919605, "label": "pl_stick/pl_stick_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919606, "label": "pl_tasdevil/pl_tasdevil_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919609, "label": "pl_hermit/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919610, "label": "pl_cricket/pl_cricket_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919617, "label": "pl_cricket/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919622, "label": "pl_lilyray/pl_lilyray_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919624, "label": "pl_chipmunk/pl_chipmunk_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919646, "label": "pl_chipmunk/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919647, "label": "pl_mole/pl_mole_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919649, "label": "pl_hammerhead/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919651, "label": "pl_tombstone/pl_tombstone_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919652, "label": "pl_cricket/pl_cricket_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919653, "label": "pl_hammerhead/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919655, "label": "pl_hammerhead/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919664, "label": "pl_tapir/pl_tapir_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919677, "label": "pl_inchworm/pl_inchworm_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919678, "label": "pl_heavybag/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919679, "label": "pl_hammerhead/pl_hammerhead_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919687, "label": "pl_hammerhead/pl_hammerhead_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919697, "label": "pl_heavybag/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919700, "label": "pl_smog/pl_smog_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919703, "label": "pl_heavybag/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919706, "label": "pl_shoebill/pl_jetpack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919706, "label": "pl_aphid/pl_aphid_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919708, "label": "pl_heavybag/pl_heavybag_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919709, "label": "pl_phoenix/pl_phoenix_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919715, "label": "pl_heavybag/pl_heavybag_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919718, "label": "pl_aphid/pl_aphid_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919733, "label": "pl_mola/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919737, "label": "pl_mola/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919739, "label": "pl_snowcat/pl_snowcat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919745, "label": "pl_quetzal/pl_quetzal_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919747, "label": "pl_mola/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919767, "label": "pl_mola/pl_mola_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919769, "label": "pl_mola/pl_mola_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919770, "label": "pl_nutcracker/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919774, "label": "pl_nutcracker/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919777, "label": "pl_kite/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919796, "label": "pl_komodo/pl_komodo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919797, "label": "pl_nutcracker/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919800, "label": "pl_onigiri/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919808, "label": "pl_onigiri/pl_onigiri_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919809, "label": "pl_nutcracker/pl_nutcracker_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919811, "label": "pl_onigiri/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919812, "label": "pl_onigiri/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919816, "label": "pl_nutcracker/pl_nutcracker_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919823, "label": "pl_cinderhound/pl_cinderhound_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919830, "label": "pl_tombstone/pl_tombstone_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919842, "label": "pl_dracobeetle/pl_dracobeetle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919842, "label": "pl_quail/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919864, "label": "pl_frigate/pl_frigate_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919865, "label": "pl_tasdevil/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919866, "label": "pl_quail/pl_quail_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919866, "label": "pl_quail/pl_quail_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919868, "label": "pl_quail/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919875, "label": "pl_quail/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919880, "label": "pl_ropefist/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919883, "label": "pl_aphid/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919889, "label": "pl_mole/pl_mole_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919895, "label": "pl_ropefist/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919901, "label": "pl_ropefist/pl_ropefist_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919908, "label": "pl_ropefist/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919912, "label": "pl_ropefist/pl_ropefist_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919913, "label": "pl_secretary/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919922, "label": "pl_y_broccoli/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919924, "label": "pl_snowcat/pl_snowcat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919925, "label": "pl_secretary/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919931, "label": "pl_onigiri/pl_onigiri_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919935, "label": "pl_secretary/pl_secretary_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919937, "label": "pl_secretary/pl_secretary_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919938, "label": "pl_secretary/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919945, "label": "pl_sockworm/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919947, "label": "pl_y_lotus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919947, "label": "pl_sockworm/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919954, "label": "pl_y_dragonfruit/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919963, "label": "pl_sockworm/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919964, "label": "pl_sockworm/pl_sockworm_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919968, "label": "pl_wombat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919975, "label": "pl_wombat/pl_wombat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919980, "label": "pl_sockworm/pl_sockworm_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919990, "label": "pl_y_mongoose/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919992, "label": "pl_wombat/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790919995, "label": "pl_y_match/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920000, "label": "pl_wombat/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920002, "label": "pl_stick/pl_stick_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920005, "label": "pl_bonesnake/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920006, "label": "pl_flyfish/pl_flyfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920009, "label": "pl_tapir/pl_tapir_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920013, "label": "pl_wombat/pl_wombat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920018, "label": "pl_hoatzin/pl_hoatzin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920029, "label": "pl_y_toadstool/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920029, "label": "pl_y_opossum/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920035, "label": "pl_snowcat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920042, "label": "pl_tasdevil/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920043, "label": "pl_tasdevil/pl_tasdevil_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920046, "label": "pl_y_icecube/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920046, "label": "pl_teapot/pl_lure_bulb", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920047, "label": "pl_nudibranch/pl_nudibranch_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920055, "label": "pl_y_ammonite/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920061, "label": "pl_y_toaster/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920067, "label": "pl_tapir/pl_tapir_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920067, "label": "pl_y_dungbeetle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920069, "label": "pl_flutter/pl_flutter_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920077, "label": "pl_bonesnake/pl_bonesnake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920079, "label": "pl_hermit/pl_hermit_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920088, "label": "pl_kindle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920089, "label": "pl_aphid/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920098, "label": "pl_platypus/pl_platypus_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920101, "label": "pl_cuttle/pl_cuttle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920102, "label": "pl_ptero/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920115, "label": "pl_tasdevil/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920115, "label": "pl_cumulus/pl_cumulus_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920118, "label": "pl_y_gull/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920121, "label": "pl_hoatzin/pl_hoatzin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920145, "label": "pl_y_frilldrake/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920149, "label": "pl_weevil/pl_mohawk", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920150, "label": "pl_ventangler/pl_ventangler_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920151, "label": "pl_hummer/pl_hummer_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920160, "label": "pl_glider/pl_glider_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920163, "label": "pl_dartfrog/pl_dartfrog_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920172, "label": "pl_centipede/pl_centipede_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920174, "label": "pl_dustdevil/pl_dustdevil_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920176, "label": "pl_tombstone/pl_tombstone_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920182, "label": "pl_aphid/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920184, "label": "pl_spectercat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920184, "label": "pl_y_anemone/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920185, "label": "pl_volcano/pl_volcano_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920186, "label": "pl_magnet/pl_magnet_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920193, "label": "pl_y_ladybug/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920205, "label": "pl_kite/pl_kite_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920212, "label": "pl_platypus/pl_platypus_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920212, "label": "pl_mosquito/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920217, "label": "pl_earwig/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920219, "label": "pl_coconut/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920221, "label": "pl_snowcat/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920223, "label": "pl_bonesnake/pl_bonesnake_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920227, "label": "pl_kite/pl_kite_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920231, "label": "pl_boatman/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920231, "label": "pl_cornhen/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920232, "label": "pl_cabbage/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920245, "label": "pl_spittle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920247, "label": "pl_flyfish/pl_flyfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920250, "label": "pl_topiary/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920251, "label": "pl_y_candle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920251, "label": "pl_silverfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920261, "label": "pl_kindle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920269, "label": "pl_pangolin/pl_tail_cattail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920273, "label": "pl_spectercat/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920279, "label": "pl_spectercat/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920283, "label": "pl_velvetmite/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920284, "label": "pl_manatee/pl_beret", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920289, "label": "pl_centipede/pl_centipede_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920300, "label": "pl_y_toadstool/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920302, "label": "pl_cricket/pl_cricket_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920304, "label": "pl_bamboo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920307, "label": "pl_meerkat/pl_horn_unicorn", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920313, "label": "pl_ropefist/pl_ropefist_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920313, "label": "pl_kindle/pl_kindle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920315, "label": "pl_shoebill/pl_tail_kite", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920319, "label": "pl_kindle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920327, "label": "pl_onigiri/pl_onigiri_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920330, "label": "pl_weevil/pl_moss_mantle", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920337, "label": "pl_flea/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920341, "label": "pl_kindle/pl_kindle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920344, "label": "pl_y_ammonite/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920346, "label": "pl_y_ammonite/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920349, "label": "pl_spectercat/pl_spectercat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920350, "label": "pl_meerkat/pl_fan_folding", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920351, "label": "pl_spectercat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920357, "label": "pl_mandrake/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920365, "label": "pl_ropefist/pl_ropefist_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920372, "label": "pl_y_anemone/pl_y_anemone_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920378, "label": "pl_y_anemone/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920383, "label": "pl_jadecoil/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920384, "label": "pl_y_broccoli/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920387, "label": "pl_auger/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920391, "label": "pl_hammerhead/pl_hammerhead_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920394, "label": "pl_condor/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920395, "label": "pl_y_anemone/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920398, "label": "pl_y_broccoli/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920405, "label": "pl_lungfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920410, "label": "pl_y_ammonite/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920419, "label": "pl_y_broccoli/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920421, "label": "pl_y_broccoli/pl_y_broccoli_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920425, "label": "pl_y_broccoli/pl_y_broccoli_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920428, "label": "pl_roadrunner/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920429, "label": "pl_y_candle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920437, "label": "pl_urchin/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920447, "label": "pl_y_candle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920450, "label": "pl_spectercat/pl_spectercat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920451, "label": "pl_molecricket/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920454, "label": "pl_y_dragonfruit/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920455, "label": "pl_y_candle/pl_y_candle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920456, "label": "pl_y_candle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920465, "label": "pl_y_candle/pl_y_candle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920465, "label": "pl_bulldozer/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920473, "label": "pl_amber/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920475, "label": "pl_y_dragonfruit/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920489, "label": "pl_y_dragonfruit/pl_y_dragonfruit_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920494, "label": "pl_y_dungbeetle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920496, "label": "pl_dashbird/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920502, "label": "pl_mitten/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920502, "label": "pl_y_anemone/pl_y_anemone_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920508, "label": "pl_y_dragonfruit/pl_y_dragonfruit_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920515, "label": "pl_y_dungbeetle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920519, "label": "pl_outlet/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920522, "label": "pl_y_dragonfruit/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920534, "label": "pl_snowmonkey/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920534, "label": "pl_polar/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920539, "label": "pl_y_dungbeetle/pl_y_dungbeetle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920548, "label": "pl_y_frilldrake/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920550, "label": "pl_y_frilldrake/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920558, "label": "pl_strider/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920559, "label": "pl_robodog/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920565, "label": "pl_y_dungbeetle/pl_y_dungbeetle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920569, "label": "pl_y_frilldrake/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920579, "label": "pl_y_dungbeetle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920581, "label": "pl_y_frilldrake/pl_y_frilldrake_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920584, "label": "pl_tarotcard/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920593, "label": "pl_tadpole/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920599, "label": "pl_y_gull/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920609, "label": "pl_y_gull/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920616, "label": "pl_y_gull/pl_y_gull_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920617, "label": "pl_teslacoil/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920619, "label": "pl_y_gull/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920622, "label": "pl_moose/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920622, "label": "pl_chipmunk/pl_chipmunk_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920627, "label": "pl_y_gull/pl_y_gull_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920646, "label": "pl_genie/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920649, "label": "pl_y_icecube/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920651, "label": "pl_catfish/pl_catfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920661, "label": "pl_y_frilldrake/pl_y_frilldrake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920664, "label": "pl_coilfist/pl_coilfist_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920674, "label": "pl_kasa/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920676, "label": "pl_y_icecube/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920677, "label": "pl_y_icecube/pl_y_icecube_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920680, "label": "pl_chain/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920680, "label": "pl_cricket/pl_cricket_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920684, "label": "pl_y_icecube/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920686, "label": "pl_y_ladybug/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920688, "label": "pl_y_icecube/pl_y_icecube_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920694, "label": "pl_y_ladybug/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920704, "label": "pl_pitohui/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920706, "label": "pl_y_ladybug/pl_y_ladybug_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920716, "label": "pl_pegasus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920723, "label": "pl_y_ladybug/pl_y_ladybug_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920723, "label": "pl_y_lotus/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920726, "label": "pl_y_lotus/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920737, "label": "pl_scarab/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920738, "label": "pl_y_lotus/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920742, "label": "pl_starfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920743, "label": "pl_daruma/pl_daruma_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920743, "label": "pl_redpanda/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920747, "label": "pl_dodo/pl_pennant", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920755, "label": "pl_y_match/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920756, "label": "pl_y_match/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920760, "label": "pl_seacucumber/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920761, "label": "pl_y_lotus/pl_y_lotus_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920773, "label": "pl_y_match/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920777, "label": "pl_skywhale/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920784, "label": "pl_solenodon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920790, "label": "pl_y_mongoose/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920796, "label": "pl_ape/pl_tail_glove", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920797, "label": "pl_y_match/pl_y_match_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920798, "label": "pl_meerkat/pl_snowflake_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920802, "label": "pl_dodo/pl_dodo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920809, "label": "pl_y_match/pl_y_match_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920818, "label": "pl_taiko/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920819, "label": "pl_y_mongoose/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920823, "label": "pl_y_mongoose/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920834, "label": "pl_gamecock/pl_gamecock_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920834, "label": "pl_meerkat/pl_straw_hat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920835, "label": "pl_meerkat/pl_winged_ears", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920839, "label": "pl_y_mongoose/pl_y_mongoose_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920844, "label": "pl_hammerhead/pl_hammerhead_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920845, "label": "pl_y_opossum/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920848, "label": "pl_y_mongoose/pl_y_mongoose_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920851, "label": "pl_dragonfly/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920867, "label": "pl_heavybag/pl_heavybag_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920868, "label": "pl_y_opossum/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920872, "label": "pl_meerkat/pl_tail_swallow", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920872, "label": "pl_y_opossum/pl_y_opossum_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920873, "label": "pl_y_opossum/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920877, "label": "pl_meerkat/pl_meerkat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920881, "label": "pl_y_toadstool/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920886, "label": "pl_y_opossum/pl_y_opossum_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920897, "label": "pl_caddis/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920900, "label": "pl_nutcracker/pl_nutcracker_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920915, "label": "pl_pangolin/pl_miner_helmet", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920919, "label": "pl_y_toadstool/pl_y_toadstool_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920923, "label": "pl_pangolin/pl_tail_shovel", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920925, "label": "pl_neon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920927, "label": "pl_y_toadstool/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920931, "label": "pl_y_toadstool/pl_y_toadstool_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920934, "label": "pl_onigiri/pl_onigiri_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920949, "label": "pl_pangolin/pl_cactus_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920951, "label": "pl_marimo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920957, "label": "pl_y_toaster/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920967, "label": "pl_pangolin/pl_bonsai", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920968, "label": "pl_y_toadstool/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920969, "label": "pl_y_toaster/pl_y_toaster_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920973, "label": "pl_quail/pl_quail_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920976, "label": "pl_pup/pl_pup_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920983, "label": "pl_kindle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920986, "label": "pl_y_toaster/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920991, "label": "pl_y_toaster/pl_y_toaster_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920993, "label": "pl_y_toaster/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790920993, "label": "pl_buoy/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921004, "label": "pl_pangolin/pl_pangolin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921005, "label": "pl_mimic/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921008, "label": "pl_pangolin/pl_tail_boulders", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921009, "label": "pl_rhinobug/pl_rhinobug_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921011, "label": "pl_y_lotus/pl_y_lotus_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921018, "label": "pl_barrel/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921021, "label": "pl_raccoon/pl_raccoon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921024, "label": "pl_frogmouth/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921027, "label": "pl_alpaca/pl_alpaca_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921029, "label": "pl_ouija/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921042, "label": "pl_shoebill/pl_crescent_moon", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921044, "label": "pl_housefly/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921045, "label": "pl_barreleye/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921054, "label": "pl_jerboa/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921063, "label": "pl_ape/pl_headgear_boxing", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921069, "label": "pl_roo/pl_roo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921073, "label": "pl_secretary/pl_secretary_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921077, "label": "pl_coconut/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921078, "label": "pl_ferret/pl_ferret_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921079, "label": "pl_shoebill/pl_kabuto", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921085, "label": "pl_narwhal/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921088, "label": "pl_shoebill/pl_brain_dome", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921088, "label": "pl_hoopoe/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921090, "label": "pl_origami/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921104, "label": "pl_sockworm/pl_sockworm_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921123, "label": "pl_ant/pl_ant_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921123, "label": "pl_y_ammonite/pl_y_ammonite_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921125, "label": "pl_shoebill/pl_barbell", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921127, "label": "pl_tasdevil/pl_gloves_slung", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921128, "label": "pl_tasdevil/pl_tasdevil_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921134, "label": "pl_ropefist/pl_ropefist_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921136, "label": "pl_aphid/pl_aphid_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921142, "label": "pl_wombat/pl_party_hat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921142, "label": "pl_shoebill/pl_shoebill_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921146, "label": "pl_wolverine/pl_wolverine_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921156, "label": "pl_krill/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921166, "label": "pl_wombat/pl_wombat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921171, "label": "pl_teapot/pl_volcano_head", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921171, "label": "pl_wombat/pl_tail_heart", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921174, "label": "pl_knifefish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921177, "label": "pl_boatman/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921180, "label": "pl_teapot/pl_smokestack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921183, "label": "pl_flask/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921186, "label": "pl_bamboo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921193, "label": "pl_ptarmigan/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921195, "label": "pl_betta/pl_betta_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921197, "label": "pl_mammoth/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921209, "label": "pl_ape/pl_ape_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921216, "label": "pl_manatee/pl_dragon_mane", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921217, "label": "pl_teapot/pl_solar_panels", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921225, "label": "pl_teapot/pl_tesla_coil", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921230, "label": "pl_cabbage/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921236, "label": "pl_y_anemone/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921237, "label": "pl_meerkat/pl_bindle", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921239, "label": "pl_boatman/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921244, "label": "pl_cornhen/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921246, "label": "pl_eyespot/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921265, "label": "pl_silverfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921271, "label": "pl_cornhen/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921276, "label": "pl_weevil/pl_ladybug_cap", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921276, "label": "pl_teapot/pl_teapot_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921277, "label": "pl_chameleon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921279, "label": "pl_teapot/pl_blowhole_spout", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921282, "label": "pl_weevil/pl_tail_glowbulb", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921283, "label": "pl_cornhen/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921286, "label": "pl_cornhen/pl_cornhen_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921300, "label": "pl_draco/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921305, "label": "pl_cornhen/pl_cornhen_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921314, "label": "pl_weevil/pl_potion_flasks", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921319, "label": "pl_boatman/pl_boatman_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921329, "label": "pl_weevil/pl_stone_stack", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921330, "label": "pl_earwig/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921333, "label": "pl_weevil/pl_weevil_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921335, "label": "pl_weevil/pl_spore_puffs", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921336, "label": "pl_manatee/pl_tail_eastern_dragon", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921338, "label": "pl_coconut/pl_coconut_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921338, "label": "pl_earwig/pl_earwig_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921350, "label": "pl_earwig/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921356, "label": "pl_manatee/pl_pumpkin_hat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921360, "label": "pl_meerkat/pl_earmuffs", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921361, "label": "pl_earwig/pl_earwig_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921362, "label": "pl_dancedragon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921370, "label": "pl_catloaf/pl_catloaf_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921379, "label": "pl_flea/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921391, "label": "pl_y_ammonite/pl_y_ammonite_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921393, "label": "pl_flea/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921394, "label": "pl_y_ladybug/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921395, "label": "pl_flea/pl_flea_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921396, "label": "pl_flea/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921397, "label": "pl_coconut/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921398, "label": "pl_kindle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921409, "label": "pl_silverfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921416, "label": "pl_balloon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921416, "label": "pl_manatee/pl_manatee_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921424, "label": "pl_coconut/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921428, "label": "pl_mandrake/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921430, "label": "pl_flea/pl_flea_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921434, "label": "pl_mandrake/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921439, "label": "pl_mandrake/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921443, "label": "pl_silverfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921452, "label": "pl_hazmat/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921457, "label": "pl_y_gull/pl_y_gull_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921466, "label": "pl_mandrake/pl_mandrake_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921472, "label": "pl_marimo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921473, "label": "pl_silverfish/pl_silverfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921476, "label": "pl_marimo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921476, "label": "pl_mandrake/pl_mandrake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921483, "label": "pl_lamprey/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921486, "label": "pl_y_icecube/pl_y_icecube_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921497, "label": "pl_marimo/pl_marimo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921507, "label": "pl_marimo/pl_marimo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921508, "label": "pl_marimo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921511, "label": "pl_ant/pl_ant_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921513, "label": "pl_silverfish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921517, "label": "pl_cabbage/pl_cabbage_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921533, "label": "pl_manatee/pl_coffin_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921539, "label": "pl_silverfish/pl_silverfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921544, "label": "pl_mosquito/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921545, "label": "pl_mosquito/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921550, "label": "pl_mosquito/pl_mosquito_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921550, "label": "pl_bamboo/pl_bamboo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921558, "label": "pl_mosquito/pl_mosquito_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921560, "label": "pl_mosquito/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921573, "label": "pl_ghostkoi/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921574, "label": "pl_ropefist/pl_ropefist_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921579, "label": "pl_cabbage/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921583, "label": "pl_spittle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921583, "label": "pl_ape/pl_ape_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921584, "label": "pl_spittle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921587, "label": "pl_spittle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921588, "label": "pl_dodo/pl_pennant", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921596, "label": "pl_spittle/pl_spittle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921604, "label": "pl_armor/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921617, "label": "pl_topiary/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921621, "label": "pl_tasdevil/pl_tasdevil_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921626, "label": "pl_topiary/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921626, "label": "pl_catfish/pl_catfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921634, "label": "pl_topiary/pl_topiary_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921635, "label": "pl_mola/pl_mola_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921637, "label": "pl_topiary/pl_topiary_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921641, "label": "pl_sockworm/pl_sockworm_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921642, "label": "pl_spittle/pl_spittle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921652, "label": "pl_manatee/pl_tail_octopus", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921664, "label": "pl_velvetmite/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921668, "label": "pl_cabbage/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921671, "label": "pl_velvetmite/pl_velvetmite_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921671, "label": "pl_velvetmite/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921671, "label": "pl_velvetmite/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921675, "label": "pl_catloaf/pl_catloaf_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921677, "label": "pl_tasdevil/pl_gloves_slung", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921677, "label": "pl_coilfist/pl_coilfist_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921685, "label": "pl_bamboo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921697, "label": "pl_velvetmite/pl_velvetmite_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921707, "label": "pl_boatman/pl_boatman_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921710, "label": "pl_coconut/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921717, "label": "pl_bamboo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921717, "label": "pl_boatman/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921722, "label": "pl_cairn/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921725, "label": "pl_lithops/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921734, "label": "pl_y_broccoli/pl_y_broccoli_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921746, "label": "pl_y_ammonite/pl_y_ammonite_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921747, "label": "pl_coconut/pl_coconut_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921749, "label": "pl_cabbage/pl_cabbage_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921751, "label": "pl_ankylo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921752, "label": "pl_kindle/pl_kindle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921761, "label": "pl_roo/pl_roo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921770, "label": "pl_mourner/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921771, "label": "pl_draco/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921771, "label": "pl_y_toaster/pl_y_toaster_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921780, "label": "pl_bamboo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921792, "label": "pl_gharial/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921793, "label": "pl_shoebill/pl_brain_dome", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921794, "label": "pl_bamboo/pl_bamboo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921796, "label": "pl_pegasus/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921801, "label": "pl_blobfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921805, "label": "pl_ferret/pl_ferret_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921812, "label": "pl_pipe/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921814, "label": "pl_rhinobug/pl_rhinobug_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921815, "label": "pl_bombardier/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921817, "label": "pl_teapot/pl_blowhole_spout", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921818, "label": "pl_manatee/pl_manatee_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921826, "label": "pl_mask/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921829, "label": "pl_kindle/pl_kindle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921840, "label": "pl_topiary/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921857, "label": "pl_balloon/pl_balloon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921859, "label": "pl_dancedragon/pl_dancedragon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921863, "label": "pl_manatee/pl_dragon_mane", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921864, "label": "pl_dancedragon/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921868, "label": "pl_balloon/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921871, "label": "pl_balloon/pl_balloon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921877, "label": "pl_balloon/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921880, "label": "pl_dancedragon/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921883, "label": "pl_coconut/pl_coconut_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921886, "label": "pl_barrel/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921907, "label": "pl_dragonfly/pl_dragonfly_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921908, "label": "pl_flask/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921909, "label": "pl_flask/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921910, "label": "pl_dragonfly/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921912, "label": "pl_dragonfly/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921917, "label": "pl_kindle/pl_kindle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921920, "label": "pl_dragonfly/pl_dragonfly_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921922, "label": "pl_flask/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921938, "label": "pl_flask/pl_flask_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921942, "label": "pl_bombardier/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921943, "label": "pl_hoopoe/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921947, "label": "pl_hoopoe/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921951, "label": "pl_barreleye/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921953, "label": "pl_flask/pl_flask_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921967, "label": "pl_kasa/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921968, "label": "pl_kasa/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921972, "label": "pl_armor/pl_armor_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921977, "label": "pl_kasa/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921978, "label": "pl_hoopoe/pl_hoopoe_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921978, "label": "pl_hoopoe/pl_hoopoe_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790921983, "label": "pl_bombardier/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922005, "label": "pl_lithops/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922005, "label": "pl_bombardier/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922014, "label": "pl_lithops/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922015, "label": "pl_frogmouth/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922030, "label": "pl_lithops/pl_lithops_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922033, "label": "pl_kasa/pl_kasa_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922033, "label": "pl_lithops/pl_lithops_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922039, "label": "pl_kasa/pl_kasa_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922046, "label": "pl_bombardier/pl_bombardier_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922051, "label": "pl_bombardier/pl_bombardier_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922056, "label": "pl_frogmouth/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922061, "label": "pl_lithops/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922067, "label": "pl_mammoth/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922068, "label": "pl_mammoth/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922068, "label": "pl_mammoth/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922079, "label": "pl_mammoth/pl_mammoth_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922080, "label": "pl_chain/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922098, "label": "pl_frogmouth/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922100, "label": "pl_mammoth/pl_mammoth_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922109, "label": "pl_origami/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922114, "label": "pl_chain/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922118, "label": "pl_origami/pl_origami_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922127, "label": "pl_origami/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922131, "label": "pl_origami/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922135, "label": "pl_origami/pl_origami_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922160, "label": "pl_redpanda/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922161, "label": "pl_frogmouth/pl_frogmouth_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922163, "label": "pl_redpanda/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922188, "label": "pl_chain/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922188, "label": "pl_redpanda/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922190, "label": "pl_redpanda/pl_redpanda_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922193, "label": "pl_redpanda/pl_redpanda_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922194, "label": "pl_frogmouth/pl_frogmouth_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922197, "label": "pl_chain/pl_chain_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922202, "label": "pl_skywhale/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922210, "label": "pl_skywhale/pl_skywhale_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922214, "label": "pl_skywhale/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922246, "label": "pl_chain/pl_chain_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922259, "label": "pl_skywhale/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922277, "label": "pl_taiko/pl_taiko_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922298, "label": "pl_skywhale/pl_skywhale_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922305, "label": "pl_genie/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922307, "label": "pl_taiko/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922311, "label": "pl_polar/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922314, "label": "pl_barrel/pl_barrel_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922326, "label": "pl_ghostkoi/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922327, "label": "pl_ghostkoi/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922331, "label": "pl_buoy/pl_buoy_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922340, "label": "pl_balloon/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922347, "label": "pl_taiko/pl_taiko_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922353, "label": "pl_taiko/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922364, "label": "pl_genie/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922381, "label": "pl_ghostkoi/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922386, "label": "pl_taiko/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922391, "label": "pl_gharial/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922393, "label": "pl_pegasus/pl_pegasus_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922399, "label": "pl_blobfish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922399, "label": "pl_armor/pl_armor_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922401, "label": "pl_ghostkoi/pl_ghostkoi_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922423, "label": "pl_genie/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922424, "label": "pl_moloch/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922424, "label": "pl_hazmat/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922427, "label": "pl_blobfish/pl_blobfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922428, "label": "pl_hazmat/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922432, "label": "pl_ghostkoi/pl_ghostkoi_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922437, "label": "pl_gharial/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922458, "label": "pl_hazmat/pl_hazmat_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922460, "label": "pl_qilin/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922466, "label": "pl_gharial/pl_gharial_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922468, "label": "pl_cub/pl_cub_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922477, "label": "pl_gharial/pl_gharial_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922477, "label": "pl_genie/pl_genie_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922478, "label": "pl_hazmat/pl_hazmat_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922482, "label": "pl_mimic/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922491, "label": "pl_krill/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922495, "label": "pl_heavybag/pl_heavybag_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922499, "label": "pl_krill/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922501, "label": "pl_drake/pl_drake_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922512, "label": "pl_sockeye/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922515, "label": "pl_mimic/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922517, "label": "pl_genie/pl_genie_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922524, "label": "pl_mimic/pl_mimic_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922527, "label": "pl_krill/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922537, "label": "pl_mimic/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922538, "label": "pl_krill/pl_krill_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922546, "label": "pl_krill/pl_krill_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922553, "label": "pl_axolotl/pl_axolotl_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922557, "label": "pl_solifuge/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922558, "label": "pl_mourner/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922563, "label": "pl_housefly/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922565, "label": "pl_lamprey/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922566, "label": "pl_mimic/pl_mimic_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922587, "label": "pl_mourner/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922590, "label": "pl_tuatara/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922592, "label": "pl_lamprey/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922595, "label": "pl_eel/pl_eel_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922611, "label": "pl_mourner/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922615, "label": "pl_lamprey/pl_lamprey_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922622, "label": "pl_duck/pl_duck_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922624, "label": "pl_mourner/pl_mourner_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922636, "label": "pl_barrel/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922642, "label": "pl_lamprey/pl_lamprey_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922644, "label": "pl_ouija/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922656, "label": "pl_housefly/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922664, "label": "pl_fox/pl_fox_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922665, "label": "pl_ouija/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922667, "label": "pl_mourner/pl_mourner_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922670, "label": "pl_fawn/pl_fawn_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922675, "label": "pl_lamprey/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922686, "label": "pl_mitten/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922686, "label": "pl_ouija/pl_ouija_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922687, "label": "pl_ouija/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922693, "label": "pl_housefly/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922706, "label": "pl_mitten/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922718, "label": "pl_grub/pl_grub_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922719, "label": "pl_ouroboros/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922722, "label": "pl_mitten/pl_mitten_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922724, "label": "pl_guppy/pl_guppy_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922728, "label": "pl_pipe/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922730, "label": "pl_pipe/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922737, "label": "pl_mitten/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922749, "label": "pl_ouija/pl_ouija_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922757, "label": "pl_blobfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922760, "label": "pl_hawk/pl_hawk_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922762, "label": "pl_cornhen/pl_cornhen_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922762, "label": "pl_imp/pl_imp_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922768, "label": "pl_mitten/pl_mitten_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922780, "label": "pl_moose/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922792, "label": "pl_pipe/pl_pipe_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922794, "label": "pl_lizard/pl_lizard_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922796, "label": "pl_moose/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922798, "label": "pl_mask/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922803, "label": "pl_pitohui/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922807, "label": "pl_pipe/pl_pipe_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922810, "label": "pl_moose/pl_moose_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922822, "label": "pl_moose/pl_moose_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922830, "label": "pl_pitohui/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922846, "label": "pl_narwhal/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922849, "label": "pl_monk/pl_monk_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922850, "label": "pl_neon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922870, "label": "pl_pitohui/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922875, "label": "pl_ptarmigan/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922880, "label": "pl_pitohui/pl_pitohui_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922885, "label": "pl_narwhal/pl_narwhal_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922891, "label": "pl_pitohui/pl_pitohui_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922895, "label": "pl_owl/pl_owl_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922898, "label": "pl_moose/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922909, "label": "pl_narwhal/pl_narwhal_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922912, "label": "pl_mochi/pl_mochi_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922918, "label": "pl_scarab/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922932, "label": "pl_scarab/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922932, "label": "pl_pebble/pl_pebble_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922933, "label": "pl_ptarmigan/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922937, "label": "pl_scarab/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922943, "label": "pl_ptarmigan/pl_ptarmigan_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922946, "label": "pl_seal/pl_seal_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922952, "label": "pl_ptarmigan/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922967, "label": "pl_ptarmigan/pl_ptarmigan_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922971, "label": "pl_buoy/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922975, "label": "pl_slime/pl_slime_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922979, "label": "pl_seacucumber/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922979, "label": "pl_snake/pl_snake_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922984, "label": "pl_scarab/pl_scarab_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922985, "label": "pl_snowmonkey/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790922988, "label": "pl_snowmonkey/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923009, "label": "pl_snowmonkey/pl_snowmonkey_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923013, "label": "pl_wisp/pl_wisp_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923013, "label": "pl_tadpole/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923014, "label": "pl_scarab/pl_scarab_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923017, "label": "pl_seacucumber/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923022, "label": "pl_hazmat/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923035, "label": "pl_tadpole/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923036, "label": "pl_snowmonkey/pl_snowmonkey_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923054, "label": "pl_brazier/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923055, "label": "pl_worm/pl_worm_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923058, "label": "pl_tadpole/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923058, "label": "pl_sprite/pl_sprite_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923059, "label": "pl_tadpole/pl_tadpole_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923072, "label": "pl_seacucumber/pl_seacucumber_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923080, "label": "pl_tadpole/pl_tadpole_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923080, "label": "pl_chameleon/pl_chameleon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923090, "label": "pl_pegasus/pl_pegasus_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923096, "label": "pl_housefly/pl_housefly_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923101, "label": "pl_barreleye/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923112, "label": "pl_boar/pl_boar_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923114, "label": "pl_wyrm/pl_wyrm_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923119, "label": "pl_pangolin/pl_pangolin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923126, "label": "pl_draco/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923126, "label": "pl_armor/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923139, "label": "pl_robodog/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923140, "label": "pl_strider/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923142, "label": "pl_robodog/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923152, "label": "pl_x_bagworm/pl_x_bagworm_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923155, "label": "pl_x_bison/pl_x_bison_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923158, "label": "pl_x_basilisk/pl_x_basilisk_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923160, "label": "pl_housefly/pl_housefly_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923176, "label": "pl_robodog/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923177, "label": "pl_barrel/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923177, "label": "pl_lavalamp/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923189, "label": "pl_draco/pl_draco_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923190, "label": "pl_armor/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923192, "label": "pl_robodog/pl_robodog_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923197, "label": "pl_robodog/pl_robodog_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923199, "label": "pl_incense/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923210, "label": "pl_blobfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923214, "label": "pl_x_chili/pl_x_chili_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923215, "label": "pl_tarotcard/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923217, "label": "pl_x_clam/pl_x_clam_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923219, "label": "pl_x_cactus/pl_x_cactus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923230, "label": "pl_tarotcard/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923231, "label": "pl_dashbird/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923235, "label": "pl_pegasus/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923235, "label": "pl_tarotcard/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923241, "label": "pl_bunny/pl_bunny_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923259, "label": "pl_tarotcard/pl_tarotcard_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923261, "label": "pl_x_ibex/pl_x_ibex_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923264, "label": "pl_x_dragturtle/pl_x_dragturtle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923266, "label": "pl_outlet/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923268, "label": "pl_x_hedgehog/pl_x_hedgehog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923272, "label": "pl_seacucumber/pl_seacucumber_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923277, "label": "pl_tarotcard/pl_tarotcard_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923279, "label": "pl_x_lionfish/pl_x_lionfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923281, "label": "pl_buoy/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923281, "label": "pl_chameleon/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923297, "label": "pl_dino/pl_dino_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923306, "label": "pl_x_moai/pl_x_moai_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923307, "label": "pl_x_loris/pl_x_loris_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923318, "label": "pl_earwig/pl_earwig_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923319, "label": "pl_barreleye/pl_barreleye_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923321, "label": "pl_x_potato/pl_x_potato_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923322, "label": "pl_x_puffin/pl_x_puffin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923323, "label": "pl_dromaeo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923328, "label": "pl_boatman/pl_boatman_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923343, "label": "pl_x_mummy/pl_x_mummy_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923348, "label": "pl_x_toucan/pl_x_toucan_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923348, "label": "pl_hammerhead/pl_hammerhead_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923348, "label": "pl_brawler/pl_brawler_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923349, "label": "pl_y_ammonite/pl_y_ammonite_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923353, "label": "pl_dancedragon/pl_dancedragon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923354, "label": "pl_y_anemone/pl_y_anemone_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923360, "label": "pl_y_broccoli/pl_y_broccoli_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923361, "label": "pl_cardinal/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923377, "label": "pl_y_candle/pl_y_candle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923382, "label": "pl_y_dungbeetle/pl_y_dungbeetle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923386, "label": "pl_teapot/pl_teapot_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923389, "label": "pl_barrel/pl_barrel_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923390, "label": "pl_chick/pl_chick_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923404, "label": "pl_y_gull/pl_y_gull_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923408, "label": "pl_barreleye/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923410, "label": "pl_y_icecube/pl_y_icecube_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923411, "label": "pl_y_frilldrake/pl_y_frilldrake_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923415, "label": "pl_y_dragonfruit/pl_y_dragonfruit_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923420, "label": "pl_gharial/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923428, "label": "pl_y_match/pl_y_match_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923435, "label": "pl_y_ladybug/pl_y_ladybug_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923441, "label": "pl_y_lotus/pl_y_lotus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923450, "label": "pl_y_mongoose/pl_y_mongoose_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923452, "label": "pl_cabbage/pl_cabbage_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923452, "label": "pl_y_opossum/pl_y_opossum_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923454, "label": "pl_teslacoil/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923458, "label": "pl_armor/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923462, "label": "pl_hourglass/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923482, "label": "pl_y_toaster/pl_y_toaster_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923490, "label": "pl_y_toadstool/pl_y_toadstool_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923492, "label": "pl_pangolin/pl_pangolin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923492, "label": "pl_hoard/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923494, "label": "pl_beetle/pl_beetle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923498, "label": "pl_chameleon/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923503, "label": "pl_chameleon/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923504, "label": "pl_crab/pl_crab_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923507, "label": "pl_pipe/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923519, "label": "pl_draco/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923523, "label": "pl_amber/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923524, "label": "pl_teslacoil/pl_teslacoil_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923529, "label": "pl_dashbird/pl_dashbird_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923534, "label": "pl_dashbird/pl_dashbird_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923536, "label": "pl_teslacoil/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923539, "label": "pl_arowana/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923540, "label": "pl_dashbird/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923552, "label": "pl_solenodon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923565, "label": "pl_ankylo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923566, "label": "pl_ankylo/pl_ankylo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923570, "label": "pl_chameleon/pl_chameleon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923575, "label": "pl_urchin/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923575, "label": "pl_dancedragon/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923577, "label": "pl_auger/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923581, "label": "pl_dashbird/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923585, "label": "pl_auger/pl_auger_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923590, "label": "pl_auger/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923592, "label": "pl_blobfish/pl_blobfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923600, "label": "pl_bulldozer/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923604, "label": "pl_teslacoil/pl_teslacoil_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923605, "label": "pl_ankylo/pl_ankylo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923608, "label": "pl_bulldozer/pl_bulldozer_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923614, "label": "pl_ankylo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923619, "label": "pl_bulldozer/pl_bulldozer_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923621, "label": "pl_dobsonfly/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923624, "label": "pl_caddis/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923630, "label": "pl_amber/pl_amber_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923634, "label": "pl_solenodon/pl_solenodon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923638, "label": "pl_caddis/pl_caddis_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923645, "label": "pl_cairn/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923650, "label": "pl_cabbage/pl_tail_pinecone", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923654, "label": "pl_caddis/pl_caddis_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923673, "label": "pl_cairn/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923673, "label": "pl_caddis/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923674, "label": "pl_cairn/pl_cairn_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923684, "label": "pl_solenodon/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923687, "label": "pl_condor/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923695, "label": "pl_dynamo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923696, "label": "pl_condor/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923705, "label": "pl_condor/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923709, "label": "pl_flea/pl_flea_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923712, "label": "pl_hourglass/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923723, "label": "pl_condor/pl_condor_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923728, "label": "pl_solenodon/pl_solenodon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923738, "label": "pl_hourglass/pl_hourglass_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923742, "label": "pl_flytrap/pl_flytrap_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923742, "label": "pl_hourglass/pl_hourglass_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923744, "label": "pl_condor/pl_condor_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923747, "label": "pl_pegasus/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923758, "label": "pl_jadecoil/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923761, "label": "pl_jadecoil/pl_jadecoil_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923780, "label": "pl_jerboa/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923783, "label": "pl_jadecoil/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923792, "label": "pl_jerboa/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923794, "label": "pl_jerboa/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923802, "label": "pl_jerboa/pl_jerboa_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923805, "label": "pl_teslacoil/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923805, "label": "pl_gourd/pl_gourd_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923817, "label": "pl_urchin/pl_urchin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923818, "label": "pl_jerboa/pl_jerboa_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923821, "label": "pl_lungfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923839, "label": "pl_lungfish/pl_lungfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923846, "label": "pl_molecricket/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923851, "label": "pl_molecricket/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923855, "label": "pl_lungfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923859, "label": "pl_teapot/pl_teapot_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923859, "label": "pl_molecricket/pl_molecricket_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923860, "label": "pl_buoy/pl_buoy_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923865, "label": "pl_lungfish/pl_lungfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923868, "label": "pl_inchworm/pl_inchworm_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923879, "label": "pl_roadrunner/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923889, "label": "pl_molecricket/pl_molecricket_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923889, "label": "pl_roadrunner/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923893, "label": "pl_urchin/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923898, "label": "pl_roadrunner/pl_roadrunner_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923905, "label": "pl_boatman/pl_boatman_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923909, "label": "pl_popcorn/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923911, "label": "pl_roadrunner/pl_roadrunner_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923913, "label": "pl_roadrunner/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923922, "label": "pl_lilyray/pl_lilyray_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923925, "label": "pl_draco/pl_draco_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923927, "label": "pl_ankylo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923927, "label": "pl_bee/pl_bee_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923945, "label": "pl_urchin/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923947, "label": "pl_mandrake/pl_mandrake_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923951, "label": "pl_eyespot/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923951, "label": "pl_solenodon/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923951, "label": "pl_cabbage/pl_cabbage_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923953, "label": "pl_dimetro/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923960, "label": "pl_mantis/pl_mantis_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923965, "label": "pl_cornhen/pl_cornhen_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923967, "label": "pl_solenodon/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923974, "label": "pl_rocket/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923979, "label": "pl_radio/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923983, "label": "pl_auger/pl_auger_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790923992, "label": "pl_marimo/pl_marimo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924006, "label": "pl_icefish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924013, "label": "pl_barreleye/pl_barreleye_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924019, "label": "pl_nymph/pl_nymph_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924019, "label": "pl_mosquito/pl_mosquito_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924019, "label": "pl_urchin/pl_urchin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924022, "label": "pl_igloo/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924029, "label": "pl_teslacoil/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924049, "label": "pl_earwig/pl_earwig_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924050, "label": "pl_jadecoil/pl_jadecoil_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924053, "label": "pl_bamboo/pl_bamboo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924056, "label": "pl_gharial/pl_gharial_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924063, "label": "pl_grub/pl_grub_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924064, "label": "pl_morel/pl_morel_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924068, "label": "pl_amber/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924073, "label": "pl_silverfish/pl_silverfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924073, "label": "pl_sloth/pl_brambles_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924076, "label": "pl_frogmouth/pl_frogmouth_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924083, "label": "pl_mochi/pl_mochi_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924086, "label": "pl_snail/pl_snail_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924095, "label": "pl_brazier/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924102, "label": "pl_spider/pl_spider_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924105, "label": "pl_owl/pl_owl_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924109, "label": "pl_origami/pl_origami_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924112, "label": "pl_icicle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924116, "label": "pl_topiary/pl_dandelion_puff", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924119, "label": "pl_stick/pl_stick_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924132, "label": "pl_spittle/pl_spittle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924140, "label": "pl_manatee/pl_ears_cat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924143, "label": "pl_worm/pl_worm_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924146, "label": "pl_slime/pl_slime_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924153, "label": "pl_velvetmite/pl_wings_butterfly", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924154, "label": "pl_chameleon/pl_chameleon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924161, "label": "pl_velvetmite/pl_velvetmite_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924165, "label": "pl_vine/pl_vine_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924174, "label": "pl_bee/pl_bee_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924176, "label": "pl_manatee/pl_tail_fluke", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924176, "label": "pl_x_basilisk/pl_x_basilisk_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924201, "label": "pl_pinefinch/pl_pinefinch_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924205, "label": "pl_x_cactus/pl_x_cactus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924209, "label": "pl_pangolin/pl_tufts_shoulder", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924211, "label": "pl_pangolin/pl_cowlick_curl", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924216, "label": "pl_x_clam/pl_x_clam_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924220, "label": "pl_meerkat/pl_star_glasses", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924221, "label": "pl_imp/pl_imp_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924242, "label": "pl_x_moai/pl_x_moai_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924249, "label": "pl_sloth/pl_sloth_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924259, "label": "pl_x_toucan/pl_x_toucan_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924260, "label": "pl_cicada/pl_cicada_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924262, "label": "pl_pangolin/pl_tail_blossom", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924268, "label": "pl_pangolin/pl_wings_leaf", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924269, "label": "pl_x_ibex/pl_x_ibex_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924270, "label": "pl_coconut/pl_coconut_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924276, "label": "pl_y_candle/pl_y_candle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924278, "label": "pl_x_mummy/pl_x_mummy_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924292, "label": "pl_brawler/pl_brawler_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924293, "label": "pl_topiary/pl_topiary_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924312, "label": "pl_shoebill/pl_laurel", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924314, "label": "pl_shoebill/pl_ruff_feather", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924316, "label": "pl_balloon/pl_balloon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924317, "label": "pl_y_lotus/pl_y_lotus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924321, "label": "pl_seacucumber/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924335, "label": "pl_meerkat/pl_teddy_bear", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924336, "label": "pl_hawk/pl_hawk_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924337, "label": "pl_y_match/pl_y_match_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924341, "label": "pl_shoebill/pl_wings_origami", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924347, "label": "pl_y_mongoose/pl_y_mongoose_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924348, "label": "pl_duck/pl_duck_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924355, "label": "pl_knifefish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924356, "label": "pl_shoebill/pl_tail_horsetail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924360, "label": "pl_y_opossum/pl_y_opossum_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924360, "label": "pl_teapot/pl_jester_hat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924360, "label": "pl_teapot/pl_hibiscus", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924361, "label": "pl_handheld/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924387, "label": "pl_teapot/pl_tail_lollipop", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924387, "label": "pl_y_toaster/pl_y_toaster_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924399, "label": "pl_chameleon/pl_chameleon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924406, "label": "pl_weevil/pl_shoulder_pads", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924406, "label": "pl_teapot/pl_tail_spring", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924406, "label": "pl_barreleye/pl_barreleye_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924415, "label": "pl_meerkat/pl_tail_twin", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924420, "label": "pl_weevil/pl_sprouts_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924421, "label": "pl_dromaeo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924423, "label": "pl_meerkat/pl_bandana", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924426, "label": "pl_weevil/pl_eyestalks", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924435, "label": "pl_cardinal/pl_cardinal_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924437, "label": "pl_knifefish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924449, "label": "pl_arowana/pl_arowana_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924452, "label": "pl_weevil/pl_tail_tassel", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924454, "label": "pl_arowana/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924461, "label": "pl_knifefish/pl_knifefish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924462, "label": "pl_mask/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924473, "label": "pl_dromaeo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924475, "label": "pl_outlet/pl_outlet_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924482, "label": "pl_origami/pl_origami_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924488, "label": "pl_dromaeo/pl_dromaeo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924490, "label": "pl_knifefish/pl_knifefish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924494, "label": "pl_dormouse/pl_dormouse_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924495, "label": "pl_dromaeo/pl_dromaeo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924501, "label": "pl_dromaeo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924502, "label": "pl_outlet/pl_outlet_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924503, "label": "pl_neon/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924517, "label": "pl_hoard/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924520, "label": "pl_taiko/pl_taiko_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924521, "label": "pl_cardinal/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924527, "label": "pl_hoard/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924528, "label": "pl_crab/pl_crab_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924528, "label": "pl_hoard/pl_hoard_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924540, "label": "pl_genie/pl_genie_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924542, "label": "pl_hoard/pl_hoard_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924555, "label": "pl_lavalamp/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924558, "label": "pl_dragonfly/pl_dragonfly_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924558, "label": "pl_pitohui/pl_pitohui_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924559, "label": "pl_lavalamp/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924559, "label": "pl_chick/pl_chick_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924562, "label": "pl_amber/pl_amber_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924579, "label": "pl_lavalamp/pl_lavalamp_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924585, "label": "pl_eyespot/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924590, "label": "pl_lavalamp/pl_lavalamp_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924595, "label": "pl_ouroboros/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924597, "label": "pl_ouroboros/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924598, "label": "pl_mask/pl_mask_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924600, "label": "pl_bulldozer/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924604, "label": "pl_mourner/pl_mourner_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924612, "label": "pl_y_icecube/pl_y_icecube_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924617, "label": "pl_ouroboros/pl_ouroboros_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924618, "label": "pl_cardinal/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924625, "label": "pl_ouroboros/pl_ouroboros_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924627, "label": "pl_popcorn/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924628, "label": "pl_mask/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924637, "label": "pl_popcorn/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924637, "label": "pl_eyespot/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924642, "label": "pl_cardinal/pl_cardinal_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924648, "label": "pl_starfish/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924655, "label": "pl_popcorn/pl_popcorn_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924667, "label": "pl_qilin/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924668, "label": "pl_qilin/pl_qilin_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924669, "label": "pl_qilin/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924671, "label": "pl_eyespot/pl_eyespot_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924678, "label": "pl_chameleon/pl_chameleon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924678, "label": "pl_sockeye/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924690, "label": "pl_meerkat/pl_feather_tuft_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924690, "label": "pl_qilin/pl_qilin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924702, "label": "pl_sockeye/pl_sockeye_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924705, "label": "pl_molecricket/pl_molecricket_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924705, "label": "pl_ghostkoi/pl_ghostkoi_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924706, "label": "pl_solifuge/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924708, "label": "pl_solifuge/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924712, "label": "pl_solifuge/pl_solifuge_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924713, "label": "pl_sockeye/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924728, "label": "pl_cub/pl_cub_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924731, "label": "pl_outlet/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924739, "label": "pl_stick/pl_stick_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924741, "label": "pl_eyespot/pl_eyespot_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924745, "label": "pl_cuttle/pl_cuttle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924747, "label": "pl_cassowary/pl_cassowary_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924747, "label": "pl_boatman/pl_boatman_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924749, "label": "pl_cardinal/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924751, "label": "pl_hourglass/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924761, "label": "pl_mask/pl_mask_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924764, "label": "pl_dragonfly/pl_dragonfly_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924769, "label": "pl_cairn/pl_cairn_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924777, "label": "pl_solifuge/pl_solifuge_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924789, "label": "pl_gargoyle/pl_gargoyle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924789, "label": "pl_neon/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924793, "label": "pl_moloch/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924795, "label": "pl_morel/pl_morel_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924797, "label": "pl_balloon/pl_balloon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924798, "label": "pl_glider/pl_glider_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924799, "label": "pl_neon/pl_neon_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924800, "label": "pl_cicada/pl_cicada_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924807, "label": "pl_frigate/pl_frigate_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924815, "label": "pl_amber/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924831, "label": "pl_hummer/pl_hummer_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924835, "label": "pl_gryphon/pl_gryphon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924838, "label": "pl_cumulus/pl_cumulus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924839, "label": "pl_jadecoil/pl_jadecoil_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924844, "label": "pl_eyespot/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924849, "label": "pl_ghostkoi/pl_ghostkoi_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924854, "label": "pl_polar/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924857, "label": "pl_hoopoe/pl_hoopoe_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924863, "label": "pl_polar/pl_polar_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924865, "label": "pl_kingfisher/pl_kingfisher_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924870, "label": "pl_kasa/pl_kasa_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924877, "label": "pl_kite/pl_kite_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924885, "label": "pl_koala/pl_koala_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924885, "label": "pl_urchin/pl_urchin_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924893, "label": "pl_draco/pl_draco_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924898, "label": "pl_mammoth/pl_mammoth_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924903, "label": "pl_lithops/pl_lithops_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924908, "label": "pl_strider/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924913, "label": "pl_arowana/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924922, "label": "pl_strider/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924923, "label": "pl_pegasus/pl_pegasus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924927, "label": "pl_platypus/pl_platypus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924928, "label": "pl_origami/pl_origami_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924932, "label": "pl_flyfish/pl_flyfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924936, "label": "pl_redpanda/pl_redpanda_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924940, "label": "pl_ptero/pl_ptero_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924951, "label": "pl_strider/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924953, "label": "pl_skywhale/pl_skywhale_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924956, "label": "pl_strider/pl_strider_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924959, "label": "pl_pangolin/pl_tail_rope", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924960, "label": "pl_psitta/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924961, "label": "pl_taiko/pl_taiko_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924965, "label": "pl_tapir/pl_tapir_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924966, "label": "pl_sockeye/pl_sockeye_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924983, "label": "pl_lilyray/pl_lilyray_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924987, "label": "pl_polar/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924988, "label": "pl_flask/pl_flask_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924990, "label": "pl_firecracker/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924991, "label": "pl_earwig/pl_earwig_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924993, "label": "pl_hourglass/pl_hourglass_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924993, "label": "pl_strider/pl_strider_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790924998, "label": "pl_starfish/pl_starfish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925002, "label": "pl_polar/pl_polar_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925006, "label": "pl_starfish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925019, "label": "pl_manatee/pl_back_fins", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925026, "label": "pl_starfish/pl_starfish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925026, "label": "pl_diver/pl_diver_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925030, "label": "pl_arowana/pl_arowana_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925037, "label": "pl_neon/pl_neon_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925040, "label": "pl_starfish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925046, "label": "pl_y_gull/pl_y_gull_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925048, "label": "pl_bonesnake/pl_bonesnake_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925049, "label": "pl_centipede/pl_centipede_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925061, "label": "pl_armor/pl_armor_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925071, "label": "pl_neon/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925073, "label": "pl_meerkat/pl_tail_bow", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925076, "label": "pl_doll/pl_skull_cap", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925083, "label": "pl_ghostkoi/pl_ghostkoi_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925084, "label": "pl_qilin/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925085, "label": "pl_starfish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925086, "label": "pl_doll/pl_doll_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925102, "label": "pl_hazmat/pl_hazmat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925107, "label": "pl_popcorn/pl_popcorn_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925107, "label": "pl_hazmat/pl_gas_tanks", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925111, "label": "pl_coffinbug/pl_coffinbug_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925121, "label": "pl_eyespot/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925128, "label": "pl_mimic/pl_mimic_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925135, "label": "pl_ankylo/pl_ankylo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925144, "label": "pl_mourner/pl_mourner_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925145, "label": "pl_flutter/pl_flutter_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925148, "label": "pl_ouija/pl_ouija_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925153, "label": "pl_manatee/pl_ossicones", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925153, "label": "pl_nudibranch/pl_nudibranch_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925163, "label": "pl_dynamo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925166, "label": "pl_pitcher/pl_pitcher_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925166, "label": "pl_pipe/pl_pipe_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925172, "label": "pl_knifefish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925178, "label": "pl_barrel/pl_barrel_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925187, "label": "pl_scarab/pl_scarab_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925190, "label": "pl_plaguecrow/pl_plaguecrow_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925196, "label": "pl_bombardier/pl_bombardier_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925206, "label": "pl_dimetro/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925214, "label": "pl_dynamo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925216, "label": "pl_pitohui/pl_pitohui_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925216, "label": "pl_scorpion/pl_scorpion_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925224, "label": "pl_firefly/pl_firefly_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925225, "label": "pl_seacucumber/pl_seacucumber_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925228, "label": "pl_skullbat/pl_skullbat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925237, "label": "pl_sludgerat/pl_tail_slime", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925242, "label": "pl_smog/pl_smog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925249, "label": "pl_sludgerat/pl_sludgerat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925252, "label": "pl_dynamo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925253, "label": "pl_spectercat/pl_spectercat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925256, "label": "pl_firehose/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925267, "label": "pl_x_basilisk/pl_wings_ice", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925270, "label": "pl_bamboo/pl_bamboo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925271, "label": "pl_meerkat/pl_teddy_bear", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925278, "label": "pl_solenodon/pl_solenodon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925285, "label": "pl_dynamo/pl_dynamo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925294, "label": "pl_dynamo/pl_dynamo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925296, "label": "pl_neon/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925298, "label": "pl_vine/pl_vine_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925299, "label": "pl_polar/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925304, "label": "pl_x_potato/pl_hair_buns", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925304, "label": "pl_dimetro/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925305, "label": "pl_x_toucan/pl_tiara_gem", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925312, "label": "pl_x_loris/pl_antennae_pompom", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925324, "label": "pl_x_bison/pl_tail_cactus", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925330, "label": "pl_handheld/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925334, "label": "pl_chain/pl_chain_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925337, "label": "pl_cabbage/pl_tail_pinecone", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925337, "label": "pl_dobsonfly/pl_dobsonfly_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925344, "label": "pl_handheld/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925346, "label": "pl_y_dungbeetle/pl_shell_hex", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925351, "label": "pl_handheld/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925359, "label": "pl_y_frilldrake/pl_tail_sunflower", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925359, "label": "pl_y_frilldrake/pl_lilypad_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925364, "label": "pl_handheld/pl_handheld_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925371, "label": "pl_icicle/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925375, "label": "pl_pangolin/pl_wings_leaf", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925380, "label": "pl_y_mongoose/pl_beanie", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925382, "label": "pl_icefish/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925384, "label": "pl_handheld/pl_handheld_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925384, "label": "pl_icefish/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925387, "label": "pl_y_ladybug/pl_horns_ringed", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925388, "label": "pl_y_mongoose/pl_quiver", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925404, "label": "pl_dartfrog/pl_dartfrog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925405, "label": "pl_y_opossum/pl_sprouts_twin", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925413, "label": "pl_dobsonfly/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925418, "label": "pl_icefish/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925422, "label": "pl_icefish/pl_icefish_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925430, "label": "pl_armor/pl_wings_tattered", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925436, "label": "pl_icefish/pl_icefish_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925438, "label": "pl_dimetro/pl_dimetro_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925439, "label": "pl_igloo/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925441, "label": "pl_y_opossum/pl_tail_candy_cane", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925443, "label": "pl_tombstone/pl_tombstone_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925447, "label": "pl_y_opossum/pl_snow_pile", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925459, "label": "pl_igloo/pl_igloo_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925460, "label": "pl_igloo/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925471, "label": "pl_igloo/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925472, "label": "pl_x_bison/pl_gems_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925484, "label": "pl_radio/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925485, "label": "pl_radio/pl_radio_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925494, "label": "pl_igloo/pl_igloo_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925497, "label": "pl_hourglass/pl_hourglass_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925498, "label": "pl_radio/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925501, "label": "pl_dobsonfly/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925508, "label": "pl_x_basilisk/pl_tail_crystal_tip", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925510, "label": "pl_sockeye/pl_sockeye_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925517, "label": "pl_radio/pl_radio_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925517, "label": "pl_radio/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925530, "label": "pl_rocket/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925540, "label": "pl_rocket/pl_rocket_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925545, "label": "pl_rocket/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925547, "label": "pl_rocket/pl_rocket_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925548, "label": "pl_x_loris/pl_tail_braid", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925550, "label": "pl_dobsonfly/pl_dobsonfly_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925552, "label": "pl_rocket/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925564, "label": "pl_dimetro/pl_dimetro_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925569, "label": "pl_hoard/pl_hoard_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925572, "label": "pl_firecracker/base", "endpoint": "create-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925582, "label": "pl_dobsonfly/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925584, "label": "pl_x_potato/pl_tail_paintbrush", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925585, "label": "pl_x_loris/pl_wings_fairy", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925585, "label": "pl_dancedragon/pl_dancedragon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925590, "label": "pl_outlet/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925598, "label": "pl_weevil/pl_sprouts_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925612, "label": "pl_x_bison/pl_cowboy_hat", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925616, "label": "pl_barreleye/pl_barreleye_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790925696, "label": "pl_manatee/pl_eyestalks", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935271, "label": "pl_firecracker/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935271, "label": "pl_firecracker/pl_firecracker_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935271, "label": "pl_brazier/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935275, "label": "pl_firecracker/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935280, "label": "pl_firecracker/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935281, "label": "pl_firecracker/pl_firecracker_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935284, "label": "pl_brazier/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935288, "label": "pl_brazier/pl_brazier_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935288, "label": "pl_brazier/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935295, "label": "pl_brazier/pl_brazier_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935305, "label": "pl_firehose/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935305, "label": "pl_firehose/pl_firehose_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935309, "label": "pl_firehose/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935327, "label": "pl_firehose/pl_firehose_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935330, "label": "pl_icicle/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935335, "label": "pl_icicle/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935347, "label": "pl_icicle/pl_icicle_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935347, "label": "pl_moloch/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935354, "label": "pl_icicle/pl_icicle_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935357, "label": "pl_moloch/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935359, "label": "pl_icicle/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935366, "label": "pl_lantern/pl_lantern_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935382, "label": "pl_psitta/_probe_back", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935386, "label": "pl_psitta/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935400, "label": "pl_moloch/pl_moloch_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935407, "label": "pl_psitta/_probe_head_top", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935412, "label": "pl_moloch/pl_moloch_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935412, "label": "pl_psitta/pl_psitta_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935418, "label": "pl_moloch/_probe_tail", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935421, "label": "pl_psitta/pl_psitta_b", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935540, "label": "pl_y_opossum/pl_snow_pile", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935544, "label": "pl_tapir/pl_tapir_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935548, "label": "pl_y_mongoose/pl_quiver", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935555, "label": "pl_y_dungbeetle/pl_shell_hex", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935557, "label": "pl_balloon/pl_balloon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935568, "label": "pl_skywhale/pl_skywhale_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935575, "label": "pl_x_loris/pl_wings_fairy", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935578, "label": "pl_teapot/pl_tail_pencil", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935578, "label": "pl_ptero/pl_ptero_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935586, "label": "pl_flyfish/pl_flyfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935587, "label": "pl_teapot/pl_tail_yarn", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935599, "label": "pl_cumulus/pl_cumulus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935600, "label": "pl_shoebill/pl_viking_helmet", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935603, "label": "pl_meerkat/pl_nightcap", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935608, "label": "pl_meerkat/pl_bell_collar", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935609, "label": "pl_y_frilldrake/pl_tail_sunflower", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935609, "label": "pl_manatee/pl_flower_lei", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935629, "label": "pl_taiko/pl_taiko_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935712, "label": "pl_ankylo/pl_ankylo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935716, "label": "pl_caddis/pl_caddis_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935720, "label": "pl_bulldozer/pl_bulldozer_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935725, "label": "pl_aardvark/pl_aardvark_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935726, "label": "pl_cairn/pl_cairn_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935726, "label": "pl_amber/pl_amber_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935729, "label": "pl_auger/pl_auger_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935733, "label": "pl_antlion/pl_antlion_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935753, "label": "pl_hourglass/pl_hourglass_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935754, "label": "pl_geode/pl_geode_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935757, "label": "pl_jerboa/pl_jerboa_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935760, "label": "pl_jadecoil/pl_jadecoil_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935766, "label": "pl_dustdevil/pl_dustdevil_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935771, "label": "pl_golem/pl_golem_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935775, "label": "pl_lungfish/pl_lungfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935780, "label": "pl_condor/pl_condor_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935792, "label": "pl_mole/pl_mole_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935801, "label": "pl_hyena/pl_hyena_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935809, "label": "pl_kiwi/pl_kiwi_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935810, "label": "pl_molecricket/pl_molecricket_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935813, "label": "pl_mudskipper/pl_mudskipper_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935818, "label": "pl_sandcastle/pl_sandcastle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935820, "label": "pl_ram/pl_ram_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935820, "label": "pl_obsidian/pl_obsidian_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935826, "label": "pl_pumice/pl_pumice_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935838, "label": "pl_stonefish/pl_stonefish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935849, "label": "pl_trilobite/pl_trilobite_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935849, "label": "pl_cell/pl_cell_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935850, "label": "pl_roadrunner/pl_roadrunner_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935856, "label": "pl_tortoise/pl_tortoise_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935860, "label": "pl_urchin/pl_urchin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935865, "label": "pl_dumbo/pl_dumbo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935868, "label": "pl_icebat/pl_icebat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935870, "label": "pl_eyespot/pl_eyespot_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935879, "label": "pl_buoy/pl_buoy_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935883, "label": "pl_frogmouth/pl_frogmouth_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935894, "label": "pl_bulb/pl_bulb_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935896, "label": "pl_dashbird/pl_dashbird_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935907, "label": "pl_blobfish/pl_blobfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935908, "label": "pl_jelly/pl_jelly_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935912, "label": "pl_crystalball/pl_crystalball_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935935, "label": "pl_hermit/pl_hermit_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935935, "label": "pl_hatchetfish/pl_hatchetfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935941, "label": "pl_genie/pl_genie_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935944, "label": "pl_housefly/pl_housefly_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935945, "label": "pl_lamprey/pl_lamprey_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935945, "label": "pl_mitten/pl_mitten_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935950, "label": "pl_knifefish/pl_knifefish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935959, "label": "pl_moose/pl_moose_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935968, "label": "pl_ibis/pl_ibis_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935978, "label": "pl_krill/pl_krill_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790935982, "label": "pl_mask/pl_mask_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936000, "label": "pl_penguin/pl_penguin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936005, "label": "pl_polar/pl_polar_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936006, "label": "pl_outlet/pl_outlet_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936016, "label": "pl_pelican/pl_pelican_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936020, "label": "pl_ptarmigan/pl_ptarmigan_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936023, "label": "pl_magnet/pl_magnet_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936024, "label": "pl_plugpig/pl_plugpig_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936025, "label": "pl_neon/pl_neon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936039, "label": "pl_narwhal/pl_narwhal_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936054, "label": "pl_seahorse/pl_seahorse_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936055, "label": "pl_mandrill/pl_mandrill_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936059, "label": "pl_sphynx/pl_sphynx_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936062, "label": "pl_sleepsheep/pl_sleepsheep_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936062, "label": "pl_snowman/pl_snowman_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936065, "label": "pl_robodog/pl_robodog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936077, "label": "pl_springtail/pl_springtail_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936083, "label": "pl_snowmonkey/pl_snowmonkey_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936084, "label": "pl_tardigrade/pl_tardigrade_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936088, "label": "pl_snowcat/pl_snowcat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936091, "label": "pl_teslacoil/pl_teslacoil_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936092, "label": "pl_starfish/pl_starfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936100, "label": "pl_strider/pl_strider_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936102, "label": "pl_tadpole/pl_tadpole_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936117, "label": "pl_tarotcard/pl_tarotcard_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936127, "label": "pl_emberant/pl_emberant_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936127, "label": "pl_zenfrog/pl_zenfrog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936129, "label": "pl_dromaeo/pl_dromaeo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936140, "label": "pl_frizzbird/pl_frizzbird_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936142, "label": "pl_yeti/pl_yeti_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936150, "label": "pl_walrus/pl_walrus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936156, "label": "pl_hoatzin/pl_hoatzin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936159, "label": "pl_barreleye/pl_barreleye_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936161, "label": "pl_hoard/pl_hoard_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936168, "label": "pl_cinderhound/pl_cinderhound_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936178, "label": "pl_circuitbug/pl_circuitbug_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936180, "label": "pl_gharial/pl_gharial_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936187, "label": "pl_slinky/pl_slinky_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936195, "label": "pl_hare/pl_hare_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936196, "label": "pl_kindle/pl_kindle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936203, "label": "pl_kobold/pl_kobold_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936205, "label": "pl_komodo/pl_komodo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936206, "label": "pl_arowana/pl_arowana_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936217, "label": "pl_beaver/pl_beaver_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936223, "label": "pl_lavalamp/pl_lavalamp_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936234, "label": "pl_marshmallow/pl_marshmallow_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936238, "label": "pl_ouroboros/pl_ouroboros_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936241, "label": "pl_bogtoad/pl_bogtoad_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936250, "label": "pl_chameleon/pl_chameleon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936253, "label": "pl_furnace/pl_furnace_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936253, "label": "pl_phoenix/pl_phoenix_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936253, "label": "pl_dracobeetle/pl_dracobeetle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936265, "label": "pl_plesio/pl_plesio_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936267, "label": "pl_cardinal/pl_cardinal_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936270, "label": "pl_moloch/pl_moloch_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936272, "label": "pl_popcorn/pl_popcorn_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936276, "label": "pl_qilin/pl_qilin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936288, "label": "pl_boxfish/pl_boxfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936293, "label": "pl_solifuge/pl_solifuge_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936295, "label": "pl_brazier/pl_brazier_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936305, "label": "pl_tatzel/pl_tatzel_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936306, "label": "pl_ventangler/pl_ventangler_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936307, "label": "pl_volcano/pl_volcano_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936307, "label": "pl_sockeye/pl_sockeye_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936319, "label": "pl_dragonegg/pl_dragonegg_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936319, "label": "pl_alien/pl_alien_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936332, "label": "pl_quetzal/pl_quetzal_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936456, "label": "pl_arowana/pl_arowana_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936457, "label": "pl_furnace/pl_furnace_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936467, "label": "pl_condor/pl_condor_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936474, "label": "pl_kindle/pl_kindle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936477, "label": "pl_bulldozer/pl_bulldozer_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936477, "label": "pl_hyena/pl_hyena_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936481, "label": "pl_dustdevil/pl_dustdevil_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936485, "label": "pl_aardvark/pl_aardvark_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936489, "label": "pl_golem/pl_golem_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936508, "label": "pl_moloch/pl_moloch_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936510, "label": "pl_hoard/pl_hoard_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936511, "label": "pl_solifuge/pl_solifuge_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936512, "label": "pl_lungfish/pl_lungfish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936515, "label": "pl_lavalamp/pl_lavalamp_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936523, "label": "pl_urchin/pl_urchin_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936527, "label": "pl_volcano/pl_volcano_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936538, "label": "pl_flea/pl_flea_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936549, "label": "pl_dashbird/pl_dashbird_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936549, "label": "pl_roadrunner/pl_roadrunner_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936550, "label": "pl_earwig/pl_earwig_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936553, "label": "pl_tortoise/pl_tortoise_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936559, "label": "pl_neon/pl_neon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936562, "label": "pl_knifefish/pl_knifefish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936570, "label": "pl_manatee/pl_flower_basket", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936579, "label": "pl_spider/pl_spider_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936595, "label": "pl_teapot/pl_tail_wrench", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936596, "label": "pl_weevil/pl_tail_coral", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936605, "label": "pl_meerkat/pl_sombrero", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936607, "label": "pl_manatee/pl_tail_trident", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936608, "label": "pl_pangolin/pl_cherries", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936617, "label": "pl_pinefinch/pl_pinefinch_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936618, "label": "pl_zenfrog/pl_zenfrog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936619, "label": "pl_cicada/pl_cicada_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936620, "label": "pl_cornhen/pl_cornhen_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936622, "label": "pl_velvetmite/pl_velvetmite_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936628, "label": "pl_pangolin/pl_wings_petal", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936643, "label": "pl_teapot/pl_antenna_heart", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936646, "label": "pl_meerkat/pl_tail_key", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936650, "label": "pl_teapot/pl_bow_gift", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936664, "label": "pl_dobsonfly/pl_dobsonfly_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936671, "label": "pl_magnet/pl_magnet_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936695, "label": "pl_igloo/pl_igloo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936697, "label": "pl_handheld/pl_handheld_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936698, "label": "pl_icefish/pl_icefish_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936702, "label": "pl_radio/pl_radio_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936706, "label": "pl_firecracker/pl_firecracker_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936717, "label": "pl_rocket/pl_rocket_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936719, "label": "pl_dimetro/pl_dimetro_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936735, "label": "pl_dynamo/pl_dynamo_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936743, "label": "pl_pangolin/pl_bedroll", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936759, "label": "pl_weevil/pl_scallop_shell", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936770, "label": "pl_sludgerat/pl_sludgerat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936771, "label": "pl_pangolin/pl_satchel", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936775, "label": "pl_meerkat/pl_guitar", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936779, "label": "pl_icicle/pl_icicle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936782, "label": "pl_solenodon/pl_solenodon_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936798, "label": "pl_scarab/pl_scarab_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936799, "label": "pl_pitohui/pl_pitohui_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936800, "label": "pl_scorpion/pl_scorpion_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936801, "label": "pl_centipede/pl_centipede_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936806, "label": "pl_dartfrog/pl_dartfrog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936817, "label": "pl_smog/pl_smog_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936822, "label": "pl_pitcher/pl_pitcher_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936826, "label": "pl_hazmat/pl_hazmat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936842, "label": "pl_meerkat/pl_shield_round", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936870, "label": "pl_y_gull/pl_y_gull_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936874, "label": "pl_owl/pl_owl_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936878, "label": "pl_y_icecube/pl_y_icecube_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936878, "label": "pl_axolotl/pl_axolotl_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936878, "label": "pl_y_candle/pl_y_candle_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936882, "label": "pl_drake/pl_drake_c", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936885, "label": "pl_x_clam/pl_x_clam_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936889, "label": "pl_x_mummy/pl_x_mummy_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936891, "label": "pl_x_moai/pl_x_moai_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936899, "label": "pl_crab/pl_crab_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936908, "label": "pl_strider/pl_strider_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936919, "label": "pl_snowcat/pl_snowcat_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936924, "label": "pl_hermit/pl_hermit_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936925, "label": "pl_krill/pl_krill_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936928, "label": "pl_jelly/pl_jelly_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936945, "label": "pl_y_lotus/pl_y_lotus_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
+{"time": 1790936958, "label": "pl_ptarmigan/pl_ptarmigan_d", "endpoint": "edit-image-pixen", "usage": {"type": "generations", "generations": 1.0}, "ok": true}
diff --git a/pixellab_src/pl_aardvark/_probe_back.json b/pixellab_src/pl_aardvark/_probe_back.json
new file mode 100644
index 0000000..55450a1
--- /dev/null
+++ b/pixellab_src/pl_aardvark/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 95618,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aardvark/_probe_back.png b/pixellab_src/pl_aardvark/_probe_back.png
new file mode 100644
index 0000000..edeb304
Binary files /dev/null and b/pixellab_src/pl_aardvark/_probe_back.png differ
diff --git a/pixellab_src/pl_aardvark/_probe_head_top.json b/pixellab_src/pl_aardvark/_probe_head_top.json
new file mode 100644
index 0000000..a25e4d9
--- /dev/null
+++ b/pixellab_src/pl_aardvark/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 86560,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aardvark/_probe_head_top.png b/pixellab_src/pl_aardvark/_probe_head_top.png
new file mode 100644
index 0000000..d86d306
Binary files /dev/null and b/pixellab_src/pl_aardvark/_probe_head_top.png differ
diff --git a/pixellab_src/pl_aardvark/_probe_tail.json b/pixellab_src/pl_aardvark/_probe_tail.json
new file mode 100644
index 0000000..7759cd6
--- /dev/null
+++ b/pixellab_src/pl_aardvark/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 4712,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aardvark/_probe_tail.png b/pixellab_src/pl_aardvark/_probe_tail.png
new file mode 100644
index 0000000..fe92eb9
Binary files /dev/null and b/pixellab_src/pl_aardvark/_probe_tail.png differ
diff --git a/pixellab_src/pl_aardvark/anchors.json b/pixellab_src/pl_aardvark/anchors.json
new file mode 100644
index 0000000..4fee5a6
--- /dev/null
+++ b/pixellab_src/pl_aardvark/anchors.json
@@ -0,0 +1 @@
+{"pivot": [32, 60], "aura": [32, 42], "head_top": [29, 28], "back": [41, 33], "tail": [49, 49]}
diff --git a/pixellab_src/pl_aardvark/base.json b/pixellab_src/pl_aardvark/base.json
new file mode 100644
index 0000000..48d9378
--- /dev/null
+++ b/pixellab_src/pl_aardvark/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "young aardvark creature standing on four sturdy legs with big digging claws, strongly arched rounded back, long tube-shaped snout ending in a flat round crimson nose disc, two tall pointed rabbit-like ears, sleepy half-closed eyes, sparse bristly fur, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 7202
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aardvark/base.png b/pixellab_src/pl_aardvark/base.png
new file mode 100644
index 0000000..061694b
Binary files /dev/null and b/pixellab_src/pl_aardvark/base.png differ
diff --git a/pixellab_src/pl_aardvark/base_raw.png b/pixellab_src/pl_aardvark/base_raw.png
new file mode 100644
index 0000000..d25fc9a
Binary files /dev/null and b/pixellab_src/pl_aardvark/base_raw.png differ
diff --git a/pixellab_src/pl_aardvark_b/base.json b/pixellab_src/pl_aardvark_b/base.json
new file mode 100644
index 0000000..3216a40
--- /dev/null
+++ b/pixellab_src/pl_aardvark_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much chubbier and rounder with a shorter thick snout, short round ears and crimson stripes across its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aardvark_b/base.png b/pixellab_src/pl_aardvark_b/base.png
new file mode 100644
index 0000000..a1f90a8
Binary files /dev/null and b/pixellab_src/pl_aardvark_b/base.png differ
diff --git a/pixellab_src/pl_aardvark_c/base.json b/pixellab_src/pl_aardvark_c/base.json
new file mode 100644
index 0000000..3ce0714
--- /dev/null
+++ b/pixellab_src/pl_aardvark_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it lankier with longer legs, an even longer curved snout, wide open eyes and crimson spots on its flanks, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aardvark_c/base.png b/pixellab_src/pl_aardvark_c/base.png
new file mode 100644
index 0000000..bf2e687
Binary files /dev/null and b/pixellab_src/pl_aardvark_c/base.png differ
diff --git a/pixellab_src/pl_aardvark_d/base.json b/pixellab_src/pl_aardvark_d/base.json
new file mode 100644
index 0000000..092cb50
--- /dev/null
+++ b/pixellab_src/pl_aardvark_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it twice as round and squat with a short fat body, stubby legs and a shorter snout, keep its aardvark face and teal skin, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 7,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aardvark_d/base.png b/pixellab_src/pl_aardvark_d/base.png
new file mode 100644
index 0000000..f118e9c
Binary files /dev/null and b/pixellab_src/pl_aardvark_d/base.png differ
diff --git a/pixellab_src/pl_alien/_probe_back.json b/pixellab_src/pl_alien/_probe_back.json
new file mode 100644
index 0000000..8b074bb
--- /dev/null
+++ b/pixellab_src/pl_alien/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 64074,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alien/_probe_back.png b/pixellab_src/pl_alien/_probe_back.png
new file mode 100644
index 0000000..b8cd035
Binary files /dev/null and b/pixellab_src/pl_alien/_probe_back.png differ
diff --git a/pixellab_src/pl_alien/_probe_head_top.json b/pixellab_src/pl_alien/_probe_head_top.json
new file mode 100644
index 0000000..086fbfd
--- /dev/null
+++ b/pixellab_src/pl_alien/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 60831,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alien/_probe_head_top.png b/pixellab_src/pl_alien/_probe_head_top.png
new file mode 100644
index 0000000..7cbe599
Binary files /dev/null and b/pixellab_src/pl_alien/_probe_head_top.png differ
diff --git a/pixellab_src/pl_alien/_probe_tail.json b/pixellab_src/pl_alien/_probe_tail.json
new file mode 100644
index 0000000..81936e8
--- /dev/null
+++ b/pixellab_src/pl_alien/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 54368,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alien/_probe_tail.png b/pixellab_src/pl_alien/_probe_tail.png
new file mode 100644
index 0000000..e1639c6
Binary files /dev/null and b/pixellab_src/pl_alien/_probe_tail.png differ
diff --git a/pixellab_src/pl_alien/anchors.json b/pixellab_src/pl_alien/anchors.json
new file mode 100644
index 0000000..4cbbb20
--- /dev/null
+++ b/pixellab_src/pl_alien/anchors.json
@@ -0,0 +1 @@
+{"pivot": [32, 60], "aura": [31, 38], "head_top": [32, 21], "back": [30, 42], "tail": [39, 47]}
diff --git a/pixellab_src/pl_alien/base.json b/pixellab_src/pl_alien/base.json
new file mode 100644
index 0000000..0e8adde
--- /dev/null
+++ b/pixellab_src/pl_alien/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "small alien critter standing on four long thin stilt-like legs, a huge bulbous smooth cranium much bigger than its body with faint crimson vein lines on it, wide-set glossy black almond-shaped eyes, tiny slit mouth, long thin neck, small round body, three-toed feet, no ears, no antennae, no tail, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 1209
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alien/base.png b/pixellab_src/pl_alien/base.png
new file mode 100644
index 0000000..61a422c
Binary files /dev/null and b/pixellab_src/pl_alien/base.png differ
diff --git a/pixellab_src/pl_alien/base_raw.png b/pixellab_src/pl_alien/base_raw.png
new file mode 100644
index 0000000..acfc2f8
Binary files /dev/null and b/pixellab_src/pl_alien/base_raw.png differ
diff --git a/pixellab_src/pl_alien_b/base.json b/pixellab_src/pl_alien_b/base.json
new file mode 100644
index 0000000..b640403
--- /dev/null
+++ b/pixellab_src/pl_alien_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its cranium even bigger and taller like a light bulb with crimson spots on it, and its legs shorter and stubbier, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alien_b/base.png b/pixellab_src/pl_alien_b/base.png
new file mode 100644
index 0000000..19ea4c6
Binary files /dev/null and b/pixellab_src/pl_alien_b/base.png differ
diff --git a/pixellab_src/pl_alien_c/base.json b/pixellab_src/pl_alien_c/base.json
new file mode 100644
index 0000000..1a8779c
--- /dev/null
+++ b/pixellab_src/pl_alien_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its head wider and flatter like a mushroom cap with huge glossy black eyes and a slimmer body with longer legs, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alien_c/base.png b/pixellab_src/pl_alien_c/base.png
new file mode 100644
index 0000000..4cd4bd4
Binary files /dev/null and b/pixellab_src/pl_alien_c/base.png differ
diff --git a/pixellab_src/pl_alien_d/base.json b/pixellab_src/pl_alien_d/base.json
new file mode 100644
index 0000000..098e7c7
--- /dev/null
+++ b/pixellab_src/pl_alien_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its alien face and bulbous teal cranium, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alien_d/base.png b/pixellab_src/pl_alien_d/base.png
new file mode 100644
index 0000000..22c244e
Binary files /dev/null and b/pixellab_src/pl_alien_d/base.png differ
diff --git a/pixellab_src/pl_alpaca/_probe_back.json b/pixellab_src/pl_alpaca/_probe_back.json
new file mode 100644
index 0000000..e60fdb6
--- /dev/null
+++ b/pixellab_src/pl_alpaca/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 96336,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alpaca/_probe_back.png b/pixellab_src/pl_alpaca/_probe_back.png
new file mode 100644
index 0000000..1072cc8
Binary files /dev/null and b/pixellab_src/pl_alpaca/_probe_back.png differ
diff --git a/pixellab_src/pl_alpaca/_probe_head_top.json b/pixellab_src/pl_alpaca/_probe_head_top.json
new file mode 100644
index 0000000..d805732
--- /dev/null
+++ b/pixellab_src/pl_alpaca/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 48350,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alpaca/_probe_head_top.png b/pixellab_src/pl_alpaca/_probe_head_top.png
new file mode 100644
index 0000000..ac22263
Binary files /dev/null and b/pixellab_src/pl_alpaca/_probe_head_top.png differ
diff --git a/pixellab_src/pl_alpaca/_probe_tail.json b/pixellab_src/pl_alpaca/_probe_tail.json
new file mode 100644
index 0000000..ca87eef
--- /dev/null
+++ b/pixellab_src/pl_alpaca/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 54714,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alpaca/_probe_tail.png b/pixellab_src/pl_alpaca/_probe_tail.png
new file mode 100644
index 0000000..0e16a46
Binary files /dev/null and b/pixellab_src/pl_alpaca/_probe_tail.png differ
diff --git a/pixellab_src/pl_alpaca/anchors.json b/pixellab_src/pl_alpaca/anchors.json
new file mode 100644
index 0000000..e300df6
--- /dev/null
+++ b/pixellab_src/pl_alpaca/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [30, 41], "head_top": [30, 25], "back": [32, 37], "tail": [41, 45]}
diff --git a/pixellab_src/pl_alpaca/base.json b/pixellab_src/pl_alpaca/base.json
new file mode 100644
index 0000000..27e2163
--- /dev/null
+++ b/pixellab_src/pl_alpaca/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "alpaca creature standing on four thin legs, very fluffy woolly body, long upright woolly neck, small head with a fluffy pom-pom topknot of wool, tall curved banana-shaped ears, sleepy smug eyes, crimson tassel on its neck, no tail, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2201
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alpaca/base.png b/pixellab_src/pl_alpaca/base.png
new file mode 100644
index 0000000..fe267fa
Binary files /dev/null and b/pixellab_src/pl_alpaca/base.png differ
diff --git a/pixellab_src/pl_alpaca/base_raw.png b/pixellab_src/pl_alpaca/base_raw.png
new file mode 100644
index 0000000..e079833
Binary files /dev/null and b/pixellab_src/pl_alpaca/base_raw.png differ
diff --git a/pixellab_src/pl_alpaca_b/base.json b/pixellab_src/pl_alpaca_b/base.json
new file mode 100644
index 0000000..b00e09a
--- /dev/null
+++ b/pixellab_src/pl_alpaca_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it shorn with short thin fur, a skinny neck, a bigger head and crimson spots on its body, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alpaca_b/base.png b/pixellab_src/pl_alpaca_b/base.png
new file mode 100644
index 0000000..65d62ae
Binary files /dev/null and b/pixellab_src/pl_alpaca_b/base.png differ
diff --git a/pixellab_src/pl_alpaca_c/base.json b/pixellab_src/pl_alpaca_c/base.json
new file mode 100644
index 0000000..02fe381
--- /dev/null
+++ b/pixellab_src/pl_alpaca_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its teal wool much fluffier and puffier so its body is a round cloud of teal wool, with crimson stripes on its legs, keep it the same size and teal color, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alpaca_c/base.png b/pixellab_src/pl_alpaca_c/base.png
new file mode 100644
index 0000000..0416396
Binary files /dev/null and b/pixellab_src/pl_alpaca_c/base.png differ
diff --git a/pixellab_src/pl_alpaca_d/base.json b/pixellab_src/pl_alpaca_d/base.json
new file mode 100644
index 0000000..33e8154
--- /dev/null
+++ b/pixellab_src/pl_alpaca_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a baby alpaca with a tiny round body, short legs, a short neck and a huge fluffy head, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_alpaca_d/base.png b/pixellab_src/pl_alpaca_d/base.png
new file mode 100644
index 0000000..3dd805b
Binary files /dev/null and b/pixellab_src/pl_alpaca_d/base.png differ
diff --git a/pixellab_src/pl_amber/_probe_back.json b/pixellab_src/pl_amber/_probe_back.json
new file mode 100644
index 0000000..eaa1368
--- /dev/null
+++ b/pixellab_src/pl_amber/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 87885,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_amber/_probe_back.png b/pixellab_src/pl_amber/_probe_back.png
new file mode 100644
index 0000000..6dde631
Binary files /dev/null and b/pixellab_src/pl_amber/_probe_back.png differ
diff --git a/pixellab_src/pl_amber/_probe_head_top.json b/pixellab_src/pl_amber/_probe_head_top.json
new file mode 100644
index 0000000..b49c89a
--- /dev/null
+++ b/pixellab_src/pl_amber/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 49809,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_amber/_probe_head_top.png b/pixellab_src/pl_amber/_probe_head_top.png
new file mode 100644
index 0000000..8db2836
Binary files /dev/null and b/pixellab_src/pl_amber/_probe_head_top.png differ
diff --git a/pixellab_src/pl_amber/anchors.json b/pixellab_src/pl_amber/anchors.json
new file mode 100644
index 0000000..f39092d
--- /dev/null
+++ b/pixellab_src/pl_amber/anchors.json
@@ -0,0 +1 @@
+{"pivot": [26, 60], "aura": [31, 41], "head_top": [31, 28], "back": [31, 36], "tail": [46, 50]}
diff --git a/pixellab_src/pl_amber/base.json b/pixellab_src/pl_amber/base.json
new file mode 100644
index 0000000..4c661fa
--- /dev/null
+++ b/pixellab_src/pl_amber/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "glossy translucent teal resin drop creature shaped like a fat teardrop with the point on top, shiny white highlights, a small dark crimson fossil beetle silhouette trapped deep inside its belly, simple cute face with two dot eyes near its top, two stubby teal feet, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 9222
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_amber/base.png b/pixellab_src/pl_amber/base.png
new file mode 100644
index 0000000..e46c436
Binary files /dev/null and b/pixellab_src/pl_amber/base.png differ
diff --git a/pixellab_src/pl_amber/base_raw.png b/pixellab_src/pl_amber/base_raw.png
new file mode 100644
index 0000000..b930737
Binary files /dev/null and b/pixellab_src/pl_amber/base_raw.png differ
diff --git a/pixellab_src/pl_amber_b/base.json b/pixellab_src/pl_amber_b/base.json
new file mode 100644
index 0000000..409a933
--- /dev/null
+++ b/pixellab_src/pl_amber_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it lumpy and faceted like a rough cut gemstone with a crimson fossil leaf trapped inside instead, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_amber_b/base.png b/pixellab_src/pl_amber_b/base.png
new file mode 100644
index 0000000..bf0dd5e
Binary files /dev/null and b/pixellab_src/pl_amber_b/base.png differ
diff --git a/pixellab_src/pl_amber_c/base.json b/pixellab_src/pl_amber_c/base.json
new file mode 100644
index 0000000..972ebc8
--- /dev/null
+++ b/pixellab_src/pl_amber_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it wider and drippier like a melting blob of sap with bubbles inside and a crimson fossil fish, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_amber_c/base.png b/pixellab_src/pl_amber_c/base.png
new file mode 100644
index 0000000..21e5934
Binary files /dev/null and b/pixellab_src/pl_amber_c/base.png differ
diff --git a/pixellab_src/pl_amber_d/base.json b/pixellab_src/pl_amber_d/base.json
new file mode 100644
index 0000000..429c983
--- /dev/null
+++ b/pixellab_src/pl_amber_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "give it small teal crystal growths along its back and head with crimson crystal tips, keep its body teal, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_amber_d/base.png b/pixellab_src/pl_amber_d/base.png
new file mode 100644
index 0000000..9b09805
Binary files /dev/null and b/pixellab_src/pl_amber_d/base.png differ
diff --git a/pixellab_src/pl_ankylo/_probe_back.json b/pixellab_src/pl_ankylo/_probe_back.json
new file mode 100644
index 0000000..4dd0795
--- /dev/null
+++ b/pixellab_src/pl_ankylo/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 56182,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ankylo/_probe_back.png b/pixellab_src/pl_ankylo/_probe_back.png
new file mode 100644
index 0000000..759f7f3
Binary files /dev/null and b/pixellab_src/pl_ankylo/_probe_back.png differ
diff --git a/pixellab_src/pl_ankylo/_probe_head_top.json b/pixellab_src/pl_ankylo/_probe_head_top.json
new file mode 100644
index 0000000..5310116
--- /dev/null
+++ b/pixellab_src/pl_ankylo/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 25558,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ankylo/_probe_head_top.png b/pixellab_src/pl_ankylo/_probe_head_top.png
new file mode 100644
index 0000000..f626665
Binary files /dev/null and b/pixellab_src/pl_ankylo/_probe_head_top.png differ
diff --git a/pixellab_src/pl_ankylo/_probe_tail.json b/pixellab_src/pl_ankylo/_probe_tail.json
new file mode 100644
index 0000000..a6de327
--- /dev/null
+++ b/pixellab_src/pl_ankylo/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 52444,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ankylo/_probe_tail.png b/pixellab_src/pl_ankylo/_probe_tail.png
new file mode 100644
index 0000000..5b7555d
Binary files /dev/null and b/pixellab_src/pl_ankylo/_probe_tail.png differ
diff --git a/pixellab_src/pl_ankylo/anchors.json b/pixellab_src/pl_ankylo/anchors.json
new file mode 100644
index 0000000..417aa74
--- /dev/null
+++ b/pixellab_src/pl_ankylo/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 45], "head_top": [27, 34], "back": [35, 36], "tail": [47, 51]}
diff --git a/pixellab_src/pl_ankylo/base.json b/pixellab_src/pl_ankylo/base.json
new file mode 100644
index 0000000..feb2356
--- /dev/null
+++ b/pixellab_src/pl_ankylo/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "ankylosaurus dinosaur hatchling creature on four short thick legs, very wide flat low back covered in rows of round knobby teal armor plates with crimson studs, small low beaked head with sleepy eyes, short stubby tail, no club, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 9909
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ankylo/base.png b/pixellab_src/pl_ankylo/base.png
new file mode 100644
index 0000000..d487817
Binary files /dev/null and b/pixellab_src/pl_ankylo/base.png differ
diff --git a/pixellab_src/pl_ankylo/base_raw.png b/pixellab_src/pl_ankylo/base_raw.png
new file mode 100644
index 0000000..898569e
Binary files /dev/null and b/pixellab_src/pl_ankylo/base_raw.png differ
diff --git a/pixellab_src/pl_ankylo_b/base.json b/pixellab_src/pl_ankylo_b/base.json
new file mode 100644
index 0000000..460ce19
--- /dev/null
+++ b/pixellab_src/pl_ankylo_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its back taller and domed with bigger pointed armor plates along its sides, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ankylo_b/base.png b/pixellab_src/pl_ankylo_b/base.png
new file mode 100644
index 0000000..f081a9d
Binary files /dev/null and b/pixellab_src/pl_ankylo_b/base.png differ
diff --git a/pixellab_src/pl_ankylo_c/base.json b/pixellab_src/pl_ankylo_c/base.json
new file mode 100644
index 0000000..ffe71c5
--- /dev/null
+++ b/pixellab_src/pl_ankylo_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it longer and lower with a very wide flat back covered in big flat square armor tiles with crimson edges, a long low narrow snout and small squinting eyes, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ankylo_c/base.png b/pixellab_src/pl_ankylo_c/base.png
new file mode 100644
index 0000000..89db59d
Binary files /dev/null and b/pixellab_src/pl_ankylo_c/base.png differ
diff --git a/pixellab_src/pl_ankylo_d/base.json b/pixellab_src/pl_ankylo_d/base.json
new file mode 100644
index 0000000..3359a44
--- /dev/null
+++ b/pixellab_src/pl_ankylo_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ankylo_d/base.png b/pixellab_src/pl_ankylo_d/base.png
new file mode 100644
index 0000000..306f33b
Binary files /dev/null and b/pixellab_src/pl_ankylo_d/base.png differ
diff --git a/pixellab_src/pl_ant/_probe_back.json b/pixellab_src/pl_ant/_probe_back.json
new file mode 100644
index 0000000..a0b492e
--- /dev/null
+++ b/pixellab_src/pl_ant/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 46443,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ant/_probe_back.png b/pixellab_src/pl_ant/_probe_back.png
new file mode 100644
index 0000000..e78449a
Binary files /dev/null and b/pixellab_src/pl_ant/_probe_back.png differ
diff --git a/pixellab_src/pl_ant/_probe_head_top.json b/pixellab_src/pl_ant/_probe_head_top.json
new file mode 100644
index 0000000..4302f00
--- /dev/null
+++ b/pixellab_src/pl_ant/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 83146,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ant/_probe_head_top.png b/pixellab_src/pl_ant/_probe_head_top.png
new file mode 100644
index 0000000..9d2e537
Binary files /dev/null and b/pixellab_src/pl_ant/_probe_head_top.png differ
diff --git a/pixellab_src/pl_ant/_probe_tail.json b/pixellab_src/pl_ant/_probe_tail.json
new file mode 100644
index 0000000..1546083
--- /dev/null
+++ b/pixellab_src/pl_ant/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 22817,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ant/_probe_tail.png b/pixellab_src/pl_ant/_probe_tail.png
new file mode 100644
index 0000000..1670a95
Binary files /dev/null and b/pixellab_src/pl_ant/_probe_tail.png differ
diff --git a/pixellab_src/pl_ant/anchors.json b/pixellab_src/pl_ant/anchors.json
new file mode 100644
index 0000000..d8e9480
--- /dev/null
+++ b/pixellab_src/pl_ant/anchors.json
@@ -0,0 +1 @@
+{"pivot": [32, 60], "aura": [31, 41], "head_top": [26, 27], "back": [38, 35], "tail": [47, 45]}
diff --git a/pixellab_src/pl_ant/base.json b/pixellab_src/pl_ant/base.json
new file mode 100644
index 0000000..e098a6f
--- /dev/null
+++ b/pixellab_src/pl_ant/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "chibi worker ant creature standing on four thin legs, big round head with large friendly eyes and small mandibles, two elbowed antennae, slim pinched waist, round bulb abdomen behind, two small arms holding a crimson crumb, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2501
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ant/base.png b/pixellab_src/pl_ant/base.png
new file mode 100644
index 0000000..e3475d7
Binary files /dev/null and b/pixellab_src/pl_ant/base.png differ
diff --git a/pixellab_src/pl_ant/base_raw.png b/pixellab_src/pl_ant/base_raw.png
new file mode 100644
index 0000000..1fe1762
Binary files /dev/null and b/pixellab_src/pl_ant/base_raw.png differ
diff --git a/pixellab_src/pl_ant_b/base.json b/pixellab_src/pl_ant_b/base.json
new file mode 100644
index 0000000..38312dd
--- /dev/null
+++ b/pixellab_src/pl_ant_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it chunkier with a much bigger head, larger mandibles and crimson stripes on its abdomen, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ant_b/base.png b/pixellab_src/pl_ant_b/base.png
new file mode 100644
index 0000000..42f4805
Binary files /dev/null and b/pixellab_src/pl_ant_b/base.png differ
diff --git a/pixellab_src/pl_ant_c/base.json b/pixellab_src/pl_ant_c/base.json
new file mode 100644
index 0000000..426c072
--- /dev/null
+++ b/pixellab_src/pl_ant_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer and taller with long legs, a tiny head and crimson spots on its abdomen, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ant_c/base.png b/pixellab_src/pl_ant_c/base.png
new file mode 100644
index 0000000..6be5af6
Binary files /dev/null and b/pixellab_src/pl_ant_c/base.png differ
diff --git a/pixellab_src/pl_ant_d/base.json b/pixellab_src/pl_ant_d/base.json
new file mode 100644
index 0000000..eacc0d1
--- /dev/null
+++ b/pixellab_src/pl_ant_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it armored with thick crimson-edged plates on its body and big strong mandibles at its mouth, no horns, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ant_d/base.png b/pixellab_src/pl_ant_d/base.png
new file mode 100644
index 0000000..5ce5d55
Binary files /dev/null and b/pixellab_src/pl_ant_d/base.png differ
diff --git a/pixellab_src/pl_antlion/_probe_back.json b/pixellab_src/pl_antlion/_probe_back.json
new file mode 100644
index 0000000..ebc0ce9
--- /dev/null
+++ b/pixellab_src/pl_antlion/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 65010,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_antlion/_probe_back.png b/pixellab_src/pl_antlion/_probe_back.png
new file mode 100644
index 0000000..1a4c606
Binary files /dev/null and b/pixellab_src/pl_antlion/_probe_back.png differ
diff --git a/pixellab_src/pl_antlion/_probe_head_top.json b/pixellab_src/pl_antlion/_probe_head_top.json
new file mode 100644
index 0000000..38b8db5
--- /dev/null
+++ b/pixellab_src/pl_antlion/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 3673,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_antlion/_probe_head_top.png b/pixellab_src/pl_antlion/_probe_head_top.png
new file mode 100644
index 0000000..770dc54
Binary files /dev/null and b/pixellab_src/pl_antlion/_probe_head_top.png differ
diff --git a/pixellab_src/pl_antlion/anchors.json b/pixellab_src/pl_antlion/anchors.json
new file mode 100644
index 0000000..2a6ab8b
--- /dev/null
+++ b/pixellab_src/pl_antlion/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 42], "head_top": [31, 27], "back": [29, 31], "tail": [49, 51]}
diff --git a/pixellab_src/pl_antlion/base.json b/pixellab_src/pl_antlion/base.json
new file mode 100644
index 0000000..e80ecb5
--- /dev/null
+++ b/pixellab_src/pl_antlion/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "antlion larva creature facing the viewer, huge round fat bristly teal abdomen behind a small flat head, two long curved sickle-shaped crimson pincer jaws at the front of its head, two small beady eyes, six short spiky legs splayed to the sides, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 7505
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_antlion/base.png b/pixellab_src/pl_antlion/base.png
new file mode 100644
index 0000000..719bd86
Binary files /dev/null and b/pixellab_src/pl_antlion/base.png differ
diff --git a/pixellab_src/pl_antlion/base_raw.png b/pixellab_src/pl_antlion/base_raw.png
new file mode 100644
index 0000000..90683fc
Binary files /dev/null and b/pixellab_src/pl_antlion/base_raw.png differ
diff --git a/pixellab_src/pl_antlion_b/base.json b/pixellab_src/pl_antlion_b/base.json
new file mode 100644
index 0000000..f2d65ab
--- /dev/null
+++ b/pixellab_src/pl_antlion_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its round abdomen much smaller and turn it into a long narrow segmented body with bold crimson stripes across each segment, and make its jaws short and stubby, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_antlion_b/base.png b/pixellab_src/pl_antlion_b/base.png
new file mode 100644
index 0000000..e945c07
Binary files /dev/null and b/pixellab_src/pl_antlion_b/base.png differ
diff --git a/pixellab_src/pl_antlion_c/base.json b/pixellab_src/pl_antlion_c/base.json
new file mode 100644
index 0000000..9b4a5bc
--- /dev/null
+++ b/pixellab_src/pl_antlion_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much fatter and fluffier with long hairy bristles all over and big round glossy eyes, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_antlion_c/base.png b/pixellab_src/pl_antlion_c/base.png
new file mode 100644
index 0000000..a206b02
Binary files /dev/null and b/pixellab_src/pl_antlion_c/base.png differ
diff --git a/pixellab_src/pl_antlion_d/base.json b/pixellab_src/pl_antlion_d/base.json
new file mode 100644
index 0000000..3359a44
--- /dev/null
+++ b/pixellab_src/pl_antlion_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_antlion_d/base.png b/pixellab_src/pl_antlion_d/base.png
new file mode 100644
index 0000000..ee77fbb
Binary files /dev/null and b/pixellab_src/pl_antlion_d/base.png differ
diff --git a/pixellab_src/pl_ape/_probe_back.json b/pixellab_src/pl_ape/_probe_back.json
new file mode 100644
index 0000000..3c1eee8
--- /dev/null
+++ b/pixellab_src/pl_ape/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 94098,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape/_probe_back.png b/pixellab_src/pl_ape/_probe_back.png
new file mode 100644
index 0000000..a761fc3
Binary files /dev/null and b/pixellab_src/pl_ape/_probe_back.png differ
diff --git a/pixellab_src/pl_ape/_probe_head_top.json b/pixellab_src/pl_ape/_probe_head_top.json
new file mode 100644
index 0000000..f962de6
--- /dev/null
+++ b/pixellab_src/pl_ape/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 4899,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape/_probe_head_top.png b/pixellab_src/pl_ape/_probe_head_top.png
new file mode 100644
index 0000000..a600403
Binary files /dev/null and b/pixellab_src/pl_ape/_probe_head_top.png differ
diff --git a/pixellab_src/pl_ape/_probe_tail.json b/pixellab_src/pl_ape/_probe_tail.json
new file mode 100644
index 0000000..65d31d5
--- /dev/null
+++ b/pixellab_src/pl_ape/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 69400,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape/_probe_tail.png b/pixellab_src/pl_ape/_probe_tail.png
new file mode 100644
index 0000000..b512402
Binary files /dev/null and b/pixellab_src/pl_ape/_probe_tail.png differ
diff --git a/pixellab_src/pl_ape/anchors.json b/pixellab_src/pl_ape/anchors.json
new file mode 100644
index 0000000..70fe7f5
--- /dev/null
+++ b/pixellab_src/pl_ape/anchors.json
@@ -0,0 +1 @@
+{"pivot": [43, 60], "aura": [32, 44], "head_top": [29, 33], "back": [31, 32], "tail": [51, 46]}
diff --git a/pixellab_src/pl_ape/base.json b/pixellab_src/pl_ape/base.json
new file mode 100644
index 0000000..4977d8a
--- /dev/null
+++ b/pixellab_src/pl_ape/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "gorilla-like bruiser creature knuckle-walking on all fours, huge hunched shoulders and massive long arms, tiny short legs, heavy brow over small fierce eyes, flat wide nose, crimson knuckle pads and a crimson chest patch, no tail, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 1201
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape/base.png b/pixellab_src/pl_ape/base.png
new file mode 100644
index 0000000..962c991
Binary files /dev/null and b/pixellab_src/pl_ape/base.png differ
diff --git a/pixellab_src/pl_ape/base_raw.png b/pixellab_src/pl_ape/base_raw.png
new file mode 100644
index 0000000..c1e2b0c
Binary files /dev/null and b/pixellab_src/pl_ape/base_raw.png differ
diff --git a/pixellab_src/pl_ape/pl_headgear_boxing.json b/pixellab_src/pl_ape/pl_headgear_boxing.json
new file mode 100644
index 0000000..1a2ea61
--- /dev/null
+++ b/pixellab_src/pl_ape/pl_headgear_boxing.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a crimson padded boxing headgear helmet covering the top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape/pl_headgear_boxing.png b/pixellab_src/pl_ape/pl_headgear_boxing.png
new file mode 100644
index 0000000..a65b26f
Binary files /dev/null and b/pixellab_src/pl_ape/pl_headgear_boxing.png differ
diff --git a/pixellab_src/pl_ape/pl_tail_glove.json b/pixellab_src/pl_ape/pl_tail_glove.json
new file mode 100644
index 0000000..e2c513f
--- /dev/null
+++ b/pixellab_src/pl_ape/pl_tail_glove.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long teal tail ending in a big crimson boxing glove, curling up on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape/pl_tail_glove.png b/pixellab_src/pl_ape/pl_tail_glove.png
new file mode 100644
index 0000000..7cad8d4
Binary files /dev/null and b/pixellab_src/pl_ape/pl_tail_glove.png differ
diff --git a/pixellab_src/pl_ape_b/base.json b/pixellab_src/pl_ape_b/base.json
new file mode 100644
index 0000000..5c1414b
--- /dev/null
+++ b/pixellab_src/pl_ape_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it heavier with a huge jutting jaw, a tall domed head crest and a crimson saddle marking across its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape_b/base.png b/pixellab_src/pl_ape_b/base.png
new file mode 100644
index 0000000..5b58109
Binary files /dev/null and b/pixellab_src/pl_ape_b/base.png differ
diff --git a/pixellab_src/pl_ape_c/base.json b/pixellab_src/pl_ape_c/base.json
new file mode 100644
index 0000000..ca0c28a
--- /dev/null
+++ b/pixellab_src/pl_ape_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it leaner and lankier with a longer face, a pale cream muzzle and crimson bands around its forearms, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape_c/base.png b/pixellab_src/pl_ape_c/base.png
new file mode 100644
index 0000000..25eb477
Binary files /dev/null and b/pixellab_src/pl_ape_c/base.png differ
diff --git a/pixellab_src/pl_ape_d/base.json b/pixellab_src/pl_ape_d/base.json
new file mode 100644
index 0000000..16048f5
--- /dev/null
+++ b/pixellab_src/pl_ape_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a young chibi gorilla with a huge round furry head, big eyes, a small muzzle and short stubby arms, keep its animal face and teal skin, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_ape_d/base.png b/pixellab_src/pl_ape_d/base.png
new file mode 100644
index 0000000..c6a535f
Binary files /dev/null and b/pixellab_src/pl_ape_d/base.png differ
diff --git a/pixellab_src/pl_aphid/_probe_back.json b/pixellab_src/pl_aphid/_probe_back.json
new file mode 100644
index 0000000..14f80bd
--- /dev/null
+++ b/pixellab_src/pl_aphid/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 65280,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aphid/_probe_back.png b/pixellab_src/pl_aphid/_probe_back.png
new file mode 100644
index 0000000..8d7c9a5
Binary files /dev/null and b/pixellab_src/pl_aphid/_probe_back.png differ
diff --git a/pixellab_src/pl_aphid/_probe_head_top.json b/pixellab_src/pl_aphid/_probe_head_top.json
new file mode 100644
index 0000000..21a8210
--- /dev/null
+++ b/pixellab_src/pl_aphid/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 93618,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aphid/_probe_head_top.png b/pixellab_src/pl_aphid/_probe_head_top.png
new file mode 100644
index 0000000..32ba247
Binary files /dev/null and b/pixellab_src/pl_aphid/_probe_head_top.png differ
diff --git a/pixellab_src/pl_aphid/_probe_tail.json b/pixellab_src/pl_aphid/_probe_tail.json
new file mode 100644
index 0000000..112c37c
--- /dev/null
+++ b/pixellab_src/pl_aphid/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 77482,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aphid/_probe_tail.png b/pixellab_src/pl_aphid/_probe_tail.png
new file mode 100644
index 0000000..2eb06e5
Binary files /dev/null and b/pixellab_src/pl_aphid/_probe_tail.png differ
diff --git a/pixellab_src/pl_aphid/anchors.json b/pixellab_src/pl_aphid/anchors.json
new file mode 100644
index 0000000..054746e
--- /dev/null
+++ b/pixellab_src/pl_aphid/anchors.json
@@ -0,0 +1 @@
+{"pivot": [30, 60], "aura": [31, 44], "head_top": [27, 33], "back": [38, 34], "tail": [44, 40]}
diff --git a/pixellab_src/pl_aphid/base.json b/pixellab_src/pl_aphid/base.json
new file mode 100644
index 0000000..20596eb
--- /dev/null
+++ b/pixellab_src/pl_aphid/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "plump aphid bug creature, round pear-shaped soft translucent body, small head with big gentle eyes and short antennae, six thin long legs, two small tubes sticking up from its rear, crimson spots on its back, no wings, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 40,
+ "height": 40
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 4101
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aphid/base.png b/pixellab_src/pl_aphid/base.png
new file mode 100644
index 0000000..c9d252b
Binary files /dev/null and b/pixellab_src/pl_aphid/base.png differ
diff --git a/pixellab_src/pl_aphid/base_raw.png b/pixellab_src/pl_aphid/base_raw.png
new file mode 100644
index 0000000..b0b2af9
Binary files /dev/null and b/pixellab_src/pl_aphid/base_raw.png differ
diff --git a/pixellab_src/pl_aphid_b/base.json b/pixellab_src/pl_aphid_b/base.json
new file mode 100644
index 0000000..f784716
--- /dev/null
+++ b/pixellab_src/pl_aphid_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much fatter and rounder like a ball with a tiny head and crimson stripes across its back, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aphid_b/base.png b/pixellab_src/pl_aphid_b/base.png
new file mode 100644
index 0000000..7bd92d5
Binary files /dev/null and b/pixellab_src/pl_aphid_b/base.png differ
diff --git a/pixellab_src/pl_aphid_c/base.json b/pixellab_src/pl_aphid_c/base.json
new file mode 100644
index 0000000..bb44b0e
--- /dev/null
+++ b/pixellab_src/pl_aphid_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer and longer with fuzzy waxy fluff on its back and crimson spots on its head, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aphid_c/base.png b/pixellab_src/pl_aphid_c/base.png
new file mode 100644
index 0000000..b0fe5c8
Binary files /dev/null and b/pixellab_src/pl_aphid_c/base.png differ
diff --git a/pixellab_src/pl_aphid_d/base.json b/pixellab_src/pl_aphid_d/base.json
new file mode 100644
index 0000000..5a7be60
--- /dev/null
+++ b/pixellab_src/pl_aphid_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it armored with a hard shiny crimson-spotted shell dome on its back, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_aphid_d/base.png b/pixellab_src/pl_aphid_d/base.png
new file mode 100644
index 0000000..f888e0d
Binary files /dev/null and b/pixellab_src/pl_aphid_d/base.png differ
diff --git a/pixellab_src/pl_armor/_probe_back.json b/pixellab_src/pl_armor/_probe_back.json
new file mode 100644
index 0000000..d6b1202
--- /dev/null
+++ b/pixellab_src/pl_armor/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 20645,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor/_probe_back.png b/pixellab_src/pl_armor/_probe_back.png
new file mode 100644
index 0000000..465afa2
Binary files /dev/null and b/pixellab_src/pl_armor/_probe_back.png differ
diff --git a/pixellab_src/pl_armor/_probe_head_top.json b/pixellab_src/pl_armor/_probe_head_top.json
new file mode 100644
index 0000000..d3942b1
--- /dev/null
+++ b/pixellab_src/pl_armor/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 62387,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor/_probe_head_top.png b/pixellab_src/pl_armor/_probe_head_top.png
new file mode 100644
index 0000000..bdc7f20
Binary files /dev/null and b/pixellab_src/pl_armor/_probe_head_top.png differ
diff --git a/pixellab_src/pl_armor/_probe_tail.json b/pixellab_src/pl_armor/_probe_tail.json
new file mode 100644
index 0000000..cb187df
--- /dev/null
+++ b/pixellab_src/pl_armor/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 65903,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor/_probe_tail.png b/pixellab_src/pl_armor/_probe_tail.png
new file mode 100644
index 0000000..193684f
Binary files /dev/null and b/pixellab_src/pl_armor/_probe_tail.png differ
diff --git a/pixellab_src/pl_armor/anchors.json b/pixellab_src/pl_armor/anchors.json
new file mode 100644
index 0000000..a47dbea
--- /dev/null
+++ b/pixellab_src/pl_armor/anchors.json
@@ -0,0 +1 @@
+{"pivot": [28, 60], "aura": [31, 41], "head_top": [30, 24], "back": [31, 38], "tail": [44, 54]}
diff --git a/pixellab_src/pl_armor/base.json b/pixellab_src/pl_armor/base.json
new file mode 100644
index 0000000..d739993
--- /dev/null
+++ b/pixellab_src/pl_armor/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "small chibi empty suit of knight armor standing up, big round helmet with a dark visor slit and two glowing eyes inside, round shoulder plates, stubby armored arms and legs, a crimson sash across its chest, no weapon, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 2108
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor/base.png b/pixellab_src/pl_armor/base.png
new file mode 100644
index 0000000..d30fc0b
Binary files /dev/null and b/pixellab_src/pl_armor/base.png differ
diff --git a/pixellab_src/pl_armor/base_raw.png b/pixellab_src/pl_armor/base_raw.png
new file mode 100644
index 0000000..37fa36b
Binary files /dev/null and b/pixellab_src/pl_armor/base_raw.png differ
diff --git a/pixellab_src/pl_armor/pl_wings_tattered.json b/pixellab_src/pl_armor/pl_wings_tattered.json
new file mode 100644
index 0000000..98bf7e1
--- /dev/null
+++ b/pixellab_src/pl_armor/pl_wings_tattered.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small compact tattered crimson cloth wings with torn ragged edges spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor/pl_wings_tattered.png b/pixellab_src/pl_armor/pl_wings_tattered.png
new file mode 100644
index 0000000..eb995e6
Binary files /dev/null and b/pixellab_src/pl_armor/pl_wings_tattered.png differ
diff --git a/pixellab_src/pl_armor_b/base.json b/pixellab_src/pl_armor_b/base.json
new file mode 100644
index 0000000..0fa811e
--- /dev/null
+++ b/pixellab_src/pl_armor_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the armor bulkier and wider with huge rounded shoulder plates, a bucket-shaped helmet and crimson rivets, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor_b/base.png b/pixellab_src/pl_armor_b/base.png
new file mode 100644
index 0000000..c01ad3f
Binary files /dev/null and b/pixellab_src/pl_armor_b/base.png differ
diff --git a/pixellab_src/pl_armor_c/base.json b/pixellab_src/pl_armor_c/base.json
new file mode 100644
index 0000000..1c6886d
--- /dev/null
+++ b/pixellab_src/pl_armor_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the armor slimmer and taller with a pointed helmet, a narrow eye slit and a tattered crimson cloth skirt, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor_c/base.png b/pixellab_src/pl_armor_c/base.png
new file mode 100644
index 0000000..06d9cf4
Binary files /dev/null and b/pixellab_src/pl_armor_c/base.png differ
diff --git a/pixellab_src/pl_armor_d/base.json b/pixellab_src/pl_armor_d/base.json
new file mode 100644
index 0000000..b39cd53
--- /dev/null
+++ b/pixellab_src/pl_armor_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a chibi squire armor with a huge round helmet that has a round open face hole showing glowing eyes in darkness, tiny stubby limbs and a crimson tabard, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_armor_d/base.png b/pixellab_src/pl_armor_d/base.png
new file mode 100644
index 0000000..838fcf0
Binary files /dev/null and b/pixellab_src/pl_armor_d/base.png differ
diff --git a/pixellab_src/pl_arowana/_probe_back.json b/pixellab_src/pl_arowana/_probe_back.json
new file mode 100644
index 0000000..890d885
--- /dev/null
+++ b/pixellab_src/pl_arowana/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 62518,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_arowana/_probe_back.png b/pixellab_src/pl_arowana/_probe_back.png
new file mode 100644
index 0000000..fd0331f
Binary files /dev/null and b/pixellab_src/pl_arowana/_probe_back.png differ
diff --git a/pixellab_src/pl_arowana/_probe_head_top.json b/pixellab_src/pl_arowana/_probe_head_top.json
new file mode 100644
index 0000000..964c95d
--- /dev/null
+++ b/pixellab_src/pl_arowana/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 56505,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_arowana/_probe_head_top.png b/pixellab_src/pl_arowana/_probe_head_top.png
new file mode 100644
index 0000000..c18a0aa
Binary files /dev/null and b/pixellab_src/pl_arowana/_probe_head_top.png differ
diff --git a/pixellab_src/pl_arowana/anchors.json b/pixellab_src/pl_arowana/anchors.json
new file mode 100644
index 0000000..7d592f6
--- /dev/null
+++ b/pixellab_src/pl_arowana/anchors.json
@@ -0,0 +1 @@
+{"pivot": [32, 56], "aura": [32, 44], "head_top": [25, 36], "back": [36, 38], "tail": [50, 49]}
diff --git a/pixellab_src/pl_arowana/base.json b/pixellab_src/pl_arowana/base.json
new file mode 100644
index 0000000..3277739
--- /dev/null
+++ b/pixellab_src/pl_arowana/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "asian arowana dragon fish creature hovering, long sleek body with big shiny teal scales outlined in crimson, a steep upturned jaw with two whisker barbels on its chin, big eyes, long fins along its back and belly, fan tail fin on the right, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 4201
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_arowana/base.png b/pixellab_src/pl_arowana/base.png
new file mode 100644
index 0000000..7fd5cbc
Binary files /dev/null and b/pixellab_src/pl_arowana/base.png differ
diff --git a/pixellab_src/pl_arowana/base_raw.png b/pixellab_src/pl_arowana/base_raw.png
new file mode 100644
index 0000000..15a12f4
Binary files /dev/null and b/pixellab_src/pl_arowana/base_raw.png differ
diff --git a/pixellab_src/pl_arowana_b/base.json b/pixellab_src/pl_arowana_b/base.json
new file mode 100644
index 0000000..9790caa
--- /dev/null
+++ b/pixellab_src/pl_arowana_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it shorter and rounder with bigger scales and a crimson belly, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_arowana_b/base.png b/pixellab_src/pl_arowana_b/base.png
new file mode 100644
index 0000000..8087c72
Binary files /dev/null and b/pixellab_src/pl_arowana_b/base.png differ
diff --git a/pixellab_src/pl_arowana_c/base.json b/pixellab_src/pl_arowana_c/base.json
new file mode 100644
index 0000000..ea31a86
--- /dev/null
+++ b/pixellab_src/pl_arowana_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it longer with longer drooping barbels and a crimson band behind its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_arowana_c/base.png b/pixellab_src/pl_arowana_c/base.png
new file mode 100644
index 0000000..055f500
Binary files /dev/null and b/pixellab_src/pl_arowana_c/base.png differ
diff --git a/pixellab_src/pl_arowana_d/base.json b/pixellab_src/pl_arowana_d/base.json
new file mode 100644
index 0000000..7da851d
--- /dev/null
+++ b/pixellab_src/pl_arowana_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it very tall and deep-bodied like a round disc fish, keep its face and teal color, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 7,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_arowana_d/base.png b/pixellab_src/pl_arowana_d/base.png
new file mode 100644
index 0000000..5b447ec
Binary files /dev/null and b/pixellab_src/pl_arowana_d/base.png differ
diff --git a/pixellab_src/pl_auger/_probe_back.json b/pixellab_src/pl_auger/_probe_back.json
new file mode 100644
index 0000000..157a040
--- /dev/null
+++ b/pixellab_src/pl_auger/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 46548,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_auger/_probe_back.png b/pixellab_src/pl_auger/_probe_back.png
new file mode 100644
index 0000000..d21e5f8
Binary files /dev/null and b/pixellab_src/pl_auger/_probe_back.png differ
diff --git a/pixellab_src/pl_auger/_probe_head_top.json b/pixellab_src/pl_auger/_probe_head_top.json
new file mode 100644
index 0000000..9ef457a
--- /dev/null
+++ b/pixellab_src/pl_auger/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 8145,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_auger/_probe_head_top.png b/pixellab_src/pl_auger/_probe_head_top.png
new file mode 100644
index 0000000..1806a3c
Binary files /dev/null and b/pixellab_src/pl_auger/_probe_head_top.png differ
diff --git a/pixellab_src/pl_auger/anchors.json b/pixellab_src/pl_auger/anchors.json
new file mode 100644
index 0000000..944fa62
--- /dev/null
+++ b/pixellab_src/pl_auger/anchors.json
@@ -0,0 +1 @@
+{"pivot": [32, 60], "aura": [32, 41], "head_top": [33, 22], "back": [40, 24], "tail": [51, 51]}
diff --git a/pixellab_src/pl_auger/base.json b/pixellab_src/pl_auger/base.json
new file mode 100644
index 0000000..8794c53
--- /dev/null
+++ b/pixellab_src/pl_auger/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "burrowing serpent creature coiled up on the ground, thick segmented ringed teal body, its snout is a short pointed spiral drill-bit cone with crimson grooves pointing to the left, two small determined eyes behind the drill, no limbs, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 9101
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_auger/base.png b/pixellab_src/pl_auger/base.png
new file mode 100644
index 0000000..558f744
Binary files /dev/null and b/pixellab_src/pl_auger/base.png differ
diff --git a/pixellab_src/pl_auger/base_raw.png b/pixellab_src/pl_auger/base_raw.png
new file mode 100644
index 0000000..0c9c480
Binary files /dev/null and b/pixellab_src/pl_auger/base_raw.png differ
diff --git a/pixellab_src/pl_auger_b/base.json b/pixellab_src/pl_auger_b/base.json
new file mode 100644
index 0000000..c4d7486
--- /dev/null
+++ b/pixellab_src/pl_auger_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the serpent much fatter and shorter with thick armored ring plates and crimson bands between the rings, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_auger_b/base.png b/pixellab_src/pl_auger_b/base.png
new file mode 100644
index 0000000..c67c407
Binary files /dev/null and b/pixellab_src/pl_auger_b/base.png differ
diff --git a/pixellab_src/pl_auger_c/base.json b/pixellab_src/pl_auger_c/base.json
new file mode 100644
index 0000000..b1bd656
--- /dev/null
+++ b/pixellab_src/pl_auger_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the serpent thinner and longer with more coils, a smooth body and a row of crimson dots along its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_auger_c/base.png b/pixellab_src/pl_auger_c/base.png
new file mode 100644
index 0000000..cb1464d
Binary files /dev/null and b/pixellab_src/pl_auger_c/base.png differ
diff --git a/pixellab_src/pl_auger_d/base.json b/pixellab_src/pl_auger_d/base.json
new file mode 100644
index 0000000..574882b
--- /dev/null
+++ b/pixellab_src/pl_auger_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_auger_d/base.png b/pixellab_src/pl_auger_d/base.png
new file mode 100644
index 0000000..0e37838
Binary files /dev/null and b/pixellab_src/pl_auger_d/base.png differ
diff --git a/pixellab_src/pl_axolotl/anchors.json b/pixellab_src/pl_axolotl/anchors.json
new file mode 100644
index 0000000..3e317f7
--- /dev/null
+++ b/pixellab_src/pl_axolotl/anchors.json
@@ -0,0 +1 @@
+{"pivot": [34, 60], "aura": [31, 43], "head_top": [30, 32], "back": [38, 33], "tail": [48, 52]}
diff --git a/pixellab_src/pl_axolotl_b/base.json b/pixellab_src/pl_axolotl_b/base.json
new file mode 100644
index 0000000..36b170b
--- /dev/null
+++ b/pixellab_src/pl_axolotl_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much chubbier with a rounder puffy body, bigger frilly crimson gill fronds and crimson spots along its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_axolotl_b/base.png b/pixellab_src/pl_axolotl_b/base.png
new file mode 100644
index 0000000..32d17fe
Binary files /dev/null and b/pixellab_src/pl_axolotl_b/base.png differ
diff --git a/pixellab_src/pl_axolotl_c/base.json b/pixellab_src/pl_axolotl_c/base.json
new file mode 100644
index 0000000..42e5ef1
--- /dev/null
+++ b/pixellab_src/pl_axolotl_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it twice as round and squat like a fat ball with tiny legs, keep its wide flat axolotl head, frilly gills and teal color, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 11,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_axolotl_c/base.png b/pixellab_src/pl_axolotl_c/base.png
new file mode 100644
index 0000000..3614b52
Binary files /dev/null and b/pixellab_src/pl_axolotl_c/base.png differ
diff --git a/pixellab_src/pl_axolotl_d/base.json b/pixellab_src/pl_axolotl_d/base.json
new file mode 100644
index 0000000..bdb8033
--- /dev/null
+++ b/pixellab_src/pl_axolotl_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a tiny baby version with an oversized head, big shiny eyes, stubby limbs and crimson cheek blush, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_axolotl_d/base.png b/pixellab_src/pl_axolotl_d/base.png
new file mode 100644
index 0000000..6dd9465
Binary files /dev/null and b/pixellab_src/pl_axolotl_d/base.png differ
diff --git a/pixellab_src/pl_balloon/_probe_back.json b/pixellab_src/pl_balloon/_probe_back.json
new file mode 100644
index 0000000..d46124f
--- /dev/null
+++ b/pixellab_src/pl_balloon/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 78733,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_balloon/_probe_back.png b/pixellab_src/pl_balloon/_probe_back.png
new file mode 100644
index 0000000..2d7a019
Binary files /dev/null and b/pixellab_src/pl_balloon/_probe_back.png differ
diff --git a/pixellab_src/pl_balloon/_probe_head_top.json b/pixellab_src/pl_balloon/_probe_head_top.json
new file mode 100644
index 0000000..94851bf
--- /dev/null
+++ b/pixellab_src/pl_balloon/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 78914,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_balloon/_probe_head_top.png b/pixellab_src/pl_balloon/_probe_head_top.png
new file mode 100644
index 0000000..381e173
Binary files /dev/null and b/pixellab_src/pl_balloon/_probe_head_top.png differ
diff --git a/pixellab_src/pl_balloon/_probe_tail.json b/pixellab_src/pl_balloon/_probe_tail.json
new file mode 100644
index 0000000..a8df2d4
--- /dev/null
+++ b/pixellab_src/pl_balloon/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 69831,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_balloon/_probe_tail.png b/pixellab_src/pl_balloon/_probe_tail.png
new file mode 100644
index 0000000..dbcf266
Binary files /dev/null and b/pixellab_src/pl_balloon/_probe_tail.png differ
diff --git a/pixellab_src/pl_balloon/anchors.json b/pixellab_src/pl_balloon/anchors.json
new file mode 100644
index 0000000..dc8d241
--- /dev/null
+++ b/pixellab_src/pl_balloon/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 37], "head_top": [31, 22], "back": [31, 33], "tail": [39, 47]}
diff --git a/pixellab_src/pl_balloon/base.json b/pixellab_src/pl_balloon/base.json
new file mode 100644
index 0000000..f94fb97
--- /dev/null
+++ b/pixellab_src/pl_balloon/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "hot air balloon creature, big round balloon envelope body with vertical crimson and teal panels, a happy face on the balloon, short ropes hanging down to a small wicker basket at the bottom like feet, no arms, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 3601
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_balloon/base.png b/pixellab_src/pl_balloon/base.png
new file mode 100644
index 0000000..dcf4977
Binary files /dev/null and b/pixellab_src/pl_balloon/base.png differ
diff --git a/pixellab_src/pl_balloon/base_raw.png b/pixellab_src/pl_balloon/base_raw.png
new file mode 100644
index 0000000..d5f4200
Binary files /dev/null and b/pixellab_src/pl_balloon/base_raw.png differ
diff --git a/pixellab_src/pl_balloon_b/base.json b/pixellab_src/pl_balloon_b/base.json
new file mode 100644
index 0000000..c1d316a
--- /dev/null
+++ b/pixellab_src/pl_balloon_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the balloon squatter and wider like a pumpkin shape with crimson polka dots, keep the teal balloon color, keep the same size and pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_balloon_b/base.png b/pixellab_src/pl_balloon_b/base.png
new file mode 100644
index 0000000..7b81617
Binary files /dev/null and b/pixellab_src/pl_balloon_b/base.png differ
diff --git a/pixellab_src/pl_balloon_c/base.json b/pixellab_src/pl_balloon_c/base.json
new file mode 100644
index 0000000..42c4219
--- /dev/null
+++ b/pixellab_src/pl_balloon_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the balloon taller and teardrop shaped with crimson zigzag bands and a sleepy face, keep the same size and pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_balloon_c/base.png b/pixellab_src/pl_balloon_c/base.png
new file mode 100644
index 0000000..b6695b7
Binary files /dev/null and b/pixellab_src/pl_balloon_c/base.png differ
diff --git a/pixellab_src/pl_balloon_d/base.json b/pixellab_src/pl_balloon_d/base.json
new file mode 100644
index 0000000..ab3a59c
--- /dev/null
+++ b/pixellab_src/pl_balloon_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "cover the teal balloon in crimson patchwork patches with stitched seams, keep its teal face, keep the same size and pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_balloon_d/base.png b/pixellab_src/pl_balloon_d/base.png
new file mode 100644
index 0000000..c2c4cf1
Binary files /dev/null and b/pixellab_src/pl_balloon_d/base.png differ
diff --git a/pixellab_src/pl_bamboo/_probe_back.json b/pixellab_src/pl_bamboo/_probe_back.json
new file mode 100644
index 0000000..d14b967
--- /dev/null
+++ b/pixellab_src/pl_bamboo/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 38105,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bamboo/_probe_back.png b/pixellab_src/pl_bamboo/_probe_back.png
new file mode 100644
index 0000000..a91f89d
Binary files /dev/null and b/pixellab_src/pl_bamboo/_probe_back.png differ
diff --git a/pixellab_src/pl_bamboo/_probe_head_top.json b/pixellab_src/pl_bamboo/_probe_head_top.json
new file mode 100644
index 0000000..83e1561
--- /dev/null
+++ b/pixellab_src/pl_bamboo/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 46676,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bamboo/_probe_head_top.png b/pixellab_src/pl_bamboo/_probe_head_top.png
new file mode 100644
index 0000000..5746aa8
Binary files /dev/null and b/pixellab_src/pl_bamboo/_probe_head_top.png differ
diff --git a/pixellab_src/pl_bamboo/_probe_tail.json b/pixellab_src/pl_bamboo/_probe_tail.json
new file mode 100644
index 0000000..92ce1ac
--- /dev/null
+++ b/pixellab_src/pl_bamboo/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 10483,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bamboo/_probe_tail.png b/pixellab_src/pl_bamboo/_probe_tail.png
new file mode 100644
index 0000000..f8f5d61
Binary files /dev/null and b/pixellab_src/pl_bamboo/_probe_tail.png differ
diff --git a/pixellab_src/pl_bamboo/anchors.json b/pixellab_src/pl_bamboo/anchors.json
new file mode 100644
index 0000000..083cbe8
--- /dev/null
+++ b/pixellab_src/pl_bamboo/anchors.json
@@ -0,0 +1 @@
+{"pivot": [28, 60], "aura": [31, 44], "head_top": [29, 28], "back": [38, 33], "tail": [44, 49]}
diff --git a/pixellab_src/pl_bamboo/base.json b/pixellab_src/pl_bamboo/base.json
new file mode 100644
index 0000000..2d4eabd
--- /dev/null
+++ b/pixellab_src/pl_bamboo/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "serpent creature whose whole body is a bendy teal bamboo stalk made of hollow tube segments with thick ridged rings at every node, coiled in a pile with its front end rising up, the head is a rounded bamboo shoot tip with layered sheath leaves and two round friendly eyes, a few small bamboo leaves sprouting from the nodes, crimson rings at the nodes, thin tail tip resting on the right side, no horns, no fins, no ground shadow, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2204
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bamboo/base.png b/pixellab_src/pl_bamboo/base.png
new file mode 100644
index 0000000..dc49ee7
Binary files /dev/null and b/pixellab_src/pl_bamboo/base.png differ
diff --git a/pixellab_src/pl_bamboo/base_raw.png b/pixellab_src/pl_bamboo/base_raw.png
new file mode 100644
index 0000000..3e83e1e
Binary files /dev/null and b/pixellab_src/pl_bamboo/base_raw.png differ
diff --git a/pixellab_src/pl_bamboo_b/base.json b/pixellab_src/pl_bamboo_b/base.json
new file mode 100644
index 0000000..07e42b3
--- /dev/null
+++ b/pixellab_src/pl_bamboo_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the bamboo segments much thicker and shorter so it looks chunky and stout, with a broad flat head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bamboo_b/base.png b/pixellab_src/pl_bamboo_b/base.png
new file mode 100644
index 0000000..fd244f8
Binary files /dev/null and b/pixellab_src/pl_bamboo_b/base.png differ
diff --git a/pixellab_src/pl_bamboo_c/base.json b/pixellab_src/pl_bamboo_c/base.json
new file mode 100644
index 0000000..7623a83
--- /dev/null
+++ b/pixellab_src/pl_bamboo_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer and taller with more leaf sprigs and crimson leaf tips, coiled higher, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bamboo_c/base.png b/pixellab_src/pl_bamboo_c/base.png
new file mode 100644
index 0000000..cfd4218
Binary files /dev/null and b/pixellab_src/pl_bamboo_c/base.png differ
diff --git a/pixellab_src/pl_bamboo_d/base.json b/pixellab_src/pl_bamboo_d/base.json
new file mode 100644
index 0000000..78fe669
--- /dev/null
+++ b/pixellab_src/pl_bamboo_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its body one tall upright bamboo stalk with only one coil at the bottom, a wide flat leaf collar under its head and crimson nodes, keep it teal, no green, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bamboo_d/base.png b/pixellab_src/pl_bamboo_d/base.png
new file mode 100644
index 0000000..487ab9c
Binary files /dev/null and b/pixellab_src/pl_bamboo_d/base.png differ
diff --git a/pixellab_src/pl_barrel/_probe_back.json b/pixellab_src/pl_barrel/_probe_back.json
new file mode 100644
index 0000000..5a422a5
--- /dev/null
+++ b/pixellab_src/pl_barrel/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 72614,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barrel/_probe_back.png b/pixellab_src/pl_barrel/_probe_back.png
new file mode 100644
index 0000000..c960a61
Binary files /dev/null and b/pixellab_src/pl_barrel/_probe_back.png differ
diff --git a/pixellab_src/pl_barrel/_probe_head_top.json b/pixellab_src/pl_barrel/_probe_head_top.json
new file mode 100644
index 0000000..cba7727
--- /dev/null
+++ b/pixellab_src/pl_barrel/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 14462,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barrel/_probe_head_top.png b/pixellab_src/pl_barrel/_probe_head_top.png
new file mode 100644
index 0000000..f3bc3ab
Binary files /dev/null and b/pixellab_src/pl_barrel/_probe_head_top.png differ
diff --git a/pixellab_src/pl_barrel/_probe_tail.json b/pixellab_src/pl_barrel/_probe_tail.json
new file mode 100644
index 0000000..91199e0
--- /dev/null
+++ b/pixellab_src/pl_barrel/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 22220,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barrel/_probe_tail.png b/pixellab_src/pl_barrel/_probe_tail.png
new file mode 100644
index 0000000..f6d6a2c
Binary files /dev/null and b/pixellab_src/pl_barrel/_probe_tail.png differ
diff --git a/pixellab_src/pl_barrel/anchors.json b/pixellab_src/pl_barrel/anchors.json
new file mode 100644
index 0000000..f03740e
--- /dev/null
+++ b/pixellab_src/pl_barrel/anchors.json
@@ -0,0 +1 @@
+{"pivot": [25, 60], "aura": [32, 39], "head_top": [32, 23], "back": [33, 38], "tail": [47, 43]}
diff --git a/pixellab_src/pl_barrel/base.json b/pixellab_src/pl_barrel/base.json
new file mode 100644
index 0000000..f7550e1
--- /dev/null
+++ b/pixellab_src/pl_barrel/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "living metal waste drum barrel creature, dented cylindrical teal barrel body with two crimson hazard bands around it, a face on the front of the barrel, thick glowing slime oozing over the rim of its lid and dripping down its sides, two stubby little feet, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 2102
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barrel/base.png b/pixellab_src/pl_barrel/base.png
new file mode 100644
index 0000000..3d82b4e
Binary files /dev/null and b/pixellab_src/pl_barrel/base.png differ
diff --git a/pixellab_src/pl_barrel/base_raw.png b/pixellab_src/pl_barrel/base_raw.png
new file mode 100644
index 0000000..c466486
Binary files /dev/null and b/pixellab_src/pl_barrel/base_raw.png differ
diff --git a/pixellab_src/pl_barrel_b/base.json b/pixellab_src/pl_barrel_b/base.json
new file mode 100644
index 0000000..32cdf08
--- /dev/null
+++ b/pixellab_src/pl_barrel_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the barrel shorter and fatter with big dents, rust patches and a crooked lid, with a worried face, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barrel_b/base.png b/pixellab_src/pl_barrel_b/base.png
new file mode 100644
index 0000000..eb2cf43
Binary files /dev/null and b/pixellab_src/pl_barrel_b/base.png differ
diff --git a/pixellab_src/pl_barrel_c/base.json b/pixellab_src/pl_barrel_c/base.json
new file mode 100644
index 0000000..3cbd958
--- /dev/null
+++ b/pixellab_src/pl_barrel_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the barrel taller and thinner with ribbed rings, more slime pouring over its lid and a goofy grin, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barrel_c/base.png b/pixellab_src/pl_barrel_c/base.png
new file mode 100644
index 0000000..1214b45
Binary files /dev/null and b/pixellab_src/pl_barrel_c/base.png differ
diff --git a/pixellab_src/pl_barrel_d/base.json b/pixellab_src/pl_barrel_d/base.json
new file mode 100644
index 0000000..ffce6a6
--- /dev/null
+++ b/pixellab_src/pl_barrel_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a small round wooden keg with crimson metal hoops, a cork bung on top leaking slime and a sleepy face, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barrel_d/base.png b/pixellab_src/pl_barrel_d/base.png
new file mode 100644
index 0000000..7dfb750
Binary files /dev/null and b/pixellab_src/pl_barrel_d/base.png differ
diff --git a/pixellab_src/pl_barreleye/_probe_back.json b/pixellab_src/pl_barreleye/_probe_back.json
new file mode 100644
index 0000000..e7b1fcd
--- /dev/null
+++ b/pixellab_src/pl_barreleye/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 4775,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barreleye/_probe_back.png b/pixellab_src/pl_barreleye/_probe_back.png
new file mode 100644
index 0000000..a6d759f
Binary files /dev/null and b/pixellab_src/pl_barreleye/_probe_back.png differ
diff --git a/pixellab_src/pl_barreleye/_probe_head_top.json b/pixellab_src/pl_barreleye/_probe_head_top.json
new file mode 100644
index 0000000..8a567c4
--- /dev/null
+++ b/pixellab_src/pl_barreleye/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 13281,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barreleye/_probe_head_top.png b/pixellab_src/pl_barreleye/_probe_head_top.png
new file mode 100644
index 0000000..2f1e12e
Binary files /dev/null and b/pixellab_src/pl_barreleye/_probe_head_top.png differ
diff --git a/pixellab_src/pl_barreleye/_probe_tail.json b/pixellab_src/pl_barreleye/_probe_tail.json
new file mode 100644
index 0000000..88c13f8
--- /dev/null
+++ b/pixellab_src/pl_barreleye/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 84557,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barreleye/_probe_tail.png b/pixellab_src/pl_barreleye/_probe_tail.png
new file mode 100644
index 0000000..f392f42
Binary files /dev/null and b/pixellab_src/pl_barreleye/_probe_tail.png differ
diff --git a/pixellab_src/pl_barreleye/anchors.json b/pixellab_src/pl_barreleye/anchors.json
new file mode 100644
index 0000000..1cc617f
--- /dev/null
+++ b/pixellab_src/pl_barreleye/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 42], "head_top": [30, 27], "back": [30, 39], "tail": [48, 49]}
diff --git a/pixellab_src/pl_barreleye/base.json b/pixellab_src/pl_barreleye/base.json
new file mode 100644
index 0000000..eccd1a6
--- /dev/null
+++ b/pixellab_src/pl_barreleye/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "barreleye fish creature hovering upright, a big transparent clear glass-like dome on top of its head with its two big round eyes visible inside the dome, small plump fish body below, tiny pouty mouth on its front, crimson spots on its sides, two small paddle fins held out like arms, no tail fin, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2210
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barreleye/base.png b/pixellab_src/pl_barreleye/base.png
new file mode 100644
index 0000000..3f1e257
Binary files /dev/null and b/pixellab_src/pl_barreleye/base.png differ
diff --git a/pixellab_src/pl_barreleye/base_raw.png b/pixellab_src/pl_barreleye/base_raw.png
new file mode 100644
index 0000000..51fd282
Binary files /dev/null and b/pixellab_src/pl_barreleye/base_raw.png differ
diff --git a/pixellab_src/pl_barreleye_b/base.json b/pixellab_src/pl_barreleye_b/base.json
new file mode 100644
index 0000000..27be58a
--- /dev/null
+++ b/pixellab_src/pl_barreleye_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the clear dome much bigger and rounder like a bubble with a crimson glowing spot inside it, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barreleye_b/base.png b/pixellab_src/pl_barreleye_b/base.png
new file mode 100644
index 0000000..15acfb7
Binary files /dev/null and b/pixellab_src/pl_barreleye_b/base.png differ
diff --git a/pixellab_src/pl_barreleye_c/base.json b/pixellab_src/pl_barreleye_c/base.json
new file mode 100644
index 0000000..c2bd36a
--- /dev/null
+++ b/pixellab_src/pl_barreleye_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its fish body longer and slimmer like a torpedo with crimson stripes, keep the clear glass dome on its head, keep it floating with fins and no legs, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 13,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barreleye_c/base.png b/pixellab_src/pl_barreleye_c/base.png
new file mode 100644
index 0000000..389d4f7
Binary files /dev/null and b/pixellab_src/pl_barreleye_c/base.png differ
diff --git a/pixellab_src/pl_barreleye_d/base.json b/pixellab_src/pl_barreleye_d/base.json
new file mode 100644
index 0000000..2ff674c
--- /dev/null
+++ b/pixellab_src/pl_barreleye_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its fish face and transparent dome head and teal body, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_barreleye_d/base.png b/pixellab_src/pl_barreleye_d/base.png
new file mode 100644
index 0000000..4a165b6
Binary files /dev/null and b/pixellab_src/pl_barreleye_d/base.png differ
diff --git a/pixellab_src/pl_beaver/_probe_back.json b/pixellab_src/pl_beaver/_probe_back.json
new file mode 100644
index 0000000..8b3d422
--- /dev/null
+++ b/pixellab_src/pl_beaver/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 17682,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beaver/_probe_back.png b/pixellab_src/pl_beaver/_probe_back.png
new file mode 100644
index 0000000..52dabad
Binary files /dev/null and b/pixellab_src/pl_beaver/_probe_back.png differ
diff --git a/pixellab_src/pl_beaver/_probe_head_top.json b/pixellab_src/pl_beaver/_probe_head_top.json
new file mode 100644
index 0000000..53648ce
--- /dev/null
+++ b/pixellab_src/pl_beaver/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 47077,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beaver/_probe_head_top.png b/pixellab_src/pl_beaver/_probe_head_top.png
new file mode 100644
index 0000000..77c0fcb
Binary files /dev/null and b/pixellab_src/pl_beaver/_probe_head_top.png differ
diff --git a/pixellab_src/pl_beaver/_probe_tail.json b/pixellab_src/pl_beaver/_probe_tail.json
new file mode 100644
index 0000000..b4a342f
--- /dev/null
+++ b/pixellab_src/pl_beaver/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 70648,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beaver/_probe_tail.png b/pixellab_src/pl_beaver/_probe_tail.png
new file mode 100644
index 0000000..8e42d20
Binary files /dev/null and b/pixellab_src/pl_beaver/_probe_tail.png differ
diff --git a/pixellab_src/pl_beaver/anchors.json b/pixellab_src/pl_beaver/anchors.json
new file mode 100644
index 0000000..a451222
--- /dev/null
+++ b/pixellab_src/pl_beaver/anchors.json
@@ -0,0 +1 @@
+{"pivot": [33, 60], "aura": [30, 41], "head_top": [29, 20], "back": [24, 36], "tail": [47, 52]}
diff --git a/pixellab_src/pl_beaver/base.json b/pixellab_src/pl_beaver/base.json
new file mode 100644
index 0000000..520ec44
--- /dev/null
+++ b/pixellab_src/pl_beaver/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "stocky beaver creature standing upright on two big webbed feet, pear-shaped chunky body, round head with tiny round ears, two big crimson buck teeth, puffy cheeks, short arms with small paws held in front, pale belly patch, coarse fur texture, no tail, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 1301
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beaver/base.png b/pixellab_src/pl_beaver/base.png
new file mode 100644
index 0000000..a592730
Binary files /dev/null and b/pixellab_src/pl_beaver/base.png differ
diff --git a/pixellab_src/pl_beaver/base_raw.png b/pixellab_src/pl_beaver/base_raw.png
new file mode 100644
index 0000000..c3bfd0b
Binary files /dev/null and b/pixellab_src/pl_beaver/base_raw.png differ
diff --git a/pixellab_src/pl_beaver_b/base.json b/pixellab_src/pl_beaver_b/base.json
new file mode 100644
index 0000000..8ace0ba
--- /dev/null
+++ b/pixellab_src/pl_beaver_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much chubbier and rounder with huge puffy cheeks and a crimson band of fur across its chest, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beaver_b/base.png b/pixellab_src/pl_beaver_b/base.png
new file mode 100644
index 0000000..69dbde8
Binary files /dev/null and b/pixellab_src/pl_beaver_b/base.png differ
diff --git a/pixellab_src/pl_beaver_c/base.json b/pixellab_src/pl_beaver_c/base.json
new file mode 100644
index 0000000..43bb216
--- /dev/null
+++ b/pixellab_src/pl_beaver_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it leaner and taller with a narrower furry face, scruffy shaggy fur tufts sticking up on its head and crimson spots on its arms, keep its buck teeth, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 3,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beaver_c/base.png b/pixellab_src/pl_beaver_c/base.png
new file mode 100644
index 0000000..772faad
Binary files /dev/null and b/pixellab_src/pl_beaver_c/base.png differ
diff --git a/pixellab_src/pl_beaver_d/base.json b/pixellab_src/pl_beaver_d/base.json
new file mode 100644
index 0000000..7b8d8fe
--- /dev/null
+++ b/pixellab_src/pl_beaver_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it extra fluffy with a thick shaggy fur coat, puffy cheeks and a crimson patch on its chest, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beaver_d/base.png b/pixellab_src/pl_beaver_d/base.png
new file mode 100644
index 0000000..503fa25
Binary files /dev/null and b/pixellab_src/pl_beaver_d/base.png differ
diff --git a/pixellab_src/pl_bee/anchors.json b/pixellab_src/pl_bee/anchors.json
new file mode 100644
index 0000000..d81714f
--- /dev/null
+++ b/pixellab_src/pl_bee/anchors.json
@@ -0,0 +1 @@
+{"pivot": [36, 60], "aura": [31, 44], "head_top": [31, 27], "back": [31, 35], "tail": [49, 45]}
diff --git a/pixellab_src/pl_bee_b/base.json b/pixellab_src/pl_bee_b/base.json
new file mode 100644
index 0000000..bc57f53
--- /dev/null
+++ b/pixellab_src/pl_bee_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its round body slimmer and more oval with crimson bands across its belly and a narrower face, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bee_b/base.png b/pixellab_src/pl_bee_b/base.png
new file mode 100644
index 0000000..470c1ad
Binary files /dev/null and b/pixellab_src/pl_bee_b/base.png differ
diff --git a/pixellab_src/pl_bee_c/base.json b/pixellab_src/pl_bee_c/base.json
new file mode 100644
index 0000000..d03e677
--- /dev/null
+++ b/pixellab_src/pl_bee_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much fluffier and rounder with a thick fur ruff around its neck and crimson-tipped fuzz, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bee_c/base.png b/pixellab_src/pl_bee_c/base.png
new file mode 100644
index 0000000..e28b1f4
Binary files /dev/null and b/pixellab_src/pl_bee_c/base.png differ
diff --git a/pixellab_src/pl_bee_d/base.json b/pixellab_src/pl_bee_d/base.json
new file mode 100644
index 0000000..7dc790b
--- /dev/null
+++ b/pixellab_src/pl_bee_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "cover its body in thick overlapping teal armor plates with crimson plate edges, keep its face and teal color, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bee_d/base.png b/pixellab_src/pl_bee_d/base.png
new file mode 100644
index 0000000..2d1e9ce
Binary files /dev/null and b/pixellab_src/pl_bee_d/base.png differ
diff --git a/pixellab_src/pl_beetle/anchors.json b/pixellab_src/pl_beetle/anchors.json
new file mode 100644
index 0000000..3d88453
--- /dev/null
+++ b/pixellab_src/pl_beetle/anchors.json
@@ -0,0 +1 @@
+{"pivot": [21, 60], "aura": [31, 42], "head_top": [31, 29], "back": [31, 25], "tail": [50, 51]}
diff --git a/pixellab_src/pl_beetle_b/base.json b/pixellab_src/pl_beetle_b/base.json
new file mode 100644
index 0000000..47dc330
--- /dev/null
+++ b/pixellab_src/pl_beetle_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it taller with a high ridged shell, crimson spots on its shell and longer legs, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beetle_b/base.png b/pixellab_src/pl_beetle_b/base.png
new file mode 100644
index 0000000..f9bd5d8
Binary files /dev/null and b/pixellab_src/pl_beetle_b/base.png differ
diff --git a/pixellab_src/pl_beetle_c/base.json b/pixellab_src/pl_beetle_c/base.json
new file mode 100644
index 0000000..cdaaae7
--- /dev/null
+++ b/pixellab_src/pl_beetle_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it flatter and wider with a broad flat shell, crimson stripes along the shell and tiny legs, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beetle_c/base.png b/pixellab_src/pl_beetle_c/base.png
new file mode 100644
index 0000000..73d6343
Binary files /dev/null and b/pixellab_src/pl_beetle_c/base.png differ
diff --git a/pixellab_src/pl_beetle_d/base.json b/pixellab_src/pl_beetle_d/base.json
new file mode 100644
index 0000000..c4c291d
--- /dev/null
+++ b/pixellab_src/pl_beetle_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "cover its body in thick overlapping armor plates with crimson plate edges, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_beetle_d/base.png b/pixellab_src/pl_beetle_d/base.png
new file mode 100644
index 0000000..204b949
Binary files /dev/null and b/pixellab_src/pl_beetle_d/base.png differ
diff --git a/pixellab_src/pl_betta/_probe_back.json b/pixellab_src/pl_betta/_probe_back.json
new file mode 100644
index 0000000..02803a3
--- /dev/null
+++ b/pixellab_src/pl_betta/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 14789,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_betta/_probe_back.png b/pixellab_src/pl_betta/_probe_back.png
new file mode 100644
index 0000000..51f157f
Binary files /dev/null and b/pixellab_src/pl_betta/_probe_back.png differ
diff --git a/pixellab_src/pl_betta/_probe_head_top.json b/pixellab_src/pl_betta/_probe_head_top.json
new file mode 100644
index 0000000..679efa8
--- /dev/null
+++ b/pixellab_src/pl_betta/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 93387,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_betta/_probe_head_top.png b/pixellab_src/pl_betta/_probe_head_top.png
new file mode 100644
index 0000000..31e848a
Binary files /dev/null and b/pixellab_src/pl_betta/_probe_head_top.png differ
diff --git a/pixellab_src/pl_betta/_probe_tail.json b/pixellab_src/pl_betta/_probe_tail.json
new file mode 100644
index 0000000..dc33eb6
--- /dev/null
+++ b/pixellab_src/pl_betta/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 49263,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_betta/_probe_tail.png b/pixellab_src/pl_betta/_probe_tail.png
new file mode 100644
index 0000000..dfa1b38
Binary files /dev/null and b/pixellab_src/pl_betta/_probe_tail.png differ
diff --git a/pixellab_src/pl_betta/anchors.json b/pixellab_src/pl_betta/anchors.json
new file mode 100644
index 0000000..bdadc9d
--- /dev/null
+++ b/pixellab_src/pl_betta/anchors.json
@@ -0,0 +1 @@
+{"pivot": [30, 60], "aura": [32, 40], "head_top": [33, 27], "back": [38, 26], "tail": [42, 50]}
diff --git a/pixellab_src/pl_betta/base.json b/pixellab_src/pl_betta/base.json
new file mode 100644
index 0000000..c8ce3da
--- /dev/null
+++ b/pixellab_src/pl_betta/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "siamese fighting fish creature hovering upright, compact chubby fish body, fierce frowning eyes, flared ruffled gill frills around its face like a collar, long flowing veil-like belly fins hanging down, crimson fin edges, no tail fin, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 1301
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_betta/base.png b/pixellab_src/pl_betta/base.png
new file mode 100644
index 0000000..f524f06
Binary files /dev/null and b/pixellab_src/pl_betta/base.png differ
diff --git a/pixellab_src/pl_betta/base_raw.png b/pixellab_src/pl_betta/base_raw.png
new file mode 100644
index 0000000..c24fbf2
Binary files /dev/null and b/pixellab_src/pl_betta/base_raw.png differ
diff --git a/pixellab_src/pl_betta_b/base.json b/pixellab_src/pl_betta_b/base.json
new file mode 100644
index 0000000..6bb99c7
--- /dev/null
+++ b/pixellab_src/pl_betta_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it chunkier and rounder with a much bigger flared gill collar and crimson stripes across its body, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_betta_b/base.png b/pixellab_src/pl_betta_b/base.png
new file mode 100644
index 0000000..39d4bcf
Binary files /dev/null and b/pixellab_src/pl_betta_b/base.png differ
diff --git a/pixellab_src/pl_betta_c/base.json b/pixellab_src/pl_betta_c/base.json
new file mode 100644
index 0000000..4419cd2
--- /dev/null
+++ b/pixellab_src/pl_betta_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer and longer with spiky jagged fin edges and crimson spots on its scales, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_betta_c/base.png b/pixellab_src/pl_betta_c/base.png
new file mode 100644
index 0000000..13433a8
Binary files /dev/null and b/pixellab_src/pl_betta_c/base.png differ
diff --git a/pixellab_src/pl_betta_d/base.json b/pixellab_src/pl_betta_d/base.json
new file mode 100644
index 0000000..744ab7d
--- /dev/null
+++ b/pixellab_src/pl_betta_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it armored with hard overlapping scale plates over its body, short stiff fins and crimson plate edges, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_betta_d/base.png b/pixellab_src/pl_betta_d/base.png
new file mode 100644
index 0000000..3fd3946
Binary files /dev/null and b/pixellab_src/pl_betta_d/base.png differ
diff --git a/pixellab_src/pl_blobfish/_probe_back.json b/pixellab_src/pl_blobfish/_probe_back.json
new file mode 100644
index 0000000..06b6551
--- /dev/null
+++ b/pixellab_src/pl_blobfish/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 74974,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_blobfish/_probe_back.png b/pixellab_src/pl_blobfish/_probe_back.png
new file mode 100644
index 0000000..685b658
Binary files /dev/null and b/pixellab_src/pl_blobfish/_probe_back.png differ
diff --git a/pixellab_src/pl_blobfish/_probe_head_top.json b/pixellab_src/pl_blobfish/_probe_head_top.json
new file mode 100644
index 0000000..ca7eeb5
--- /dev/null
+++ b/pixellab_src/pl_blobfish/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 10358,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_blobfish/_probe_head_top.png b/pixellab_src/pl_blobfish/_probe_head_top.png
new file mode 100644
index 0000000..ee22ce6
Binary files /dev/null and b/pixellab_src/pl_blobfish/_probe_head_top.png differ
diff --git a/pixellab_src/pl_blobfish/_probe_tail.json b/pixellab_src/pl_blobfish/_probe_tail.json
new file mode 100644
index 0000000..6ed223d
--- /dev/null
+++ b/pixellab_src/pl_blobfish/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 52820,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_blobfish/_probe_tail.png b/pixellab_src/pl_blobfish/_probe_tail.png
new file mode 100644
index 0000000..8df7e31
Binary files /dev/null and b/pixellab_src/pl_blobfish/_probe_tail.png differ
diff --git a/pixellab_src/pl_blobfish/anchors.json b/pixellab_src/pl_blobfish/anchors.json
new file mode 100644
index 0000000..784a4c0
--- /dev/null
+++ b/pixellab_src/pl_blobfish/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 44], "head_top": [31, 29], "back": [31, 34], "tail": [47, 49]}
diff --git a/pixellab_src/pl_blobfish/base.json b/pixellab_src/pl_blobfish/base.json
new file mode 100644
index 0000000..895022a
--- /dev/null
+++ b/pixellab_src/pl_blobfish/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "blobfish creature sitting upright, saggy droopy gelatinous body, a big soft drooping bulbous nose hanging down over a wide frowning mouth, heavy saggy jowls and cheeks, small tired eyes, two tiny limp side fins, crimson blush patches, no tail fin, nothing on its head, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 40,
+ "height": 40
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 3701
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_blobfish/base.png b/pixellab_src/pl_blobfish/base.png
new file mode 100644
index 0000000..4b05394
Binary files /dev/null and b/pixellab_src/pl_blobfish/base.png differ
diff --git a/pixellab_src/pl_blobfish/base_raw.png b/pixellab_src/pl_blobfish/base_raw.png
new file mode 100644
index 0000000..88eae35
Binary files /dev/null and b/pixellab_src/pl_blobfish/base_raw.png differ
diff --git a/pixellab_src/pl_blobfish_b/base.json b/pixellab_src/pl_blobfish_b/base.json
new file mode 100644
index 0000000..f2382fe
--- /dev/null
+++ b/pixellab_src/pl_blobfish_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it taller and droopier like melting jelly with an even longer drooping nose and crimson spots, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_blobfish_b/base.png b/pixellab_src/pl_blobfish_b/base.png
new file mode 100644
index 0000000..d2ee0cb
Binary files /dev/null and b/pixellab_src/pl_blobfish_b/base.png differ
diff --git a/pixellab_src/pl_blobfish_c/base.json b/pixellab_src/pl_blobfish_c/base.json
new file mode 100644
index 0000000..8b60f61
--- /dev/null
+++ b/pixellab_src/pl_blobfish_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it rounder and plumper with a small button nose, puffed cheeks and a crimson stripe across its brow, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_blobfish_c/base.png b/pixellab_src/pl_blobfish_c/base.png
new file mode 100644
index 0000000..25a2c6c
Binary files /dev/null and b/pixellab_src/pl_blobfish_c/base.png differ
diff --git a/pixellab_src/pl_blobfish_d/base.json b/pixellab_src/pl_blobfish_d/base.json
new file mode 100644
index 0000000..16e8840
--- /dev/null
+++ b/pixellab_src/pl_blobfish_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it squat and wider with an even droopier nose and crimson freckles, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_blobfish_d/base.png b/pixellab_src/pl_blobfish_d/base.png
new file mode 100644
index 0000000..a47c068
Binary files /dev/null and b/pixellab_src/pl_blobfish_d/base.png differ
diff --git a/pixellab_src/pl_boar/anchors.json b/pixellab_src/pl_boar/anchors.json
new file mode 100644
index 0000000..0502bc3
--- /dev/null
+++ b/pixellab_src/pl_boar/anchors.json
@@ -0,0 +1 @@
+{"pivot": [29, 60], "aura": [30, 37], "head_top": [25, 17], "back": [27, 21], "tail": [48, 31]}
diff --git a/pixellab_src/pl_boar_b/base.json b/pixellab_src/pl_boar_b/base.json
new file mode 100644
index 0000000..6413f93
--- /dev/null
+++ b/pixellab_src/pl_boar_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it shaggier with thick bristly fur along its back, a crimson mane stripe and a longer snout, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boar_b/base.png b/pixellab_src/pl_boar_b/base.png
new file mode 100644
index 0000000..d6d96c8
Binary files /dev/null and b/pixellab_src/pl_boar_b/base.png differ
diff --git a/pixellab_src/pl_boar_c/base.json b/pixellab_src/pl_boar_c/base.json
new file mode 100644
index 0000000..3f5b7f1
--- /dev/null
+++ b/pixellab_src/pl_boar_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it rounder and piglet-like with a short snout, smooth skin and crimson patches, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boar_c/base.png b/pixellab_src/pl_boar_c/base.png
new file mode 100644
index 0000000..a68a1b2
Binary files /dev/null and b/pixellab_src/pl_boar_c/base.png differ
diff --git a/pixellab_src/pl_boar_d/base.json b/pixellab_src/pl_boar_d/base.json
new file mode 100644
index 0000000..cbe8462
--- /dev/null
+++ b/pixellab_src/pl_boar_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it extra fluffy with long soft fur or down covering its whole body and crimson-tipped fluff, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boar_d/base.png b/pixellab_src/pl_boar_d/base.png
new file mode 100644
index 0000000..3517717
Binary files /dev/null and b/pixellab_src/pl_boar_d/base.png differ
diff --git a/pixellab_src/pl_boatman/_probe_back.json b/pixellab_src/pl_boatman/_probe_back.json
new file mode 100644
index 0000000..3b4397d
--- /dev/null
+++ b/pixellab_src/pl_boatman/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 22766,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boatman/_probe_back.png b/pixellab_src/pl_boatman/_probe_back.png
new file mode 100644
index 0000000..6fde111
Binary files /dev/null and b/pixellab_src/pl_boatman/_probe_back.png differ
diff --git a/pixellab_src/pl_boatman/_probe_head_top.json b/pixellab_src/pl_boatman/_probe_head_top.json
new file mode 100644
index 0000000..bcb33ba
--- /dev/null
+++ b/pixellab_src/pl_boatman/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 29196,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boatman/_probe_head_top.png b/pixellab_src/pl_boatman/_probe_head_top.png
new file mode 100644
index 0000000..d7cf4a9
Binary files /dev/null and b/pixellab_src/pl_boatman/_probe_head_top.png differ
diff --git a/pixellab_src/pl_boatman/_probe_tail.json b/pixellab_src/pl_boatman/_probe_tail.json
new file mode 100644
index 0000000..3da03d6
--- /dev/null
+++ b/pixellab_src/pl_boatman/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 90948,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boatman/_probe_tail.png b/pixellab_src/pl_boatman/_probe_tail.png
new file mode 100644
index 0000000..1046c53
Binary files /dev/null and b/pixellab_src/pl_boatman/_probe_tail.png differ
diff --git a/pixellab_src/pl_boatman/anchors.json b/pixellab_src/pl_boatman/anchors.json
new file mode 100644
index 0000000..a4da139
--- /dev/null
+++ b/pixellab_src/pl_boatman/anchors.json
@@ -0,0 +1 @@
+{"pivot": [35, 60], "aura": [30, 49], "head_top": [25, 44], "back": [34, 43], "tail": [40, 48]}
diff --git a/pixellab_src/pl_boatman/base.json b/pixellab_src/pl_boatman/base.json
new file mode 100644
index 0000000..4148b6d
--- /dev/null
+++ b/pixellab_src/pl_boatman/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "water boatman bug creature floating facing the viewer, boat-shaped body with a ridged keel down its belly, big round crimson eyes, two long flat oar-like paddle legs held out to the sides, four short front legs, a pale teal belly, small air bubbles, no wings no ground shadow, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 2109
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boatman/base.png b/pixellab_src/pl_boatman/base.png
new file mode 100644
index 0000000..5277bd0
Binary files /dev/null and b/pixellab_src/pl_boatman/base.png differ
diff --git a/pixellab_src/pl_boatman/base_raw.png b/pixellab_src/pl_boatman/base_raw.png
new file mode 100644
index 0000000..f621bc0
Binary files /dev/null and b/pixellab_src/pl_boatman/base_raw.png differ
diff --git a/pixellab_src/pl_boatman_b/base.json b/pixellab_src/pl_boatman_b/base.json
new file mode 100644
index 0000000..943d758
--- /dev/null
+++ b/pixellab_src/pl_boatman_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it rounder and plumper like a little round boat with crimson stripes on its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boatman_b/base.png b/pixellab_src/pl_boatman_b/base.png
new file mode 100644
index 0000000..dcaa98f
Binary files /dev/null and b/pixellab_src/pl_boatman_b/base.png differ
diff --git a/pixellab_src/pl_boatman_c/base.json b/pixellab_src/pl_boatman_c/base.json
new file mode 100644
index 0000000..12ceea8
--- /dev/null
+++ b/pixellab_src/pl_boatman_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its body a little longer and sleeker like a canoe with crimson stripes along its sides, keep it the same size, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boatman_c/base.png b/pixellab_src/pl_boatman_c/base.png
new file mode 100644
index 0000000..2ae8343
Binary files /dev/null and b/pixellab_src/pl_boatman_c/base.png differ
diff --git a/pixellab_src/pl_boatman_d/base.json b/pixellab_src/pl_boatman_d/base.json
new file mode 100644
index 0000000..085a98d
--- /dev/null
+++ b/pixellab_src/pl_boatman_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it stand upright on its back legs like a little rower holding its two oar paddle legs up, with a crimson keel stripe on its belly, keep its bug face, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boatman_d/base.png b/pixellab_src/pl_boatman_d/base.png
new file mode 100644
index 0000000..0afadf1
Binary files /dev/null and b/pixellab_src/pl_boatman_d/base.png differ
diff --git a/pixellab_src/pl_bogtoad/_probe_back.json b/pixellab_src/pl_bogtoad/_probe_back.json
new file mode 100644
index 0000000..1369fbb
--- /dev/null
+++ b/pixellab_src/pl_bogtoad/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 41612,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bogtoad/_probe_back.png b/pixellab_src/pl_bogtoad/_probe_back.png
new file mode 100644
index 0000000..d4df00e
Binary files /dev/null and b/pixellab_src/pl_bogtoad/_probe_back.png differ
diff --git a/pixellab_src/pl_bogtoad/_probe_head_top.json b/pixellab_src/pl_bogtoad/_probe_head_top.json
new file mode 100644
index 0000000..7180932
--- /dev/null
+++ b/pixellab_src/pl_bogtoad/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 77614,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bogtoad/_probe_head_top.png b/pixellab_src/pl_bogtoad/_probe_head_top.png
new file mode 100644
index 0000000..0ae99b7
Binary files /dev/null and b/pixellab_src/pl_bogtoad/_probe_head_top.png differ
diff --git a/pixellab_src/pl_bogtoad/_probe_tail.json b/pixellab_src/pl_bogtoad/_probe_tail.json
new file mode 100644
index 0000000..24f33fd
--- /dev/null
+++ b/pixellab_src/pl_bogtoad/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 29830,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bogtoad/_probe_tail.png b/pixellab_src/pl_bogtoad/_probe_tail.png
new file mode 100644
index 0000000..db4f048
Binary files /dev/null and b/pixellab_src/pl_bogtoad/_probe_tail.png differ
diff --git a/pixellab_src/pl_bogtoad/anchors.json b/pixellab_src/pl_bogtoad/anchors.json
new file mode 100644
index 0000000..54f9680
--- /dev/null
+++ b/pixellab_src/pl_bogtoad/anchors.json
@@ -0,0 +1 @@
+{"pivot": [23, 60], "aura": [31, 44], "head_top": [31, 29], "back": [31, 35], "tail": [48, 46]}
diff --git a/pixellab_src/pl_bogtoad/base.json b/pixellab_src/pl_bogtoad/base.json
new file mode 100644
index 0000000..c6410b9
--- /dev/null
+++ b/pixellab_src/pl_bogtoad/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "squat flat toad creature crouching low on four splayed legs, very wide flat body much wider than tall, bumpy warty skin with crimson wart spots on its back, huge inflated round throat sac bulging under its chin, heavy-lidded sleepy half-closed eyes on top of its head, very wide flat mouth line, webbed toes, no tail, nothing on its head, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 1101
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bogtoad/base.png b/pixellab_src/pl_bogtoad/base.png
new file mode 100644
index 0000000..d581f54
Binary files /dev/null and b/pixellab_src/pl_bogtoad/base.png differ
diff --git a/pixellab_src/pl_bogtoad/base_raw.png b/pixellab_src/pl_bogtoad/base_raw.png
new file mode 100644
index 0000000..6cbdd2e
Binary files /dev/null and b/pixellab_src/pl_bogtoad/base_raw.png differ
diff --git a/pixellab_src/pl_bogtoad_b/base.json b/pixellab_src/pl_bogtoad_b/base.json
new file mode 100644
index 0000000..b8c0d23
--- /dev/null
+++ b/pixellab_src/pl_bogtoad_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it taller and leaner with longer legs, a smaller throat sac and bold crimson stripes along its back instead of warts, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bogtoad_b/base.png b/pixellab_src/pl_bogtoad_b/base.png
new file mode 100644
index 0000000..c192825
Binary files /dev/null and b/pixellab_src/pl_bogtoad_b/base.png differ
diff --git a/pixellab_src/pl_bogtoad_c/base.json b/pixellab_src/pl_bogtoad_c/base.json
new file mode 100644
index 0000000..6964be1
--- /dev/null
+++ b/pixellab_src/pl_bogtoad_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much fatter and rounder like a ball, with a giant puffed throat sac and big crimson blotches all over its skin, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bogtoad_c/base.png b/pixellab_src/pl_bogtoad_c/base.png
new file mode 100644
index 0000000..1409056
Binary files /dev/null and b/pixellab_src/pl_bogtoad_c/base.png differ
diff --git a/pixellab_src/pl_bogtoad_d/base.json b/pixellab_src/pl_bogtoad_d/base.json
new file mode 100644
index 0000000..1967021
--- /dev/null
+++ b/pixellab_src/pl_bogtoad_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it squat and extra wide with thick armored bony plates along its back and crimson-rimmed warts, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bogtoad_d/base.png b/pixellab_src/pl_bogtoad_d/base.png
new file mode 100644
index 0000000..8c978be
Binary files /dev/null and b/pixellab_src/pl_bogtoad_d/base.png differ
diff --git a/pixellab_src/pl_bombardier/_probe_back.json b/pixellab_src/pl_bombardier/_probe_back.json
new file mode 100644
index 0000000..9ee02d4
--- /dev/null
+++ b/pixellab_src/pl_bombardier/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 3705,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bombardier/_probe_back.png b/pixellab_src/pl_bombardier/_probe_back.png
new file mode 100644
index 0000000..a64c8f8
Binary files /dev/null and b/pixellab_src/pl_bombardier/_probe_back.png differ
diff --git a/pixellab_src/pl_bombardier/_probe_head_top.json b/pixellab_src/pl_bombardier/_probe_head_top.json
new file mode 100644
index 0000000..407c692
--- /dev/null
+++ b/pixellab_src/pl_bombardier/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 33471,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bombardier/_probe_head_top.png b/pixellab_src/pl_bombardier/_probe_head_top.png
new file mode 100644
index 0000000..704c2b9
Binary files /dev/null and b/pixellab_src/pl_bombardier/_probe_head_top.png differ
diff --git a/pixellab_src/pl_bombardier/_probe_tail.json b/pixellab_src/pl_bombardier/_probe_tail.json
new file mode 100644
index 0000000..1e26a60
--- /dev/null
+++ b/pixellab_src/pl_bombardier/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 23795,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bombardier/_probe_tail.png b/pixellab_src/pl_bombardier/_probe_tail.png
new file mode 100644
index 0000000..709036f
Binary files /dev/null and b/pixellab_src/pl_bombardier/_probe_tail.png differ
diff --git a/pixellab_src/pl_bombardier/anchors.json b/pixellab_src/pl_bombardier/anchors.json
new file mode 100644
index 0000000..f7465ca
--- /dev/null
+++ b/pixellab_src/pl_bombardier/anchors.json
@@ -0,0 +1 @@
+{"pivot": [36, 60], "aura": [32, 40], "head_top": [32, 27], "back": [38, 30], "tail": [47, 42]}
diff --git a/pixellab_src/pl_bombardier/base.json b/pixellab_src/pl_bombardier/base.json
new file mode 100644
index 0000000..98718a0
--- /dev/null
+++ b/pixellab_src/pl_bombardier/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "stubby bombardier beetle creature facing the viewer, a rounded crimson head with short mandibles and big eyes, a smooth teal shell, a big round rear abdomen ending in a short nozzle tip, six short sturdy legs, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 2103
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bombardier/base.png b/pixellab_src/pl_bombardier/base.png
new file mode 100644
index 0000000..80d1d17
Binary files /dev/null and b/pixellab_src/pl_bombardier/base.png differ
diff --git a/pixellab_src/pl_bombardier/base_raw.png b/pixellab_src/pl_bombardier/base_raw.png
new file mode 100644
index 0000000..9031226
Binary files /dev/null and b/pixellab_src/pl_bombardier/base_raw.png differ
diff --git a/pixellab_src/pl_bombardier_b/base.json b/pixellab_src/pl_bombardier_b/base.json
new file mode 100644
index 0000000..4141c83
--- /dev/null
+++ b/pixellab_src/pl_bombardier_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its shell rounder and taller like a dome with crimson spots and give it a much bigger head with large mandibles, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bombardier_b/base.png b/pixellab_src/pl_bombardier_b/base.png
new file mode 100644
index 0000000..b54b435
Binary files /dev/null and b/pixellab_src/pl_bombardier_b/base.png differ
diff --git a/pixellab_src/pl_bombardier_c/base.json b/pixellab_src/pl_bombardier_c/base.json
new file mode 100644
index 0000000..d789570
--- /dev/null
+++ b/pixellab_src/pl_bombardier_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its body longer and flatter with ridged grooves along its shell, crimson stripes and long thin legs, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bombardier_c/base.png b/pixellab_src/pl_bombardier_c/base.png
new file mode 100644
index 0000000..053a6c3
Binary files /dev/null and b/pixellab_src/pl_bombardier_c/base.png differ
diff --git a/pixellab_src/pl_bombardier_d/base.json b/pixellab_src/pl_bombardier_d/base.json
new file mode 100644
index 0000000..0e9cc1c
--- /dev/null
+++ b/pixellab_src/pl_bombardier_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "young chibi version with a big round head, huge eyes, a tiny round shell and stubby legs, keep its beetle face and teal shell, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bombardier_d/base.png b/pixellab_src/pl_bombardier_d/base.png
new file mode 100644
index 0000000..eea064e
Binary files /dev/null and b/pixellab_src/pl_bombardier_d/base.png differ
diff --git a/pixellab_src/pl_bonesnake/_probe_back.json b/pixellab_src/pl_bonesnake/_probe_back.json
new file mode 100644
index 0000000..3f26630
--- /dev/null
+++ b/pixellab_src/pl_bonesnake/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 27297,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bonesnake/_probe_back.png b/pixellab_src/pl_bonesnake/_probe_back.png
new file mode 100644
index 0000000..c1c5b11
Binary files /dev/null and b/pixellab_src/pl_bonesnake/_probe_back.png differ
diff --git a/pixellab_src/pl_bonesnake/_probe_head_top.json b/pixellab_src/pl_bonesnake/_probe_head_top.json
new file mode 100644
index 0000000..14971b9
--- /dev/null
+++ b/pixellab_src/pl_bonesnake/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 29314,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bonesnake/_probe_head_top.png b/pixellab_src/pl_bonesnake/_probe_head_top.png
new file mode 100644
index 0000000..d3f0770
Binary files /dev/null and b/pixellab_src/pl_bonesnake/_probe_head_top.png differ
diff --git a/pixellab_src/pl_bonesnake/_probe_tail.json b/pixellab_src/pl_bonesnake/_probe_tail.json
new file mode 100644
index 0000000..4195bdd
--- /dev/null
+++ b/pixellab_src/pl_bonesnake/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 44779,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bonesnake/_probe_tail.png b/pixellab_src/pl_bonesnake/_probe_tail.png
new file mode 100644
index 0000000..452374a
Binary files /dev/null and b/pixellab_src/pl_bonesnake/_probe_tail.png differ
diff --git a/pixellab_src/pl_bonesnake/anchors.json b/pixellab_src/pl_bonesnake/anchors.json
new file mode 100644
index 0000000..92fa55c
--- /dev/null
+++ b/pixellab_src/pl_bonesnake/anchors.json
@@ -0,0 +1 @@
+{"pivot": [33, 60], "aura": [31, 43], "head_top": [31, 24], "back": [29, 37], "tail": [47, 52]}
diff --git a/pixellab_src/pl_bonesnake/base.json b/pixellab_src/pl_bonesnake/base.json
new file mode 100644
index 0000000..bcf7847
--- /dev/null
+++ b/pixellab_src/pl_bonesnake/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "skeleton serpent creature made only of bones, no skin or scales, coiled up on the ground, its body is a chain of round teal-tinted vertebrae with thin curved rib bones sticking out, a big rounded bony snake skull head with empty eye sockets holding small glowing crimson eyes, toothy grin, crimson glow inside its ribcage, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 1214
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bonesnake/base.png b/pixellab_src/pl_bonesnake/base.png
new file mode 100644
index 0000000..4f49c09
Binary files /dev/null and b/pixellab_src/pl_bonesnake/base.png differ
diff --git a/pixellab_src/pl_bonesnake/base_raw.png b/pixellab_src/pl_bonesnake/base_raw.png
new file mode 100644
index 0000000..ee7c51a
Binary files /dev/null and b/pixellab_src/pl_bonesnake/base_raw.png differ
diff --git a/pixellab_src/pl_bonesnake_b/base.json b/pixellab_src/pl_bonesnake_b/base.json
new file mode 100644
index 0000000..10c91fe
--- /dev/null
+++ b/pixellab_src/pl_bonesnake_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the skull much bigger and wider with a heavy jaw full of teeth, the coiled bone body chunkier and shorter with thick round vertebrae, and crimson cracks across the bones, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bonesnake_b/base.png b/pixellab_src/pl_bonesnake_b/base.png
new file mode 100644
index 0000000..ebf4514
Binary files /dev/null and b/pixellab_src/pl_bonesnake_b/base.png differ
diff --git a/pixellab_src/pl_bonesnake_c/base.json b/pixellab_src/pl_bonesnake_c/base.json
new file mode 100644
index 0000000..63fc404
--- /dev/null
+++ b/pixellab_src/pl_bonesnake_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "keep the same size and pose, but make its skull long and narrow like a crocodile skull, the coiled body thinner with many more small spiky vertebrae, and crimson glowing eye sockets, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bonesnake_c/base.png b/pixellab_src/pl_bonesnake_c/base.png
new file mode 100644
index 0000000..240a5f3
Binary files /dev/null and b/pixellab_src/pl_bonesnake_c/base.png differ
diff --git a/pixellab_src/pl_bonesnake_d/base.json b/pixellab_src/pl_bonesnake_d/base.json
new file mode 100644
index 0000000..cbf45c7
--- /dev/null
+++ b/pixellab_src/pl_bonesnake_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "young chibi version with a huge round skull head and a short stubby bony body in one tiny coil, keep its skull face, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bonesnake_d/base.png b/pixellab_src/pl_bonesnake_d/base.png
new file mode 100644
index 0000000..15b7883
Binary files /dev/null and b/pixellab_src/pl_bonesnake_d/base.png differ
diff --git a/pixellab_src/pl_boxfish/_probe_back.json b/pixellab_src/pl_boxfish/_probe_back.json
new file mode 100644
index 0000000..d48fbeb
--- /dev/null
+++ b/pixellab_src/pl_boxfish/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 62097,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boxfish/_probe_back.png b/pixellab_src/pl_boxfish/_probe_back.png
new file mode 100644
index 0000000..a1aa693
Binary files /dev/null and b/pixellab_src/pl_boxfish/_probe_back.png differ
diff --git a/pixellab_src/pl_boxfish/_probe_head_top.json b/pixellab_src/pl_boxfish/_probe_head_top.json
new file mode 100644
index 0000000..031a046
--- /dev/null
+++ b/pixellab_src/pl_boxfish/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 93408,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boxfish/_probe_head_top.png b/pixellab_src/pl_boxfish/_probe_head_top.png
new file mode 100644
index 0000000..8338016
Binary files /dev/null and b/pixellab_src/pl_boxfish/_probe_head_top.png differ
diff --git a/pixellab_src/pl_boxfish/_probe_tail.json b/pixellab_src/pl_boxfish/_probe_tail.json
new file mode 100644
index 0000000..a771b42
--- /dev/null
+++ b/pixellab_src/pl_boxfish/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 66299,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boxfish/_probe_tail.png b/pixellab_src/pl_boxfish/_probe_tail.png
new file mode 100644
index 0000000..e2493fb
Binary files /dev/null and b/pixellab_src/pl_boxfish/_probe_tail.png differ
diff --git a/pixellab_src/pl_boxfish/anchors.json b/pixellab_src/pl_boxfish/anchors.json
new file mode 100644
index 0000000..42f83bf
--- /dev/null
+++ b/pixellab_src/pl_boxfish/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [32, 40], "head_top": [32, 25], "back": [31, 32], "tail": [47, 44]}
diff --git a/pixellab_src/pl_boxfish/base.json b/pixellab_src/pl_boxfish/base.json
new file mode 100644
index 0000000..0aac6a4
--- /dev/null
+++ b/pixellab_src/pl_boxfish/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "boxfish creature hovering upright, body shaped like a perfect square cube box with flat sides and sharp corners, rigid armored hexagon plate pattern outlined in crimson covering the cube, small pouty puckered lips sticking out at the front, tiny round side fins, little bubbles around it, no tail fin, nothing on its head, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 1402
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boxfish/base.png b/pixellab_src/pl_boxfish/base.png
new file mode 100644
index 0000000..bb2451b
Binary files /dev/null and b/pixellab_src/pl_boxfish/base.png differ
diff --git a/pixellab_src/pl_boxfish/base_raw.png b/pixellab_src/pl_boxfish/base_raw.png
new file mode 100644
index 0000000..0d4bdaa
Binary files /dev/null and b/pixellab_src/pl_boxfish/base_raw.png differ
diff --git a/pixellab_src/pl_boxfish_b/base.json b/pixellab_src/pl_boxfish_b/base.json
new file mode 100644
index 0000000..313a871
--- /dev/null
+++ b/pixellab_src/pl_boxfish_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the body taller and narrower like an upright brick, with crimson spots inside each hexagon plate and a bigger pouty mouth, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boxfish_b/base.png b/pixellab_src/pl_boxfish_b/base.png
new file mode 100644
index 0000000..52b8ec4
Binary files /dev/null and b/pixellab_src/pl_boxfish_b/base.png differ
diff --git a/pixellab_src/pl_boxfish_c/base.json b/pixellab_src/pl_boxfish_c/base.json
new file mode 100644
index 0000000..a062093
--- /dev/null
+++ b/pixellab_src/pl_boxfish_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it flatter and wider like a squat box, with small bumpy knobs on its corners and crimson stripes across it, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boxfish_c/base.png b/pixellab_src/pl_boxfish_c/base.png
new file mode 100644
index 0000000..3e70bcb
Binary files /dev/null and b/pixellab_src/pl_boxfish_c/base.png differ
diff --git a/pixellab_src/pl_boxfish_d/base.json b/pixellab_src/pl_boxfish_d/base.json
new file mode 100644
index 0000000..9db7ee1
--- /dev/null
+++ b/pixellab_src/pl_boxfish_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it crystal-studded with small pale crystal bumps on its plates and a squatter boxier body, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_boxfish_d/base.png b/pixellab_src/pl_boxfish_d/base.png
new file mode 100644
index 0000000..732080c
Binary files /dev/null and b/pixellab_src/pl_boxfish_d/base.png differ
diff --git a/pixellab_src/pl_brawler/anchors.json b/pixellab_src/pl_brawler/anchors.json
new file mode 100644
index 0000000..7f44353
--- /dev/null
+++ b/pixellab_src/pl_brawler/anchors.json
@@ -0,0 +1 @@
+{"pivot": [29, 60], "aura": [33, 42], "head_top": [33, 28], "back": [31, 36], "tail": [45, 51]}
diff --git a/pixellab_src/pl_brawler_b/base.json b/pixellab_src/pl_brawler_b/base.json
new file mode 100644
index 0000000..b7f948a
--- /dev/null
+++ b/pixellab_src/pl_brawler_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it leaner and more athletic with a narrower waist, crimson stripes on its arms, same toad head and same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brawler_b/base.png b/pixellab_src/pl_brawler_b/base.png
new file mode 100644
index 0000000..3d427d3
Binary files /dev/null and b/pixellab_src/pl_brawler_b/base.png differ
diff --git a/pixellab_src/pl_brawler_c/base.json b/pixellab_src/pl_brawler_c/base.json
new file mode 100644
index 0000000..7dcb776
--- /dev/null
+++ b/pixellab_src/pl_brawler_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much bulkier with a huge barrel chest, thick neck, armored scale plates and a crimson belly, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brawler_c/base.png b/pixellab_src/pl_brawler_c/base.png
new file mode 100644
index 0000000..dbbf1a2
Binary files /dev/null and b/pixellab_src/pl_brawler_c/base.png differ
diff --git a/pixellab_src/pl_brawler_d/base.json b/pixellab_src/pl_brawler_d/base.json
new file mode 100644
index 0000000..663de49
--- /dev/null
+++ b/pixellab_src/pl_brawler_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brawler_d/base.png b/pixellab_src/pl_brawler_d/base.png
new file mode 100644
index 0000000..22374fd
Binary files /dev/null and b/pixellab_src/pl_brawler_d/base.png differ
diff --git a/pixellab_src/pl_brazier/_probe_back.json b/pixellab_src/pl_brazier/_probe_back.json
new file mode 100644
index 0000000..faaa3b8
--- /dev/null
+++ b/pixellab_src/pl_brazier/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 24354,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brazier/_probe_back.png b/pixellab_src/pl_brazier/_probe_back.png
new file mode 100644
index 0000000..4d56806
Binary files /dev/null and b/pixellab_src/pl_brazier/_probe_back.png differ
diff --git a/pixellab_src/pl_brazier/_probe_head_top.json b/pixellab_src/pl_brazier/_probe_head_top.json
new file mode 100644
index 0000000..1c4acd8
--- /dev/null
+++ b/pixellab_src/pl_brazier/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 48088,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brazier/_probe_head_top.png b/pixellab_src/pl_brazier/_probe_head_top.png
new file mode 100644
index 0000000..86ec6e7
Binary files /dev/null and b/pixellab_src/pl_brazier/_probe_head_top.png differ
diff --git a/pixellab_src/pl_brazier/_probe_tail.json b/pixellab_src/pl_brazier/_probe_tail.json
new file mode 100644
index 0000000..d72face
--- /dev/null
+++ b/pixellab_src/pl_brazier/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 47592,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brazier/_probe_tail.png b/pixellab_src/pl_brazier/_probe_tail.png
new file mode 100644
index 0000000..14e0e5a
Binary files /dev/null and b/pixellab_src/pl_brazier/_probe_tail.png differ
diff --git a/pixellab_src/pl_brazier/anchors.json b/pixellab_src/pl_brazier/anchors.json
new file mode 100644
index 0000000..ed0a26f
--- /dev/null
+++ b/pixellab_src/pl_brazier/anchors.json
@@ -0,0 +1 @@
+{"pivot": [34, 60], "aura": [31, 38], "head_top": [31, 27], "back": [33, 30], "tail": [44, 41]}
diff --git a/pixellab_src/pl_brazier/base.json b/pixellab_src/pl_brazier/base.json
new file mode 100644
index 0000000..cb96693
--- /dev/null
+++ b/pixellab_src/pl_brazier/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "living iron fire basket brazier creature, a round open cage basket made of curved teal iron bars standing on four long thin iron legs, crimson glowing coals visible inside through the bars, a cute face with big eyes on a teal iron plate at the front of the basket, all metal is teal, no fire, no flames, no smoke, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 3102
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brazier/base.png b/pixellab_src/pl_brazier/base.png
new file mode 100644
index 0000000..2eac5b5
Binary files /dev/null and b/pixellab_src/pl_brazier/base.png differ
diff --git a/pixellab_src/pl_brazier/base_raw.png b/pixellab_src/pl_brazier/base_raw.png
new file mode 100644
index 0000000..795aa60
Binary files /dev/null and b/pixellab_src/pl_brazier/base_raw.png differ
diff --git a/pixellab_src/pl_brazier_b/base.json b/pixellab_src/pl_brazier_b/base.json
new file mode 100644
index 0000000..e0365df
--- /dev/null
+++ b/pixellab_src/pl_brazier_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "keep the teal metal and make the bowl deep and tall like a bucket with crimson vent slits around its sides and a smaller heap of coals, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brazier_b/base.png b/pixellab_src/pl_brazier_b/base.png
new file mode 100644
index 0000000..4cdbb61
Binary files /dev/null and b/pixellab_src/pl_brazier_b/base.png differ
diff --git a/pixellab_src/pl_brazier_c/base.json b/pixellab_src/pl_brazier_c/base.json
new file mode 100644
index 0000000..2ec73c9
--- /dev/null
+++ b/pixellab_src/pl_brazier_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "keep the teal metal and make the bowl wide and shallow like a dish on short stubby legs with a wide grin and a big heap of crimson coals, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brazier_c/base.png b/pixellab_src/pl_brazier_c/base.png
new file mode 100644
index 0000000..d68a588
Binary files /dev/null and b/pixellab_src/pl_brazier_c/base.png differ
diff --git a/pixellab_src/pl_brazier_d/base.json b/pixellab_src/pl_brazier_d/base.json
new file mode 100644
index 0000000..574882b
--- /dev/null
+++ b/pixellab_src/pl_brazier_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it extra fluffy with soft teal fur covering its whole body and crimson-tipped fluff, keep its face, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_brazier_d/base.png b/pixellab_src/pl_brazier_d/base.png
new file mode 100644
index 0000000..ae07982
Binary files /dev/null and b/pixellab_src/pl_brazier_d/base.png differ
diff --git a/pixellab_src/pl_bulb/_probe_back.json b/pixellab_src/pl_bulb/_probe_back.json
new file mode 100644
index 0000000..0cbcfcd
--- /dev/null
+++ b/pixellab_src/pl_bulb/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 89483,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulb/_probe_back.png b/pixellab_src/pl_bulb/_probe_back.png
new file mode 100644
index 0000000..8af8e5f
Binary files /dev/null and b/pixellab_src/pl_bulb/_probe_back.png differ
diff --git a/pixellab_src/pl_bulb/_probe_head_top.json b/pixellab_src/pl_bulb/_probe_head_top.json
new file mode 100644
index 0000000..aa4916a
--- /dev/null
+++ b/pixellab_src/pl_bulb/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 96067,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulb/_probe_head_top.png b/pixellab_src/pl_bulb/_probe_head_top.png
new file mode 100644
index 0000000..930100b
Binary files /dev/null and b/pixellab_src/pl_bulb/_probe_head_top.png differ
diff --git a/pixellab_src/pl_bulb/anchors.json b/pixellab_src/pl_bulb/anchors.json
new file mode 100644
index 0000000..7a61f0d
--- /dev/null
+++ b/pixellab_src/pl_bulb/anchors.json
@@ -0,0 +1 @@
+{"pivot": [29, 60], "aura": [31, 41], "head_top": [29, 28], "back": [31, 39], "tail": [45, 50]}
diff --git a/pixellab_src/pl_bulb/base.json b/pixellab_src/pl_bulb/base.json
new file mode 100644
index 0000000..150070f
--- /dev/null
+++ b/pixellab_src/pl_bulb/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "living light bulb creature, a big round glass bulb with a cute face on the front of the glass and a glowing coiled filament visible inside the top of the bulb, the bulb sits on a crimson ringed metal screw base that forms its little body, two tiny stubby legs under the screw base, two tiny stubby arms, no ears, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 1202
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulb/base.png b/pixellab_src/pl_bulb/base.png
new file mode 100644
index 0000000..d65a3b4
Binary files /dev/null and b/pixellab_src/pl_bulb/base.png differ
diff --git a/pixellab_src/pl_bulb/base_raw.png b/pixellab_src/pl_bulb/base_raw.png
new file mode 100644
index 0000000..a144cff
Binary files /dev/null and b/pixellab_src/pl_bulb/base_raw.png differ
diff --git a/pixellab_src/pl_bulb_b/base.json b/pixellab_src/pl_bulb_b/base.json
new file mode 100644
index 0000000..2581fce
--- /dev/null
+++ b/pixellab_src/pl_bulb_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the whole glass bulb head taller and narrower, an elongated oval glass head with the face on it and a crimson spiral filament inside, and a longer crimson screw base, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 13,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulb_b/base.png b/pixellab_src/pl_bulb_b/base.png
new file mode 100644
index 0000000..24798a4
Binary files /dev/null and b/pixellab_src/pl_bulb_b/base.png differ
diff --git a/pixellab_src/pl_bulb_c/base.json b/pixellab_src/pl_bulb_c/base.json
new file mode 100644
index 0000000..f3c6dee
--- /dev/null
+++ b/pixellab_src/pl_bulb_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the glass bulb huge and perfectly round with a wider chunkier crimson screw base and bigger eyes, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulb_c/base.png b/pixellab_src/pl_bulb_c/base.png
new file mode 100644
index 0000000..561c951
Binary files /dev/null and b/pixellab_src/pl_bulb_c/base.png differ
diff --git a/pixellab_src/pl_bulb_d/base.json b/pixellab_src/pl_bulb_d/base.json
new file mode 100644
index 0000000..0f488a0
--- /dev/null
+++ b/pixellab_src/pl_bulb_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the glass bulb frosted and cloudy with crimson zigzag filament glowing inside and a sleepy face, keep the same size and pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulb_d/base.png b/pixellab_src/pl_bulb_d/base.png
new file mode 100644
index 0000000..70493ce
Binary files /dev/null and b/pixellab_src/pl_bulb_d/base.png differ
diff --git a/pixellab_src/pl_bulldozer/_probe_back.json b/pixellab_src/pl_bulldozer/_probe_back.json
new file mode 100644
index 0000000..f6f205e
--- /dev/null
+++ b/pixellab_src/pl_bulldozer/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 46375,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulldozer/_probe_back.png b/pixellab_src/pl_bulldozer/_probe_back.png
new file mode 100644
index 0000000..d87b322
Binary files /dev/null and b/pixellab_src/pl_bulldozer/_probe_back.png differ
diff --git a/pixellab_src/pl_bulldozer/_probe_head_top.json b/pixellab_src/pl_bulldozer/_probe_head_top.json
new file mode 100644
index 0000000..80cdb42
--- /dev/null
+++ b/pixellab_src/pl_bulldozer/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 15240,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulldozer/_probe_head_top.png b/pixellab_src/pl_bulldozer/_probe_head_top.png
new file mode 100644
index 0000000..3061cff
Binary files /dev/null and b/pixellab_src/pl_bulldozer/_probe_head_top.png differ
diff --git a/pixellab_src/pl_bulldozer/anchors.json b/pixellab_src/pl_bulldozer/anchors.json
new file mode 100644
index 0000000..a987f48
--- /dev/null
+++ b/pixellab_src/pl_bulldozer/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [32, 45], "head_top": [31, 27], "back": [32, 38], "tail": [48, 52]}
diff --git a/pixellab_src/pl_bulldozer/base.json b/pixellab_src/pl_bulldozer/base.json
new file mode 100644
index 0000000..a37aaea
--- /dev/null
+++ b/pixellab_src/pl_bulldozer/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "little bulldozer creature, chunky boxy teal body on two tank tread feet, a big curved front scoop blade at the bottom used as a jutting jaw, a cab on top whose window is its face with two determined eyes, crimson warning stripes on the blade, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 9505
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulldozer/base.png b/pixellab_src/pl_bulldozer/base.png
new file mode 100644
index 0000000..ee1c5ce
Binary files /dev/null and b/pixellab_src/pl_bulldozer/base.png differ
diff --git a/pixellab_src/pl_bulldozer/base_raw.png b/pixellab_src/pl_bulldozer/base_raw.png
new file mode 100644
index 0000000..5398901
Binary files /dev/null and b/pixellab_src/pl_bulldozer/base_raw.png differ
diff --git a/pixellab_src/pl_bulldozer_b/base.json b/pixellab_src/pl_bulldozer_b/base.json
new file mode 100644
index 0000000..7d10071
--- /dev/null
+++ b/pixellab_src/pl_bulldozer_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it taller like an excavator with a bigger cab, smaller blade and crimson stripes on its sides, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulldozer_b/base.png b/pixellab_src/pl_bulldozer_b/base.png
new file mode 100644
index 0000000..33ffc65
Binary files /dev/null and b/pixellab_src/pl_bulldozer_b/base.png differ
diff --git a/pixellab_src/pl_bulldozer_c/base.json b/pixellab_src/pl_bulldozer_c/base.json
new file mode 100644
index 0000000..845c75f
--- /dev/null
+++ b/pixellab_src/pl_bulldozer_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it squat and wide with a huge toothed scoop blade jaw grinning and a dented scuffed body, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulldozer_c/base.png b/pixellab_src/pl_bulldozer_c/base.png
new file mode 100644
index 0000000..6cdca62
Binary files /dev/null and b/pixellab_src/pl_bulldozer_c/base.png differ
diff --git a/pixellab_src/pl_bulldozer_d/base.json b/pixellab_src/pl_bulldozer_d/base.json
new file mode 100644
index 0000000..4e6f2cd
--- /dev/null
+++ b/pixellab_src/pl_bulldozer_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much taller and narrower like a tall upright robot on treads with a small blade, keep its face and teal color, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 7,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bulldozer_d/base.png b/pixellab_src/pl_bulldozer_d/base.png
new file mode 100644
index 0000000..434c6e1
Binary files /dev/null and b/pixellab_src/pl_bulldozer_d/base.png differ
diff --git a/pixellab_src/pl_bunny/anchors.json b/pixellab_src/pl_bunny/anchors.json
new file mode 100644
index 0000000..62d3b52
--- /dev/null
+++ b/pixellab_src/pl_bunny/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 41], "head_top": [32, 20], "back": [29, 40], "tail": [45, 49]}
diff --git a/pixellab_src/pl_bunny_b/base.json b/pixellab_src/pl_bunny_b/base.json
new file mode 100644
index 0000000..0c1a27f
--- /dev/null
+++ b/pixellab_src/pl_bunny_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it chubbier and rounder with thick fluffy fur cheek tufts and crimson paws, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bunny_b/base.png b/pixellab_src/pl_bunny_b/base.png
new file mode 100644
index 0000000..8ae2752
Binary files /dev/null and b/pixellab_src/pl_bunny_b/base.png differ
diff --git a/pixellab_src/pl_bunny_c/base.json b/pixellab_src/pl_bunny_c/base.json
new file mode 100644
index 0000000..11ac9ab
--- /dev/null
+++ b/pixellab_src/pl_bunny_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer with longer feet, sleek fur and crimson stripes on its back, same sitting pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bunny_c/base.png b/pixellab_src/pl_bunny_c/base.png
new file mode 100644
index 0000000..d176ad5
Binary files /dev/null and b/pixellab_src/pl_bunny_c/base.png differ
diff --git a/pixellab_src/pl_bunny_d/base.json b/pixellab_src/pl_bunny_d/base.json
new file mode 100644
index 0000000..e83962b
--- /dev/null
+++ b/pixellab_src/pl_bunny_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "give it small crystal growths along its back and crimson crystal tips, same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_bunny_d/base.png b/pixellab_src/pl_bunny_d/base.png
new file mode 100644
index 0000000..c2a8140
Binary files /dev/null and b/pixellab_src/pl_bunny_d/base.png differ
diff --git a/pixellab_src/pl_buoy/_probe_back.json b/pixellab_src/pl_buoy/_probe_back.json
new file mode 100644
index 0000000..6db6531
--- /dev/null
+++ b/pixellab_src/pl_buoy/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 7190,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_buoy/_probe_back.png b/pixellab_src/pl_buoy/_probe_back.png
new file mode 100644
index 0000000..b72ac6c
Binary files /dev/null and b/pixellab_src/pl_buoy/_probe_back.png differ
diff --git a/pixellab_src/pl_buoy/_probe_head_top.json b/pixellab_src/pl_buoy/_probe_head_top.json
new file mode 100644
index 0000000..4ed075e
--- /dev/null
+++ b/pixellab_src/pl_buoy/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 60044,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_buoy/_probe_head_top.png b/pixellab_src/pl_buoy/_probe_head_top.png
new file mode 100644
index 0000000..7ca9e72
Binary files /dev/null and b/pixellab_src/pl_buoy/_probe_head_top.png differ
diff --git a/pixellab_src/pl_buoy/anchors.json b/pixellab_src/pl_buoy/anchors.json
new file mode 100644
index 0000000..e444a94
--- /dev/null
+++ b/pixellab_src/pl_buoy/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 45], "head_top": [31, 30], "back": [31, 36], "tail": [48, 53]}
diff --git a/pixellab_src/pl_buoy/base.json b/pixellab_src/pl_buoy/base.json
new file mode 100644
index 0000000..4415719
--- /dev/null
+++ b/pixellab_src/pl_buoy/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "living harbor buoy creature bobbing upright, rounded barrel-shaped float body with a domed top, two wide crimson bands painted around it, rivets along the seams, a flared round float ring skirt at its base, little barnacle bumps, a cute face on the front, two tiny stubby side handles like arms, nothing on top, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 40,
+ "height": 40
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 3202
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_buoy/base.png b/pixellab_src/pl_buoy/base.png
new file mode 100644
index 0000000..091a769
Binary files /dev/null and b/pixellab_src/pl_buoy/base.png differ
diff --git a/pixellab_src/pl_buoy/base_raw.png b/pixellab_src/pl_buoy/base_raw.png
new file mode 100644
index 0000000..a380d0c
Binary files /dev/null and b/pixellab_src/pl_buoy/base_raw.png differ
diff --git a/pixellab_src/pl_buoy_b/base.json b/pixellab_src/pl_buoy_b/base.json
new file mode 100644
index 0000000..5752b1f
--- /dev/null
+++ b/pixellab_src/pl_buoy_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a tall narrow cone-shaped buoy with three thinner crimson stripes and rust-free smooth sides, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_buoy_b/base.png b/pixellab_src/pl_buoy_b/base.png
new file mode 100644
index 0000000..867ecef
Binary files /dev/null and b/pixellab_src/pl_buoy_b/base.png differ
diff --git a/pixellab_src/pl_buoy_c/base.json b/pixellab_src/pl_buoy_c/base.json
new file mode 100644
index 0000000..237216c
--- /dev/null
+++ b/pixellab_src/pl_buoy_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a squat wide ball-shaped buoy with crimson checker panels and more barnacle bumps, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_buoy_c/base.png b/pixellab_src/pl_buoy_c/base.png
new file mode 100644
index 0000000..888a03c
Binary files /dev/null and b/pixellab_src/pl_buoy_c/base.png differ
diff --git a/pixellab_src/pl_buoy_d/base.json b/pixellab_src/pl_buoy_d/base.json
new file mode 100644
index 0000000..b7ac426
--- /dev/null
+++ b/pixellab_src/pl_buoy_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it squat and wider with crimson stripes and a riveted armored band around its middle, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_buoy_d/base.png b/pixellab_src/pl_buoy_d/base.png
new file mode 100644
index 0000000..937f054
Binary files /dev/null and b/pixellab_src/pl_buoy_d/base.png differ
diff --git a/pixellab_src/pl_cabbage/_probe_back.json b/pixellab_src/pl_cabbage/_probe_back.json
new file mode 100644
index 0000000..95ade62
--- /dev/null
+++ b/pixellab_src/pl_cabbage/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 91980,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage/_probe_back.png b/pixellab_src/pl_cabbage/_probe_back.png
new file mode 100644
index 0000000..a3a2a02
Binary files /dev/null and b/pixellab_src/pl_cabbage/_probe_back.png differ
diff --git a/pixellab_src/pl_cabbage/_probe_head_top.json b/pixellab_src/pl_cabbage/_probe_head_top.json
new file mode 100644
index 0000000..cb313fc
--- /dev/null
+++ b/pixellab_src/pl_cabbage/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 32299,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage/_probe_head_top.png b/pixellab_src/pl_cabbage/_probe_head_top.png
new file mode 100644
index 0000000..86960cd
Binary files /dev/null and b/pixellab_src/pl_cabbage/_probe_head_top.png differ
diff --git a/pixellab_src/pl_cabbage/_probe_tail.json b/pixellab_src/pl_cabbage/_probe_tail.json
new file mode 100644
index 0000000..aeeede9
--- /dev/null
+++ b/pixellab_src/pl_cabbage/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 92198,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage/_probe_tail.png b/pixellab_src/pl_cabbage/_probe_tail.png
new file mode 100644
index 0000000..4e6b0aa
Binary files /dev/null and b/pixellab_src/pl_cabbage/_probe_tail.png differ
diff --git a/pixellab_src/pl_cabbage/anchors.json b/pixellab_src/pl_cabbage/anchors.json
new file mode 100644
index 0000000..65c6123
--- /dev/null
+++ b/pixellab_src/pl_cabbage/anchors.json
@@ -0,0 +1 @@
+{"pivot": [32, 59], "aura": [32, 40], "head_top": [29, 28], "back": [39, 31], "tail": [47, 42]}
diff --git a/pixellab_src/pl_cabbage/base.json b/pixellab_src/pl_cabbage/base.json
new file mode 100644
index 0000000..9cb6bb0
--- /dev/null
+++ b/pixellab_src/pl_cabbage/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "small piglet-shaped creature whose round body is a teal cabbage head made of layered wrapped curly leaves with pale veins, four short stubby legs, a small round flat snout, beady eyes, rosy crimson cheeks, no ears, no tail, no ground shadow, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2102
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage/base.png b/pixellab_src/pl_cabbage/base.png
new file mode 100644
index 0000000..ddb3ca3
Binary files /dev/null and b/pixellab_src/pl_cabbage/base.png differ
diff --git a/pixellab_src/pl_cabbage/base_raw.png b/pixellab_src/pl_cabbage/base_raw.png
new file mode 100644
index 0000000..38393c6
Binary files /dev/null and b/pixellab_src/pl_cabbage/base_raw.png differ
diff --git a/pixellab_src/pl_cabbage/pl_tail_pinecone.json b/pixellab_src/pl_cabbage/pl_tail_pinecone.json
new file mode 100644
index 0000000..67b431d
--- /dev/null
+++ b/pixellab_src/pl_cabbage/pl_tail_pinecone.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a short chunky gold tail shaped like a pinecone, thick and egg-shaped with clearly overlapping layered scales, attached at its lower right rear and pointing out to the right, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage/pl_tail_pinecone.png b/pixellab_src/pl_cabbage/pl_tail_pinecone.png
new file mode 100644
index 0000000..9460ebf
Binary files /dev/null and b/pixellab_src/pl_cabbage/pl_tail_pinecone.png differ
diff --git a/pixellab_src/pl_cabbage_b/base.json b/pixellab_src/pl_cabbage_b/base.json
new file mode 100644
index 0000000..86a8a9a
--- /dev/null
+++ b/pixellab_src/pl_cabbage_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much rounder and bigger like a ball with thick crinkly savoy leaves and crimson leaf edges, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage_b/base.png b/pixellab_src/pl_cabbage_b/base.png
new file mode 100644
index 0000000..432a30d
Binary files /dev/null and b/pixellab_src/pl_cabbage_b/base.png differ
diff --git a/pixellab_src/pl_cabbage_c/base.json b/pixellab_src/pl_cabbage_c/base.json
new file mode 100644
index 0000000..c1b6ef0
--- /dev/null
+++ b/pixellab_src/pl_cabbage_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its body much longer and lower like a stretched sausage, with smooth tight leaves and bold crimson stripes along the leaf veins, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage_c/base.png b/pixellab_src/pl_cabbage_c/base.png
new file mode 100644
index 0000000..b0052c5
Binary files /dev/null and b/pixellab_src/pl_cabbage_c/base.png differ
diff --git a/pixellab_src/pl_cabbage_d/base.json b/pixellab_src/pl_cabbage_d/base.json
new file mode 100644
index 0000000..de1020a
--- /dev/null
+++ b/pixellab_src/pl_cabbage_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a young chibi version with a much bigger head, a smaller body and short stubby limbs, keep its cabbage leaves, keep its piglet face and teal colors, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cabbage_d/base.png b/pixellab_src/pl_cabbage_d/base.png
new file mode 100644
index 0000000..044d9e5
Binary files /dev/null and b/pixellab_src/pl_cabbage_d/base.png differ
diff --git a/pixellab_src/pl_caddis/_probe_back.json b/pixellab_src/pl_caddis/_probe_back.json
new file mode 100644
index 0000000..199f79d
--- /dev/null
+++ b/pixellab_src/pl_caddis/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 93928,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_caddis/_probe_back.png b/pixellab_src/pl_caddis/_probe_back.png
new file mode 100644
index 0000000..e30f603
Binary files /dev/null and b/pixellab_src/pl_caddis/_probe_back.png differ
diff --git a/pixellab_src/pl_caddis/_probe_head_top.json b/pixellab_src/pl_caddis/_probe_head_top.json
new file mode 100644
index 0000000..3385281
--- /dev/null
+++ b/pixellab_src/pl_caddis/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 22354,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_caddis/_probe_head_top.png b/pixellab_src/pl_caddis/_probe_head_top.png
new file mode 100644
index 0000000..462d6c8
Binary files /dev/null and b/pixellab_src/pl_caddis/_probe_head_top.png differ
diff --git a/pixellab_src/pl_caddis/anchors.json b/pixellab_src/pl_caddis/anchors.json
new file mode 100644
index 0000000..c025d23
--- /dev/null
+++ b/pixellab_src/pl_caddis/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [32, 42], "head_top": [32, 27], "back": [31, 36], "tail": [45, 51]}
diff --git a/pixellab_src/pl_caddis/base.json b/pixellab_src/pl_caddis/base.json
new file mode 100644
index 0000000..bdfb732
--- /dev/null
+++ b/pixellab_src/pl_caddis/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "caddisfly larva creature living in an upright tube-shaped case made of many small glued pebbles and stones, its chubby teal head and six short jointed legs poke out from the top of the case, big round eyes, crimson stripes on its head, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 9313
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_caddis/base.png b/pixellab_src/pl_caddis/base.png
new file mode 100644
index 0000000..c98eaf1
Binary files /dev/null and b/pixellab_src/pl_caddis/base.png differ
diff --git a/pixellab_src/pl_caddis/base_raw.png b/pixellab_src/pl_caddis/base_raw.png
new file mode 100644
index 0000000..7bd9edc
Binary files /dev/null and b/pixellab_src/pl_caddis/base_raw.png differ
diff --git a/pixellab_src/pl_caddis_b/base.json b/pixellab_src/pl_caddis_b/base.json
new file mode 100644
index 0000000..5f7e141
--- /dev/null
+++ b/pixellab_src/pl_caddis_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the case short and wide made of big flat shell pieces and give the larva crimson spots, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_caddis_b/base.png b/pixellab_src/pl_caddis_b/base.png
new file mode 100644
index 0000000..fc222d1
Binary files /dev/null and b/pixellab_src/pl_caddis_b/base.png differ
diff --git a/pixellab_src/pl_caddis_c/base.json b/pixellab_src/pl_caddis_c/base.json
new file mode 100644
index 0000000..7199fba
--- /dev/null
+++ b/pixellab_src/pl_caddis_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the case tall and thin made of tiny sand grains with a spiral pattern, and the larva peeking out with a shy face, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_caddis_c/base.png b/pixellab_src/pl_caddis_c/base.png
new file mode 100644
index 0000000..2a0ae0c
Binary files /dev/null and b/pixellab_src/pl_caddis_c/base.png differ
diff --git a/pixellab_src/pl_caddis_d/base.json b/pixellab_src/pl_caddis_d/base.json
new file mode 100644
index 0000000..92a881a
--- /dev/null
+++ b/pixellab_src/pl_caddis_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_caddis_d/base.png b/pixellab_src/pl_caddis_d/base.png
new file mode 100644
index 0000000..f6a8736
Binary files /dev/null and b/pixellab_src/pl_caddis_d/base.png differ
diff --git a/pixellab_src/pl_cairn/_probe_back.json b/pixellab_src/pl_cairn/_probe_back.json
new file mode 100644
index 0000000..9867ab6
--- /dev/null
+++ b/pixellab_src/pl_cairn/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 62750,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cairn/_probe_back.png b/pixellab_src/pl_cairn/_probe_back.png
new file mode 100644
index 0000000..ec2325c
Binary files /dev/null and b/pixellab_src/pl_cairn/_probe_back.png differ
diff --git a/pixellab_src/pl_cairn/_probe_head_top.json b/pixellab_src/pl_cairn/_probe_head_top.json
new file mode 100644
index 0000000..d84419a
--- /dev/null
+++ b/pixellab_src/pl_cairn/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 49291,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cairn/_probe_head_top.png b/pixellab_src/pl_cairn/_probe_head_top.png
new file mode 100644
index 0000000..9aa283a
Binary files /dev/null and b/pixellab_src/pl_cairn/_probe_head_top.png differ
diff --git a/pixellab_src/pl_cairn/anchors.json b/pixellab_src/pl_cairn/anchors.json
new file mode 100644
index 0000000..febe5e0
--- /dev/null
+++ b/pixellab_src/pl_cairn/anchors.json
@@ -0,0 +1 @@
+{"pivot": [36, 60], "aura": [31, 43], "head_top": [30, 26], "back": [29, 40], "tail": [49, 52]}
diff --git a/pixellab_src/pl_cairn/base.json b/pixellab_src/pl_cairn/base.json
new file mode 100644
index 0000000..c55e5d1
--- /dev/null
+++ b/pixellab_src/pl_cairn/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "cairn creature made of four smooth flat rounded teal river stones balanced in a stack, the biggest stone at the bottom, a calm face on the second stone, two thin stick-like stone arms and two short stubby stone legs, small crimson painted dots on the stones, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 9808
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cairn/base.png b/pixellab_src/pl_cairn/base.png
new file mode 100644
index 0000000..493338c
Binary files /dev/null and b/pixellab_src/pl_cairn/base.png differ
diff --git a/pixellab_src/pl_cairn/base_raw.png b/pixellab_src/pl_cairn/base_raw.png
new file mode 100644
index 0000000..e64af10
Binary files /dev/null and b/pixellab_src/pl_cairn/base_raw.png differ
diff --git a/pixellab_src/pl_cairn_b/base.json b/pixellab_src/pl_cairn_b/base.json
new file mode 100644
index 0000000..3b70935
--- /dev/null
+++ b/pixellab_src/pl_cairn_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the stack wobbly and leaning with five smaller round pebble stones and crimson stripes painted across them, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cairn_b/base.png b/pixellab_src/pl_cairn_b/base.png
new file mode 100644
index 0000000..c6a2672
Binary files /dev/null and b/pixellab_src/pl_cairn_b/base.png differ
diff --git a/pixellab_src/pl_cairn_c/base.json b/pixellab_src/pl_cairn_c/base.json
new file mode 100644
index 0000000..70048ba
--- /dev/null
+++ b/pixellab_src/pl_cairn_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it two huge chunky flat stones with a big grumpy face across the top stone and crimson moss patches, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cairn_c/base.png b/pixellab_src/pl_cairn_c/base.png
new file mode 100644
index 0000000..562e7c9
Binary files /dev/null and b/pixellab_src/pl_cairn_c/base.png differ
diff --git a/pixellab_src/pl_cairn_d/base.json b/pixellab_src/pl_cairn_d/base.json
new file mode 100644
index 0000000..92a881a
--- /dev/null
+++ b/pixellab_src/pl_cairn_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much squatter and wider with a low heavy body and short thick limbs, small crimson spots, keep teal color and same face, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cairn_d/base.png b/pixellab_src/pl_cairn_d/base.png
new file mode 100644
index 0000000..048603c
Binary files /dev/null and b/pixellab_src/pl_cairn_d/base.png differ
diff --git a/pixellab_src/pl_cardinal/_probe_back.json b/pixellab_src/pl_cardinal/_probe_back.json
new file mode 100644
index 0000000..45d0655
--- /dev/null
+++ b/pixellab_src/pl_cardinal/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 93334,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cardinal/_probe_back.png b/pixellab_src/pl_cardinal/_probe_back.png
new file mode 100644
index 0000000..ee8301e
Binary files /dev/null and b/pixellab_src/pl_cardinal/_probe_back.png differ
diff --git a/pixellab_src/pl_cardinal/_probe_head_top.json b/pixellab_src/pl_cardinal/_probe_head_top.json
new file mode 100644
index 0000000..d5d3214
--- /dev/null
+++ b/pixellab_src/pl_cardinal/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 82314,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cardinal/_probe_head_top.png b/pixellab_src/pl_cardinal/_probe_head_top.png
new file mode 100644
index 0000000..61ad121
Binary files /dev/null and b/pixellab_src/pl_cardinal/_probe_head_top.png differ
diff --git a/pixellab_src/pl_cardinal/_probe_tail.json b/pixellab_src/pl_cardinal/_probe_tail.json
new file mode 100644
index 0000000..f576cf8
--- /dev/null
+++ b/pixellab_src/pl_cardinal/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 76988,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cardinal/_probe_tail.png b/pixellab_src/pl_cardinal/_probe_tail.png
new file mode 100644
index 0000000..a48a473
Binary files /dev/null and b/pixellab_src/pl_cardinal/_probe_tail.png differ
diff --git a/pixellab_src/pl_cardinal/anchors.json b/pixellab_src/pl_cardinal/anchors.json
new file mode 100644
index 0000000..8843672
--- /dev/null
+++ b/pixellab_src/pl_cardinal/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [29, 43], "head_top": [29, 29], "back": [37, 34], "tail": [44, 44]}
diff --git a/pixellab_src/pl_cardinal/base.json b/pixellab_src/pl_cardinal/base.json
new file mode 100644
index 0000000..07a6e79
--- /dev/null
+++ b/pixellab_src/pl_cardinal/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "round cardinal songbird standing on two short legs, small pointed crest stub on its head, a dark mask around its eyes and beak, short thick cone-shaped crimson beak, plump teal body, small folded wings, short tail stub, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 3401
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cardinal/base.png b/pixellab_src/pl_cardinal/base.png
new file mode 100644
index 0000000..3e5e22d
Binary files /dev/null and b/pixellab_src/pl_cardinal/base.png differ
diff --git a/pixellab_src/pl_cardinal/base_raw.png b/pixellab_src/pl_cardinal/base_raw.png
new file mode 100644
index 0000000..9fa7d4c
Binary files /dev/null and b/pixellab_src/pl_cardinal/base_raw.png differ
diff --git a/pixellab_src/pl_cardinal_b/base.json b/pixellab_src/pl_cardinal_b/base.json
new file mode 100644
index 0000000..7acba32
--- /dev/null
+++ b/pixellab_src/pl_cardinal_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer and taller with a longer neck and crimson bars across its chest, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cardinal_b/base.png b/pixellab_src/pl_cardinal_b/base.png
new file mode 100644
index 0000000..2e89bb7
Binary files /dev/null and b/pixellab_src/pl_cardinal_b/base.png differ
diff --git a/pixellab_src/pl_cardinal_c/base.json b/pixellab_src/pl_cardinal_c/base.json
new file mode 100644
index 0000000..e3d2b72
--- /dev/null
+++ b/pixellab_src/pl_cardinal_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a fat round puffed-up ball with fluffed feathers, a tiny beak and crimson spots on its belly, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cardinal_c/base.png b/pixellab_src/pl_cardinal_c/base.png
new file mode 100644
index 0000000..b91dc5f
Binary files /dev/null and b/pixellab_src/pl_cardinal_c/base.png differ
diff --git a/pixellab_src/pl_cardinal_d/base.json b/pixellab_src/pl_cardinal_d/base.json
new file mode 100644
index 0000000..3359a44
--- /dev/null
+++ b/pixellab_src/pl_cardinal_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "young chibi version with a bigger head and tiny body, keep its creature face and teal skin, no human features, crimson cheek marks, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cardinal_d/base.png b/pixellab_src/pl_cardinal_d/base.png
new file mode 100644
index 0000000..71c2b85
Binary files /dev/null and b/pixellab_src/pl_cardinal_d/base.png differ
diff --git a/pixellab_src/pl_cassowary/_probe_back.json b/pixellab_src/pl_cassowary/_probe_back.json
new file mode 100644
index 0000000..59ef19c
--- /dev/null
+++ b/pixellab_src/pl_cassowary/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1676,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cassowary/_probe_back.png b/pixellab_src/pl_cassowary/_probe_back.png
new file mode 100644
index 0000000..b61728a
Binary files /dev/null and b/pixellab_src/pl_cassowary/_probe_back.png differ
diff --git a/pixellab_src/pl_cassowary/_probe_head_top.json b/pixellab_src/pl_cassowary/_probe_head_top.json
new file mode 100644
index 0000000..e1db3a0
--- /dev/null
+++ b/pixellab_src/pl_cassowary/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 72824,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cassowary/_probe_head_top.png b/pixellab_src/pl_cassowary/_probe_head_top.png
new file mode 100644
index 0000000..6d120fb
Binary files /dev/null and b/pixellab_src/pl_cassowary/_probe_head_top.png differ
diff --git a/pixellab_src/pl_cassowary/_probe_tail.json b/pixellab_src/pl_cassowary/_probe_tail.json
new file mode 100644
index 0000000..7c46a95
--- /dev/null
+++ b/pixellab_src/pl_cassowary/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 71238,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cassowary/_probe_tail.png b/pixellab_src/pl_cassowary/_probe_tail.png
new file mode 100644
index 0000000..82445da
Binary files /dev/null and b/pixellab_src/pl_cassowary/_probe_tail.png differ
diff --git a/pixellab_src/pl_cassowary/anchors.json b/pixellab_src/pl_cassowary/anchors.json
new file mode 100644
index 0000000..2b084eb
--- /dev/null
+++ b/pixellab_src/pl_cassowary/anchors.json
@@ -0,0 +1 @@
+{"pivot": [35, 60], "aura": [30, 38], "head_top": [23, 22], "back": [39, 32], "tail": [41, 47]}
diff --git a/pixellab_src/pl_cassowary/base.json b/pixellab_src/pl_cassowary/base.json
new file mode 100644
index 0000000..059ccd2
--- /dev/null
+++ b/pixellab_src/pl_cassowary/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "chunky flightless cassowary chick standing in a tough stance, shaggy hair-like feathers, short neck with crimson dangling wattles, short rounded casque bump on its head, short pointed beak, determined eyes, thick strong legs with huge dagger-clawed feet, no wings, no tail, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2301
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cassowary/base.png b/pixellab_src/pl_cassowary/base.png
new file mode 100644
index 0000000..0f673f2
Binary files /dev/null and b/pixellab_src/pl_cassowary/base.png differ
diff --git a/pixellab_src/pl_cassowary/base_raw.png b/pixellab_src/pl_cassowary/base_raw.png
new file mode 100644
index 0000000..f98bf62
Binary files /dev/null and b/pixellab_src/pl_cassowary/base_raw.png differ
diff --git a/pixellab_src/pl_cassowary_b/base.json b/pixellab_src/pl_cassowary_b/base.json
new file mode 100644
index 0000000..70038be
--- /dev/null
+++ b/pixellab_src/pl_cassowary_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it taller and leaner with a longer neck, longer crimson wattles and crimson bands on its legs, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cassowary_b/base.png b/pixellab_src/pl_cassowary_b/base.png
new file mode 100644
index 0000000..2143e50
Binary files /dev/null and b/pixellab_src/pl_cassowary_b/base.png differ
diff --git a/pixellab_src/pl_cassowary_c/base.json b/pixellab_src/pl_cassowary_c/base.json
new file mode 100644
index 0000000..daeb1bd
--- /dev/null
+++ b/pixellab_src/pl_cassowary_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it rounder and fluffier like a ball of shaggy feathers with crimson stripes on its body, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cassowary_c/base.png b/pixellab_src/pl_cassowary_c/base.png
new file mode 100644
index 0000000..a3beb64
Binary files /dev/null and b/pixellab_src/pl_cassowary_c/base.png differ
diff --git a/pixellab_src/pl_cassowary_d/base.json b/pixellab_src/pl_cassowary_d/base.json
new file mode 100644
index 0000000..a4e75bc
--- /dev/null
+++ b/pixellab_src/pl_cassowary_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its bird face and teal fluffy striped down, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cassowary_d/base.png b/pixellab_src/pl_cassowary_d/base.png
new file mode 100644
index 0000000..9062ed3
Binary files /dev/null and b/pixellab_src/pl_cassowary_d/base.png differ
diff --git a/pixellab_src/pl_catfish/_probe_back.json b/pixellab_src/pl_catfish/_probe_back.json
new file mode 100644
index 0000000..5b99978
--- /dev/null
+++ b/pixellab_src/pl_catfish/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 34294,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catfish/_probe_back.png b/pixellab_src/pl_catfish/_probe_back.png
new file mode 100644
index 0000000..210e5fe
Binary files /dev/null and b/pixellab_src/pl_catfish/_probe_back.png differ
diff --git a/pixellab_src/pl_catfish/_probe_head_top.json b/pixellab_src/pl_catfish/_probe_head_top.json
new file mode 100644
index 0000000..822c864
--- /dev/null
+++ b/pixellab_src/pl_catfish/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 23859,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catfish/_probe_head_top.png b/pixellab_src/pl_catfish/_probe_head_top.png
new file mode 100644
index 0000000..4d25d7f
Binary files /dev/null and b/pixellab_src/pl_catfish/_probe_head_top.png differ
diff --git a/pixellab_src/pl_catfish/_probe_tail.json b/pixellab_src/pl_catfish/_probe_tail.json
new file mode 100644
index 0000000..3932515
--- /dev/null
+++ b/pixellab_src/pl_catfish/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 53980,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catfish/_probe_tail.png b/pixellab_src/pl_catfish/_probe_tail.png
new file mode 100644
index 0000000..620af93
Binary files /dev/null and b/pixellab_src/pl_catfish/_probe_tail.png differ
diff --git a/pixellab_src/pl_catfish/anchors.json b/pixellab_src/pl_catfish/anchors.json
new file mode 100644
index 0000000..34bf1bd
--- /dev/null
+++ b/pixellab_src/pl_catfish/anchors.json
@@ -0,0 +1 @@
+{"pivot": [38, 60], "aura": [32, 45], "head_top": [34, 33], "back": [39, 35], "tail": [47, 51]}
diff --git a/pixellab_src/pl_catfish/base.json b/pixellab_src/pl_catfish/base.json
new file mode 100644
index 0000000..d863eb8
--- /dev/null
+++ b/pixellab_src/pl_catfish/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "catfish creature propped upright on its pectoral fins, plump body with a wide flat head, very wide flat mouth, four long drooping whisker barbels, tiny beady eyes, smooth skin, crimson blotches on its back, short stubby fins, no tail fin, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2601
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catfish/base.png b/pixellab_src/pl_catfish/base.png
new file mode 100644
index 0000000..8e4dd51
Binary files /dev/null and b/pixellab_src/pl_catfish/base.png differ
diff --git a/pixellab_src/pl_catfish/base_raw.png b/pixellab_src/pl_catfish/base_raw.png
new file mode 100644
index 0000000..d08f12c
Binary files /dev/null and b/pixellab_src/pl_catfish/base_raw.png differ
diff --git a/pixellab_src/pl_catfish_b/base.json b/pixellab_src/pl_catfish_b/base.json
new file mode 100644
index 0000000..fda7fde
--- /dev/null
+++ b/pixellab_src/pl_catfish_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it fatter and wider with a huge grinning mouth, extra long whiskers and crimson stripes on its body, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catfish_b/base.png b/pixellab_src/pl_catfish_b/base.png
new file mode 100644
index 0000000..6f6ddc9
Binary files /dev/null and b/pixellab_src/pl_catfish_b/base.png differ
diff --git a/pixellab_src/pl_catfish_c/base.json b/pixellab_src/pl_catfish_c/base.json
new file mode 100644
index 0000000..30e364d
--- /dev/null
+++ b/pixellab_src/pl_catfish_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer and taller with a spiky dorsal ridge and crimson spots all over, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catfish_c/base.png b/pixellab_src/pl_catfish_c/base.png
new file mode 100644
index 0000000..d661de5
Binary files /dev/null and b/pixellab_src/pl_catfish_c/base.png differ
diff --git a/pixellab_src/pl_catfish_d/base.json b/pixellab_src/pl_catfish_d/base.json
new file mode 100644
index 0000000..8189cdb
--- /dev/null
+++ b/pixellab_src/pl_catfish_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it covered in crimson leopard spots with a huge lumpy wrinkled head and very long droopy whiskers, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catfish_d/base.png b/pixellab_src/pl_catfish_d/base.png
new file mode 100644
index 0000000..5b15e6d
Binary files /dev/null and b/pixellab_src/pl_catfish_d/base.png differ
diff --git a/pixellab_src/pl_catloaf/_probe_back.json b/pixellab_src/pl_catloaf/_probe_back.json
new file mode 100644
index 0000000..2cb22ee
--- /dev/null
+++ b/pixellab_src/pl_catloaf/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 66773,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catloaf/_probe_back.png b/pixellab_src/pl_catloaf/_probe_back.png
new file mode 100644
index 0000000..53e7ced
Binary files /dev/null and b/pixellab_src/pl_catloaf/_probe_back.png differ
diff --git a/pixellab_src/pl_catloaf/_probe_head_top.json b/pixellab_src/pl_catloaf/_probe_head_top.json
new file mode 100644
index 0000000..731ffc4
--- /dev/null
+++ b/pixellab_src/pl_catloaf/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 37558,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catloaf/_probe_head_top.png b/pixellab_src/pl_catloaf/_probe_head_top.png
new file mode 100644
index 0000000..c6e60f5
Binary files /dev/null and b/pixellab_src/pl_catloaf/_probe_head_top.png differ
diff --git a/pixellab_src/pl_catloaf/_probe_tail.json b/pixellab_src/pl_catloaf/_probe_tail.json
new file mode 100644
index 0000000..4db7a78
--- /dev/null
+++ b/pixellab_src/pl_catloaf/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 74783,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catloaf/_probe_tail.png b/pixellab_src/pl_catloaf/_probe_tail.png
new file mode 100644
index 0000000..45f5dab
Binary files /dev/null and b/pixellab_src/pl_catloaf/_probe_tail.png differ
diff --git a/pixellab_src/pl_catloaf/anchors.json b/pixellab_src/pl_catloaf/anchors.json
new file mode 100644
index 0000000..ff007d3
--- /dev/null
+++ b/pixellab_src/pl_catloaf/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [31, 48], "head_top": [25, 42], "back": [37, 40], "tail": [46, 45]}
diff --git a/pixellab_src/pl_catloaf/base.json b/pixellab_src/pl_catloaf/base.json
new file mode 100644
index 0000000..9bfa2b1
--- /dev/null
+++ b/pixellab_src/pl_catloaf/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "cat loaf creature: a teal cat lying with all paws tucked under its body so the whole cat forms one smooth rectangular bread-loaf shape, round face with content squinting eyes, small pointed ears with crimson insides, crimson stripes across its back, no visible legs, no tail, no basket, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 40,
+ "height": 40
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 1902
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catloaf/base.png b/pixellab_src/pl_catloaf/base.png
new file mode 100644
index 0000000..6075648
Binary files /dev/null and b/pixellab_src/pl_catloaf/base.png differ
diff --git a/pixellab_src/pl_catloaf/base_raw.png b/pixellab_src/pl_catloaf/base_raw.png
new file mode 100644
index 0000000..00b4afa
Binary files /dev/null and b/pixellab_src/pl_catloaf/base_raw.png differ
diff --git a/pixellab_src/pl_catloaf_b/base.json b/pixellab_src/pl_catloaf_b/base.json
new file mode 100644
index 0000000..14d01e9
--- /dev/null
+++ b/pixellab_src/pl_catloaf_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it fluffier and rounder like a puffy fur ball with a big fluffy cheek ruff and crimson spots, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catloaf_b/base.png b/pixellab_src/pl_catloaf_b/base.png
new file mode 100644
index 0000000..4d4c04f
Binary files /dev/null and b/pixellab_src/pl_catloaf_b/base.png differ
diff --git a/pixellab_src/pl_catloaf_c/base.json b/pixellab_src/pl_catloaf_c/base.json
new file mode 100644
index 0000000..c59bdb4
--- /dev/null
+++ b/pixellab_src/pl_catloaf_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its teal body longer and flatter like a long stretched loaf, with wide open round eyes and a crimson patch over one eye, keep the same teal fur and no bread, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catloaf_c/base.png b/pixellab_src/pl_catloaf_c/base.png
new file mode 100644
index 0000000..ee5ec48
Binary files /dev/null and b/pixellab_src/pl_catloaf_c/base.png differ
diff --git a/pixellab_src/pl_catloaf_d/base.json b/pixellab_src/pl_catloaf_d/base.json
new file mode 100644
index 0000000..f3471d6
--- /dev/null
+++ b/pixellab_src/pl_catloaf_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a long-haired fluffy cat loaf with a big shaggy mane ruff around its face and bold crimson tabby stripes all over its body, keep it teal, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 2,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_catloaf_d/base.png b/pixellab_src/pl_catloaf_d/base.png
new file mode 100644
index 0000000..64a6105
Binary files /dev/null and b/pixellab_src/pl_catloaf_d/base.png differ
diff --git a/pixellab_src/pl_cell/_probe_back.json b/pixellab_src/pl_cell/_probe_back.json
new file mode 100644
index 0000000..0377f58
--- /dev/null
+++ b/pixellab_src/pl_cell/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 51930,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cell/_probe_back.png b/pixellab_src/pl_cell/_probe_back.png
new file mode 100644
index 0000000..e133fdf
Binary files /dev/null and b/pixellab_src/pl_cell/_probe_back.png differ
diff --git a/pixellab_src/pl_cell/_probe_head_top.json b/pixellab_src/pl_cell/_probe_head_top.json
new file mode 100644
index 0000000..cecce42
--- /dev/null
+++ b/pixellab_src/pl_cell/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 29525,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cell/_probe_head_top.png b/pixellab_src/pl_cell/_probe_head_top.png
new file mode 100644
index 0000000..d858b20
Binary files /dev/null and b/pixellab_src/pl_cell/_probe_head_top.png differ
diff --git a/pixellab_src/pl_cell/_probe_tail.json b/pixellab_src/pl_cell/_probe_tail.json
new file mode 100644
index 0000000..808f189
--- /dev/null
+++ b/pixellab_src/pl_cell/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 54640,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cell/_probe_tail.png b/pixellab_src/pl_cell/_probe_tail.png
new file mode 100644
index 0000000..90ab271
Binary files /dev/null and b/pixellab_src/pl_cell/_probe_tail.png differ
diff --git a/pixellab_src/pl_cell/anchors.json b/pixellab_src/pl_cell/anchors.json
new file mode 100644
index 0000000..73c6fc7
--- /dev/null
+++ b/pixellab_src/pl_cell/anchors.json
@@ -0,0 +1 @@
+{"pivot": [28, 60], "aura": [31, 43], "head_top": [32, 29], "back": [31, 42], "tail": [41, 52]}
diff --git a/pixellab_src/pl_cell/base.json b/pixellab_src/pl_cell/base.json
new file mode 100644
index 0000000..a9b2169
--- /dev/null
+++ b/pixellab_src/pl_cell/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "chibi battery cell creature, its whole body is a short upright cylinder like a AA battery, a small crimson round terminal nub on the flat top of its head, a crimson plus sign on its chest, three stacked charge meter bars on its belly, the face on the upper part of the cylinder, short stubby arms and short stubby legs, no ears, no hair, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 40,
+ "height": 40
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 1203
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cell/base.png b/pixellab_src/pl_cell/base.png
new file mode 100644
index 0000000..8117fa5
Binary files /dev/null and b/pixellab_src/pl_cell/base.png differ
diff --git a/pixellab_src/pl_cell/base_raw.png b/pixellab_src/pl_cell/base_raw.png
new file mode 100644
index 0000000..2751bcf
Binary files /dev/null and b/pixellab_src/pl_cell/base_raw.png differ
diff --git a/pixellab_src/pl_cell_b/base.json b/pixellab_src/pl_cell_b/base.json
new file mode 100644
index 0000000..2733cee
--- /dev/null
+++ b/pixellab_src/pl_cell_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a short squat wide cylinder like a button cell battery with a thick crimson ring band around its middle, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cell_b/base.png b/pixellab_src/pl_cell_b/base.png
new file mode 100644
index 0000000..f1b655e
Binary files /dev/null and b/pixellab_src/pl_cell_b/base.png differ
diff --git a/pixellab_src/pl_cell_c/base.json b/pixellab_src/pl_cell_c/base.json
new file mode 100644
index 0000000..6a4dc6b
--- /dev/null
+++ b/pixellab_src/pl_cell_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it much wider and squarer like a big boxy 9-volt battery, twice as wide, with two crimson snap terminals on top and crimson stripes on its sides, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 7,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cell_c/base.png b/pixellab_src/pl_cell_c/base.png
new file mode 100644
index 0000000..cc7faf6
Binary files /dev/null and b/pixellab_src/pl_cell_c/base.png differ
diff --git a/pixellab_src/pl_cell_d/base.json b/pixellab_src/pl_cell_d/base.json
new file mode 100644
index 0000000..b9f60c5
--- /dev/null
+++ b/pixellab_src/pl_cell_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the battery body dented and scuffed with crimson stripes wrapped around it and a tired droopy face, keep the same size and pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_cell_d/base.png b/pixellab_src/pl_cell_d/base.png
new file mode 100644
index 0000000..cf1bf85
Binary files /dev/null and b/pixellab_src/pl_cell_d/base.png differ
diff --git a/pixellab_src/pl_centipede/_probe_back.json b/pixellab_src/pl_centipede/_probe_back.json
new file mode 100644
index 0000000..029f597
--- /dev/null
+++ b/pixellab_src/pl_centipede/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 24835,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_centipede/_probe_back.png b/pixellab_src/pl_centipede/_probe_back.png
new file mode 100644
index 0000000..2cca52e
Binary files /dev/null and b/pixellab_src/pl_centipede/_probe_back.png differ
diff --git a/pixellab_src/pl_centipede/_probe_head_top.json b/pixellab_src/pl_centipede/_probe_head_top.json
new file mode 100644
index 0000000..eb2da27
--- /dev/null
+++ b/pixellab_src/pl_centipede/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 69670,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_centipede/_probe_head_top.png b/pixellab_src/pl_centipede/_probe_head_top.png
new file mode 100644
index 0000000..ed7a7b1
Binary files /dev/null and b/pixellab_src/pl_centipede/_probe_head_top.png differ
diff --git a/pixellab_src/pl_centipede/_probe_tail.json b/pixellab_src/pl_centipede/_probe_tail.json
new file mode 100644
index 0000000..c231e0a
--- /dev/null
+++ b/pixellab_src/pl_centipede/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 7625,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_centipede/_probe_tail.png b/pixellab_src/pl_centipede/_probe_tail.png
new file mode 100644
index 0000000..f309cf5
Binary files /dev/null and b/pixellab_src/pl_centipede/_probe_tail.png differ
diff --git a/pixellab_src/pl_centipede/anchors.json b/pixellab_src/pl_centipede/anchors.json
new file mode 100644
index 0000000..4d5534e
--- /dev/null
+++ b/pixellab_src/pl_centipede/anchors.json
@@ -0,0 +1 @@
+{"pivot": [31, 60], "aura": [30, 45], "head_top": [27, 28], "back": [31, 34], "tail": [47, 55]}
diff --git a/pixellab_src/pl_centipede/base.json b/pixellab_src/pl_centipede/base.json
new file mode 100644
index 0000000..f52776b
--- /dev/null
+++ b/pixellab_src/pl_centipede/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "chibi centipede creature with its front half reared up and its segmented body curving behind it on the ground, many tiny pointed legs along every segment, two curved crimson mandibles, short feelers, round head with big eyes, crimson segment edges, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 1107
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_centipede/base.png b/pixellab_src/pl_centipede/base.png
new file mode 100644
index 0000000..39fecc5
Binary files /dev/null and b/pixellab_src/pl_centipede/base.png differ
diff --git a/pixellab_src/pl_centipede/base_raw.png b/pixellab_src/pl_centipede/base_raw.png
new file mode 100644
index 0000000..2a0b779
Binary files /dev/null and b/pixellab_src/pl_centipede/base_raw.png differ
diff --git a/pixellab_src/pl_centipede_b/base.json b/pixellab_src/pl_centipede_b/base.json
new file mode 100644
index 0000000..037e75a
--- /dev/null
+++ b/pixellab_src/pl_centipede_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its body segments much fatter and rounder like beads, with a big blunt head and crimson spots on each segment, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_centipede_b/base.png b/pixellab_src/pl_centipede_b/base.png
new file mode 100644
index 0000000..0629e28
Binary files /dev/null and b/pixellab_src/pl_centipede_b/base.png differ
diff --git a/pixellab_src/pl_centipede_c/base.json b/pixellab_src/pl_centipede_c/base.json
new file mode 100644
index 0000000..329133b
--- /dev/null
+++ b/pixellab_src/pl_centipede_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its whole body covered in shaggy fuzzy hair like a caterpillar, with long thin hairy legs sticking out to the sides, big round shiny eyes and a crimson stripe down its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 3,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_centipede_c/base.png b/pixellab_src/pl_centipede_c/base.png
new file mode 100644
index 0000000..144af51
Binary files /dev/null and b/pixellab_src/pl_centipede_c/base.png differ
diff --git a/pixellab_src/pl_centipede_d/base.json b/pixellab_src/pl_centipede_d/base.json
new file mode 100644
index 0000000..141cfa7
--- /dev/null
+++ b/pixellab_src/pl_centipede_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its body twice as thick and chunky with bold crimson bands on every segment, keep its reared-up S-curve, many tiny legs and curved mandibles, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 11,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_centipede_d/base.png b/pixellab_src/pl_centipede_d/base.png
new file mode 100644
index 0000000..5eb9189
Binary files /dev/null and b/pixellab_src/pl_centipede_d/base.png differ
diff --git a/pixellab_src/pl_chain/_probe_back.json b/pixellab_src/pl_chain/_probe_back.json
new file mode 100644
index 0000000..3ec88fb
--- /dev/null
+++ b/pixellab_src/pl_chain/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 30506,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chain/_probe_back.png b/pixellab_src/pl_chain/_probe_back.png
new file mode 100644
index 0000000..be34073
Binary files /dev/null and b/pixellab_src/pl_chain/_probe_back.png differ
diff --git a/pixellab_src/pl_chain/_probe_head_top.json b/pixellab_src/pl_chain/_probe_head_top.json
new file mode 100644
index 0000000..d0eda1d
--- /dev/null
+++ b/pixellab_src/pl_chain/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 45120,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chain/_probe_head_top.png b/pixellab_src/pl_chain/_probe_head_top.png
new file mode 100644
index 0000000..4a9bfc6
Binary files /dev/null and b/pixellab_src/pl_chain/_probe_head_top.png differ
diff --git a/pixellab_src/pl_chain/_probe_tail.json b/pixellab_src/pl_chain/_probe_tail.json
new file mode 100644
index 0000000..53365b2
--- /dev/null
+++ b/pixellab_src/pl_chain/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 48512,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chain/_probe_tail.png b/pixellab_src/pl_chain/_probe_tail.png
new file mode 100644
index 0000000..e85405a
Binary files /dev/null and b/pixellab_src/pl_chain/_probe_tail.png differ
diff --git a/pixellab_src/pl_chain/anchors.json b/pixellab_src/pl_chain/anchors.json
new file mode 100644
index 0000000..2fd4833
--- /dev/null
+++ b/pixellab_src/pl_chain/anchors.json
@@ -0,0 +1 @@
+{"pivot": [30, 60], "aura": [30, 44], "head_top": [32, 27], "back": [27, 36], "tail": [42, 48]}
diff --git a/pixellab_src/pl_chain/base.json b/pixellab_src/pl_chain/base.json
new file mode 100644
index 0000000..54dc280
--- /dev/null
+++ b/pixellab_src/pl_chain/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "haunted serpent made of a chain of big teal metal links coiled up on the ground and rising up, its head is a big rounded padlock with a crimson keyhole and two glowing eyes above it, the shackle loop on top of the padlock, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south",
+ "seed": 2110
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chain/base.png b/pixellab_src/pl_chain/base.png
new file mode 100644
index 0000000..f1e17d1
Binary files /dev/null and b/pixellab_src/pl_chain/base.png differ
diff --git a/pixellab_src/pl_chain/base_raw.png b/pixellab_src/pl_chain/base_raw.png
new file mode 100644
index 0000000..498d4f2
Binary files /dev/null and b/pixellab_src/pl_chain/base_raw.png differ
diff --git a/pixellab_src/pl_chain_b/base.json b/pixellab_src/pl_chain_b/base.json
new file mode 100644
index 0000000..de3e629
--- /dev/null
+++ b/pixellab_src/pl_chain_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the chain links much chunkier and thicker and the padlock head heart-shaped with crimson rust spots, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chain_b/base.png b/pixellab_src/pl_chain_b/base.png
new file mode 100644
index 0000000..56e991b
Binary files /dev/null and b/pixellab_src/pl_chain_b/base.png differ
diff --git a/pixellab_src/pl_chain_c/base.json b/pixellab_src/pl_chain_c/base.json
new file mode 100644
index 0000000..722c65c
--- /dev/null
+++ b/pixellab_src/pl_chain_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the chain links thinner and longer and the padlock head square with a crimson combination dial on its front, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chain_c/base.png b/pixellab_src/pl_chain_c/base.png
new file mode 100644
index 0000000..d83a963
Binary files /dev/null and b/pixellab_src/pl_chain_c/base.png differ
diff --git a/pixellab_src/pl_chain_d/base.json b/pixellab_src/pl_chain_d/base.json
new file mode 100644
index 0000000..8ca0d4a
--- /dev/null
+++ b/pixellab_src/pl_chain_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the chain links rusty and partly broken, with an old skeleton key stuck in the padlock head and crimson rust stains, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chain_d/base.png b/pixellab_src/pl_chain_d/base.png
new file mode 100644
index 0000000..fdfe5ed
Binary files /dev/null and b/pixellab_src/pl_chain_d/base.png differ
diff --git a/pixellab_src/pl_chameleon/_probe_back.json b/pixellab_src/pl_chameleon/_probe_back.json
new file mode 100644
index 0000000..2e4ea91
--- /dev/null
+++ b/pixellab_src/pl_chameleon/_probe_back.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold feathered wings spread from its back, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 8619,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chameleon/_probe_back.png b/pixellab_src/pl_chameleon/_probe_back.png
new file mode 100644
index 0000000..39a912d
Binary files /dev/null and b/pixellab_src/pl_chameleon/_probe_back.png differ
diff --git a/pixellab_src/pl_chameleon/_probe_head_top.json b/pixellab_src/pl_chameleon/_probe_head_top.json
new file mode 100644
index 0000000..23b8a0a
--- /dev/null
+++ b/pixellab_src/pl_chameleon/_probe_head_top.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a pair of small gold horns on top of its head, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 15426,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chameleon/_probe_head_top.png b/pixellab_src/pl_chameleon/_probe_head_top.png
new file mode 100644
index 0000000..8b09372
Binary files /dev/null and b/pixellab_src/pl_chameleon/_probe_head_top.png differ
diff --git a/pixellab_src/pl_chameleon/_probe_tail.json b/pixellab_src/pl_chameleon/_probe_tail.json
new file mode 100644
index 0000000..3c46ba4
--- /dev/null
+++ b/pixellab_src/pl_chameleon/_probe_tail.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "add a long thick gold tail coming out from its body on the right side, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 92641,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chameleon/_probe_tail.png b/pixellab_src/pl_chameleon/_probe_tail.png
new file mode 100644
index 0000000..104098f
Binary files /dev/null and b/pixellab_src/pl_chameleon/_probe_tail.png differ
diff --git a/pixellab_src/pl_chameleon/anchors.json b/pixellab_src/pl_chameleon/anchors.json
new file mode 100644
index 0000000..803af87
--- /dev/null
+++ b/pixellab_src/pl_chameleon/anchors.json
@@ -0,0 +1 @@
+{"pivot": [38, 60], "aura": [32, 41], "head_top": [30, 24], "back": [38, 28], "tail": [48, 45]}
diff --git a/pixellab_src/pl_chameleon/base.json b/pixellab_src/pl_chameleon/base.json
new file mode 100644
index 0000000..ac82750
--- /dev/null
+++ b/pixellab_src/pl_chameleon/base.json
@@ -0,0 +1,20 @@
+{
+ "endpoint": "create-image-pixen",
+ "request": {
+ "description": "chameleon creature standing on four thin legs with pincer-like feet, a small rounded helmet-shaped casque on its head, cone-shaped turret eyes with tiny pupils looking in different directions, a wide grumpy mouth, a bumpy ridge along its back, crimson spots along its sides, no tail, original cute monster creature design, chibi proportions, teal body with darker teal shading, small crimson details, big expressive eyes, full body, centered, retro handheld game sprite",
+ "image_size": {
+ "width": 44,
+ "height": 44
+ },
+ "no_background": true,
+ "outline": "single color black outline",
+ "detail": "medium detail",
+ "view": "side",
+ "direction": "south-west",
+ "seed": 2212
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chameleon/base.png b/pixellab_src/pl_chameleon/base.png
new file mode 100644
index 0000000..a8e42d0
Binary files /dev/null and b/pixellab_src/pl_chameleon/base.png differ
diff --git a/pixellab_src/pl_chameleon/base_raw.png b/pixellab_src/pl_chameleon/base_raw.png
new file mode 100644
index 0000000..739a38f
Binary files /dev/null and b/pixellab_src/pl_chameleon/base_raw.png differ
diff --git a/pixellab_src/pl_chameleon_b/base.json b/pixellab_src/pl_chameleon_b/base.json
new file mode 100644
index 0000000..41661a9
--- /dev/null
+++ b/pixellab_src/pl_chameleon_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make its body chubbier and rounder with a fat belly and crimson stripes, keep it standing on all four legs in the same pose, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 13,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chameleon_b/base.png b/pixellab_src/pl_chameleon_b/base.png
new file mode 100644
index 0000000..71972a7
Binary files /dev/null and b/pixellab_src/pl_chameleon_b/base.png differ
diff --git a/pixellab_src/pl_chameleon_c/base.json b/pixellab_src/pl_chameleon_c/base.json
new file mode 100644
index 0000000..7219f96
--- /dev/null
+++ b/pixellab_src/pl_chameleon_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it slimmer with longer thin legs, still standing on all four legs, a flatter head and crimson polka dots, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 7,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chameleon_c/base.png b/pixellab_src/pl_chameleon_c/base.png
new file mode 100644
index 0000000..d855dbd
Binary files /dev/null and b/pixellab_src/pl_chameleon_c/base.png differ
diff --git a/pixellab_src/pl_chameleon_d/base.json b/pixellab_src/pl_chameleon_d/base.json
new file mode 100644
index 0000000..ad7a6fd
--- /dev/null
+++ b/pixellab_src/pl_chameleon_d/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make it a young chibi version with a huge round head, enormous shiny eyes and short stubby limbs, keep its chameleon face and turret eyes and teal skin, no human features, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chameleon_d/base.png b/pixellab_src/pl_chameleon_d/base.png
new file mode 100644
index 0000000..ca152a7
Binary files /dev/null and b/pixellab_src/pl_chameleon_d/base.png differ
diff --git a/pixellab_src/pl_chick/anchors.json b/pixellab_src/pl_chick/anchors.json
new file mode 100644
index 0000000..948e953
--- /dev/null
+++ b/pixellab_src/pl_chick/anchors.json
@@ -0,0 +1 @@
+{"pivot": [32, 60], "aura": [31, 39], "head_top": [29, 26], "back": [33, 28], "tail": [46, 40]}
diff --git a/pixellab_src/pl_chick_b/base.json b/pixellab_src/pl_chick_b/base.json
new file mode 100644
index 0000000..0ab6d21
--- /dev/null
+++ b/pixellab_src/pl_chick_b/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "",
+ "description": "make the body much bigger and fluffier with shorter thicker legs and crimson spots, keep everything else exactly the same",
+ "width": 64,
+ "height": 64,
+ "seed": 1,
+ "no_background": true
+ },
+ "usage": {
+ "type": "generations",
+ "generations": 1.0
+ }
+}
diff --git a/pixellab_src/pl_chick_b/base.png b/pixellab_src/pl_chick_b/base.png
new file mode 100644
index 0000000..5c28d05
Binary files /dev/null and b/pixellab_src/pl_chick_b/base.png differ
diff --git a/pixellab_src/pl_chick_c/base.json b/pixellab_src/pl_chick_c/base.json
new file mode 100644
index 0000000..4f0ef10
--- /dev/null
+++ b/pixellab_src/pl_chick_c/base.json
@@ -0,0 +1,15 @@
+{
+ "endpoint": "edit-image-pixen",
+ "request": {
+ "image": "