2D Sprite Generator
0x0funky/agent-sprite-forge
Produces game-ready 2D characters, creatures, props, icons and effects as master stills, sheets or clips, and exports frames for common game engines.
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
$ npx skills add htdt/godogen --skill asset-gen -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install htdt/godogen asset-gen --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/htdt/godogen.git skills-src && mkdir -p .claude/skills && cp -r skills-src/asset-gen .claude/skills/asset-gen && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "asset-gen" agent skill from https://github.com/htdt/godogen/tree/master/asset-gen into .claude/skills/asset-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asset-gen", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/htdt/godogen/tree/master/asset-genType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add htdt/godogen --skill asset-gen -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install htdt/godogen asset-gen --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/htdt/godogen.git skills-src && mkdir -p .agents/skills && cp -r skills-src/asset-gen .agents/skills/asset-gen && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "asset-gen" agent skill from https://github.com/htdt/godogen/tree/master/asset-gen into .agents/skills/asset-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asset-gen", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add htdt/godogen --skill asset-gen -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install htdt/godogen asset-gen --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/htdt/godogen.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/asset-gen .cursor/skills/asset-gen && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "asset-gen" agent skill from https://github.com/htdt/godogen/tree/master/asset-gen into .cursor/skills/asset-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asset-gen", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/htdt/godogen.git --path asset-gen--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add htdt/godogen --skill asset-gen -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install htdt/godogen asset-gen --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/htdt/godogen.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/asset-gen .gemini/skills/asset-gen && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "asset-gen" agent skill from https://github.com/htdt/godogen/tree/master/asset-gen into .gemini/skills/asset-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asset-gen", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install htdt/godogen asset-genInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add htdt/godogen --skill asset-gen -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/htdt/godogen.git skills-src && mkdir -p .github/skills && cp -r skills-src/asset-gen .github/skills/asset-gen && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "asset-gen" agent skill from https://github.com/htdt/godogen/tree/master/asset-gen into .github/skills/asset-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asset-gen", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add htdt/godogen --skill asset-gen -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install htdt/godogen asset-gen --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/htdt/godogen.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/asset-gen .opencode/skills/asset-gen && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "asset-gen" agent skill from https://github.com/htdt/godogen/tree/master/asset-gen into .opencode/skills/asset-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asset-gen", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
asset-genGenerates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
The skill produces PNG images through Gemini or xAI Grok and GLB 3D models through the Tripo CLI. The description also lists rigged characters, retargeted animations, frame-by-frame animated sprites and background removal. A local Qwen-Image generator is a free option when it is installed, and it suits simple images such as textures, props, icons, UI and backgrounds.
These are paid APIs, so every call costs real money, and the instructions tabulate cost by model and size. The agent uses whichever key is set and defaults to Gemini when both are, and for quality-critical assets such as a character reference it may generate with both and keep the better result. Every PNG should be reviewed before conversion to a GLB, because a bad image wastes credits downstream.
Image options include image-to-image from a reference, sizes and aspect ratios, and grid_slice.py for cutting a kit of small sprites out of one generation. The bundled Python tools are asset_gen.py, find_loop_frame.py, grid_slice.py and rembg_matting.py, with extra notes in motion.md and rembg.md.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0b725bc. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3magickffmpegnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
XAI_API_KEYTRIPO_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Game Asset Generator loads about 2.8k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 1,272 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from htdt/godogen at commit 0b725bc, republished under its MIT licence (© htdt). 1,272 words, ~2,805 tokens.
.claude/skills/asset-gen/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Generate PNG images (Gemini or xAI Grok) and GLB 3D models (Tripo) from text prompts. These are paid APIs — every call costs real money. The free exception is qwen-image, a local GPU generator some machines have. Image tools live at ${ASSET_GEN_SKILL_DIR}/tools/; 3D goes through the tripo CLI. Run from the project root and keep runtime-loaded outputs under ${RUNTIME_ASSET_DIR}/.
| Model | Flag | Cost | Notes |
|---|---|---|---|
| Gemini 3.1 Flash Image | --model gemini | 5¢ (512) · 7¢ (1K) · 10¢ (2K) · 15¢ (4K) | ~10 s per image |
| Grok Imagine Image 2.0 | --model grok | 6¢ (1K) · 8¢ (2K), +1¢ per reference image | 1–2 min per image |
| Qwen-Image | qwen-image CLI (local, if installed) | free, minutes per image | Simple images — textures, props, icons, UI, backgrounds, in-image text; native transparency |
Gemini and Grok are equally strong: both follow detailed prompts closely, and both slip on small details — a miscounted item, a mirrored left/right. Use whichever key is set; with both, asset_gen.py defaults to Gemini for speed. When an asset is quality-critical (a character reference that anchors 3D or animation, a hero image) and both keys are set, generate it with both and keep the better one.
python3 ${ASSET_GEN_SKILL_DIR}/tools/asset_gen.py image \
--prompt "the full prompt" -o ${RUNTIME_ASSET_DIR}/img/car.png--model (default gemini when its key is set, else grok) · --size (default 1K; Gemini also 512/4K) · --aspect-ratio (default 1:1; also 16:9, 9:16, 4:3, 3:4, 3:2, 2:3).
Image-to-image: pass --image ref.png and the model sees the reference — prompt only for what changes (angle, pose, recolor), don't re-describe appearance. Use this for style families (one hero asset → the rest), variants, and multi-view sets.
Small sprites: minimum generation is 1K, so a 1024px image downscaled to 64px looks muddy. Design display sizes ≥128px, or generate a kit (multiple objects in one 1K image) and slice it with tools/grid_slice.py ... --grid 2x2 --names "a,b,c,d", or prompt for bold flat forms that survive downscaling.
Review every PNG before any GLB conversion — a bad image wastes 30+ credits downstream.
Read ${ASSET_GEN_SKILL_DIR}/rembg.md. Key rule: never prompt for a "transparent background" (the generator bakes a checkerboard) — prompt a solid color, then matte it out. The one exception is qwen-image rgba, which outputs real alpha.
qwen-image)If command -v qwen-image finds it, this machine runs Qwen-Image-2.1 on its own GPU. It costs nothing, so simple images go there first; keep the paid models for characters, references, and exact layouts.
qwen-image generate "the full prompt" -o ${RUNTIME_ASSET_DIR}/img/crate.png # --size WxH or --resolution N (default 1024)
qwen-image rgba "a wooden shield, game icon" -o ${RUNTIME_ASSET_DIR}/img/shield.png # transparent PNG, no matting
qwen-image edit -i crate.png "mossy and cracked" -o ${RUNTIME_ASSET_DIR}/img/crate_old.png # image-to-image; repeat -i for more refsseconds in --json) and plan batches from it; --resolution 512 --steps 10 is ~8× faster for checking how a prompt reads.rgba alpha from a composite on a contrasting color (magick out.png -background magenta -flatten out_qa.png), not the raw PNG.--resolution (edits use the most). On failure, qwen-image info reports GPU and model status.Recipe: reference → pose → video → extract frames → loop-trim → rembg.
asset_gen.py video --image pose.png --duration 2 -o walk.mp4 (Grok, needs XAI_API_KEY; --duration 1–15s; --resolution 720p at 14¢/s, or 480p at 8¢/s — enough for small sprites).ffmpeg -i walk.mp4 -vsync 0 frames/%04d.png.tools/find_loop_frame.py frames/ returns the loop frame; delete frames past it. Skip for one-shots (attack/death).tools/rembg_matting.py --batch frames/ -o clean/.Reuse one reference for all of a character's actions. Chaining (feed action A's last frame as action B's start) keeps positional continuity — keep chains ≤2 deep, they drift.
The tripo CLI (npm install -g tripo-cli, key in TRIPO_API_KEY) owns the whole 3D path: submit, poll, download, credit pre-check, refunds on failure. Its own agent docs are the reference — tripo docs --llm, then tripo docs --topic commands/process / examples/animation / common-errors — this section only covers what is specific to game use here.
tripo make ref.png --name car -p face_limit=30000 -p auto_size=true --json --yes -o ${RUNTIME_ASSET_DIR}/glb
tripo make ref.png --name hero --then rig-check,rig:model=v1.0-20240301 --json --yes -o ${RUNTIME_ASSET_DIR}/glb
tripo anim retarget @hero --animation preset:biped:walk preset:biped:idle --json --yes -o ${RUNTIME_ASSET_DIR}/glbmake is blocking (default timeout 30 min) and prints one JSON line: read model_file, preview.png and credits_consumed from it. Never add your own shorter timeout, never resubmit because a task_id appeared in stderr. If the process does die, tripo task watch <id> --download finishes the same task for free.<-o dir>/<name>-<id8>/ (model.glb, preview.png, task.json). Move or reference the GLB from there; task.json keeps the seeds and task id, so there is nothing else to save.--name X makes the task addressable as @X for later steps (retarget, convert, decimate). Retarget reuses the rig task — never re-rig for another clip; up to 5 animations per call, billed per animation.face_limit ≤ 20000 the CLI silently switches to P1 (low-poly topology, no geometry_quality) — that is the right choice for mobile-style budgets, but know it happens. --for game-pc converts to FBX by default; skip it for GLB engines.-p geometry_quality=detailed -p texture_quality=detailed is the HD tier (≈ double credits).rig:model=v1.0-20240301 for bipeds — that is the rig motion.md's pipeline is certified against, and it uses the preset:biped:* clips below. The CLI's default rig (v2.5) covers quadrupeds, avians, etc. with preset:<name> clips (idle walk run dive climb jump slash shoot hurt fall turn); unverified with motion.md. rig-check in the chain aborts before rigging if the mesh isn't riggable. --animate-in-place when game code drives locomotion.Source image for make: 3/4 elevated angle, solid white/gray background, matte finish, opaque glass, single centered subject — and do not rembg it (Tripo needs the solid bg). For characters, generate the reference in a T-pose.
v1.0 biped retarget presets (pass as preset:biped:<name>):
afraid agree angry_01/02/03 basketball_shot bow box_01/02/03 cast_a_spell cheer chop
clap climb complain_01/02 cross_body_crunch crossover_dribble cry dance_01..06
defeat_02/03 depressed dig dive dribble fall fire flee_01/02 flip fold_arms
football_catch/save/pass freaky frightened front_kick_01/02 frustrated_01/02 golf
greet_01..04 heart_pose hit_to_body_01/02 hit_to_head/side/stomach hug hurt idle
jump jump_down jump_rope_01/02 laugh_01/02 lift_heavy look_around make_a_call_01/02
pitch_baseball play_mobile_game play_video_game press-up run run_upstairs scared_01/02
scratch shoot shovel sing_01..04 sit slash sob standing_relax surf swagger swim turn
victory_celebration volleyball wait walk warm_up wave_goodbye_01/02Presets are generic stock clips. Important: when gameplay needs a custom humanoid move set (state machines, root-motion locomotion, moves not in this list), read ${ASSET_GEN_SKILL_DIR}/motion.md.
Paid generations cost real money, so confirm with the user before generating; qwen-image runs are free. Quick reference: 1K image 6–7¢ · 2K background 8–10¢ · a quality-critical image generated on both models ~13¢ · sprite video 14¢/s at 720p. Tripo bills in credits (≈1¢): ~30 per model, ~25 to rig, ~10 per retargeted clip — tripo balance before a batch, and report the credits_consumed the CLI returns rather than an estimate.
Each asset_gen.py command prints JSON to stdout: {"ok": true, "path": "...", "cost_cents": 7}; tripo and qwen-image print theirs with --json. Progress goes to stderr — redirect it to a temp file and read only on failure to keep context clean:
_log=$(mktemp)
result=$(python3 ${ASSET_GEN_SKILL_DIR}/tools/asset_gen.py image --prompt "..." -o p.png 2>"$_log") || tail -20 "$_log"Generate independent API images in parallel (multiple Bash calls in one message).
Generators and vision checks have weak spatial sense — verify from screenshots when it matters.
magick in.png -resize 960x960 out.png).Track every generated asset in README.md with an in-game Size column — without it, coders consistently scale assets wrong:
4m long, 1.8m tall, 0.3m2m tile1920x1080, fullscreen128x128 px| Name | Description | Size | Path | Cost |
|---|---|---|---|---|
| car | sedan with spoiler | 4m long | ${RUNTIME_ASSET_DIR}/glb/car.glb | 7¢ + 30 cr |
© htdt, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files in asset-gen of htdt/godogen.
Open the folder on GitHubat commit 0b725bc
Game Asset Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Game Asset Generator this skillhtdt/godogen | 7.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| 2D Sprite Generator0x0funky/agent-sprite-forge | 4.4k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Text To 3D AssetLaurentiuGabriel/unreal-game-assets-creation-skill | 148 | — | ~2.1k | Automated safety check: Pass | None | |
| Threejs 3D Generatorcorosolto/client | 257 | — | ~3.4k | Automated safety check: Pass | AGPL-3.0 | |
| Fal Assetsrehan-remade/universal-modder | 5.8k | — | ~2k | Automated safety check: Notes | MIT | |
| Game Assetsglifxyz/glif-mcp-server | 212 | — | ~831 | Automated safety check: Pass | MIT |
0x0funky/agent-sprite-forge
Produces game-ready 2D characters, creatures, props, icons and effects as master stills, sheets or clips, and exports frames for common game engines.
LaurentiuGabriel/unreal-game-assets-creation-skill
Generate a game-ready 3D asset by running the local AI pipeline sequentially: Fooocus (SDXL text-to-image) - Hunyuan3D-2 (image-to-textured-GLB) - optional Blender FBX convert + Unreal import.
corosolto/client
Generate, texture, rig, animate, stylize, convert, and download 3D assets for Three.js games using the Tripo API.
rehan-remade/universal-modder
Generate game assets with fal (fal.ai) through the fal MCP server, the um fal CLI (REST) or fal api.
glifxyz/glif-mcp-server
Make art and media for a game you are building with Glif: character reference sheets, consistent characters, pixel-art sprite sheets with animation cycles, seamless and PBR textures, 3D models, item…
centminmod/my-claude-code-setup
Generate, edit-from-reference, or analyze images with AI via OpenRouter (Gemini, GPT Image, Seedream, Qwen, MAI, Grok, FLUX.2, Recraft, Muse, Riverflow; Cloudflare AI Gateway BYOK).
Works with
Categories
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal. The skill produces PNG images through Gemini or xAI Grok and GLB 3D models through the Tripo CLI. The description also lists rigged characters, retargeted animations, frame-by-frame animated sprites and background removal.
Game Asset Generator fits situations like: generating concept art, textures, icons or backgrounds for a game; turning a reference image into a GLB 3D model; making sprites or animated sprites from a text description; removing the background from a generated image.
Run `npx skills add htdt/godogen --skill asset-gen -a claude-code`. Or copy the skill folder (asset-gen in htdt/godogen) into .claude/skills/asset-gen in your project. Claude Code loads it when a task matches its description.
Run `npx skills add htdt/godogen --skill asset-gen -a codex`. Or copy the skill folder (asset-gen in htdt/godogen) into .agents/skills/asset-gen in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add htdt/godogen --skill asset-gen -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/asset-gen, .gemini/skills/asset-gen, .github/skills/asset-gen and .opencode/skills/asset-gen in your project.
Going by SKILL.md and its folder, Game Asset Generator needs Python for the scripts in its folder, the command-line tools its instructions call (python3, magick, ffmpeg and npm) and credentials named XAI_API_KEY and TRIPO_API_KEY. Our summary lists: Python 3 with the packages in tools/requirements.txt; A Gemini or xAI Grok API key; The tripo CLI for 3D models.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Game Asset Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Game Asset Generator: 2D Sprite Generator (0x0funky/agent-sprite-forge, 4.4k stars), Text To 3D Asset (LaurentiuGabriel/unreal-game-assets-creation-skill, 148 stars), Threejs 3D Generator (corosolto/client, 257 stars) and Fal Assets (rehan-remade/universal-modder, 5.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
htdt (a GitHub user) maintains it in htdt/godogen, which has 7,068 GitHub stars. The repository was last updated on October 1, 2026.
Source: htdt/godogen on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.