Blender Modeling Workflow
Read the shared execution guidance once per task
for autonomous decisions, evidence cadence, and long-task continuity.
Create the asset as source-controlled Python plus generated .blend and .glb outputs. Treat the script as the durable source and Blender as the execution runtime.
For a render-only scene, route final delivery through the rendering workflow:
source, self-contained .blend, images and render manifest are sufficient.
Require GLB and fresh-import gates when a downstream asset/export is part of the
contract. Do not imply that procedural shaders, atmospheric volumes or Cycles
lighting survive a GLB export unchanged.
Establish the contract
- Resolve the exact Blender executable and record
blender --version.
- Resolve routine visual and technical choices from context and state useful
defaults. Use
$blender-agent-studio:blender-art-direction-intake when an
unresolved decision would cause substantial rework and context provides no
reasonable default, or when the user explicitly requests a brief/concept.
- Convert the request into a short modeling contract before editing:
- required parts and visible relationships;
- intended style and materials;
- intended finish quality and whether low-poly is actually requested;
- dimensions and an appropriate triangle range or performance target;
- moving parts, pivots, or required contexts;
- named stages, review evidence, and any user approval gates;
- deliverables and evidence views.
- Keep subjective goals as explicit review questions. Do not silently turn them into arbitrary geometry thresholds.
- Read references/modeling-contract.md for the contract shape.
Default to a finished-quality asset
For new subjects, follow the shared guidance's reference-gathering step before
the graybox. Write down the proportions and relationships the references imply,
then compare matching graybox views against them. A folder of images without
observations or a comparison pass does not complete the reference stage.
Treat “game-ready,” “stylized,” and “optimized” as quality constraints, not as
synonyms for visibly low-poly.
- Unless the user explicitly requests low-poly, blockout-only, voxel,
faceted, PS1-era, or an unusually strict platform budget, target a polished
smooth model with clean silhouettes, bevels or support geometry, appropriate
subdivision or curve resolution, and readable secondary and tertiary forms.
- Use the lowest density that preserves the intended finish from every
evidence view. Do not optimize away the shape language, material breaks, or
contact detail that makes the asset feel complete.
- Preserve an explicitly requested low-poly style. Do not smooth or subdivide
away intentional planar forms merely because the normal default is polished.
- A triangle ceiling is a limit, not a target. Do not celebrate being far under
budget when the result still reads as a blockout.
For characters, also use $blender-agent-studio:blender-character-workflow
and its form/fit review. Low-poly style is not an exception to plausible torso
and shoe proportions, connected garment surfaces, or fitted accessories. A
beveled box and detailed texture do not by themselves resolve a blocky form.
Work in named stages
Read references/staged-quality-workflow.md
and make the current stage explicit in progress updates and final_report.md.
For a normal finished asset, satisfy all stages' exit criteria. Adjacent stages
may share a build and review pass; a repair revisits only affected stages:
- contract and references;
- graybox and proportion;
- primary and secondary forms;
- structural refinement and production topology;
- UVs, materials, and textures;
- tertiary detail, smoothing, subdivision, and presentation polish;
- export, fresh-import validation, and final evidence.
Do not add final materials to disguise unresolved proportions or unsupported
parts. Do not call a graybox or refined blockout “finished.” If the user asks
for approval-gated iteration, stop after the requested stage, show multiple
angles, and wait for approval. Otherwise, including interactive work, perform
self-review at each relevant milestone and continue without asking.
Author for iteration
- Create one deterministic entry script. Set seeds explicitly when randomness is used.
- Start from a clean scene and name semantic parts, assemblies, materials, actions, cameras, and anchors.
- Model readable primary forms before small surface detail.
For multi-zone scenes, plan finish coverage for the whole contracted asset.
Review secondary work areas and inspectable reverse/top surfaces before
spending the remaining detail budget on the hero object. Authored-camera
beauty renders supplement the promised multiview checks.
- Give every visibly moving or functional part a plausible connection, support, guide, hinge, sleeve, rail, or parent.
- Keep important dimensions and animation frames as named constants near the top of the script.
- Preserve editable construction where useful, but evaluate modifiers before measuring exported geometry.
- Use bevel, subdivision, weighted normals, smooth shading, curve resolution,
or deliberate manual topology according to the requested style. Inspect the
evaluated result rather than assuming a modifier equals polish.
- Read references/procedural-patterns.md when implementing reusable Blender helpers.
Execute and inspect
Run Blender headlessly:
$env:BLENDER_EXECUTABLE = "C:\path\to\Blender\blender.exe"
& $env:BLENDER_EXECUTABLE `
--background --factory-startup --python .\create_asset.py
If blender is already on PATH, use it directly. The bundled MCP and
benchmark runner also accept an explicit blenderPath or --blender value.
After each coherent geometry change, regenerate the authored asset and inspect
the affected numerical invariants and low-cost views. At a quality milestone,
open multiview evidence and assess silhouette, proportion, supports,
intersections, readability, orientation, and requested details. Open individual
views at original detail when the contact sheet cannot resolve a defect.
Use $blender-agent-studio:blender-asset-validation for early fresh-import
checks when a change risks export behavior and for full final inspection and
standardized evidence. A cosmetic iteration does not require the entire export
pipeline unless it changes the exported appearance. Refine durable source and
regenerate; do not patch generated outputs manually.
For animated or articulated assets, also use $blender-agent-studio:blender-animation-workflow.
Completion gate
Do not call the model complete until:
- the source script reruns from a clean Blender process;
- generated artifacts open after fresh GLB import;
- technical gates appropriate to the task pass;
- every required stage reached its exit criteria or was explicitly excluded by
the user;
- the asset no longer reads as a blockout from any required view unless a
blockout was the requested deliverable;
- curves and broad surfaces are smooth enough for the intended view distance,
while explicitly low-poly forms retain their intentional faceting;
- materials describe the requested substances and visible UV, texture,
shading, or lighting failures are resolved;
- required parts and spatial relationships are visible from the evidence views;
- no major component reads as floating, accidental, or mechanically unexplained;
- the final response includes the source,
.blend, .glb, metrics, and rendered evidence paths.
1---2name: blender-modeling-workflow3description: Build or substantially refine reproducible Blender models through Python and the Blender CLI. Use for user requests to create meshes, props, hard-surface assets, stylized objects, assemblies, procedural geometry, game-ready GLB assets, or to iterate on a scripted Blender model from visual feedback.4---56# Blender Modeling Workflow78Read [the shared execution guidance](references/astra-workflow.md) once per task9for autonomous decisions, evidence cadence, and long-task continuity.1011Create the asset as source-controlled Python plus generated `.blend` and `.glb` outputs. Treat the script as the durable source and Blender as the execution runtime.1213For a render-only scene, route final delivery through the rendering workflow:14source, self-contained `.blend`, images and render manifest are sufficient.15Require GLB and fresh-import gates when a downstream asset/export is part of the16contract. Do not imply that procedural shaders, atmospheric volumes or Cycles17lighting survive a GLB export unchanged.1819## Establish the contract20211. Resolve the exact Blender executable and record `blender --version`.222. Resolve routine visual and technical choices from context and state useful23 defaults. Use `$blender-agent-studio:blender-art-direction-intake` when an24 unresolved decision would cause substantial rework and context provides no25 reasonable default, or when the user explicitly requests a brief/concept.263. Convert the request into a short modeling contract before editing:27 - required parts and visible relationships;28 - intended style and materials;29 - intended finish quality and whether low-poly is actually requested;30 - dimensions and an appropriate triangle range or performance target;31 - moving parts, pivots, or required contexts;32 - named stages, review evidence, and any user approval gates;33 - deliverables and evidence views.344. Keep subjective goals as explicit review questions. Do not silently turn them into arbitrary geometry thresholds.355. Read [references/modeling-contract.md](references/modeling-contract.md) for the contract shape.3637## Default to a finished-quality asset3839For new subjects, follow the shared guidance's reference-gathering step before40the graybox. Write down the proportions and relationships the references imply,41then compare matching graybox views against them. A folder of images without42observations or a comparison pass does not complete the reference stage.4344Treat “game-ready,” “stylized,” and “optimized” as quality constraints, not as45synonyms for visibly low-poly.4647- Unless the user explicitly requests low-poly, blockout-only, voxel,48 faceted, PS1-era, or an unusually strict platform budget, target a polished49 smooth model with clean silhouettes, bevels or support geometry, appropriate50 subdivision or curve resolution, and readable secondary and tertiary forms.51- Use the lowest density that preserves the intended finish from every52 evidence view. Do not optimize away the shape language, material breaks, or53 contact detail that makes the asset feel complete.54- Preserve an explicitly requested low-poly style. Do not smooth or subdivide55 away intentional planar forms merely because the normal default is polished.56- A triangle ceiling is a limit, not a target. Do not celebrate being far under57 budget when the result still reads as a blockout.5859For characters, also use `$blender-agent-studio:blender-character-workflow`60and its form/fit review. Low-poly style is not an exception to plausible torso61and shoe proportions, connected garment surfaces, or fitted accessories. A62beveled box and detailed texture do not by themselves resolve a blocky form.6364## Work in named stages6566Read [references/staged-quality-workflow.md](references/staged-quality-workflow.md)67and make the current stage explicit in progress updates and `final_report.md`.68For a normal finished asset, satisfy all stages' exit criteria. Adjacent stages69may share a build and review pass; a repair revisits only affected stages:70711. contract and references;722. graybox and proportion;733. primary and secondary forms;744. structural refinement and production topology;755. UVs, materials, and textures;766. tertiary detail, smoothing, subdivision, and presentation polish;777. export, fresh-import validation, and final evidence.7879Do not add final materials to disguise unresolved proportions or unsupported80parts. Do not call a graybox or refined blockout “finished.” If the user asks81for approval-gated iteration, stop after the requested stage, show multiple82angles, and wait for approval. Otherwise, including interactive work, perform83self-review at each relevant milestone and continue without asking.8485## Author for iteration86871. Create one deterministic entry script. Set seeds explicitly when randomness is used.882. Start from a clean scene and name semantic parts, assemblies, materials, actions, cameras, and anchors.893. Model readable primary forms before small surface detail.90 For multi-zone scenes, plan finish coverage for the whole contracted asset.91 Review secondary work areas and inspectable reverse/top surfaces before92 spending the remaining detail budget on the hero object. Authored-camera93 beauty renders supplement the promised multiview checks.944. Give every visibly moving or functional part a plausible connection, support, guide, hinge, sleeve, rail, or parent.955. Keep important dimensions and animation frames as named constants near the top of the script.966. Preserve editable construction where useful, but evaluate modifiers before measuring exported geometry.977. Use bevel, subdivision, weighted normals, smooth shading, curve resolution,98 or deliberate manual topology according to the requested style. Inspect the99 evaluated result rather than assuming a modifier equals polish.1008. Read [references/procedural-patterns.md](references/procedural-patterns.md) when implementing reusable Blender helpers.101102## Execute and inspect103104Run Blender headlessly:105106```powershell107$env:BLENDER_EXECUTABLE = "C:\path\to\Blender\blender.exe"108& $env:BLENDER_EXECUTABLE `109 --background --factory-startup --python .\create_asset.py110```111112If `blender` is already on `PATH`, use it directly. The bundled MCP and113benchmark runner also accept an explicit `blenderPath` or `--blender` value.114115After each coherent geometry change, regenerate the authored asset and inspect116the affected numerical invariants and low-cost views. At a quality milestone,117open multiview evidence and assess silhouette, proportion, supports,118intersections, readability, orientation, and requested details. Open individual119views at original detail when the contact sheet cannot resolve a defect.120121Use `$blender-agent-studio:blender-asset-validation` for early fresh-import122checks when a change risks export behavior and for full final inspection and123standardized evidence. A cosmetic iteration does not require the entire export124pipeline unless it changes the exported appearance. Refine durable source and125regenerate; do not patch generated outputs manually.126127For animated or articulated assets, also use `$blender-agent-studio:blender-animation-workflow`.128129## Completion gate130131Do not call the model complete until:132133- the source script reruns from a clean Blender process;134- generated artifacts open after fresh GLB import;135- technical gates appropriate to the task pass;136- every required stage reached its exit criteria or was explicitly excluded by137 the user;138- the asset no longer reads as a blockout from any required view unless a139 blockout was the requested deliverable;140- curves and broad surfaces are smooth enough for the intended view distance,141 while explicitly low-poly forms retain their intentional faceting;142- materials describe the requested substances and visible UV, texture,143 shading, or lighting failures are resolved;144- required parts and spatial relationships are visible from the evidence views;145- no major component reads as floating, accidental, or mechanically unexplained;146- the final response includes the source, `.blend`, `.glb`, metrics, and rendered evidence paths.