Pixel Art Agent Skill

An autonomous AI agent skill for generating, auditing, and exporting flawless 2D pixel art game assets — from 16×16 icons to 1024×1024 cinematic scenes.

730+Total Assets
88Animated GIFs
13CLI Tools
10Palettes
View on GitHub
16×16Sweetie-16

UC1: Micro Sandbox

Retro game items and micro VFX. Static coins, idle sparkles, and explosive particle effects.

Coin Static (2f, 4fps)
Sparkle Idle (4f, 6fps)
Explosion VFX (12f, 24fps)
Coin Spritesheet (4×)
VFX Spritesheet (4×)
# Audit → GIF → Atlas → Resize $ batch_audit.py --dir static/ --grid 16 --max-colors 16 $ gif_export.py --frames-dir vfx/ --fps 24 --output explosion_vfx.gif $ atlas_pack.py --frames-dir static/ --output coin_sheet.png --cols 2 $ sprite_resize.py --input coin_sheet.png --output coin_sheet_4x.png --scale 4
32×32DB328-Way

UC2: 8-Way Action Hero

Complete character with 7 actions × 8 directions = 56 animated GIFs. Draw 5 directions, auto-mirror 3 with sprite_mirror.py.

Walk Cycle — All 8 Directions

North
NE
East
SE
South
SW
West
NW

All 7 Actions — East Direction

Idle (4f)
Walk (6f)
Run (8f)
Jump (4f)
Attack (6f)
Hurt (3f)
Die (6f)
# Auto-mirror 3 directions from drawn 5 $ sprite_mirror.py --input-dir east/walk/ --output-dir west/walk/ --axis horizontal $ sprite_mirror.py --input-dir northeast/walk/ --output-dir northwest/walk/ --axis horizontal $ sprite_mirror.py --input-dir southeast/walk/ --output-dir southwest/walk/ --axis horizontal # Export all 56 GIFs $ gif_export.py --frames-dir east/run/ --fps 16 --output run_east.gif # Pack spritesheets (56 total) $ atlas_pack.py --frames-dir east/walk/ --output walk_east_sheet.png --cols 6
64×64Resurrect-644-Way

UC3: HD Tileset & Spellcaster

Procedural terrain tiles via noise_generator.py and dither.py, plus a 4-directional wizard with 5 combat actions.

Terrain Tiles (Procedural Noise + Dither)

Grass
Water
Stone
Sand
Lava
Sky Dither
Night Dither

Wizard Cast — 4 Directions

Down
Up
Left
Right

All 5 Actions — Down Direction

Idle (4f)
Walk (6f)
Attack (6f)
Cast (8f)
Hurt (3f)
# Procedural terrain generation $ noise_generator.py --width 64 --height 64 --scale 16 --octaves 2 --palette resurrect-64.json --output grass.png $ noise_generator.py --width 64 --height 64 --scale 8 --octaves 1 --palette resurrect-64.json --output water.png $ dither.py --width 64 --height 64 --color1 '#2c2137' --color2 '#8295a3' --matrix 4 --output sky_dither.png # Mirror wizard directions $ sprite_mirror.py --input-dir right/cast/ --output-dir left/cast/ --axis horizontal
128×128Endesga-322-Way

UC4: Side-Scrolling Boss Monster

Giant boss sprite with idle breathing, jump slam, attack shockwave, and dramatic death dissolve. Upscaled to 256×256 with outline.

Idle (4f, 6fps)
Jump (6f, 12fps)
Attack (6f, 14fps)
Die (8f, 8fps)

Mirrored Left + Upscaled & Outlined

Left (mirrored)
Attack Left
256×256 Outlined
# Mirror, resize, and outline $ sprite_mirror.py --input-dir right/idle/ --output-dir left/idle/ --axis horizontal $ sprite_resize.py --input boss.png --output boss_256.png --scale 2 $ outline_generator.py --input boss_256.png --output boss_outlined.png --color "#000000"
1024×1024Resurrect-64Cinematic

UC5: Cinematic Portal

Massive 1-million pixel animation. 8 frames at 24fps, validated with quality_audit.py — zero orphan pixels, zero semi-transparency.

Portal (8f, 24fps, 1024×1024)
# Quality audit on 1,048,576 pixels $ quality_audit.py --image portal_00.png --grid 8 --max-colors 128 # Result: PASS — 0 orphans, 0 semi-transparent, 65 colors $ gif_export.py --frames-dir frames/ --fps 24 --output portal_cinematic.gif $ atlas_pack.py --frames-dir frames/ --output portal_sheet.png --cols 4 # Sheet size: 4096×2048!
10 Palettespalette_remapexport_indexed

UC6: The Palette Multiverse

Same wizard sprite, automatically recolored to all 10 built-in game palettes using palette_remap.py + export_indexed.py.

Sweetie-16
PICO-8
GameBoy
DB32
Endesga-32
Resurrect-64
NES
SNES
CGA
Commodore 64
# Remap to every palette $ palette_remap.py --image wizard.png --palette palettes/pico-8.json --output wizard_pico-8.png $ export_indexed.py --input wizard_pico-8.png --output wizard_pico-8_indexed.png --max-colors 16 $ sprite_resize.py --input wizard_pico-8.png --output wizard_pico-8_4x.png --scale 4 # Extract palette from existing sprite $ palette_extract.py --image wizard.png --max-colors 16 --output wizard_extracted.json
13 Tools3 Templates7 References

UC7: Full Toolkit

Every script, template, and reference used in this showcase.

13 CLI Scripts

  • ✅ init_workspace.py — Project scaffolding
  • ✅ quality_audit.py — Single-file QA
  • ✅ batch_audit.py — Directory-wide QA
  • ✅ atlas_pack.py — Spritesheet packer
  • ✅ gif_export.py — Animated GIF export
  • ✅ sprite_mirror.py — Direction mirroring
  • ✅ sprite_resize.py — Nearest-neighbor resize
  • ✅ outline_generator.py — Outline addition
  • ✅ noise_generator.py — Procedural terrain
  • ✅ dither.py — Bayer dithering
  • ✅ palette_remap.py — Color remapping
  • ✅ palette_extract.py — Color extraction
  • ✅ export_indexed.py — Indexed PNG export

3 HTML Templates

  • 🖼️ sprite_sheet.html — Animation viewer
  • 🗺️ tilemap_preview.html — Tile painter
  • 🎨 palette_viewer.html — Color browser

7 Reference Guides

  • 📖 Sprite Conventions
  • 📖 Animation Principles
  • 📖 Tileset Rules
  • 📖 Isometric Guide
  • 📖 Color Theory
  • 📖 UI Elements
  • 📖 Particle Effects