Agent skill

Game Asset Generator

by notque in notque/vexjoy-agent

Deterministic palette/matrix pixel art (not AI). An agent skill from notque/vexjoy-agent.

MITAuto-check: notesGame Development

Install Game Asset Generator

skills CLI
$ npx skills add notque/vexjoy-agent --skill game-asset-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install notque/vexjoy-agent game-asset-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/notque/vexjoy-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/game/game-asset-generator .claude/skills/game-asset-generator && rm -rf skills-src

Use ~/.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/

Facts

Skill name
game-asset-generator
GitHub stars
439
Token cost
~2.3k tokens
SKILL.md length
891 words
Files
9 (incl. scripts, references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

Deterministic palette/matrix pixel art (not AI). An agent skill from notque/vexjoy-agent.

  • Works in 3 steps: DETECT → GENERATE → INTEGRATE
  • Procedural tile art
  • SKILL.md covers Overview, Phase 1: DETECT, Phase 2: GENERATE and Phase 3: INTEGRATE, plus 2 more sections
  • Runs JavaScript and Python scripts from its folder; calls node and npm; reaches gstatic.com; needs FAL_KEY and MESHY_API_KEY

What it does

Game Asset Generator is an agent skill from notque/vexjoy-agent. Deterministic palette/matrix pixel art (not AI). Use for procedural tile art, color-quantized output, matrix sprites.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `references/asset-sources.md`, `references/fal-ai-image.md` and `references/meshyai.md`).

It sits in Game Development, covering Game assets and audio, Sprites and pixel art and 3D graphics and WebGL. The repository describes itself as: VexJoy AI Agent with Jev Intelligent Routing - /do routes plain-English requests to the right specialist agent and gates the work with reviews, tests, and a learning loop. The licence is MIT.

When your agent uses it

  • Procedural tile art
  • Color-quantized output

Example prompts

  • “/game-asset-generator”

Requirements

  • Python 3
  • Node.js
  • A credential in MESHY_API_KEY
  • A credential in WLT_API_KEY
  • Pre-approved tools (allowed-tools): Read, Write, Bash, Grep, Glob, Edit

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. DETECT
  2. GENERATE
  3. INTEGRATE

What it can do on your machine

Read from SKILL.md and the folder at commit 5218674. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Bash
    • Grep
    • Glob
    • Edit

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (JavaScript and Python), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • gstatic.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • FAL_KEY
    • MESHY_API_KEY
    • WLT_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Game Asset Generator loads about 2.3k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 35 tokens; SKILL.md has 891 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:81
    -E "MESHY_API_KEY|WLT_API_KEY|FAL_KEY" ~/.env 2>/dev/null
  • NoteMentions a .env fileSKILL.md:176
    1. Verify `MESHY_API_KEY` is set in `~/.env` and the value is current
  • NoteMentions a .env fileSKILL.md:191
    Solution: Confirm `FAL_KEY` is in `~/.env`. Authorization header must be `Key <your-key>` -- not `Bearer <your-key>`.
  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Bash, Grep, Glob, Edit

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); the scripts in this folder are not scanned.

SKILL.md

The full file from notque/vexjoy-agent at commit 5218674, republished under its MIT licence (© notque). 891 words, ~2,338 tokens.

Download SKILL.mdSave it as .claude/skills/game-asset-generator/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
game-asset-generator
description
Deterministic palette/matrix pixel art (not AI). Use for procedural tile art, color-quantized output, matrix sprites.
allowed-tools
Read, Write, Bash, Grep, Glob, Edit
promoted_to
game-dev
agent
typescript-frontend-engineer
user-invocable
false
command
/game-assets
routing.triggers
pixel art, tile pattern, palette quantize, matrix sprite, meshy, meshyai, generate 3d model, text to 3d, image to 3d, world labs, gaussian splat, splat…
routing.not_for
AI-generated pixel art, illustration, or character art (use image-gen) — this skill is deterministic palette/matrix generation, not an AI backend; ad-hoc…
routing.pairs_with
frontend, typescript-frontend-engineer
routing.complexity
Medium
routing.category
game-development

Game Asset Generator Skill

Overview

This skill generates game-ready assets (3D models, Gaussian Splat environments, 2D sprites, images/textures) using AI APIs and free asset sources. It follows a three-phase workflow: DETECT the asset type -> GENERATE via the appropriate API or source -> INTEGRATE into the game. Only the relevant reference is loaded per task -- do not load all references upfront.

