
blender-asset-qa
Mandatory review gate for any mesh or asset created or edited in Blender. Detects z-fighting (coplanar overlaps), floating/detached parts, inverted or inconsistent normals, non-manifold/open geometry, degenerate faces, duplicate verts, n-gons, unapplied scale, UV problems, bad skin weights, and renders multi-angle review sheets. Use before calling any modeling, export or delivery task done.
- Installs
- 115
- Last 24h
- +16
- Trending rank
- #6902
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/el4cteo/blender-skills --skill blender-asset-qa- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads blender-asset-qa automatically when relevant.
- 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.
Asset QA (review gate)
Never assume a generated or edited mesh is correct. Check it with numbers, then look at it.
Procedure
- Automated check, passing one asset's objects together:
scripts/qa_check.py -- --objects Body Head Hat --profile gameProfiles:game(default),render(lenient),print(watertight required),roblox(20k tris/mesh, watertight, no n-gons, ≤4 influences). - Fix every
errorsentry (table below), then re-run until"pass": true. Each warning must be either fixed or explicitly accepted, with the reason reported to the user. - Visual check, always:
- Live: MCP
lookwithmode="angles"on the targets, once inmaterial/solidshading and once inwireframe. Usexrayfor internals. - Headless:
scripts/review_shots.py -- --objects ... --mode random(one color per object, which makes detached pieces obvious), then--mode wirefor topology. Open the returned PNG.
- Live: MCP
- Report: tris per object, issues fixed, and remaining accepted warnings.
What each finding means → fix
| Finding | Cause | Fix |
|---|---|---|
zfighting A<->B | two surfaces facing the same way within --eps (1 mm) that overlap | delete the hidden duplicate, or offset ≥ 2–5 mm along the normal, or boolean/merge them |
back_to_back | faces touching with opposite normals (boxes glued face-to-face) | delete the hidden faces (wasted tris, bake artifacts) |
floating | island/object not touching any other part within --tol | move it to make contact (snap), bridge it, or join and merge. If floating is intended (sparks, UI), check it separately |
enclosed | part fully inside another, not touching (eyes, internal mechanics) | usually fine. Confirm it's intended |
inside_out_islands | closed part with normals pointing in | mesh.normals_make_consistent(inside=False) on that part |
inconsistent_normals_edges | neighbouring faces wound in opposite directions | recalc normals; if it persists, look for non-manifold seams |
nonmanifold_edges / wire_edges | >2 faces per edge, or stray edges | dissolve/delete the extra faces; delete_loose |
boundary_edges | open holes (bad for print/Roblox/bakes) | fill (fill_holes/edge_face_add) or cap |
degenerate_faces / zero_length_edges | collapsed geometry | dissolve_degenerate(threshold=1e-4) |
duplicate_verts | unwelded seams | remove_doubles(threshold=1e-4) (Merge by Distance); check UV seams after |
ngons | faces with >4 sides | triangulate/quadrangulate locally; n-gons are fine only on flat hard-surface faces that never deform |
| unapplied/negative scale | object transform | transform_apply(rotation=True, scale=True); negative scale flips normals on export |
uv_maps: 0 / zero-area UV / overlap | missing or bad unwrap | blender-retopology-uv |
| unweighted / >4 influences | skinning | blender-character-rigging (weights_check.py) |
ground_z ≠ 0 | asset floats or sinks | move the origin to the bottom and set z = 0 (props) |
Manual checks the script can't fully judge
- Silhouette and proportions at the target camera distance. Compare with references and real-world size (
ob.dimensions). - Shading artifacts: smoothing on hard edges (needs sharp edges/weighted normals), and pinching at poles on curved surfaces.
- Intersections that look wrong (a leg clipping a seat), even though they're "attached".
- Interior/hidden geometry that wastes tris (use
xray). - Deformation: pose the rig at extremes (elbow 140°, knee 150°, shoulder raised) and look for collapsing volume.
- Material assignment: every face has the intended material, with no default grey slots.
Tuning
--epsis the z-fight distance. Raise it to 0.005 for large environment scenes, and lower it to 0.0002 for tiny jewelry.--tolis the contact tolerance for detached parts. Raise it for chunky kitbash.--no-modifierschecks the base mesh. By default the evaluated (modifier) result is checked, which is what gets exported.- Above
--max-tris(300k), the z-fight and floating checks are skipped. Check high-poly sources per part instead.
FAQ
What does the blender-asset-qa skill do?
Mandatory review gate for any mesh or asset created or edited in Blender. Detects z-fighting (coplanar overlaps), floating/detached parts, inverted or inconsistent normals, non-manifold/open geometry, degenerate faces, duplicate verts, n-gons, unapplied scale, UV problems, bad skin weights, and renders multi-angle review sheets. Use before calling any modeling, export or delivery task done.
How do I install blender-asset-qa?
Run npx skills add https://github.com/el4cteo/blender-skills --skill blender-asset-qa 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/blender-asset-qa/ (personal) or .claude/skills/blender-asset-qa/ (project).
Which AI agents can use blender-asset-qa?
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 blender-asset-qa 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 blender-asset-qa?
It is published by el4cteo in el4cteo/blender-skills. It has 115 recorded installs.
More from el4cteo/blender-skills
blender-core
el4cteo/blender-skills
Foundation for any Blender 5.2+ task an agent drives - running bpy via MCP (live) or headless CLI, context overrides, locale-safe node lookup, enum discovery, 5.x API changes, verification. Use first for any Blender, bpy, .blend or 3D-asset request; routes to the specialized blender- skills.
blender-animation
el4cteo/blender-skills
Animation in Blender 5.2 - slotted/layered actions and the channelbag API, Python keyframing, F-curves, game loops, NLA clips, pose library, mocap/BVH retargeting via constraints, baking control rigs to export skeletons, root motion, per-clip export. Use for any keyframe, action, NLA, mocap, or animation-export task.
blender-export-pipelines
el4cteo/blender-skills
Export from Blender 5.2 with verified presets - Roblox (FBX/glTF, cages, R15, SurfaceAppearance), Unity (FBX, Humanoid), Unreal (FBX skeletal, Nanite, UCX), Godot/web (GLB, meshopt/Draco, WebP), USD. Scale/axes, smoothing, tangents, leaf bones, clips, batch export, post-export verification. Use whenever an asset leaves Blender.
blender-character-rigging
el4cteo/blender-skills
Character rigging in Blender 5.2 - Rigify metarig fit/generate, bone naming/roll/collections, DEF/MCH/control layers, IK/FK, robust skinning (heat + proxy fallback), weight-painting rules, correctives, engine game skeletons (Unity, Unreal, Roblox R15), rig validation and deformation stress tests. Use for armature, skinning or weights tasks.
blender-pbr-materials
el4cteo/blender-skills
Physically based materials in Blender 5.2 - metal/roughness rules, Principled BSDF inputs, color spaces (sRGB vs Non-Color), measured albedo/F0 values, texture-set auto-wiring, ORM channel packing, DirectX vs OpenGL normals, alpha modes, displacement, view transforms (AgX, Khronos PBR Neutral), engine-ready material rules. Use when creating, fixing, or exporting materials and textures.
blender-geometry-nodes
el4cteo/blender-skills
Geometry Nodes in Blender 5.2 - fields, domains, attributes, instancing, zones (simulation/repeat/for-each), closures/bundles, lists, SDF grids, node tools, baking, plus a JSON-to-node-tree builder and socket inspector. Use for scattering, procedural assets/environments, parametric tools and modifier inputs.
Popular testing & qa skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
grilling
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
migrate-to-shoehorn
mattpocock/skills
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
run-train
lllllllama/rigorpilot-skills
Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.
test-driven-development
obra/superpowers
Use when implementing any feature or bugfix, before writing implementation code
finishing-a-development-branch
obra/superpowers
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work