feat: AI asset pipeline track, Phase 1 - #132
Open
TMHSDigital wants to merge 6 commits into
Open
Conversation
Four sub-tracks (cleanup skills, engine export presets, headless template, live-session spike) listed as upcoming and unpinned, matching existing cadence. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Standalone helpers for evaluated triangle budgets, convex hull colliders, LOD chains, and Draco-compressed glTF export. LOD duplicates the decimate helper because snippets are not a package. calc_loop_triangles is always called; tessellation is still explicit on 4.5 LTS and 5.x. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Canonical ordered cleanup for an imported generated mesh: units, transform apply, origin, normals, evaluated triangle count, decimate, collider. Composes depsgraph and bmesh skills; does not generate meshes. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Catch glTF/FBX import plus mesh work with no transform_apply and no unit check, and export of live modifiers without export_apply or evaluation_mode. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Static scan of snippets and templates so the two new rules fail on a deliberate canary, not only on good input. examples/ is excluded because pathology witnesses are intentional. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
README, CLAUDE.md, AGENTS.md, and plugin.json now list 14 skills, 8 rules, and 21 snippets so validate-counts and validate-manifest stay aligned. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 1 of the provider-agnostic AI asset pipeline track (GLB in, engine-ready out). This repo does not generate meshes. No generation vendor is referenced in the new files.
ai-mesh-cleanup: ordered cleanup sequence. Composesdepsgraph-and-evaluated-dataandmesh-editing-and-bmesh; does not replace them. Existing examples (lod-decimate-chain,collision-hull-proxy,unapplied-scale-gltf,prop-origin-transform,mesh-hygiene-audit) remain witnesses of individual contracts.decimate_to_budget.py,convex_hull_collider.py,lod_chain.py(helper duplicated; snippets are not a package),gltf_draco_export.py.validate-imported-mesh-scale,no-unapplied-modifiers-on-export.tests/check_import_export_rules.pyscanssnippets/andtemplates/.examples/is excluded because pathology witnesses are intentional.Out of scope (untouched):
ai-asset-pipeline-template/, live-session bridge, LICENSE, gallery/site.json, newexamples/entries.calc_loop_trianglesLive-run-proven (docs + runtime):
Mesh.calc_loop_triangles()is still required before readingmesh.loop_triangleson 4.5 LTS, 5.1, and 5.2. Tessellation is not implicit. Nohasattrguard; the call is unconditional, same asexamples/lod-decimate-chain/andskills/depsgraph-and-evaluated-data.Verified against:
Calculate loop triangle tessellation (supports editmode too))calc_loop_triangles().glTF axis: operator RNA exposes
export_yup, not FBXaxis_forward/axis_up. The snippet passesexport_yupexplicitly. Inspection-only of RNA via the 5.2 bundled docs; live export withexport_yup=Trueand Draco live-run-proven below.Test plan
python tests/check_import_export_rules.pypasses on snippets and templates.scratch/)blender-smoke5.2 and 4.5 jobs on this PR (CI)validate.yml/validate-counts/validate-manifest/ drift-check on this PR (CI)Evidence
Local binaries (live-run-proven)
blender --version.scratch/blender-5.2.1-windows-x64/blender.exe9e2066aef7ef).scratch/blender-5.1.2-windows-x64/blender.exeec6e62d40fa9).scratch/blender-4.5.11-windows-x64/blender.exe4db51e9d1e1e)Probe covered: evaluated triangle count via
evaluated_get/to_mesh/to_mesh_clear/calc_loop_triangles; DECIMATE COLLAPSE ratio clamp; under-budget returnsNone; convex hull collider copiesmatrix_world; LOD copies do not share the source mesh datablock; Draco glTF write withuse_selection=True,export_yup=True,export_apply=True.Full
blender-smokecatalog (53 examples) was not run locally. That claim is inspection-only until CI.Task 5 canary (live-run-proven)
Command:
Exit 1. stderr:
Clean tree (no extra paths) exits 0:
import/export anti-pattern checks passed.The two
.mdcfiles are Cursor rules; CI enforces the same anti-patterns via the static scanner. A gate that has only ever passed is not trusted; both canaries failed as required.License tracking
#131: ND terms vs documented snippet copy-and-adapt. LICENSE is not edited in this PR.