# Pit Imp - generated pixel sprite (test for bigger sprites) Generated on 2026-11-07 with fal.ai, as a test whether creature sprites bigger than the current 10x10 can come from an image model. The description follows the game's imp (`EK::Worker`, `sprite_rows` in `src/gfx.rs`): orange skin, black outline, yellow eyes, dark-red tunic, pickaxe. ## Step 1: sprite sheet - Model: `fal-ai/nano-banana-pro` - Settings: `aspect_ratio: 21:9`, `resolution: 2K`, `num_images: 2`, `output_format: png` - Results: `raw-1.png` (used: the lower row, compact chibi proportions), `raw-2.png` (more detailed, too fine for small sprites) Prompt: ```text Pixel art sprite sheet for a dark-fantasy dungeon strategy game: the "Pit Imp", a small goblin-like worker demon. One single character shown five times in one horizontal row, evenly spaced, same size, same pose (standing, idle), each view in its own equal cell: 1. front view, facing the viewer 2. front three-quarter view, turned to the right 3. side view, facing right 4. back three-quarter view, turned away to the right 5. back view The imp: short and stocky, big head, oversized pointed ears and two small black horns, orange skin, glowing yellow eyes, a wide mischievous grin with tiny fangs, a ragged dark-red tunic with a rope belt, bare feet with claws, carrying a small iron pickaxe with a wooden handle over its right shoulder. Thin tail. Style: crisp retro pixel art at about 32x32 pixels per character, scaled up with hard square pixels, a one-pixel near-black outline around the figure, limited palette of about 12 colours, flat shading with one highlight and one shadow tone, no anti-aliasing, no gradients, no blur. Flat pure magenta background (#FF00FF) everywhere, no ground, no shadows, no text, no labels, no grid lines. ``` ## Step 2: pixel grid and palette `tools/pixelize_sprite.py` (needs Pillow) removes the magenta background, cuts out the five views, samples them down to a fixed grid (one scale for all views, standing on the bottom) and reduces them to one shared palette: ```bash python3 tools/pixelize_sprite.py raw-1.png imp --views 5 --size 32 --colors 16 --crop 0,0.27,1,0.72 python3 tools/pixelize_sprite.py raw-1.png imp --views 5 --size 24 --colors 16 --crop 0,0.27,1,0.72 ``` Results: `imp-32.png` / `imp-24.png` (views front, front 3/4, side, back 3/4, back; transparent) and the 8x previews `imp-32-preview.png` / `imp-24-preview.png`. ## Findings - 32x32 keeps the face (eyes, grin) and the silhouette readable; 24x24 already loses most of the face. - The pickaxe's iron mostly turns dark; small details would need a manual touch-up. - The sprites are not used by the game yet: the sprite atlas (`gen_sprites` in `src/gfx.rs`) only knows 10x10 sprites in 12x12 cells.