YantrikDB/packs
Sign in
officialyantrikdbsigned

blender-craft

yantrik/blender-craft@0.1.0·26 facts·1112 KB·5 downloads·by spranab

Blender asset craft for a model that has to produce clean, exportable geometry and write bpy scripts that survive a second run. 13 constitution rules plus 24 corpus facts on real-world scale, topology and edge flow where a mesh deforms, modifier order and what must be applied before export, normals and the Blender 4.1 auto-smooth change, UV seams and consistent texel density, material and node hygiene, naming and hierarchy, origins and transforms, glTF versus FBX and what each loses, the axis and unit traps between Blender and game engines, poly and texture budgets, what must never ship inside a .blend, and the bpy patterns that make a script idempotent instead of stacking duplicates. WRITTEN AS FLOORS, NOT ONLY CEILINGS: each do-less rule is paired with a concrete minimum stated first, and prefers a checkable number or setting to an adjective — a rule the consuming model cannot verify it has followed is not a rule. Targets Blender 4.x, and any version-sensitive claim names its version. HONEST LIMITS: the bpy API surface has NOT been executed against a live Blender build, so treat operator and property names as needing a docs check before they go into production code; the pack deliberately describes an operation in prose wherever its exact API name was uncertain rather than guessing one. No measured efficacy yet — unlike web-craft there is no before/after run behind this, so nothing here claims a number. Scope is asset production and scripting; it says nothing about sculpting workflow, simulation, compositing or animation beyond rigging floors.

covers

blender-craft real-world scale and unit setup for exportable assets · blender-craft topology: quads, n-gons, poles and edge flow where a mesh deforms · blender-craft modifier stack order and what must be applied before export · blender-craft normals, shade smooth, and the Blender 4.1 auto-smooth change · blender-craft UV seams, texel density and baking normal maps · blender-craft exporting to glTF and FBX, and the axis and scale traps · blender-craft naming, hierarchy, origins and transforms · blender-craft writing bpy scripts that are idempotent and context-free

rules this pack installs (13)

Injected on every turn while mounted. Shown verbatim — a pack's rules are public by design.