Scope: Use for AI-generated 3D models, world environments, pixel art sprites, concept art, textures, and sourcing free pre-built assets. Keep game engine scripting, physics, game loop logic, and shader authoring in threejs-builder after asset generation.


Phase 1: DETECT

Goal: Identify the asset type from the request and load the single corresponding reference.

Step 1: Classify the request

Signal in requestAsset TypeReference to load
"3D model", "character model", "generate model", GLB, mesh, rig, animate, humanoid3D Modelreferences/meshyai.md
"environment", "world", "scene background", "gaussian splat", "splat", volumetricEnvironmentreferences/worldlabs.md
"sprite", "pixel art", "2D character", "tile", "tileset", canvas sprite2D Spritereferences/pixel-art-sprites.md
"image", "texture", "concept art", "icon", "generate image", chroma keyImage / Texturereferences/fal-ai-image.md
No API key available, "free asset", "find model", "download asset", generation failedExisting Assetsreferences/asset-sources.md

If the request is ambiguous between 3D Model and Image, ask: "Do you need a 3D mesh (GLB file for a Three.js scene) or a 2D image/texture?"

Step 2: Check API key availability

Before calling any paid API, verify the required key exists:

bash
grep -E "MESHY_API_KEY|WLT_API_KEY|FAL_KEY" ~/.env 2>/dev/null

If the required key is missing, the fallback chain applies -- load references/asset-sources.md alongside the primary reference.

Fallback chain: Meshy API -> Sketchfab search -> Poly Haven -> Poly.pizza -> BoxGeometry placeholder. All sources output GLB into the same path so game loading code does not change.

Gate: Asset type identified, relevant reference loaded. Proceed to Phase 2 only when gate passes.


Phase 2: GENERATE

Goal: Call the API or source to produce the asset. Follow the loaded reference exactly -- it is the authoritative guide for its API.

Core constraints (all asset types):

  • Download immediately -- Meshy retains assets only 3 days; World Labs SPZ files expire similarly. Never assume a URL will be valid tomorrow.
  • Output to a stable path -- write assets to public/assets/ or an equivalent game-accessible directory so integration code does not need path changes per asset.
  • Save the .meta.json sidecar -- every generated asset gets a .meta.json recording the prompt, model, generation timestamp, and asset ID. Required for regeneration and auditing.
  • Validate the output file -- after download, confirm file size > 0 and extension matches expected type (GLB, SPZ, PNG, etc.) before proceeding.

Per-type generation summary (read the reference for full API details):

3D Model (Meshy): Two-step pipeline -- preview (fast, low quality, confirms prompt works) -> refine (full quality). Auto-rig only for humanoids meeting all criteria: bipedal, textured, clearly defined limbs. Animate rigged models with walk/run/idle presets. Post-process with scripts/optimize-glb.mjs for 80-95% size reduction before integration.

Environment (World Labs): Upload reference image (preferred over text-only) -> poll 3-8 minutes -> download SPZ + GLB collider + panorama JPG. Y-axis flip (rotation.x = Math.PI) required after loading into Three.js scene.

2D Sprite (code-only): Canvas-based generation -- no API call. Load references/pixel-art-sprites.md and generate sprites from the palette and matrix system defined there. Works without any API key.

Image / Texture (fal.ai): Queue-based API -- submit job -> poll for result. Choose model endpoint based on need (GPT Image 1.5 for transparency, Nano Banana 2 for speed). Use #00FF00 chroma-key background when the asset needs transparency extraction.

Gate: Asset file downloaded and validated (size > 0, correct extension). .meta.json saved. Proceed to Phase 3 only when gate passes.


Show full SKILL.md (320 more words)Show less

Phase 3: INTEGRATE

Goal: Load the generated asset into the game scene correctly.

Core constraint: Use SkeletonUtils.clone() -- never .clone() -- for animated models. Regular .clone() breaks skeleton bindings and leaves the model in a permanent T-pose. This is the single most common integration failure with rigged GLBs.

javascript
import { SkeletonUtils } from 'three/addons/utils/SkeletonUtils.js';

// Load once, clone for each instance
loader.load('/assets/character.glb', (gltf) => {
  const instance = SkeletonUtils.clone(gltf.scene);
  scene.add(instance);
});

GLB loading (Three.js):

javascript
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
import { DRACOLoader } from 'three/addons/loaders/DRACOLoader.js';

const dracoLoader = new DRACOLoader();
dracoLoader.setDecoderPath('https://www.gstatic.com/draco/versioned/decoders/1.5.6/');

const loader = new GLTFLoader();
loader.setDRACOLoader(dracoLoader); // Required for Draco-compressed GLBs from Meshy optimizer
loader.load('/assets/model.glb', (gltf) => {
  const model = gltf.scene;
  const box = new THREE.Box3().setFromObject(model);
  const center = box.getCenter(new THREE.Vector3());
  model.position.sub(center);
  scene.add(model);
});

Gaussian Splat (World Labs) -- see references/worldlabs.md for the @sparkjsdev/spark SplatMesh integration. The Y-axis flip and raycast direction inversion are required, not optional.

Animation playback:

javascript
const mixer = new THREE.AnimationMixer(model);
const action = mixer.clipAction(gltf.animations[0]); // walk/run/idle from Meshy
action.play();

// In animation loop:
mixer.update(deltaTime);

Gate: Asset visible in scene. No console errors. Animations play if applicable.


Error Handling

Error: "GLB loads but model is in T-pose"

Cause: Used .clone() instead of SkeletonUtils.clone() on a rigged model. Solution: Replace gltf.scene.clone() with SkeletonUtils.clone(gltf.scene). Import from three/addons/utils/SkeletonUtils.js.

Error: "Meshy task stuck in PENDING"

Cause: API key invalid, quota exceeded, or Meshy service issue. Solution:

  1. Verify MESHY_API_KEY is set in ~/.env and the value is current
  2. Check quota at app.meshy.ai
  3. If quota exhausted, fall through to references/asset-sources.md fallback chain
  4. Use status mode: node scripts/meshy-generate.mjs status <task_id>
Error: "Downloaded GLB is 0 bytes or corrupt"

Cause: URL expired (Meshy 3-day limit) or network error during download. Solution: Regenerate -- do not attempt to repair a corrupt GLB. Resubmit using the prompt saved in .meta.json.

Error: "Gaussian Splat renders but objects fall through floor"

Cause: Raycast direction inverted after Y-axis flip on the SplatMesh. Solution: Load references/worldlabs.md -- the fix is in the raycast inversion section.

Error: "fal.ai request returns 401"

Cause: FAL_KEY missing or incorrectly formatted. fal.ai uses Key $FAL_KEY format (not Bearer). Solution: Confirm FAL_KEY is in ~/.env. Authorization header must be Key <your-key> -- not Bearer <your-key>.

Error: "gltf-transform command not found"

Cause: @gltf-transform/cli not installed globally. Solution: npm install -g @gltf-transform/cli


Deep References

Load the reference matching the asset type from Phase 1 DETECT.

Asset typeReference
3D model (Meshy API)references/meshyai.md
Environment (World Labs)references/worldlabs.md
Image / texture (fal.ai)references/fal-ai-image.md
Free assets (Sketchfab, Poly Haven)references/asset-sources.md
2D sprite (canvas, no API)references/pixel-art-sprites.md

© notque, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts, references) in skills/game/game-asset-generator of notque/vexjoy-agent.

  • SKILL.md
  • references/asset-sources.md
  • references/fal-ai-image.md
  • references/meshyai.md
  • references/pixel-art-sprites.md
  • references/worldlabs.md
  • scripts/fal_queue_image_run.py
  • scripts/meshy-generate.mjs
  • scripts/optimize-glb.mjs

Open the folder on GitHubat commit 5218674

Compare with similar skills

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.

Game Asset Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Game Asset Generator this skillnotque/vexjoy-agent439—~2.3kAutomated safety check: NotesMIT
Game Asset Generatorhtdt/godogen7.1k—~2.8kAutomated safety check: PassMIT
Asset Pipelinerehan-remade/universal-modder5.8k—~2kAutomated safety check: PassMIT
Fal Assetsrehan-remade/universal-modder5.8k—~2kAutomated safety check: NotesMIT
Game Assetsglifxyz/glif-mcp-server212—~831Automated safety check: PassMIT
Threejs 3D Generatorvalkor-ai/loom1.2k1 repos~2.6kAutomated safety check: PassApache-2.0

Similar skills

  • Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.

    7.1k GitHub stars~2.8k tokensUpdated 7 days ago
    Game DevelopmentAuto-check passed
  • Asset Pipeline

    rehan-remade/universal-modder

    Turn generated or hand-made art into exactly what a game engine loads.

    5.8k GitHub stars~2k tokensUpdated today
    Game DevelopmentAuto-check passed
  • Fal Assets

    rehan-remade/universal-modder

    Generate game assets with fal (fal.ai) through the fal MCP server, the um fal CLI (REST) or fal api.

    5.8k GitHub stars~2k tokensUpdated today
    Game DevelopmentAuto-check: notes
  • Game Assets

    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…

    212 GitHub stars~831 tokensUpdated today
    Game DevelopmentAuto-check passed
  • Threejs 3D Generator

    valkor-ai/loom

    Generate, texture, rig, animate, stylize, convert, and download 3D assets for Three.js games via the Tripo API.

    1.2k GitHub starsUsed in 1 repo~2.6k tokens
    Game DevelopmentAuto-check passed
  • 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.

    4.4k GitHub stars~3.6k tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed

