blender-asset-discovery-planner
Purpose
Decide where the assets in a scene will come from before the scene planner commits to a layout. Asset acquisition decisions affect poly budget, web GLB size, licensing, and time-to-handoff. This skill produces a per-asset plan with explicit confidence labels and licensing notes — without installing tools, running Blender, or fetching anything.
This skill is BlendOps-specific (no direct analog in Anthropic Superpowers or BMad), driven by a real Blender domain need.
Quick start
- read the 8-slot brief from
intent-to-3d-brief-writer
- enumerate every asset class needed (subjects, props, environment, materials, HDRIs)
- pick a strategy per asset class (procedural / library / generative / photogrammetry)
- record license + confidence label per choice
- hand off to scene planner
When to use
- after the 3D brief is locked, before any scene plan
- when scene assets aren't trivially given (e.g. user says "shoe" but doesn't supply a shoe model)
- when poly budget / GLB size / brand-licensing constraints exist
- when planner needs to know upfront whether assets are procedural or external
When not to use
- the user supplied all assets in the brief (skip; route directly to planner)
- runtime is already executing and assets are already in the scene (route to evidence skill)
- the request is iteration on an existing scene (assets are already chosen)
Trigger phrases
- "what assets do we need"
- "where do the models come from"
- "asset plan before scene planning"
- "do we generate or import"
- "license check on assets"
Prerequisites / readiness
- 8-slot brief from
intent-to-3d-brief-writer (or equivalent)
- list of constraint slots (performance, brand, time)
- no Blender runtime required
- works in text-only mode
Input schema
Required inputs
- 8-slot brief (subject, mood, deliverables, constraints, evidence, acceptance, audience, owner)
- list of asset classes implied by the brief (e.g. "shoe model, neon lights, glossy floor, HDRI environment")
Optional inputs
- known asset libraries the user has access to (Poly Haven, Sketchfab, brand asset library)
- license preferences (CC0 only / commercial OK / brand-restricted)
- prior similar scenes to match asset choices
Assumptions to confirm
- the operator can defer fetching to a later runtime step
- license restrictions matter for the deliverable
- runtime status is
Not Run and may stay so
Output schema
Primary output
- per-asset-class plan with strategy + license + confidence
| Asset class | Strategy | Source candidate | License | Confidence | Risk notes |
|---|---|---|---|---|---|
| Hero shoe model | Generative or import | Hyper3D / Hunyuan3D / user-supplied / Sketchfab | CC0 / commercial-OK / TBD | linked-only / verified-read / unknown | poly budget |
| Floor + props | Procedural | Geometry Nodes setup | N/A | verified-read | poly budget |
| Lighting fixtures | Procedural | mesh light setup | N/A | verified-read | none |
| HDRI environment | Library | Poly Haven HDRI | CC0 | verified-read | filesize |
Secondary output
- summary of poly budget / GLB size implications
- explicit list of assets the operator must obtain before runtime
- license risk callouts
Evidence / caveat output
- runtime status:
Not Run
- artifact status:
Not Produced
- no asset is downloaded, generated, or installed by this skill
Required laws
- ../../laws/official-runtime-only.md
- ../../laws/evidence-before-done.md
- ../../laws/non-blender-user-language.md
- ../../laws/no-arbitrary-python-interface.md
Official runtime boundary
This skill does not download, generate, or install any asset. It does not run Blender, configure any MCP path, or touch the network. It produces a plan in markdown.
If the chosen strategy is "generative" via Path 2 (community ahujasid/blender-mcp integrates Hyper3D / Hunyuan3D), this skill notes that the actual generation happens in a runtime step under that path with the per-path caveats (see docs/unofficial-runtime-bridges.md).
Operating procedure
- Read the 8-slot brief.
- Enumerate every asset class implied (subjects, props, environment, materials, HDRIs, particles).
- For each asset class, pick a strategy:
- Procedural — Geometry Nodes / shader nodes inside Blender; no external asset.
- Library — Poly Haven, brand asset library, Sketchfab, user-supplied.
- Generative — Hyper3D / Hunyuan3D (Path 2-only at present); text-to-3D pipeline.
- Photogrammetry — user-supplied scan; preprocessing required.
- For each pick: record source candidate, license, confidence label (
verified-read / linked-only / unknown), and risk notes.
- Sum per-class poly / GLB-size estimates against the brief's constraints. Flag overage explicitly.
- List which assets must be obtained before any runtime step; mark license check status per asset.
- Hand off the asset plan to
product-hero-scene-planner (or relevant planner) with the brief and the asset plan as joint inputs.
Decision tree
- subject is brand-specific (e.g. exact branded shoe) → strategy must be user-supplied / library; never generative without licensing
- mood is highly specific (cyberpunk neon) → HDRI = library, color via shader procedural
- web GLB constraint < 10MB → poly budget is tight; favor procedural over high-poly imports
- iteration-loop deliverable → favor procedural (cheap to iterate)
- one-shot marketing render → import-or-generative is fine if license OK
Playbooks
- Playbook A: "Cyberpunk shoe web hero" — shoe = generative or user-supplied; floor + props = procedural; HDRI = library; budget = web-tight
- Playbook B: "Brand product render" — subject = brand library only; environment = procedural; license = brand-restricted
- Playbook C: "Iteration sketch" — everything procedural; library only for HDRI
Mode handling
Text-only mode
- plan only, no fetch / generate / install
- runtime status:
Not Run
- artifact status:
Not Produced
Runtime-ready mode
- plan stays text-only; runtime steps consume the plan
- if generative strategy chosen, route to runtime readiness checker first to confirm Path 2 (
ahujasid/blender-mcp Hyper3D / Hunyuan3D integrations) is configured
Blocked runtime mode
- plan still produced
- mark generative options blocked; favor procedural / library
Validation checklist
Pass / Warn / Fail rubric
| Category |
Pass |
Warn |
Fail |
| Asset coverage |
All implied assets listed |
1-2 missing with note |
3+ missing |
| License records |
Every asset has license entry |
Some TBD with follow-up |
Missing license entries |
| Confidence labels |
Every choice labeled |
Partial labels |
No labels |
| Budget reconciliation |
Summed and compared |
Summed without comparison |
Not summed |
| Runtime claim |
None |
None |
Asset claimed to be fetched / generated by this skill |
Failure handling
- license unknown: mark
TBD and ask user before scene planner commits
- generative strategy required but Path 2 not available: route to runtime readiness checker
- conflicting constraints (e.g. brand asset + tight web budget): surface conflict, ask user to relax one
Troubleshooting
- if the asset list is too long, group by class and propose tiered approach (essentials vs. nice-to-have)
- if the user has no preference, default to procedural-first per BlendOps
evidence-before-done (procedural is reproducible)
Best practices
- procedural-first when license / budget pressure is high
- library-second when matching mood matters
- generative as a last resort, always with explicit caveats
- never fetch from this skill
Good examples
- "Cyberpunk shoe brief. Asset plan: hero shoe = user-supplied OR generative-via-Path-2 (license = user; confidence = linked-only); floor + props = procedural; HDRI = Poly Haven (CC0; verified-read); accent neon = procedural emission shader. Poly budget: 8MB GLB target, current estimate 6MB — Pass. Generative strategy flagged with Path 2 caveat."
Bad examples
- "Just use any free shoe model from the internet, we'll figure out license later." (no source named, no license, no confidence label, license risk ignored)
User-facing response template
- Brief recap (one line)
- Asset table (markdown)
- Budget summary
- License risks called out
- Generative caveats if applicable
- Handoff: scene planner with this asset plan + brief
Anti-patterns
- fetching / downloading any asset from this skill
- skipping license entries
- claiming generative strategy works without confirming Path 2
- letting scene planner change asset strategy silently after handoff
Cross-skill handoff
- After:
product-hero-scene-planner with brief + asset plan
- If generative chosen and runtime unknown:
official-runtime-readiness-checker
- If license risk surfaces: route back to
intent-to-3d-brief-writer (slot 4 constraints)
Non-goals
- fetching / downloading / installing assets
- running Blender or generative tools
- making the scene plan
- license adjudication beyond surfacing risk
References
- BlendOps law: ../../laws/official-runtime-only.md
- BlendOps law: ../../laws/evidence-before-done.md
- BlendOps doc on Path 2 generative integrations: ../../docs/unofficial-runtime-bridges.md
- Skill system: ../../docs/skill-system.md
1---2name: blender-asset-discovery-planner3description: Plan the asset acquisition strategy (procedural, library, generative, photogrammetry) for a Blender scene without installing or executing. Use after the brief, before scene planning.4---56# blender-asset-discovery-planner78## Purpose910Decide where the assets in a scene will come from before the scene planner commits to a layout. Asset acquisition decisions affect poly budget, web GLB size, licensing, and time-to-handoff. This skill produces a per-asset plan with explicit confidence labels and licensing notes — without installing tools, running Blender, or fetching anything.1112This skill is BlendOps-specific (no direct analog in Anthropic Superpowers or BMad), driven by a real Blender domain need.1314## Quick start1516- read the 8-slot brief from `intent-to-3d-brief-writer`17- enumerate every asset class needed (subjects, props, environment, materials, HDRIs)18- pick a strategy per asset class (procedural / library / generative / photogrammetry)19- record license + confidence label per choice20- hand off to scene planner2122## When to use2324- after the 3D brief is locked, before any scene plan25- when scene assets aren't trivially given (e.g. user says "shoe" but doesn't supply a shoe model)26- when poly budget / GLB size / brand-licensing constraints exist27- when planner needs to know upfront whether assets are procedural or external2829## When not to use3031- the user supplied all assets in the brief (skip; route directly to planner)32- runtime is already executing and assets are already in the scene (route to evidence skill)33- the request is iteration on an existing scene (assets are already chosen)3435## Trigger phrases3637- "what assets do we need"38- "where do the models come from"39- "asset plan before scene planning"40- "do we generate or import"41- "license check on assets"4243## Prerequisites / readiness4445- 8-slot brief from `intent-to-3d-brief-writer` (or equivalent)46- list of constraint slots (performance, brand, time)47- no Blender runtime required48- works in text-only mode4950## Input schema5152### Required inputs5354- 8-slot brief (subject, mood, deliverables, constraints, evidence, acceptance, audience, owner)55- list of asset classes implied by the brief (e.g. "shoe model, neon lights, glossy floor, HDRI environment")5657### Optional inputs5859- known asset libraries the user has access to (Poly Haven, Sketchfab, brand asset library)60- license preferences (CC0 only / commercial OK / brand-restricted)61- prior similar scenes to match asset choices6263### Assumptions to confirm6465- the operator can defer fetching to a later runtime step66- license restrictions matter for the deliverable67- runtime status is `Not Run` and may stay so6869## Output schema7071### Primary output7273- per-asset-class plan with strategy + license + confidence7475```md76| Asset class | Strategy | Source candidate | License | Confidence | Risk notes |77|---|---|---|---|---|---|78| Hero shoe model | Generative or import | Hyper3D / Hunyuan3D / user-supplied / Sketchfab | CC0 / commercial-OK / TBD | linked-only / verified-read / unknown | poly budget |79| Floor + props | Procedural | Geometry Nodes setup | N/A | verified-read | poly budget |80| Lighting fixtures | Procedural | mesh light setup | N/A | verified-read | none |81| HDRI environment | Library | Poly Haven HDRI | CC0 | verified-read | filesize |82```8384### Secondary output8586- summary of poly budget / GLB size implications87- explicit list of assets the operator must obtain before runtime88- license risk callouts8990### Evidence / caveat output9192- runtime status: `Not Run`93- artifact status: `Not Produced`94- no asset is downloaded, generated, or installed by this skill9596## Required laws9798- ../../laws/official-runtime-only.md99- ../../laws/evidence-before-done.md100- ../../laws/non-blender-user-language.md101- ../../laws/no-arbitrary-python-interface.md102103## Official runtime boundary104105This skill does not download, generate, or install any asset. It does not run Blender, configure any MCP path, or touch the network. It produces a plan in markdown.106107If the chosen strategy is "generative" via Path 2 (community `ahujasid/blender-mcp` integrates Hyper3D / Hunyuan3D), this skill notes that the actual generation happens in a runtime step under that path with the per-path caveats (see `docs/unofficial-runtime-bridges.md`).108109## Operating procedure1101111. Read the 8-slot brief.1122. Enumerate every asset class implied (subjects, props, environment, materials, HDRIs, particles).1133. For each asset class, pick a strategy:114 - **Procedural** — Geometry Nodes / shader nodes inside Blender; no external asset.115 - **Library** — Poly Haven, brand asset library, Sketchfab, user-supplied.116 - **Generative** — Hyper3D / Hunyuan3D (Path 2-only at present); text-to-3D pipeline.117 - **Photogrammetry** — user-supplied scan; preprocessing required.1184. For each pick: record source candidate, license, confidence label (`verified-read` / `linked-only` / `unknown`), and risk notes.1195. Sum per-class poly / GLB-size estimates against the brief's constraints. Flag overage explicitly.1206. List which assets must be obtained before any runtime step; mark license check status per asset.1217. Hand off the asset plan to `product-hero-scene-planner` (or relevant planner) with the brief and the asset plan as joint inputs.122123## Decision tree124125- subject is brand-specific (e.g. exact branded shoe) → strategy must be user-supplied / library; never generative without licensing126- mood is highly specific (cyberpunk neon) → HDRI = library, color via shader procedural127- web GLB constraint < 10MB → poly budget is tight; favor procedural over high-poly imports128- iteration-loop deliverable → favor procedural (cheap to iterate)129- one-shot marketing render → import-or-generative is fine if license OK130131## Playbooks132133- Playbook A: "Cyberpunk shoe web hero" — shoe = generative or user-supplied; floor + props = procedural; HDRI = library; budget = web-tight134- Playbook B: "Brand product render" — subject = brand library only; environment = procedural; license = brand-restricted135- Playbook C: "Iteration sketch" — everything procedural; library only for HDRI136137## Mode handling138139### Text-only mode140141- plan only, no fetch / generate / install142- runtime status: `Not Run`143- artifact status: `Not Produced`144145### Runtime-ready mode146147- plan stays text-only; runtime steps consume the plan148- if generative strategy chosen, route to runtime readiness checker first to confirm Path 2 (`ahujasid/blender-mcp` Hyper3D / Hunyuan3D integrations) is configured149150### Blocked runtime mode151152- plan still produced153- mark generative options blocked; favor procedural / library154155## Validation checklist156157- [ ] every implied asset class enumerated158- [ ] strategy chosen per asset class159- [ ] source candidate named per choice160- [ ] license recorded per choice161- [ ] confidence label per choice162- [ ] poly / GLB budget summed and compared to brief constraints163- [ ] generative strategy flagged with Path 2 caveat if used164- [ ] no asset fetched / installed / generated by this skill165- [ ] runtime status remains `Not Run`166- [ ] license risks called out167168## Pass / Warn / Fail rubric169170| Category | Pass | Warn | Fail |171|---|---|---|---|172| Asset coverage | All implied assets listed | 1-2 missing with note | 3+ missing |173| License records | Every asset has license entry | Some `TBD` with follow-up | Missing license entries |174| Confidence labels | Every choice labeled | Partial labels | No labels |175| Budget reconciliation | Summed and compared | Summed without comparison | Not summed |176| Runtime claim | None | None | Asset claimed to be fetched / generated by this skill |177178## Failure handling179180- license unknown: mark `TBD` and ask user before scene planner commits181- generative strategy required but Path 2 not available: route to runtime readiness checker182- conflicting constraints (e.g. brand asset + tight web budget): surface conflict, ask user to relax one183184## Troubleshooting185186- if the asset list is too long, group by class and propose tiered approach (essentials vs. nice-to-have)187- if the user has no preference, default to procedural-first per BlendOps `evidence-before-done` (procedural is reproducible)188189## Best practices190191- procedural-first when license / budget pressure is high192- library-second when matching mood matters193- generative as a last resort, always with explicit caveats194- never fetch from this skill195196## Good examples197198- "Cyberpunk shoe brief. Asset plan: hero shoe = user-supplied OR generative-via-Path-2 (license = user; confidence = linked-only); floor + props = procedural; HDRI = Poly Haven (CC0; verified-read); accent neon = procedural emission shader. Poly budget: 8MB GLB target, current estimate 6MB — Pass. Generative strategy flagged with Path 2 caveat."199200## Bad examples201202- "Just use any free shoe model from the internet, we'll figure out license later." (no source named, no license, no confidence label, license risk ignored)203204## User-facing response template205206- Brief recap (one line)207- Asset table (markdown)208- Budget summary209- License risks called out210- Generative caveats if applicable211- Handoff: scene planner with this asset plan + brief212213## Anti-patterns214215- fetching / downloading any asset from this skill216- skipping license entries217- claiming generative strategy works without confirming Path 2218- letting scene planner change asset strategy silently after handoff219220## Cross-skill handoff221222- After: `product-hero-scene-planner` with brief + asset plan223- If generative chosen and runtime unknown: `official-runtime-readiness-checker`224- If license risk surfaces: route back to `intent-to-3d-brief-writer` (slot 4 constraints)225226## Non-goals227228- fetching / downloading / installing assets229- running Blender or generative tools230- making the scene plan231- license adjudication beyond surfacing risk232233## References234235- BlendOps law: ../../laws/official-runtime-only.md236- BlendOps law: ../../laws/evidence-before-done.md237- BlendOps doc on Path 2 generative integrations: ../../docs/unofficial-runtime-bridges.md238- Skill system: ../../docs/skill-system.md