English | Português (BR) | 한국어 | 日本語 | 简体中文
Animated pixel-art sprites from procedural 3D models, made to be driven by coding AIs.
A character is a small YAML file: a skeleton, smooth 3D shapes, materials and animations. SpriteKiln renders it into pixel art in 8 directions (top-down 3/4) or in profile (side view), with exact frame timing, gameplay events, attachment points, a normal map for dynamic light and an emissive layer, ready for Godot, Unity, MonoGame or any engine that reads Aseprite sheets.
You do not have to write the YAML. Your coding assistant (Claude Code, Codex, Gemini, Copilot, Cursor) does, from a description or a splash art: it edits the spec, renders, looks at the images and fixes what it sees. You direct.
- Consistent by construction. One camera, one light and one palette for every asset, in every direction and frame. No drift between the north-east walk and the south-west attack.
- Cheap to change. "Make the hat bigger" or "slow down the windup" is a one-line edit, not a redraw of 300 frames.
- Game-ready. Per-frame durations, events (
hit,step_l,windup) on the right frame, sockets (muzzles, hands, impact points), the pivot on the ground for y-sorting, normal and emissive maps. - Made for AIs. One set of instructions for every assistant, an MCP server whose tools return images,
a JSON Schema for the spec, errors with
file:line:column, and an art-direction review in numbers for assistants that cannot see. - Pure Python, any OS. numpy, Pillow and PyYAML; no GPU, no Blender. Tested on Windows, macOS and Linux.
Python 3.10 or newer. Install the spritekiln command with pipx, which keeps it
isolated and on your PATH:
Windows (PowerShell; no Python yet? winget install Python.Python.3.13, then open a new terminal)
py -m pip install --user pipx
py -m pipx ensurepath
py -m pipx install "spritekiln[mcp]"macOS (Terminal, with Homebrew)
brew install pipx
pipx ensurepath
pipx install "spritekiln[mcp]"Linux (Debian/Ubuntu shown; Fedora: sudo dnf install pipx, Arch: sudo pacman -S python-pipx)
sudo apt install pipx
pipx ensurepath
pipx install "spritekiln[mcp]"Then open a new terminal and check with spritekiln --version. [mcp] adds the tools for AI assistants;
pipx install spritekiln is enough for the command line alone. uv, a virtual environment, upgrading and
troubleshooting: Install SpriteKiln.
Upgrading: spritekiln update installs the new version the same way (pipx, uv or a virtual
environment) and refreshes the AI instructions of the game folder you run it in. Version 0.1.0 does not have
the command yet: run pipx upgrade spritekiln (or uv tool upgrade spritekiln) once, then
spritekiln update in your game folder.
The commands are the same on every system.
Open a terminal in your game's folder, or in an empty folder if you only want sprites, and tell SpriteKiln which engine the sprites are for and which AI assistant will make them:
spritekiln init --engine godot --ai claude
--engine |
For | Exports go to |
|---|---|---|
godot |
Godot 4 | assets/spritekiln/, with SpriteFrames and a ready scene |
unity |
Unity 2022.3+ | Assets/SpriteKiln/ |
monogame |
MonoGame | Content/sprites/ |
generic |
any other engine, or no game yet | sprites/: PNG atlas and Aseprite-compatible JSON |
--ai |
Assistant |
|---|---|
claude |
Claude Code |
codex |
Codex |
gemini |
Gemini CLI |
copilot |
GitHub Copilot |
cursor |
Cursor |
generic |
any other agent that reads AGENTS.md |
Name several assistants with commas: --ai claude,cursor. init writes spritekiln.toml (specs go to
art/specs/, exports to the folder above), the instructions your assistant reads before it starts, and the
config of the MCP server through which it calls SpriteKiln. Details:
Use SpriteKiln with your AI.
Open the folder in your assistant and describe the character:
Make a hooded goblin scout with a short sword. Start from the template, check all 8 directions, then render idle, walk and attack and export them.
The first time, before it makes anything, the assistant interviews you about the art style: top-down or
side view, how many pixels tall a character is on screen, directions, colours, outline and shading,
proportions, the feel of the animation and your references. The answers go to spritekiln.toml
(spritekiln style shows them); every later sprite follows them, and they change only when you ask ("from
now on, no outlines").
Then it writes the spec, renders, looks at the images and fixes what it sees. You review the GIFs in
art/specs/characters/<name>/out/<name>/preview/ and ask for changes ("bigger hat", "faster swing"). Have a
splash art? Hand it over: From your splash art, with an AI.
The same commands your assistant runs:
spritekiln style set --height 48 --outline selective # the art style, once (all answers: -h)
spritekiln new knight # art/specs/characters/knight/knight.yaml
spritekiln pose art/specs/characters/knight/knight.yaml --dirs all # one pose in 8 directions, ~1 s each
spritekiln render art/specs/characters/knight/knight.yaml --export # all animations, exported to the engine
Edit the YAML between pose runs: Your first character in 10 minutes
walks through it.
spec.yaml ──► skeleton + IK ──► SDF shapes ──► raymarched render ──► pixelize ──► atlas + JSON
(bones, (expressions per (spheres, (colour, normals, (palette ramps, + normal map
shapes, frame: cycles, capsules, depth, materials; outlines, clean + emissive map
materials, keys, events) boxes, cones, 3x supersampled, single pixels) + GIFs, QA
animations) smooth unions) fixed world light) -> your engine
The light is fixed in the world and the model turns, so shading stays coherent across directions. Every render writes a QA report (clipping, palette, silhouette stability) and contact sheets to review.
- Art style: before the first asset, the assistant asks about view, size on screen, directions, colours, outline, shading, proportions and animation; the project keeps the answers and every asset follows them.
- Modeling: bones with expressions (
"0.045*sin(p)"), 2-bone IK, smooth SDF primitives, mirrored_L/_Rparts, materials with palette ramps, emissive and glow, two-sided membranes, conditional parts. - Animation: cycles from expressions or keyframes with per-frame timing, tweens and easing, smears,
per-direction cheats, events, timing targets checked by
validate(e.g. "impact at 300 ms"). - Views: top-down 3/4 in 8 (or 4, or 1) directions, or a side view for platformers (
view: side, with a template that has run, jump, rise, fall and land);mirror: truerenders only the right-facing directions (the engine flips the rest) for symmetric designs. - From a splash art:
ref prepcuts the character out and extracts its palette;ref comparescores the silhouette against the model (pitch-corrected IoU) and says what to change. - Review:
spritekiln reviewmeasures value range, contrast, pixels per material and legibility, and previews the sprite over your game's floor (--bg) under its light (--tint). - Output: atlas, normal and emissive maps, Aseprite-compatible JSON (format), sockets per frame, GIFs and contact sheets.
| Engine | What you get | Guide |
|---|---|---|
| Godot 4 | KilnSprite2D node, SpriteFrames and a ready scene; an editor plugin builds them from a dropped JSON |
godot.md · example |
| Unity 2022.3+ | UPM package: .kiln importer (sprites, normal map, AnimationClips) and KilnAnimator |
unity.md |
| MonoGame | KilnSprite.cs runtime and the KilnLit.fx normal-mapped light shader |
monogame.md · example |
| Anything else | Aseprite-compatible JSON: Phaser, LÖVE, Defold, GameMaker... | generic.md |
All runtimes play the same way: exact durations, events on the frame they belong to, sockets, the direction nearest to a velocity, mirrored directions.
| Assistant | --ai |
Instructions | MCP tools |
|---|---|---|---|
| Claude Code | claude |
CLAUDE.md, skills, and modeler / animator / art-director agents |
.mcp.json |
| Codex | codex |
AGENTS.md |
~/.codex/config.toml (added by hand) |
| Gemini CLI | gemini |
GEMINI.md |
.gemini/settings.json |
| GitHub Copilot | copilot |
.github/copilot-instructions.md |
.vscode/mcp.json |
| Cursor | cursor |
.cursor/rules/spritekiln.mdc |
.cursor/mcp.json |
| Any other agent | generic |
AGENTS.md |
spritekiln init --ai claude,codex,... writes them from one source (docs/agent/). The
recipe for a new character from a splash art: a modeler builds the shape, an art director reviews it
against the art, the modeler fixes, an animator animates, the director reviews again
(recipe.md).
The Templar and the Huntress were made with SpriteKiln for the game Hunt Tower, from their splash arts,
by Claude Code following the recipe above. Their specs are in specs/characters/; more images, animations
and in-game captures are in showcase/.
- Install SpriteKiln (Windows, macOS, Linux; pipx, uv or a virtual environment)
- Your first character in 10 minutes
- From your splash art, with an AI
- Animations and events
- A platformer character (side view)
- Use SpriteKiln with your AI (instructions files and MCP tools)
- Spec reference · Output format · Roadmap
- Contributing · Changelog · Translations: Português (BR), 한국어, 日本語, 简体中文
Code, docs and integrations: MIT. Example assets (the gargoyle, the hunter, Wren, the crates, gas lamp
and training dummy props, the templates, the gothic and props palettes, the examples' sprites):
CC0 1.0. Showcase assets (Templar and Huntress from Hunt Tower, with the Huntress's
mine: specs, splash arts, palettes, renders and game captures): © 2026 Lucas Ramos / PlayRPG, all rights
reserved, included for demonstration only (terms).
REUSE.toml maps every path to its license.



