Use this skill to GENERATE 2D assets for ZX games. **Triggers:** "pixel art", "sprite sheet", "tileset", "autotile", "9-slice", "UI sprite", "health bar", "dithering", "indexed palette" **Before generating:** Check `.studio/visual-style.md` for project style specs. **Load references when:** - Project structure, multiple sprites → `generator-patterns` skill - Palette quantization → `references/palette-algorithms.md` - Dithering patterns → `references/dithering-patterns.md` - UI elements (9-slice, buttons) → `references/ui-sprites.md` - Tilesets/autotiles → `references/tileset-generation.md` - Sprite sheets/organization → `references/sprite-organization.md` For 3D TEXTURES: use `procedural-textures` skill.
/plugin marketplace add nethercore-systems/nethercore-ai-plugins/plugin install zx-procgen@nethercore-ai-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/autotile-patterns.mdreferences/dithering-patterns.mdreferences/palette-algorithms.mdreferences/palettes.mdreferences/sprite-organization.mdreferences/tileset-generation.mdreferences/ui-sprites.mdGenerate 2D pixel art assets for ZX games: sprites, UI elements, tilesets, and sprite sheets.
draw_sprite(), draw_sprite_region()| Need | Algorithm | Reference |
|---|---|---|
| Reduce colors | Median cut | references/palette-algorithms.md |
| Smooth gradients | Floyd-Steinberg | references/dithering-patterns.md |
| Retro look | Bayer ordered dither | references/dithering-patterns.md |
| Scalable panels | 9-slice | references/ui-sprites.md |
| Auto-connecting terrain | Autotile (16/47/256) | references/tileset-generation.md |
| Character animations | Sprite sheets | references/sprite-organization.md |
| Type | Size | Notes |
|---|---|---|
| UI icon | 16x16, 32x32 | Power of 2 |
| Character | 32x32, 64x64 | 4-8 directions, 3-4 frames |
| Tile | 16x16, 32x32 | Must tile seamlessly |
| Health bar | 64x8, 128x12 | Segmented or continuous |
| System | Tiles | Complexity | Use Case |
|---|---|---|---|
| 2-corner | 16 | Simple | Basic terrain |
| 4-corner | 47 | Medium | Standard RPG |
| Blob | 256 | Complex | Smooth transitions |
from PIL import Image
def quantize_image(path, num_colors=16):
"""Quick palette extraction."""
img = Image.open(path).convert('RGB')
return img.quantize(colors=num_colors, method=Image.Quantize.MEDIANCUT)
For detailed algorithms, see references/palette-algorithms.md.
def apply_bayer_dither(img, palette):
"""Ordered dithering for retro look."""
bayer = [[0,8,2,10], [12,4,14,6], [3,11,1,9], [15,7,13,5]]
# Apply threshold matrix before quantizing
# See references/dithering-patterns.md for full implementation
# nether.toml
[[assets.textures]]
id = "ui-sprites"
path = "generated/textures/ui_elements.png"
filter = "nearest" # Critical for pixel art
// Drawing sprites
draw_sprite(sprites, x, y);
// Drawing from sprite sheet (e.g., button state 2)
draw_sprite_region(sprites, x, y, state * width, 0, width, height);
Author sprite sheets as texture specs under .studio/specs/textures/ and generate with:
python .studio/generate.py --only textures
references/palette-algorithms.md - Median cut, k-means, quantizationreferences/dithering-patterns.md - Bayer, Floyd-Steinberg, error diffusionreferences/ui-sprites.md - 9-slice, health bars, buttonsreferences/tileset-generation.md - Autotiles, variations, animated tilesreferences/sprite-organization.md - Sprite sheets, palette swapsprocedural-textures - Noise algorithms for sprite basessemantic-asset-language - Style tokens for sprite generationThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.