Asset Pipeline
rehan-remade/universal-modder
Turn generated or hand-made art into exactly what a game engine loads.
Build a game-ready 3D asset in Blender from reference images (concept art, photos, turnarounds, sketches, screenshots) for any category, including characters, creatures, architecture, vehicles…
$ npx skills add majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install majidmanzarpour/blender-game-skills blender-image-to-3d --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/majidmanzarpour/blender-game-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/blender-image-to-3d .claude/skills/blender-image-to-3d && 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 "blender-image-to-3d" agent skill from https://github.com/majidmanzarpour/blender-game-skills/tree/main/skills/blender-image-to-3d into .claude/skills/blender-image-to-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender-image-to-3d", 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/majidmanzarpour/blender-game-skills/tree/main/skills/blender-image-to-3dType 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 majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install majidmanzarpour/blender-game-skills blender-image-to-3d --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majidmanzarpour/blender-game-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/blender-image-to-3d .agents/skills/blender-image-to-3d && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "blender-image-to-3d" agent skill from https://github.com/majidmanzarpour/blender-game-skills/tree/main/skills/blender-image-to-3d into .agents/skills/blender-image-to-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender-image-to-3d", 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 majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install majidmanzarpour/blender-game-skills blender-image-to-3d --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majidmanzarpour/blender-game-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/blender-image-to-3d .cursor/skills/blender-image-to-3d && 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 "blender-image-to-3d" agent skill from https://github.com/majidmanzarpour/blender-game-skills/tree/main/skills/blender-image-to-3d into .cursor/skills/blender-image-to-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender-image-to-3d", 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/majidmanzarpour/blender-game-skills.git --path skills/blender-image-to-3d--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 majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install majidmanzarpour/blender-game-skills blender-image-to-3d --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majidmanzarpour/blender-game-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/blender-image-to-3d .gemini/skills/blender-image-to-3d && 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 "blender-image-to-3d" agent skill from https://github.com/majidmanzarpour/blender-game-skills/tree/main/skills/blender-image-to-3d into .gemini/skills/blender-image-to-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender-image-to-3d", 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 majidmanzarpour/blender-game-skills blender-image-to-3dInstalls 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 majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/majidmanzarpour/blender-game-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/blender-image-to-3d .github/skills/blender-image-to-3d && 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 "blender-image-to-3d" agent skill from https://github.com/majidmanzarpour/blender-game-skills/tree/main/skills/blender-image-to-3d into .github/skills/blender-image-to-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender-image-to-3d", 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 majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install majidmanzarpour/blender-game-skills blender-image-to-3d --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majidmanzarpour/blender-game-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/blender-image-to-3d .opencode/skills/blender-image-to-3d && 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 "blender-image-to-3d" agent skill from https://github.com/majidmanzarpour/blender-game-skills/tree/main/skills/blender-image-to-3d into .opencode/skills/blender-image-to-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blender-image-to-3d", 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.
blender-image-to-3dBuild a game-ready 3D asset in Blender from reference images (concept art, photos, turnarounds, sketches, screenshots) for any category, including characters, creatures, architecture, vehicles…
Blender Image To 3D is an agent skill from majidmanzarpour/blender-game-skills. Build a game-ready 3D asset in Blender from reference images (concept art, photos, turnarounds, sketches, screenshots) for any category, including characters, creatures, architecture, vehicles, props, weapons and environment pieces, through gated phases with rendered evidence compared against the reference. Use this whenever a user supplies or mentions a reference image and wants a 3D model or game asset made from it (modelled, blocked out, sculpted, retopologised, textured, rigged, animated or exported for a…
Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including scripts, reference files and assets (for example `assets/build_template.py`, `evals/evals.json` and `references/blender-5-notes.md`).
It sits in Game Development, covering Game assets and audio, Game development and 3D graphics and WebGL. It works with Blender. The repository describes itself as: Claude Code agent skills for game dev in Blender. Turn concept art into rigged, game-ready 3D assets, measured against your references. The licence is MIT.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f0ef293. 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 8 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.blender.orgFrom 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.
Blender Image To 3D loads about 5.7k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 192 tokens; SKILL.md has 2,769 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); the scripts in this folder are not scanned.
The full file from majidmanzarpour/blender-game-skills at commit f0ef293, republished under its MIT licence (© majidmanzarpour). 2,769 words, ~5,653 tokens.
.claude/skills/blender-image-to-3d/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.Turn one or more reference images into a delivered game asset by moving through gated phases. Every gate is passed with rendered evidence compared to the reference from the same camera and at gameplay pixel size, never by looking at the viewport and deciding it seems fine. Most wasted work in this pipeline is detail added on top of wrong proportions, so nothing gets detail until its silhouette passes.
"Perfect" here has a definition: the acceptance checklist in
references/delivery-and-acceptance.md passes, the compare sheets show no measured deviation
above the phase tolerance, and every dimension or side that the reference did not show is listed
as inferred. Say so when a single image forces inference; do not present a guessed back as fact.
blender --background --python <script> -- <args>.
Blender 5.x changed several APIs these builds touch; references/blender-5-notes.md lists them
with runtime, baking and review lessons.
Resolve the binary once: $BLENDER_BIN, then blender on PATH, then
/Applications/Blender.app/Contents/MacOS/Blender. Workbench renders need no GPU on macOS or
Windows; on a headless Linux box without a GPU, pass --engine cycles to review_render.py.exec(open(path).read()) a script and call its
functions instead of the command line.<asset>/build/NN_<phase>.py, copied from
assets/build_template.py. Each script opens the master, deletes what it owns, rebuilds it,
saves. Rerunning any phase is safe. Constants are measured metres with a comment naming the
reference view they came from, or # inferred.-- --help):| Script | Purpose |
|---|---|
scripts/init_master.py | master .blend: units, collections, calibration proxies, reference planes at real scale, game camera |
scripts/review_render.py | clay / silhouette / wire / checker / material renders from fixed views, the reference-matched camera, gameplay pixel size, turntables, posed frames |
scripts/compose_review.py | compare sheet (reference, render, overlay, gameplay strip) plus silhouette IoU and width-profile numbers; plain Python with Pillow |
scripts/world_gate.py | world-registered silhouette IoU for orthographic reference views: the camera covers the reference matte's exact world window, so scale and placement errors count |
scripts/validate.py | topology, transforms, UVs, weights, armature, sockets, colliders, naming, tri budget; exit 1 on FAIL |
scripts/bake_maps.py | normal and AO from HIGH to LOW, base colour, roughness, metallic; rebuilds delivery materials |
scripts/export_delivery.py | GLB/FBX export with asset-manifest.json and animation-contract.json |
scripts/roundtrip.py | imports the export into a blank Blender, reports what arrived, renders a check |
Read references/categories.md for the asset's category before Phase 0. Read
references/rigging-animation.md before Phase 6 and references/delivery-and-acceptance.md
before Phases 1, 5 and 9. Read references/blender-5-notes.md when a script fails on a 5.x API or
before long renders and bakes.
review_render.py with --ref-cam AZ EL LENS (estimated in Phase 0) plus
front,side,threequarter, in the mode the phase asks for, with --gameplay-px set to the
subject's on-screen height in the game (default 128).compose_review.py --measure against the reference view that matches the camera. Read the
sheet and the numbers. Look at the images; the numbers catch drift the eye forgives.
compose_review aligns the two silhouettes by their bounding boxes, so it cannot see a model
that is too short or off its axis. For orthographic sheets, also run world_gate.py on
cleaned reference mattes (labels, rulers, floor lines and anything the model does not include
erased) and hold that number to the phase tolerance. When the reference's own views disagree
(a cape wider in the front view than in the back view), record the conflict and the per-view
ceiling as a deviation instead of chasing both.review/ for them. If the user reviews in a live viewport, reload the master there after
each rebuild: anything hidden only for rendering (a mannequin under the costume) still shows
in their view.Tolerances: blockout IoU 0.85 and every band width within 0.05 of the reference (0.90 and 0.03 for forms); proportions within 5 percent (blockout) and 2 percent (forms) on the measurements listed in the brief; materials pass when each role reads correctly under the moving light of a material turntable and in greyscale at gameplay size.
Look at every supplied image before touching Blender. Write <asset>/asset-brief.md in this
exact structure:
ASSET prefix and name (CH_, CR_, AR_, VH_, PR_, WP_, EN_)
CATEGORY character | creature | architecture | vehicle | prop | weapon | environment, plus subtype (biped, quadruped, winged, wheeled, tracked, modular kit, hinged prop)
VIEWS per image: view type (front, side, back, top, three-quarter, concept), estimated camera azimuth, elevation, lens (0 = orthographic), how much of the image height the subject fills, where the ground line sits
SCALE real size along each axis with the evidence (human height, door, wheel, brick course, weapon grip); state the number used
PROPORTIONS 8 to 15 ratios measured in the image that the blockout gate will check (head heights, shoulder width to height, wheelbase to length, storey height to width)
PARTS every part in construction and overlap order; for each: separate object yes/no, rigid/deforming/simulated, attaches to, moves about (pivot)
SILHOUETTE the 3 to 5 features that make it read at gameplay size
MATERIALS per part: role (skin, scales, worn leather, painted metal, carved stone, glass), colour, roughness range, wear pattern
ARTICULATION rig family, joints or pivots, sockets needed, animation needs (none / idle only / full library)
INFERRED every side, dimension or part the images do not show and the prior used to fill it
TARGET engine, export format, budget tier from the table, game camera (elevation, distance, lens), subject height in pixels at typical gameplay distanceAsk the user only for what the images cannot tell: target engine and format, real size when no scale cue exists, budget tier, whether rigging and animation are needed, the game camera. Offer these defaults and proceed with them when the user says to just go: 1 unit = 1 m, Z up in Blender with the subject facing -Y, GLB export, standard tier from the budgets table, a three-quarter overhead camera at 50 mm, 128 px subject height, rig only if the category deforms, no animation unless asked.
Keep every reference as a file in <asset>/ref/ under a descriptive name before Phase 1: the
scripts load references from disk, and images pasted into the conversation arrive as temporary
files, so copy them there first.
Multi-image references: any number of images can come in one request. Mark which views are
orthographic sheets (measure from these) and which are perspective concepts (silhouette and
detail only, never proportions). Conflicting images: the orthographic sheet wins for dimensions,
the concept wins for surface detail; say which was used where. One image can also hold several
views (a turnaround or model sheet with front, side and back panels and detail callouts): give
each panel its own VIEWS entry with its pixel box, crop the orthographic panels into separate
files that share one scale and ground line (ref/front.png, ref/side.png, ref/back.png) for
init_master.py and the gates, and use the callouts for surface detail. Photographs: estimate the lens from perspective convergence (long lens for
telephoto product shots, 24 to 35 mm for phone photos), and match it in --ref-cam.
For a request covering several assets, run one asset per category through all phases first (one character, one creature, one kit piece, one vehicle), get those approved, then apply the proven scale, rig, material and export rules to the rest. Each role still gets its own forms and motion; a shared rig family does not mean shared proportions.
Decide the canonical unit before any modelling and keep it: 1 unit = 1 m, Z up, -Y forward, origin at the ground contact point (ground centre for vehicles, grid corner for kit pieces). If the target game uses other logical units, choose once between converting every dependent value (movement speed, reach, cell size, colliders, camera offsets) with a documented factor, or mapping only at the render boundary. Never shrink the asset alone while gameplay metrics stay in old units.
The commands in this file use an illustrative 1.85 m knight (CH_Knight, Unity); take every
asset-specific value (name, height, camera, budget, engine, inferred list) from the brief.
$BLENDER_BIN --background --python scripts/init_master.py -- \
--out CH_Knight/CH_Knight_master.blend --name CH_Knight --height 1.85 \
--ref-front ref/front.png --ref-right ref/side.png --ref-extra ref/concept.png \
--subject-frac 0.88 --ground-frac 0.04 --cell 2.0 --cam-elev 50 --cam-az 30 --cam-dist 12 --cam-lens 50This writes the collections (REF, HIGH, LOW, RIG_CTRL, RIG_DEF, COLLISION, SOCKETS, EXPORT), a ruler at the target height with metre ticks, a grid cell, door clearance, a collision capsule, the game camera, and the reference images as standing planes at real scale with their ground line on z = 0. Every asset passes through this calibration; a hero, an enemy and a doorway that were never in the same file at the same scale will not fit each other in the engine.
Naming from references/delivery-and-acceptance.md: CH_Knight_Body_LOD0, DEF-upper_arm.L,
SOCKET_hand.R, COL_torso, CUT_window. No .001 names in anything that ships.
Build build/02_blockout.py from the template. Primary masses only: torso, head, pelvis and
limbs as simple volumes; body shell, wheels and cabin for a vehicle; floor, walls, roof and
openings for a kit piece. Hands, feet, jaw, horns, wings, doors, turrets and other appendages
are separate rough objects from the start. Joint centres and pivots are placed now, at the
positions the brief measured, because everything later hangs off them.
Check weight and balance: feet and hips that can support the mass, a forward driving line for a runner, a ribcage and pelvis for a quadruped, a neck and wing root that can carry the intended action, wheels under the mass of a vehicle. Add costume, armour, cladding and panels as distinct volumes. Check weapon reach, hand clearance, door swing and the silhouette in the most extreme pose or state the asset will hit (attack, crouch, turn, full steering lock, door open).
Gate in clay and silhouette modes, LOW collection, --show-ref once to confirm scale against
the ruler. The category must read from the game camera without texture, particles or labels.
For multi-asset work, render the greybox lineup at relative scale and check that roles differ
in shoulder width, head shape, posture and stance, not only colour.
$BLENDER_BIN --background --python scripts/review_render.py -- --blend CH_Knight/CH_Knight_master.blend \
--out CH_Knight/review/02_blockout --collections LOW --views front,side,threequarter \
--ref-cam 35 12 50 --mode clay --gameplay-px 128
python scripts/compose_review.py --ref ref/front.png --render CH_Knight/review/02_blockout/clay_front.png \
--out CH_Knight/review/02_blockout/compare_front.png --measure --gameplay-px 128build/03_forms.py. Order: primary anatomy or body masses, then secondary forms (cloth masses,
armour construction, panel breaks, mouldings), then tertiary detail (folds, damage, rivets,
pores, weave) last and only at a scale that survives the texture resolution and the game camera.
Large random noise hides form and shimmers at distance.
Organic: join the blockout into a fused base (voxel Remesh at about 1/200 of the height) in HIGH
and shape it with push, or keep the skin-chain base and refine its radii and joint positions.
Hard surface: loft, extrude, spin and cut with real panel gaps, plate thickness and bevels that
catch light. Model the real overlap order for layered parts. Eyes, teeth, claws, horns, glass,
lights and membranes stay separate where they need independent shading, deformation or
articulation; consolidate only the export copy.
Keep the complete underlying body or hull in the master even where a costume or panel covers it; author coverage cuts on the export copy and test every equipment combination for holes.
Characters: references/categories.md section 2 covers faces fitted to calibrated blueprints,
hands, the neck join, armour fitted to the garment underneath, and strand hair colliders and
shading. Review close-ups of the neck, hands and every armour overlap from several angles with
everything the viewport shows; check clearances with mesh overlap tests.
Gate: clay from the reference camera and all fixed views, forms tolerance, plus a --turntable 8
clay pass. The silhouette at gameplay size must still match Phase 2; if forms shifted it, fix the
forms, not the reference.
build/04_topology.py produces the LOW delivery meshes over the approved forms. Place topology
where silhouette, joint bending, facial movement, cloth folding, panel edges or material
boundaries need it. A uniform remesh of a sculpt is not deformation topology (Blender retopology
notes: https://docs.blender.org/manual/en/latest/modeling/meshes/retopology.html). Practical route:
a clean base cage with loops at every joint (a skin-chain mesh at Subdivision 1 already has
them), Shrinkwrap to the HIGH form, Subdivision 1, then edit loops at joints and creases.
Rigid parts and rubble can use controlled Decimate; hero shoulders, hands, faces, hinges and
simulated cloth get deliberate loops.
Quads in the source, triangulated delivery; lock the triangulation before baking so shading does
not change later. Run the cleanup: doubles, stray islands, zero-area faces, flipped normals,
overlapping interior shells. Open boundaries are fine on cloth sheets, hair cards and decals;
collision proxies must be closed. Build LOD1 and LOD2 now with lod_copy and fix their outlines
by hand, keeping head, shoulder, weapon, wheel and doorway silhouettes.
Gate: validate.py with the budget tier's tri count (exit 0, warnings explained), wire mode
render of LOW, and a clay compare against Phase 3 renders showing no silhouette loss.
$BLENDER_BIN --background --python scripts/validate.py -- --blend CH_Knight/CH_Knight_master.blend \
--collections LOW,COLLISION,SOCKETS --out CH_Knight/review/04_validate.json --budget-tris 60000 --require-uvbuild/05_materials.py. Seams where construction and visibility support them; unique space for
faces, focal costume, hero surfaces; trims and tiles for repeated edges and large surfaces;
atlases for small props; one texel density per asset family. Check distortion with the checker
render at joints, hems, face and grip. Inspect padding at the lowest useful mip.
Author original materials in Blender (procedural or painted) starting from the role named in the brief: skin, dry bone, woven cloth, worn leather, corroded metal, painted steel, carved stone, glass. Roughness ranges that match the role; edge wear that follows construction and contact, not a white outline around every edge; no baked directional lighting in base colour. Then bake the portable set and rebuild the delivery materials:
$BLENDER_BIN --background --python scripts/bake_maps.py -- --blend CH_Knight/CH_Knight_master.blend \
--low LOW --high HIGH --res 2048 --maps normal,ao,basecolor,roughness,metallic \
--out CH_Knight/textures --extrusion 0.02 --ray-dist 0.05 --margin 16 --samples 64 \
--match-by-name --rebuild-material --save CH_Knight/CH_Knight_baked.blendBake by named group where projections cross onto neighbours (teeth, layered garments); keep
transparent shells (corneas, visors, glass) out of the sources with --exclude-sources. LOD0 is
baked; LOD1 and LOD2 reuse its material and maps (they came from lod_copy, same UV layout).
Pass --all-lods only when a LOD has its own UVs. Document colour space per map, normal-map
green convention and any channel packing in the manifest.
Gate: material mode render with --turntable 12 (moving light across the surface), greyscale
compare at gameplay size, checker render clean at the joints. Hard edges and UV seams inspected
in the normal-mapped turntable.
Skip only for static props and kit pieces without moving parts. Otherwise build/06_rig.py:
deformation skeleton in RIG_DEF from the rig family in references/rigging-animation.md,
controls in RIG_CTRL, real pivots for every hinge, wheel, door and turret, sockets in SOCKETS
with the axis convention (+Y forward of the attachment, +Z up). Bind every deforming piece to the
same skeleton, normalise weights, four influences per vertex as the delivery target, rigid armour
to one bone. Apply scale and rotation before binding; never apply an Armature modifier as
cleanup.
Gate: extreme-pose sheet (review_render.py --action <pose_action> --frame N for every pose the
reference file lists), all separate parts visible together; validate.py shows no unweighted
or over-influenced vertices; each socket tested with its real attachment in at least one pose.
Only for garments, chains, tails, wings, cables, tracks or antennae that the brief marked as
simulated or secondary. Follow section 6 of references/rigging-animation.md: separate render,
simulation and collision representations, pinned attachment areas with real clearance, one owner
per vertex's motion, a bone-chain fallback. Gate: posed renders in the extreme poses show no
body or weapon penetration, and the fallback chain alone still reads as the same garment.
Only when requested. build/08_anim.py or the live session. Named Actions with deliberate
ranges, loop flags and pose markers for events; in-place locomotion tagged with its speed;
upper-body layers with a reference pose and mask; bake IK to the deformation skeleton for
delivery and keep the unbaked master. Gate: each clip rendered as a short turntable-free sequence
at the game camera, loop seams checked for root drift and pops, event timings read back from
animation-contract.json.
Export the explicit selection (LOW, RIG_DEF, SOCKETS, COLLISION) with the manifest, then import it into a blank Blender and compare against the manifest. Nothing from REF, HIGH or RIG_CTRL ships.
$BLENDER_BIN --background --python scripts/export_delivery.py -- --blend CH_Knight/CH_Knight_baked.blend \
--out CH_Knight/exports --name CH_Knight --format GLB --split-lods \
--inferred "back of cloak from symmetry, sole tread generic" --engine unity
$BLENDER_BIN --background --python scripts/roundtrip.py -- --file CH_Knight/exports/CH_Knight.glb \
--out CH_Knight/review/09_roundtrip --expect-height 1.85Gate: roundtrip exit 0 (tri counts per LOD, bone names, clip lengths, images all match the manifest; height within 1 percent; nothing below the ground plane), and the roundtrip clay render matches the Phase 3 clay render. Then import into a clean project of the target engine if one is available and play every clip with the real weapon or garment combination.
Run the checklist in references/delivery-and-acceptance.md section 4. Produce
review/final/: the compare sheets from the reference camera and fixed views, the gameplay-size
greyscale strip, the material turntable, the extreme-pose sheet, validate.json and roundtrip.json.
Report to the user in this order: what matches, the measured deviations that remain, everything
inferred without reference coverage, budgets used versus the tier, and the exact files delivered.
Do not describe the asset as matching the reference where a measurement says otherwise.
© majidmanzarpour, 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 14 other files (scripts, references, assets) in skills/blender-image-to-3d of majidmanzarpour/blender-game-skills.
Open the folder on GitHubat commit f0ef293
Blender Image To 3D 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 |
|---|---|---|---|---|---|---|
| Blender Image To 3D this skillmajidmanzarpour/blender-game-skills | 135 | — | ~5.7k | Automated safety check: Pass | MIT | |
| Asset Pipelinerehan-remade/universal-modder | 6.5k | — | ~2k | Automated safety check: Pass | MIT | |
| Text To 3D AssetLaurentiuGabriel/unreal-game-assets-creation-skill | 148 | — | ~2.1k | Automated safety check: Pass | None | |
| Tripo 3Dcalesthio/generative-media-skills | 197 | — | ~5.1k | Automated safety check: Pass | MIT | |
| Blender Web Export Pipelinefreshtechbro/claudedesignskills | 1k | — | ~4.2k | Automated safety check: Pass | MIT | |
| Pneuma Lucidpandazki/pneuma-skills | 161 | — | ~4.6k | Automated safety check: Warn | MIT |
rehan-remade/universal-modder
Turn generated or hand-made art into exactly what a game engine loads.
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.
calesthio/generative-media-skills
Produce 3D assets with Tripo (tripo3d.ai / Tripo AI by VAST) through its OpenAPI and Studio platform — text-to-3D, image-to-3D, and multiview-to-3D generation; PBR texturing; auto-rigging and preset…
freshtechbro/claudedesignskills
Exports and optimizes Blender 3D models and animations for the web as glTF, covering batch Python scripting, texture baking, decimation and LOD generation for Three.js and Babylon.js.
pandazki/pneuma-skills
Pneuma Lucid Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.
arjun988/blender-skills
Plans and coordinates Blender asset work by analyzing the request, setting budgets and export format, and routing to specialist skills, including reference-image matching.
Works with
Categories
Build a game-ready 3D asset in Blender from reference images (concept art, photos, turnarounds, sketches, screenshots) for any category, including characters, creatures, architecture, vehicles…. Blender Image To 3D is an agent skill from majidmanzarpour/blender-game-skills. Build a game-ready 3D asset in Blender from reference images (concept art, photos, turnarounds, sketches, screenshots) for any category, including characters, creatures, architecture, vehicles, props, weapons and environment pieces, through gated phases with rendered evidence compared against the reference.
Blender Image To 3D fits situations like: tasks that involve Game assets and audio; tasks that involve Game development; tasks that involve 3D graphics and WebGL.
Run `npx skills add majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a claude-code`. Or copy the skill folder (skills/blender-image-to-3d in majidmanzarpour/blender-game-skills) into .claude/skills/blender-image-to-3d in your project. Claude Code loads it when a task matches its description.
Run `npx skills add majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a codex`. Or copy the skill folder (skills/blender-image-to-3d in majidmanzarpour/blender-game-skills) into .agents/skills/blender-image-to-3d 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 majidmanzarpour/blender-game-skills --skill blender-image-to-3d -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blender-image-to-3d, .gemini/skills/blender-image-to-3d, .github/skills/blender-image-to-3d and .opencode/skills/blender-image-to-3d in your project.
Going by SKILL.md and its folder, Blender Image To 3D needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: docs.blender.org. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Blender Image To 3D is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.7k tokens (SKILL.md is roughly 23k 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 11k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Blender Image To 3D: Asset Pipeline (rehan-remade/universal-modder, 6.5k stars), Text To 3D Asset (LaurentiuGabriel/unreal-game-assets-creation-skill, 148 stars), Tripo 3D (calesthio/generative-media-skills, 197 stars) and Blender Web Export Pipeline (freshtechbro/claudedesignskills, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
majidmanzarpour (a GitHub user) maintains it in majidmanzarpour/blender-game-skills, which has 135 GitHub stars. The repository was last updated on September 24, 2026.
Source: majidmanzarpour/blender-game-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.