Prompt file imported from akspa0/parp-tools (
.codex/prompts/wow-viewer-m2-runtime/03-animation-lighting-and-effect-runtime.md). Copyright stays with the author.
Implement or plan the wow-viewer M2 runtime slice that finishes animated runtime ownership after the first parser/evaluator baseline.
Read First
gillijimproject_refactor/memory-bank/activeContext.mdgillijimproject_refactor/memory-bank/progress.mdwow-viewer/docs/architecture/m2-native-client-research-2026-03-31.mdgillijimproject_refactor/plans/wow_viewer_m2_runtime_plan_2026-03-31.mdgillijimproject_refactor/src/MdxViewer/Rendering/MdxAnimator.csgillijimproject_refactor/src/MdxViewer/Rendering/ModelRenderer.cswow-viewer/README.mdAGENTS.md
Goal
Complete the remaining animation/runtime state that the native client treats as first-class inside wow-viewer-owned contracts:
- animated bone pose and skinned-vertex application
- applying already-evaluated scalar/texture/material/light state into a real render consumer
- model-local diffuse/emissive evaluation in the real runtime path
- residual effect/combiner runtime semantics beyond simple recipe classification
Current Validated Baseline
- external
%04d-%02d.animchoose/load and alias ready-state ownership are already real - effect-recipe classification is already real
- first-party animated block parsing/evaluation for colors, texture weights, texture transforms, and lights is already real
WowViewer.Tool.Inspect m2 inspect --time-mscan already print evaluated animated runtime state on real assets
Non-Negotiable Constraints
- Do not hide lighting/effect state inside global renderer fields.
- Do not claim particle/ribbon scene submission closure from this slice.
- Keep alias chains and readiness state explicit.
- Keep native effect/combiner names labeled as behavior-recovery evidence, not raw format terms.
- Do not widen this slice into a world-runtime refactor.
- Do not spend this slice re-planning already-landed external animation loading or inspect-only evaluator ownership as if they are missing.
What The Work Must Produce
- the exact wow-viewer contracts for animated bone/state application and runtime consumption
- the exact files that should own render-consumer application of effect recipes and lighting evaluation
- the narrowest real proof that animated state is no longer inspect-only or viewer-local
- the explicit boundary that still remains for slice 04 scene submission
Deliverables
Return all items:
- the exact animation/lighting/effect seam to implement
- why it is the right next step
- exact files to change
- exact validation to run
- what should stay out of scope
- which continuity files must be updated afterward
First Output
Start with:
- the animation/lighting/effect boundary you are assuming now
- the single first runtime seam you would land
- the narrowest proof that would make that seam real
- what you are explicitly not claiming yet
