Apply advanced pixel art techniques including dithering, palette optimization, shading, antialiasing, and color theory. Use when the user mentions "dithering", "dither", "Bayer", "Floyd-Steinberg", "palette", "colors", "reduce colors", "optimize palette", "color limit", "shading", "shadows", "highlights", "lighting", "light source", "antialiasing", "smooth", "smoothing", "anti-alias", "AA", "color ramp", "gradient", "hue shifting", "saturation", "value", "contrast", or wants to "refine", "polish", "improve", "enhance", "make better", "add depth", "add dimension" to existing pixel art. Trigger on retro palette names (NES, Game Boy, C64, PICO-8), texture terms ("metal", "fabric", "stone", "wood"), and visual quality terms ("professional", "clean", "smooth", "vibrant").
This Skill provides advanced pixel art techniques for refining and polishing sprites. It handles dithering patterns, palette optimization, color theory, shading techniques, and antialiasing for professional-quality pixel art.
Use this Skill when the user:
Trigger Keywords: dithering, palette, shading, antialiasing, smooth, gradient, color ramp, polish, refine, color theory, quantize
Dithering creates the illusion of additional colors by mixing pixels of available colors in patterns.
When to Use Dithering:
Dithering Algorithms:
Ordered Dithering (Bayer Matrix):
Error Diffusion (Floyd-Steinberg):
Common Dithering Patterns:
Color Quantization:
Use mcp__aseprite__quantize_palette to reduce sprite colors intelligently:
Palette Optimization Workflow:
Common Palette Sizes:
Palette Theory:
Types of Shading:
Flat Shading (No Shading):
Cell Shading (Hard Shading):
Soft Shading (Dithered Shading):
Pixel Clusters:
Shading Workflow:
Common Shading Mistakes:
Purpose: Smooth jagged edges and diagonal lines by adding intermediate colors.
When to Use Antialiasing:
When NOT to Use Antialiasing:
Manual Antialiasing Technique:
Automated Antialiasing:
HSV/HSB Model:
Creating Color Ramps:
Hue Shifting:
Contrast:
Color Harmony:
Workflow 1: Palette Reduction with Dithering
User Request: "Reduce this sprite to 16 colors with dithering"
Approach:
mcp__aseprite__quantize_palette with:
Workflow 2: Adding Shading to Flat Sprite
User Request: "Add shading to this sprite with light from top-left"
Option A - Automatic Shading (Quick):
mcp__aseprite__apply_auto_shading with:
Option B - Manual Shading (Precise):
Workflow 3: Smoothing Jagged Edges
User Request: "Smooth out the edges on this character"
Approach:
Workflow 4: Converting to Retro Palette (Full Palette Conversion)
User Request: "Convert this to NES palette"
Approach:
mcp__aseprite__quantize_palette with retro palette colorsIMPORTANT: Use quantize_palette, NOT set_palette. The set_palette tool only replaces the color table without remapping pixel data, which will produce incorrect colors in indexed mode.
Example:
quantize_palette(
sprite_path: "sprite.aseprite",
target_colors: 54, # NES full palette
algorithm: "median_cut",
convert_to_indexed: true,
dither: false # or true for Bayer dithering
)
2-Color Patterns:
Checkerboard (50% mix):
A B A B
B A B A
A B A B
B A B A
25% Pattern:
A A B A
A A A A
B A A A
A A A A
75% Pattern:
B B A B
B B B B
A B B B
B B B B
Bayer 2x2:
Threshold matrix:
0 2
3 1
If pixel value > threshold, use lighter color
Bayer 4x4:
0 8 2 10
12 4 14 6
3 11 1 9
15 7 13 5
Note: See dithering-patterns.md for comprehensive pattern library.
Quantization Parameters:
Palette Constraints:
Performance:
Pattern: Quick Polish For "make this look better" requests:
Pattern: Retro Conversion For "make this look retro" requests:
Pattern: Smooth Gradient For "smooth out the colors" requests:
Quantization fails:
Dithering issues:
Palette conflicts:
You've successfully used this Skill when: