MCPInstall

add-3d-assets

Replace primitive 3D shapes with real GLB models — animated characters, world props, buildings, and scenery for Three.js games. Use when the user says "add 3D models", "replace the boxes with real models", "add GLB assets", or "make the 3D game look real". For 2D pixel art, use add-assets instead. Do NOT use for 2D pixel art (use add-assets) or gameplay changes (use add-feature).

Installs
941
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/playableintelligence/game-creator --skill add-3d-assets
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads add-3d-assets automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Performance Notes

  • Take your time to do this thoroughly
  • Quality is more important than speed
  • Do not skip validation steps

Add 3D Assets

Replace basic geometric shapes (BoxGeometry, SphereGeometry) with real 3D models. Characters get custom Meshy AI-generated models with rigging and animation. World objects get generated or sourced from free libraries.

Instructions

Analyze the game at $ARGUMENTS (or the current directory if no path given).

First, load the game-3d-assets skill and the meshyai skill for the full model pipeline, AssetLoader pattern, Meshy generation, and integration patterns.

Step 1: Get Meshy API Key

Check if MESHY_API_KEY is set. First check .env: test -f .env && grep -q '^MESHY_API_KEY=.' .env && echo "found" If found, export it with set -a; . .env; set +a and skip the prompt.

If not set, ask the user:

I'll generate custom 3D models with Meshy AI for the best results. You can get a free API key in 30 seconds:

  1. Sign up at https://app.meshy.ai
  2. Go to Settings → API Keys
  3. Create a new API key

Paste your key below like: MESHY_API_KEY=your-key-here (It will be saved to .env and redacted from this conversation automatically.)

Or type "skip" to use free model libraries instead.

Step 2: Audit

  • Read package.json to confirm this is a Three.js game (not Phaser — use /add-assets for 2D games)
  • Read src/core/Constants.js for entity types, sizes, colors
  • Read entity files (src/gameplay/*.js, src/entities/*.js) — find BoxGeometry, SphereGeometry, etc.
  • Read src/level/LevelBuilder.js for environment primitives
  • List every entity using geometric shapes
  • Identify which entity is the player character (needs animated model)

Step 3: Plan

Split entities into two categories:

Animated characters (player, enemies with AI) — generate with Meshy AI:

EntityMeshy PromptNotes
Player"a heroic knight, low poly game character, full body, t-pose"Generate → rig → animate
Enemy"a goblin warrior with a club, low poly game character"Generate → rig → animate

If Meshy unavailable, fall back to assets/3d-characters/:

  • Soldier — realistic military (Idle, Walk, Run) — best default
  • Xbot — stylized mannequin (idle, walk, run + additive poses)
  • RobotExpressive — cartoon robot (Idle, Walking, Running, Dance, Jump + 8 more)
  • Fox — low-poly animal (Survey, Walk, Run) — scale 0.02

World objects (buildings, props, scenery, collectibles) — generate with Meshy or search free libraries:

EntityMeshy PromptFallback Source
Tree"a low poly stylized tree, game asset"Poly Haven
House"a medieval house, low poly game asset"Poly Haven
Barrel"a wooden barrel, low poly game asset"Poly Haven
Coin"a gold coin, game collectible item"Sketchfab

Step 4: Generate / Download

With Meshy (preferred):

# Generate characters
MESHY_API_KEY=<key> node <plugin-root>/scripts/meshy-generate.mjs \
  --mode text-to-3d \
  --prompt "a heroic knight, low poly game character, full body" \
  --polycount 15000 --pbr \
  --output public/assets/models/ --slug player

# Rig characters for animation
MESHY_API_KEY=<key> node <plugin-root>/scripts/meshy-generate.mjs \
  --mode rig --task-id <refine-task-id> --height 1.7 \
  --output public/assets/models/ --slug player-rigged

# Generate static props
MESHY_API_KEY=<key> node <plugin-root>/scripts/meshy-generate.mjs \
  --mode text-to-3d \
  --prompt "a wooden barrel, low poly game asset" \
  --polycount 5000 \
  --output public/assets/models/ --slug barrel

Without Meshy (fallback):

# Characters — copy from library
cp <plugin-root>/assets/3d-characters/models/Soldier.glb public/assets/models/

# World objects — search and download
node <plugin-root>/scripts/find-3d-asset.mjs --query "barrel" --source polyhaven \
  --output public/assets/models/ --slug barrel

Step 5: Integrate

  1. Create src/level/AssetLoader.js — use SkeletonUtils.clone() for animated models (import from three/addons/utils/SkeletonUtils.js). Regular .clone() breaks skeleton → T-pose.
  2. Add CHARACTER to Constants.js with path, scale, facingOffset, clipMap
  3. Add ASSET_PATHS and MODEL_CONFIG for static models
  4. Update Player.js:
    • THREE.Group as position anchor
    • loadAnimatedModel() + AnimationMixer
    • fadeToAction() for idle/walk/run crossfade
    • Camera-relative WASD via applyAxisAngle(_up, cameraAzimuth)
    • Model facing: atan2(v.x, v.z) + CHARACTER.facingOffset
    • model.quaternion.rotateTowards(targetQuat, turnSpeed * delta)
  5. Update Game.js:
    • Add OrbitControls — third-person camera orbiting player
    • Camera follows: move orbitControls.target + camera.position by player delta
    • Pass orbitControls.getAzimuthalAngle() to Player for camera-relative movement
  6. Replace environment primitives with loadModel() calls + .catch() fallback
  7. Add THREE.GridHelper for visible movement reference
  8. Preload all models on startup with preloadAll() for instant loading

Step 6: Tune & Verify

  • Run npm run dev — walk around with WASD, orbit camera with mouse
  • Confirm character animates (Idle when stopped, Walk when moving, Run with Shift)
  • Adjust MODEL_CONFIG values (scale, rotationY, offsetY) per model
  • Run npm run build to confirm no errors
  • Generate ATTRIBUTION.md from .meta.json files

Example Usage

With Meshy AI

/add-3d-assets examples/space-explorer

Result: Generates custom knight model via Meshy → rigs and animates (Idle/Walk/Run) → replaces BoxGeometry player with animated GLB → adds OrbitControls camera → world props from free libraries.

Without Meshy (fallback)

/add-3d-assets examples/3d-platformer

Result: Copies Soldier.glb from character library → configures SkeletonUtils.clone() → fadeToAction animation crossfade → replaces all primitives with library/downloaded models.

Troubleshooting

Model stuck in T-pose (not animating)

Cause: Using .clone(true) instead of SkeletonUtils.clone() breaks skeleton bindings on animated GLB models. Fix: Always use SkeletonUtils.clone() from three/addons/utils/SkeletonUtils.js for any model with animations. Regular .clone() copies the mesh but not the skeleton bindings.

Meshy AI generation fails or returns low quality

Cause: Vague prompts or wrong generation mode selected. Fix: Use specific, descriptive prompts (e.g., "low-poly medieval wooden treasure chest, game asset" not "chest"). For characters, use image-to-3D mode with a reference image. Set art style to "game-asset" or "low-poly" for better game integration.

Rigging fails on generated model

Cause: The model geometry is not suitable for auto-rigging (too complex, non-manifold, or not humanoid). Fix: Simplify the prompt to produce cleaner geometry. Ensure the model is a single connected mesh in a humanoid pose. Non-humanoid models (props, vehicles) should not be rigged — use them as static assets instead.

meshopt decoder error on load

Cause: Some GLB files use meshopt compression which requires a decoder not loaded by default. Fix: Add the meshopt decoder before loading: import { MeshoptDecoder } from 'three/addons/libs/meshopt_decoder.module.js'; loader.setMeshoptDecoder(MeshoptDecoder);

Model facing wrong direction

Cause: Different model sources use different forward directions. Mixamo models face -Z, some others face +Z. Fix: Store a facingOffset per character model. Apply it as model.rotation.y = facingOffset + movementAngle. Common values: Soldier/Xbot need +Math.PI, Robot/Fox need +0.

Next Step

Tell the user:

Your 3D game now has custom models! Characters were generated with Meshy AI (or sourced from the model library), rigged, and animated. World objects are loaded from GLB files.

Files created:

  • src/level/AssetLoader.js — model loader with SkeletonUtils
  • public/assets/models/ — generated and downloaded GLB models
  • OrbitControls third-person camera

Controls: WASD to move, Shift to run, mouse drag to orbit camera, scroll to zoom. Run the game to see everything in action. Adjust MODEL_CONFIG in Constants.js to fine-tune scale and orientation.

FAQ

What does the add-3d-assets skill do?

Replace primitive 3D shapes with real GLB models — animated characters, world props, buildings, and scenery for Three.js games. Use when the user says "add 3D models", "replace the boxes with real models", "add GLB assets", or "make the 3D game look real". For 2D pixel art, use add-assets instead. Do NOT use for 2D pixel art (use add-assets) or gameplay changes (use add-feature).

How do I install add-3d-assets?

Run npx skills add https://github.com/playableintelligence/game-creator --skill add-3d-assets in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/add-3d-assets/ (personal) or .claude/skills/add-3d-assets/ (project).

Which AI agents can use add-3d-assets?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is add-3d-assets safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains add-3d-assets?

It is published by playableintelligence in playableintelligence/game-creator. It has 941 recorded installs.

More from playableintelligence/game-creator

View all →

game-designer

playableintelligence/game-creator

Game UI/UX designer that analyzes and improves the visual polish, atmosphere, and player experience of browser games. Use when a game needs visual improvements, better backgrounds, particles, animations, screen transitions, juice/feel, or overall aesthetic upgrades.

Frontend & Design1.9K installs

game-assets

playableintelligence/game-creator

Game asset engineer that creates pixel art sprites, animated characters, and visual entities for browser games. Use when a game needs better character art, enemy sprites, item visuals, or any upgrade from basic geometric shapes to recognizable pixel art.

Media & Creative1.6K installs

design-game

playableintelligence/game-creator

Audit and improve the visual design, polish, and player experience of an existing game. Use when the user says "make my game look better", "improve the design", "add polish", "add juice", "add particles", "fix the UI", or "make it more visually appealing". Do NOT use for gameplay logic changes (use add-feature instead).

Media & Creative1.4K installs

phaser

playableintelligence/game-creator

Build 2D browser games with Phaser 3 using scene-based architecture and centralized state. Use when creating a new 2D game, adding 2D game features, working with Phaser, or building sprite-based web games.

Media & Creative1.4K installs

game-audio

playableintelligence/game-creator

Game audio engineer using Web Audio API for procedural music and sound effects in browser games. Zero dependencies. Use when adding music or SFX to a game.

Media & Creative1.3K installs

game-architecture

playableintelligence/game-creator

Game architecture patterns and best practices for browser games. Use when designing game systems, planning architecture, structuring a game project, or making architectural decisions about game code.

Popular media & creative skills

View category →

hyperframes

heygen-com/hyperframes

Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.

Media & Creative1.2M installs

media-use

heygen-com/hyperframes

Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.

Media & Creative1.1M installs

hyperframes-registry

heygen-com/hyperframes

About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.

Media & Creative1M installs

hyperframes-creative

heygen-com/hyperframes

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.

Media & Creative916.5K installs

ai-video-generation

101-skills/superpowers

Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse

Media & Creative881.5K installs

ai-image-generation

101-skills/superpowers

Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image

Media & Creative880.3K installs