Mira Img Animator
sandeco/mira-animator
Transforma imagens (fotos, logos, diagramas) em animações D3.js interativas e self-contained.
Iterate on the visual identity of a top-down pixel-art decoration (sprite + layout integration) in pixtuoid.
$ npx skills add IvanWng97/pixtuoid --skill beautify-decoration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install IvanWng97/pixtuoid beautify-decoration --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/IvanWng97/pixtuoid.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/beautify-decoration .claude/skills/beautify-decoration && 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 "beautify-decoration" agent skill from https://github.com/IvanWng97/pixtuoid/tree/main/.claude/skills/beautify-decoration into .claude/skills/beautify-decoration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beautify-decoration", 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/IvanWng97/pixtuoid/tree/main/.claude/skills/beautify-decorationType 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 IvanWng97/pixtuoid --skill beautify-decoration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install IvanWng97/pixtuoid beautify-decoration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IvanWng97/pixtuoid.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/beautify-decoration .agents/skills/beautify-decoration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "beautify-decoration" agent skill from https://github.com/IvanWng97/pixtuoid/tree/main/.claude/skills/beautify-decoration into .agents/skills/beautify-decoration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beautify-decoration", 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 IvanWng97/pixtuoid --skill beautify-decoration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install IvanWng97/pixtuoid beautify-decoration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IvanWng97/pixtuoid.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/beautify-decoration .cursor/skills/beautify-decoration && 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 "beautify-decoration" agent skill from https://github.com/IvanWng97/pixtuoid/tree/main/.claude/skills/beautify-decoration into .cursor/skills/beautify-decoration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beautify-decoration", 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/IvanWng97/pixtuoid.git --path .claude/skills/beautify-decoration--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 IvanWng97/pixtuoid --skill beautify-decoration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install IvanWng97/pixtuoid beautify-decoration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IvanWng97/pixtuoid.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/beautify-decoration .gemini/skills/beautify-decoration && 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 "beautify-decoration" agent skill from https://github.com/IvanWng97/pixtuoid/tree/main/.claude/skills/beautify-decoration into .gemini/skills/beautify-decoration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beautify-decoration", 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 IvanWng97/pixtuoid beautify-decorationInstalls 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 IvanWng97/pixtuoid --skill beautify-decoration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/IvanWng97/pixtuoid.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/beautify-decoration .github/skills/beautify-decoration && 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 "beautify-decoration" agent skill from https://github.com/IvanWng97/pixtuoid/tree/main/.claude/skills/beautify-decoration into .github/skills/beautify-decoration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beautify-decoration", 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 IvanWng97/pixtuoid --skill beautify-decoration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install IvanWng97/pixtuoid beautify-decoration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/IvanWng97/pixtuoid.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/beautify-decoration .opencode/skills/beautify-decoration && 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 "beautify-decoration" agent skill from https://github.com/IvanWng97/pixtuoid/tree/main/.claude/skills/beautify-decoration into .opencode/skills/beautify-decoration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beautify-decoration", 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.
beautify-decorationIterate on the visual identity of a top-down pixel-art decoration (sprite + layout integration) in pixtuoid.
Beautify Decoration is an agent skill from IvanWng97/pixtuoid. Iterate on the visual identity of a top-down pixel-art decoration (sprite + layout integration) in pixtuoid. Use when redesigning an existing decoration (pantry, lounge, meeting room, cubicle decor) or adding a new one. Captures the rebuild trap, the visual-verification loop, resolution constraints, sprite-format pitfalls, and the layout-integration checklist.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development, covering Sprites and pixel art and Logo and visual identity. The repository describes itself as: Terminal pixel-art office for AI coding agents. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 413c70c. 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.
Shell commands in SKILL.md call:
justcargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Beautify Decoration loads about 2.5k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,175 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 IvanWng97/pixtuoid at commit 413c70c, republished under its MIT licence (© IvanWng97). 1,175 words, ~2,450 tokens.
.claude/skills/beautify-decoration/SKILL.md (or your agent's skills folder).A repo-specific iteration loop for visually redesigning a decoration in pixtuoid. Follow this when the user says "beautify X" or "make Y look better" — it short-circuits several rebuild traps and visual-design dead ends that aren't obvious from the codebase alone.
1. Edit sprite OR layout
↓
2. cargo build --release --example snapshot
↓
3. ./target/release/examples/snapshot /tmp/snap.png
↓
4. .venv/bin/python3 scripts/crop-snapshot.py /tmp/snap.png --scale 3 -q <quadrant>
(its QUADRANTS table is the zone map — or skip the quadrant guessing: snapshot --crop-furniture pantry|couch|vending|
printer|meeting|sofa|chair|island|snackshelf|desk OR --crop-agent <label> renders a `CROP_WINDOW`
already centered on the target — no Python step)
↓
5. Read the cropped PNG → self-critique → back to step 1
↓
6. When the checklist below passes, send the crop to the user with a short caption
↓
7. cargo build --release --workspace ← rebuild the LIVE binary too
↓
8. Commit with iteration history (which designs were tried, why rejected)The user is the final judge of "does it look like a fridge / coffee machine / etc." — send only once your own critique against the checklist below passes.
Step 7 is mandatory. cargo build --release --example snapshot does NOT rebuild the main binary. Users testing with ./target/release/pixtuoid run won't see sprite changes until the workspace is rebuilt. Forgetting this step is how "I changed the sprite but nothing happened in the live TUI" bugs get filed.
Step 8 is mandatory. Commit messages for sprite changes must include the iteration count and a one-line rationale for each rejected attempt. Future editors need to know which alternatives were explored — otherwise they'll re-try the same dead-end designs.
cargo build --release --workspace does not rebuild examples. Use cargo build --release --example snapshot when iterating on examples/snapshot.crates/pixtuoid-scene/build.rs embeds every .sprite in sprites/default/ at compile time, and a sprite edit, add or remove rebuilds it.strings target/release/examples/snapshot | grep "<some unique string from your sprite>".examples/snapshot defaults to its COLS×ROWS cells. Several layouts (pantry, corridor appliances) have conditional variants based on room dimensions. Corridor items (vending machine, printer) only appear when the cubicle aisle clears VENDING_MIN_AISLE_* / PRINTER_MIN_AISLE_* (layout/compute.rs). The default size clears every gate — don't shrink it while iterating.
Pantry-specific threshold: the large pantry counter needs the left column to fit PANTRY_COUNTER_LARGE_W plus margin (the pantry_counter_size pick in layout/compute.rs); below that, pantry_small.sprite is used (layout::pantry_counter_anim).
Symptoms of weak identity:
.): the wall color shows through, weakening the silhouette. Use a solid fill color for appliances.M-bodied items reads as "row of dark boxes." Give each appliance a distinct base color (e.g., w white fridge against M dark coffee machine + M dark microwave with q glass).b is dark and gets dim. Space them out or use c + r..sprite file must have exactly the same number of space-separated cells. Off-by-one is the most common bug.awk '/^@/{next}/^#/{next}NF{print NR": "NF}' crates/pixtuoid-scene/sprites/default/foo.sprite — all NF values must match.awk '/^@/{next}/^#/{next}NF{for(i=1;i<=NF;i++)printf "%s",$i;print " ["NF"]"}' foo.sprite.crates/pixtuoid-scene/sprites/default/pack.toml [palette] section.foo@Nx.sprite, and the 1x pieces the generator owns) is drawn by scripts/gen-art.py: redraw it there and run just gen-art — just gen-art-check fails on a hand edit.When a sprite changes size:
furniture_def(Furniture) geometry table in crates/pixtuoid-scene/src/layout/decor.rs — the single source of truth for footprint + visual, read by mask::build_walkable_mask (waypoints via approach::obstacle_footprint), approach.rs, and the z-sort. Do NOT hardcode a (w, h) at the mask stamp site; it would diverge from the table that stand_point/approach and render-centering read.FurnitureDef row via furniture_def(kind.furniture()).footprint, not an inline literal — so the same table edit covers it.just test -p pixtuoid-scene — the walkable_is_one_connected_region test (lives in layout/placement_sweep.rs) catches mask/sprite mismatches by sweeping buffer sizes × seeds and asserting every walkable pixel is reachable from the door threshold; narrow_band_connectivity_boundary_scan re-runs the same assert at the step-1 widths that discrete grid skips.SWEEP_SIZES starts at the minimum layout size), the sprite is too big for that pantry. Add a _small variant + conditional pick (see PantryRoom::counter_size / SceneLayout::pantry_counter_size() for the pattern).foo.sprite and foo_small.sprite in crates/pixtuoid-scene/sprites/default/pack.toml if you added a variant (an unregistered sprite fails every_bundled_sprite_is_a_frame_the_pack_loads).foo@Nx.sprite, drawn by scripts/gen-art.py), resize it there too, with its 1x where the generator owns that; a variant not exactly N× its base reds the_bundled_pack_passes_its_own_validation.Run this checklist before each render you send in a beautify loop, and state each row's result (✅/⚠️/❌) in the message. Fix any ❌ first; call out any ⚠️ you ship so the user sees the trade-off.
| Check | What it means |
|---|---|
| Stranger-ID | If a stranger saw this with no context, would they identify each new element as the intended thing? Name each element explicitly. |
| Visually differs | Diff is noticeable, not a sub-pixel tweak. If hash-identical to last attempt, you didn't actually rebuild. |
| Subzone width | Each new sub-element ≥ 5 display cells wide (§3). |
| Color distinctness | New elements use colors distinct from immediate neighbours. |
| Alive | The asset ships what makes it alive — idle frames (frame_ms), a state-driven change, a response to weather or window light, or variety across agents — named in the PR body. |
just test | The connectivity tests pass (§6 step 3). |
--debug-walkable | Rendered the overlay and visually checked no narrow / isolated walkable pockets near the new element. |
pack.toml keys; only add new ones if necessary..sprite file; verify row widths with the awk command above.Piece::Foo variant (core sprite::format) and the [animations.foo] block to pack.toml (build.rs embeds the file itself): a pack without it, or a key no piece names, does not load.Point placement in SceneLayout::compute.Furniture variant + furniture_def row (§6 step 1). A new plant, wall-decor or pod-decor kind is then stamped by its collection's loop in mask::build_walkable_mask; a one-off piece also needs a MaskObstacles field and its own stamp_ground from that row, like fish_tank (or add a waypoint kind if it's interactive).DrawableKind::Foo variant + paint_drawable arm if z-sorting matters.© IvanWng97, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/beautify-decoration of IvanWng97/pixtuoid.
Open the folder on GitHubat commit 413c70c
Beautify Decoration 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 |
|---|---|---|---|---|---|---|
| Beautify Decoration this skillIvanWng97/pixtuoid | 491 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Mira Img Animatorsandeco/mira-animator | 218 | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Make Imagesglifxyz/glif-mcp-server | 213 | — | ~931 | Automated safety check: Pass | MIT | |
| Game Asset Generatorhtdt/godogen | 7.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Code-Drawn 2D Game Art0x0funky/agent-sprite-forge | 4.4k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Sprite Genaldegad/sprite-gen | 2.7k | — | ~4.9k | Automated safety check: Pass | Apache-2.0 |
sandeco/mira-animator
Transforma imagens (fotos, logos, diagramas) em animações D3.js interativas e self-contained.
glifxyz/glif-mcp-server
Make new still images from a brief with Glif and save them to a folder: concept art, a series of variations, mockups, posters, illustrations, wallpapers, reference boards or any picture that isn't…
htdt/godogen
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
0x0funky/agent-sprite-forge
Draws 2D game art from code with no image model: pixel sprites, SVG props and icons, rigged characters, FX, autotiles and layouts, only when explicitly asked for.
aldegad/sprite-gen
Generates images and game sprites through GPT or Grok with guided provider choices, separate saved defaults, automatic cleanup and optional curation.
mateaix/mateclaw
Pixel art w/ era palettes (NES, Game Boy, PICO-8). An agent skill from mateaix/mateclaw.
IvanWng97/pixtuoid
Run pixtuoid's review locally at either scope — a DIFF review (one lens per matching REVIEW.md local escalation row; the correctness and design lenses are the automatic CI review's, never re-run…
IvanWng97/pixtuoid
Generate a royalty-free lofi (or rain / typing / chime / any ambient) soundtrack ENTIRELY in code — no sampled audio ships.
IvanWng97/pixtuoid
Wire a new agent-CLI Source adapter into pixtuoid (a new coding CLI whose sessions become office sprites).
IvanWng97/pixtuoid
Add a new color theme to pixtuoid (a full Theme palette, rendered into the office).
Categories
Iterate on the visual identity of a top-down pixel-art decoration (sprite + layout integration) in pixtuoid. Beautify Decoration is an agent skill from IvanWng97/pixtuoid. Iterate on the visual identity of a top-down pixel-art decoration (sprite + layout integration) in pixtuoid.
Beautify Decoration fits situations like: redesigning an existing decoration (pantry; adding a new one.
Run `npx skills add IvanWng97/pixtuoid --skill beautify-decoration -a claude-code`. Or copy the skill folder (.claude/skills/beautify-decoration in IvanWng97/pixtuoid) into .claude/skills/beautify-decoration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add IvanWng97/pixtuoid --skill beautify-decoration -a codex`. Or copy the skill folder (.claude/skills/beautify-decoration in IvanWng97/pixtuoid) into .agents/skills/beautify-decoration 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 IvanWng97/pixtuoid --skill beautify-decoration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/beautify-decoration, .gemini/skills/beautify-decoration, .github/skills/beautify-decoration and .opencode/skills/beautify-decoration in your project.
Going by SKILL.md and its folder, Beautify Decoration needs the command-line tools its instructions call (just and cargo). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Beautify Decoration 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.5k tokens (SKILL.md is roughly 9.8k 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 Beautify Decoration: Mira Img Animator (sandeco/mira-animator, 218 stars), Make Images (glifxyz/glif-mcp-server, 213 stars), Game Asset Generator (htdt/godogen, 7.1k stars) and Code-Drawn 2D Game Art (0x0funky/agent-sprite-forge, 4.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
IvanWng97 (a GitHub user) maintains it in IvanWng97/pixtuoid, which has 491 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 11, 2026.
Source: IvanWng97/pixtuoid on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.