Pixel Art Generation with PixelForge
Use PixelForge MCP tools to generate and process pixel art game assets.
Tools Overview
| Tool |
When to Use |
forge_sprite |
Single sprite — character, item, icon, UI element |
forge_animation |
Animation frames — walk cycle, idle, attack, effects |
forge_background |
Full game background/scene — no processing applied |
forge_thumbnail |
Game thumbnail/screenshot — uses reference sprites |
process_sprite |
Post-process existing PNG — crop, bg removal, split |
Background Removal — IMPORTANT
Always use background: "chromakey" for sprites and animations. This uses HSV-based green screen removal which is far more reliable than the old compositing equation approach.
chromakey — BEST — pure green #00FF00, HSV-based removal, clean edges, no artifacts
black / white — legacy compositing equation, can lose dark/light sprite pixels
- Other colors — fallback to compositing equation
Quick Start
Single Sprite
forge_sprite
description: "green slime enemy with horns and glowing eyes"
outputPath: "public/assets/games/rpg/slime.png"
style: "neon"
background: "chromakey"
Animation Frames (Reference Chain — Default)
forge_animation
description: "green slime enemy"
action: "bouncing up and down"
frames: 4
frameDescriptions: ["idle resting on ground", "compressing flat", "stretching upward", "at peak of bounce"]
outputPrefix: "public/assets/games/rpg/slime"
names: ["idle", "compress", "stretch", "peak"]
style: "neon"
background: "chromakey"
Reference chain mode (default): Generates frame 0 first, then uses it as a reference image for all subsequent frames. This ensures consistent proportions, colors, and style across all frames. Each frame is a separate API call.
To use the legacy sprite-sheet mode instead: useReferenceChain: false
Background
forge_background
description: "deep space with stars, subtle neon grid on horizon, nebula wisps cyan and purple"
outputPath: "public/assets/games/invaders/bg.png"
aspect: "3:4"
style: "neon"
Thumbnail (with style-matching references)
forge_thumbnail
description: "space shooter, cyan spaceship vs rows of colorful aliens, dark space"
outputPath: "public/assets/games/invaders/thumbnail.png"
references: ["public/assets/games/invaders/ship.png", "public/assets/games/invaders/alien.png"]
aspect: "4:3"
Animation Best Practices
- Always provide
frameDescriptions — explicit per-frame descriptions produce much better results than a generic action
- Use
chromakey background — prevents transparency artifacts
- Reference chain is default — generates consistent frames by using frame 0 as reference
- For inconsistent results, try
useReferenceChain: false with useTemplate: true — grid template mode as fallback
- Keep frame count reasonable — 3-4 frames per animation state is ideal
Style Presets
| Style |
Best For |
Look |
neon |
Arcade, space, cyberpunk |
Glowing, vibrant, dark outline |
retro |
Classic NES/arcade |
8-bit, limited palette, chunky |
gameboy |
Monochrome |
4-color green, dithered |
snes |
RPG, detailed |
16-bit, rich colors, detailed shading |
clean |
Generic/versatile |
Solid colors, dark outline |
Model Selection
| Alias |
Speed |
Quality |
Notes |
nano-banana |
Fast |
Good |
Default — best balance |
pro |
Medium |
Best |
Best quality, use for hero assets |
gemini-flash |
Fast |
Good |
Good for quick iteration |
Guidelines
- Always use
chromakey background for sprites and animations
- forge_sprite and forge_animation auto-process — output is always cropped, transparent, and ready to use
- forge_background outputs raw — no cropping, full size for game scenes
- Use references for thumbnails — pass actual game sprites so thumbnail matches the game's look
- After generating, verify with Read tool — Claude Code can display PNG files natively
- Phaser sprite sizing — generated images are large (~1000px), always use
setDisplaySize() in game code
1---2name: pixel-art-generation3description: Use when generating pixel art sprites, animations, backgrounds, thumbnails, or processing sprite sheets for games. Triggers on requests like "create a sprite", "generate pixel art", "make game assets", "split sprite sheet", "remove background from sprite".4---56# Pixel Art Generation with PixelForge78Use PixelForge MCP tools to generate and process pixel art game assets.910## Tools Overview1112| Tool | When to Use |13|------|-------------|14| `forge_sprite` | Single sprite — character, item, icon, UI element |15| `forge_animation` | Animation frames — walk cycle, idle, attack, effects |16| `forge_background` | Full game background/scene — no processing applied |17| `forge_thumbnail` | Game thumbnail/screenshot — uses reference sprites |18| `process_sprite` | Post-process existing PNG — crop, bg removal, split |1920## Background Removal — IMPORTANT2122**Always use `background: "chromakey"` for sprites and animations.** This uses HSV-based green screen removal which is far more reliable than the old compositing equation approach.2324- `chromakey` — **BEST** — pure green #00FF00, HSV-based removal, clean edges, no artifacts25- `black` / `white` — legacy compositing equation, can lose dark/light sprite pixels26- Other colors — fallback to compositing equation2728## Quick Start2930### Single Sprite31```32forge_sprite33 description: "green slime enemy with horns and glowing eyes"34 outputPath: "public/assets/games/rpg/slime.png"35 style: "neon"36 background: "chromakey"37```3839### Animation Frames (Reference Chain — Default)40```41forge_animation42 description: "green slime enemy"43 action: "bouncing up and down"44 frames: 445 frameDescriptions: ["idle resting on ground", "compressing flat", "stretching upward", "at peak of bounce"]46 outputPrefix: "public/assets/games/rpg/slime"47 names: ["idle", "compress", "stretch", "peak"]48 style: "neon"49 background: "chromakey"50```5152**Reference chain mode (default):** Generates frame 0 first, then uses it as a reference image for all subsequent frames. This ensures consistent proportions, colors, and style across all frames. Each frame is a separate API call.5354To use the legacy sprite-sheet mode instead: `useReferenceChain: false`5556### Background57```58forge_background59 description: "deep space with stars, subtle neon grid on horizon, nebula wisps cyan and purple"60 outputPath: "public/assets/games/invaders/bg.png"61 aspect: "3:4"62 style: "neon"63```6465### Thumbnail (with style-matching references)66```67forge_thumbnail68 description: "space shooter, cyan spaceship vs rows of colorful aliens, dark space"69 outputPath: "public/assets/games/invaders/thumbnail.png"70 references: ["public/assets/games/invaders/ship.png", "public/assets/games/invaders/alien.png"]71 aspect: "4:3"72```7374## Animation Best Practices75761. **Always provide `frameDescriptions`** — explicit per-frame descriptions produce much better results than a generic action772. **Use `chromakey` background** — prevents transparency artifacts783. **Reference chain is default** — generates consistent frames by using frame 0 as reference794. **For inconsistent results, try `useReferenceChain: false` with `useTemplate: true`** — grid template mode as fallback805. **Keep frame count reasonable** — 3-4 frames per animation state is ideal8182## Style Presets8384| Style | Best For | Look |85|-------|----------|------|86| `neon` | Arcade, space, cyberpunk | Glowing, vibrant, dark outline |87| `retro` | Classic NES/arcade | 8-bit, limited palette, chunky |88| `gameboy` | Monochrome | 4-color green, dithered |89| `snes` | RPG, detailed | 16-bit, rich colors, detailed shading |90| `clean` | Generic/versatile | Solid colors, dark outline |9192## Model Selection9394| Alias | Speed | Quality | Notes |95|-------|-------|---------|-------|96| `nano-banana` | Fast | Good | Default — best balance |97| `pro` | Medium | Best | Best quality, use for hero assets |98| `gemini-flash` | Fast | Good | Good for quick iteration |99100## Guidelines1011021. **Always use `chromakey` background** for sprites and animations1032. **forge_sprite and forge_animation auto-process** — output is always cropped, transparent, and ready to use1043. **forge_background outputs raw** — no cropping, full size for game scenes1054. **Use references for thumbnails** — pass actual game sprites so thumbnail matches the game's look1065. **After generating, verify with Read tool** — Claude Code can display PNG files natively1076. **Phaser sprite sizing** — generated images are large (~1000px), always use `setDisplaySize()` in game code