Model at real-world scale: Set the scene unit scale to 1.0 with the metric system (`bpy.context.scene.unit_settings.scale_length = 1.0`) so 1 Blender unit equals 1 meter, and model everything at true dimensions: a 1.7 m character is 1.7 units tall, a 2.0 m doorway is 2.0 units. If an asset comes out the wrong size, fix its dimensions, never its object scale, because unapplied scale poisons every downstream modifier, bake, and engine import.
Quads everywhere that deforms: Any mesh that is skinned or subdivision-bound must be 100% quads in every region that deforms; triangles are acceptable only on flat, non-deforming faces, and n-gons with more than 4 sides never appear anywhere in the mesh. Keep poles (vertices with any edge count other than 4) off joints, eye rims, and mouth rims, and route continuous edge loops around the eyes, around the mouth, and around each limb. Verify by counting face vertex counts in the mesh data: deforming regions must report zero non-quads.
Modifier stack order, and what gets applied before export: Read the stack top to bottom as evaluation order and default to: armature and other deformers first, then mirror, then bevel/boolean, then subdivision surface last. Before export, apply every modifier except armature on a skinned mesh — applying armature destroys skinning — either manually or via the exporter's apply-modifiers option. Never ship a stack whose boolean depends on a cutter object hidden somewhere in the scene.
Normals and shading: Every mesh ships with consistent outward-facing normals: run Make Normals Consistent (`bpy.ops.mesh.normals_make_consistent`) and verify with the viewport Face Orientation overlay, where zero red may be visible. Curved surfaces are shade-smooth, and hard edges in Blender 4.1+ are handled by the Smooth by Angle modifier — 4.1 removed the old Auto Smooth checkbox from mesh data, where the angle setting lived before that. Fix shading errors by correcting normals and edge splits first, not by adding geometry.
UVs and texel density: Every textured mesh gets one unwrap with all islands inside the 0–1 UV space, zero overlapping islands except deliberate mirrored duplicates, and a non-zero island margin. Pick one texel density per asset — defaults: 512 texels per meter for hero assets, 256 for background — and keep every island within ±10% of it. Verify with a checker texture: squares must appear identically sized on every part of the model.
Material and node hygiene: Every material has a meaningful name (not "Material.001"), exactly one Principled BSDF connected to Material Output, and zero unconnected or unused nodes. Before export, delete empty material slots from the mesh and purge unused materials from the file. Image nodes feeding data maps — normal, roughness, metallic — are set to Non-Color, never sRGB. Node input names move between versions — 4.0 renamed Principled BSDF "Specular" to "Specular IOR" — so a script setting inputs by name verifies them against the running build.
Naming and hierarchy: Every object, mesh, material, texture, and bone carries a unique, descriptive name without spaces (use underscores), and the finished file contains zero ".001"-style auto-suffixes — each one is an unnamed duplicate that slipped through. Group related objects into collections by purpose, and name rig bones with Blender's left/right suffix convention (".L"/".R" at the end of the name) so pose mirroring and symmetric tools work.
Origins, transforms, parenting: Each object's origin sits at its logical pivot — base for props, pelvis or center for characters — and before rigging or export every object reads rotation (0,0,0) and scale (1,1,1), applied via Object > Apply > All Transforms (`bpy.ops.object.transform_apply`). Non-uniform or unapplied scale is the leading cause of lopsided bevels, broken bakes, and distorted FBX imports, so treat any scale other than 1.0 as a defect to fix immediately.
Export format: glTF first, FBX when required: Default to glTF 2.0 binary (.glb): it is the open PBR standard, carries materials, shape keys, and vertex colors cleanly, and its Y-up convention is unambiguous. Use FBX only when the destination tool requires it. Whichever format is chosen, lock the exporter settings once per project and reuse them exactly — two export configurations produce two different assets.
Axes and units between Blender and engines: Never assume an export arrived correctly: verify in-engine that the 1.7 m character is 1.7 engine metres tall and facing the right way, first try. Handedness, up-axis and the FBX unit options differ per target — the corpus carries the mapping. An asset 100x too large is a units mismatch, not a modelling error.
Performance budgets: Every asset has a triangle budget and stays inside it; when the project does not state one, use the per-class budgets in the corpus. Texture maps are powers of two only. Clean topology under budget beats noisy detail over it.
What never ships in a .blend: Before delivery, purge orphan data (File > Clean Up, or the outliner purge button) until the orphan count reads zero, then verify: all transforms applied, zero n-gons in deforming regions, no hidden junk objects, no unused images, materials, or packed files. A shipped .blend contains the asset and only the data it uses — every orphan datablock is dead weight that re-breaks on the next import.
bpy scripts must be reproducible: Every script must produce an identical scene when run twice: before creating any object, check by name for the previous run's version and delete or reuse it instead of stacking duplicates. Operate at the data level (bpy.data objects, meshes, materials) wherever possible rather than bpy.ops, because ops depend on selection, active object, and UI context that a script does not control. Never assume scene contents — query, guard, and fail with a clear error.

evaluation notes

skills.constitution — pack installs 13 always-on rule(s); they are shown verbatim on the listing for review

install

Native client — verifies against the registry, then installs:

curl -O https://packs.yantrikdb.com/client/yantrik_pack_client.py
python yantrik_pack_client.py install yantrik-blender-craft

Manual — download first, then:

yantrikdb pack info blender-craft-0.1.0.ydbpack
yantrikdb pack install blender-craft-0.1.0.ydbpack

Verify any copy of this file, wherever it came from:

curl "https://packs.yantrikdb.com/api/v1/verify?sha256=9c21f50f4031f2145adbe4601ae3c9739022438bf4dceb60aedb7abeffbd48d8"

get it

Download 0.1.0
sha256
9c21f50f4031f2145adbe4601ae3c9739022438bf4dceb60aedb7abeffbd48d8
digest
blake3:daf7920844e30d5add1db90f9ea7bcf7350ce3f9da03f7f8d01997af7467da89
signer
98b0762e7e6341c483951c332fca9df4a1ae01cb6d882698f7a2534ddb3f86a3