CATBLASTER · work in progress

Meatsuit Generator — Asset Drop

The layered part library, palette config, recipe data-contract, and the live generator source — everything to grab what you need. downloads on

⬇ Download the whole kit (.zip · 37 KB) assets + palettes + tint-roles + recipe schema + generator source + run README

Prefer individual files? Grab any part below, or: README.txt · RECIPE-SCHEMA.md · meatsuit_server.py · palettes.json · tint-roles.json · design note

Part library

14 parts across 1 house(s). Each meatsuit uses at most one part per slot; parts can mix across houses. Eyes carry a companion .iris.png tint mask (shown dimmed).

House: stal
torso · 2
torso-1.png
torso-1.png
64×64
download
torso-2.png
torso-2.png
64×64
download
head · 2
head-1.png
head-1.png
64×64
download
head-2.png
head-2.png
64×64
download
nose · 2
nose-1.png
nose-1.png
64×64
download
nose-2.png
nose-2.png
64×64
download
mouth · 2
mouth-1.png
mouth-1.png
64×64
download
mouth-2.png
mouth-2.png
64×64
download
eyes · 4
eyes-1.iris.png
eyes-1.iris.png · iris mask
64×64
download
eyes-1.png
eyes-1.png
64×64
download
eyes-2.iris.png
eyes-2.iris.png · iris mask
64×64
download
eyes-2.png
eyes-2.png
64×64
download
eyes-3.iris.png
eyes-3.iris.png · iris mask
64×64
download
eyes-3.png
eyes-3.png
64×64
download
eyes-4.iris.png
eyes-4.iris.png · iris mask
64×64
download
eyes-4.png
eyes-4.png
64×64
download
hair · 2
hair-1.png
hair-1.png
64×64
download
hair-2.png
hair-2.png
64×64
download

The recipe (data contract)

A save writes this JSON plus a flat 64×64 PNG and an 8× profile PNG. It's the seam between the generator and the game.

{
  "meatsuit": "stal-captain-jax",     // <house>-<slug(name)>, the stable id
  "name": "Captain Jax",
  "house": "stal",                    // primary house = the torso's house
  "layers": {                          // one entry per filled slot; parts may
    "torso": { "house": "stal", "file": "torso-1.png" },   //   mix across houses
    "head":  { "house": "stal", "file": "head-1.png" },
    "nose":  { "house": "stal", "file": "nose-1.png" },
    "mouth": { "house": "stal", "file": "mouth-1.png" },
    "eyes":  { "house": "stal", "file": "eyes-2.png" },
    "hair":  { "house": "stal", "file": "hair-1.png" }
  },
  "z_order": ["head","torso","nose","mouth","eyes","hair"],  // bottom -> top
  "skin_palette": "medium",           // palette id from palettes.json (or null)
  "hair_palette": null,
  "eyes_palette": null,
  "detail": 0,                         // despeckle/detail level
  "canvas": [64, 64],                  // every part composites onto this grid
  "created": "2026-07-07T00:00:00+00:00"
}

Run the live builder

python3 -m pip install --user Pillow
python3 meatsuit_server.py      # then open http://localhost:8790

The live app (server-side PIL compositing) is what lets you swap parts, upload new ones, and save meatsuits. This page is the static drop of its inputs; the running app produces the outputs. Full steps in README.txt.