More from notque/vexjoy-agent

All 61 skills in this repo
  • PR Workflow

    notque/vexjoy-agent

    Pull request lifecycle: commit, codex review, sync, review, fix, status, cleanup, and PR mining.

    439 GitHub stars~2.8k tokensUpdated 6 days ago
    Auto-check: notes
  • Architecture Deepening

    notque/vexjoy-agent

    Improve architecture across modules by deepening interfaces.

    439 GitHub stars~3.3k tokensUpdated 6 days ago
    Auto-check: notes
  • Code Quality

    notque/vexjoy-agent

    Code quality: cleanup, linting, formatting, quality gates. An agent skill from notque/vexjoy-agent.

    439 GitHub stars~1.5k tokensUpdated 6 days ago
    Auto-check: notes
  • Codebase Analyzer

    notque/vexjoy-agent

    Statistical rule discovery from Go codebase patterns. An agent skill from notque/vexjoy-agent.

    439 GitHub stars~2k tokensUpdated 6 days ago
    Auto-check: notes
  • Comment Quality

    notque/vexjoy-agent

    Review and fix temporal references in code comments. An agent skill from notque/vexjoy-agent.

    439 GitHub stars~2k tokensUpdated 6 days ago
    Auto-check: notes
  • Content

    notque/vexjoy-agent

    Content operations: editorial calendar, marketing, publishing, social media management.

    439 GitHub stars~2.9k tokensUpdated 6 days ago
    Auto-check: notes

Questions about Game Asset Generator

What does Game Asset Generator do?

Deterministic palette/matrix pixel art (not AI). An agent skill from notque/vexjoy-agent. Game Asset Generator is an agent skill from notque/vexjoy-agent. Deterministic palette/matrix pixel art (not AI).

When should I use Game Asset Generator?

Game Asset Generator fits situations like: procedural tile art; color-quantized output.

How do I install Game Asset Generator in Claude Code?

Run `npx skills add notque/vexjoy-agent --skill game-asset-generator -a claude-code`. Or copy the skill folder (skills/game/game-asset-generator in notque/vexjoy-agent) into .claude/skills/game-asset-generator in your project. Claude Code loads it when a task matches its description.

How do I install Game Asset Generator in Codex?

Run `npx skills add notque/vexjoy-agent --skill game-asset-generator -a codex`. Or copy the skill folder (skills/game/game-asset-generator in notque/vexjoy-agent) into .agents/skills/game-asset-generator in your project. Codex loads it when a task matches its description.

Can I use Game Asset Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add notque/vexjoy-agent --skill game-asset-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/game-asset-generator, .gemini/skills/game-asset-generator, .github/skills/game-asset-generator and .opencode/skills/game-asset-generator in your project.

What does Game Asset Generator need to run?

Going by SKILL.md and its folder, Game Asset Generator needs JavaScript and Python for the scripts in its folder, the command-line tools its instructions call (node and npm) and credentials named FAL_KEY, MESHY_API_KEY and WLT_API_KEY. Our summary lists: Python 3; Node.js; A credential in MESHY_API_KEY; A credential in WLT_API_KEY. Its frontmatter pre-approves these tools: Read, Write, Bash, Grep, Glob, Edit.

Does Game Asset Generator access the network?

SKILL.md names 1 domain. In commands or code: gstatic.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Game Asset Generator safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Game Asset Generator use?

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.

How many tokens does Game Asset Generator use?

About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.9k tokens, read only when the agent opens those files.

What are the alternatives to Game Asset Generator?

Skills that share tags, products or a category with Game Asset Generator: Game Asset Generator (htdt/godogen, 7.1k stars), Asset Pipeline (rehan-remade/universal-modder, 5.8k stars), Fal Assets (rehan-remade/universal-modder, 5.8k stars) and Game Assets (glifxyz/glif-mcp-server, 212 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Game Asset Generator?

notque (a GitHub user) maintains it in notque/vexjoy-agent, which has 439 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on October 3, 2026.

Source: notque/vexjoy-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.