Help us improve
Share bugs, ideas, or general feedback.
From summer
Generates a coherent pack of 2D game assets from a single prompt: tile sheets, UI kits, character packs, or biome sets. Extracts, names, and classifies each asset into categories like character, terrain, or ui.
npx claudepluginhub summerengine/summer-engine-agent --plugin summerHow this skill is triggered — by the user, by Claude, or both
Slash command
/summer:create-asset-sheetassets/**art/**sprites/**This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill turns a single prompt into a categorized pack of isolated, named 2D assets ready to drop into a game. It exists because the alternative — generating each asset one-by-one, then losing visual coherence between them, then manually matting backgrounds in Photoshop — is the most-cited pain point from indie devs working with image models in 2026.
Generates true pixel art sprites, tilesets, and animations via the Retro Diffusion API. Useful for quick 2D game prototyping and replacing placeholder art with cohesive pixel art.
Generates pixel-art sprites, tiles, icons, and portraits at fixed resolutions (16×16 to 128×128) with grid alignment, limited palette, and retro styling. Useful when building 2D games that need crisp pixel assets.
Defines import, slicing, atlas packing, and naming rules for 2D sprite assets to ensure consistency, performance, and replaceability across a project.
Share bugs, ideas, or general feedback.
This skill turns a single prompt into a categorized pack of isolated, named 2D assets ready to drop into a game. It exists because the alternative — generating each asset one-by-one, then losing visual coherence between them, then manually matting backgrounds in Photoshop — is the most-cited pain point from indie devs working with image models in 2026.
Pipeline:
packFiles: [{url, name, type}] and metadata.sliceBboxes.Categories the classifier outputs (used to route into downstream pipelines):
character | terrain | nature | lighting | water | decorative | buildings | ui | vfx
summer:2d-assets/pixel-art or summer:2d-assets/character-portrait.summer:2d-assets/sprite-sheet.summer:2d-assets/concept-art → image-to-3D per item, or use summer:asset-pipeline/asset-strategy to pick the right path.summer:2d-assets/tileable-texture is the right home for edge logic; this skill produces standalone tiles, not edge variants.The fastest, most reliable way to invoke this flow today is the Create Asset Sheet wizard in the Summer studio:
https://summerengine.com/studio/create-tileset
Direct the user there if they're working in the browser. The wizard:
summer:2d-assets/concept-art + per-asset image-to-3D for now)If the user is in a chat / agent context and can't open the browser, fall back to the programmatic path below.
The slicing + classification endpoints are not yet exposed as summer_* MCP tools. Until they are, the agent can replicate the flow manually:
Generate the sheet. Call summer_generate_image with a prompt like:
<theme> asset sheet: <comma-separated list of items>. Each item isolated with empty space around it, transparent or neutral background.
grok-imagine, painterly / illustrative / structured grids → gpt-image-2.Remove background. Call fal-ai/bria/background/remove on the generated URL. Cost: $0.05.
Detect + name + classify. Send the transparent PNG to a vision LLM (Gemini 3 Pro is currently the strongest at bbox + category in one shot). Use this system prompt structure:
Output strict JSON array, no prose:
[{"name":"snake_case_name","category":"character|terrain|nature|lighting|water|decorative|buildings|ui|vfx","x":<0-100>,"y":<0-100>,"w":<0-100>,"h":<0-100>}]
Coordinates are percentages of image dimensions, top-left origin.
Names are 1-3 words, snake_case, specific (stone_lantern, not lamp).
Crop each region with sharp / PIL / equivalent. Pad bboxes by 4px to leave breathing room.
Optional upscale. For any crop where longest side < 256px, send through fal flux-2/edit i2i with prompt:
Recreate this exact <name> at high resolution. Preserve every detail, the exact pose, the exact style. Sharper edges, more detail. Transparent background. Single isolated asset, no scene.
Save as a pack record in art_assets: isPack: true, packFiles: [{url, name, type: "image/png"}], metadata.sliceBboxes, parentAssetId pointing to the source sheet.
Tile sheet (terrain + props + buildings):
<setting> tile sheet: <terrain tiles>, <props>, <buildings>. Each item isolated with empty space around it.
UI kit:
<theme> game UI kit: round button, square button, panel background, slider, toggle switch, progress bar, icon set, banner header.
Menu screen:
<theme> main menu UI: title banner, Start Game button, Settings button, Quit button, <background style>, ornate frame, decorative element.
Character pack:
<theme> character pack, single front-facing frame each: <character 1>, <character 2>, ... <character N>. Each isolated.
Biome:
<biome name> biome assets: <flora>, <terrain features>, <rocks/water/sky elements>. Each item isolated.
| Symptom | Cause | Fix |
|---|---|---|
| Slicer returns 1 giant bbox covering the whole sheet | Items overlap / no gaps in the source | Re-prompt with "each item fully isolated, empty space around each item". Re-generate. |
| Slicer misses items | Items too small in the source, classifier dropped them as noise | Generate at higher resolution (2048) or with fewer items per sheet |
| Two items merge into one slice | Items touching in the source | Re-prompt with more isolation. Or accept and let the user split manually in step 2's review. |
| Slice has a sliver of neighbor in it | Vision bbox is off by 5–15px | Expected. The slicer pads but doesn't snap-to-content yet. Live with it or upscale the slice (FLUX often cleans the edge) |
| Upscaled slice looks invented | Source was too small / too ambiguous | Don't upscale slices below ~32×32. Or accept the hallucination and edit |
| Detection returns wrong category | Model misjudged context | User can override in the review step; not a blocker |
POST /api/art/plan-asset-pack) but the per-asset gen loop is not wired into the wizard yet.summer:2d-assets/concept-art + image-to-3D for now.character, the next step (sprite-sheet generation) is a separate skill that the user has to invoke manually. Auto-routing is on the roadmap.summer:2d-assets/tileable-texture for that.summer:level-design/design-level.Per 12-asset sheet, end to end through the wizard:
Without upscale: ~$0.12. With full upscale: ~$0.60. About a third of what a Photoshop hour would cost.