f8348cf0cb
Work-Package: M03-RND-WMO-RUNTIME-SCENE-PREPARER-001 Agent: sindo-main-codex Tests: post-merge WMO/facade/internal-access/manifest/docs/coordination smoke passed Fidelity: cached/live, occluder and shadow behavior preserved; asset-backed evidence pending
3.9 KiB
3.9 KiB
M03-RND-WMO-RUNTIME-SCENE-PREPARER-001
Owner
- Agent ID:
sindo-main-codex - Target: M03 Renderer Facade and Safe Extraction
- Branch:
work/sindo-main-codex/m03-wmo-runtime-scene-preparer - Worktree:
C:\Users\sindo\open-wc-worktrees\m03-wmo-runtime-scene-preparer
Outcome
Move cached/live WMO subtree preparation—recursive Mesh finalization, direct Occluders-child policy and recursive shadow enabling—from the loader into one stateless main-thread service.
Non-goals
- Change scene/prototype loading, validation, placement or attachment.
- Change WMO material refresh rules, cache versions or builder behavior.
- Change occlusion/shadow defaults or add visibility/portal behavior.
- Change queue, scheduler, ownership or shutdown lifecycle.
Paths
- Exclusive:
src/render/wmo/wmo_runtime_scene_preparer.gd,src/tools/verify_wmo_runtime_scene_preparer.gd,docs/modules/wmo-runtime-scene-preparer.md, this claim - Shared: loader, renderer module registry/specification,
RENDER.md, M03 Evidence
Contracts and data
- Cached preparation finalizes every MeshInstance3D Mesh and non-null MultiMeshInstance3D Mesh in depth-first traversal order.
- Live preparation does not cross the runtime Mesh finalizer boundary.
- Disabled occlusion removes only the direct child named
Occludersand queues it for deletion; enabled occlusion retains it. - Enabled shadows recursively set every GeometryInstance3D to ON; disabled shadows preserve existing per-node values.
- The service borrows the subtree and retains no Node or Resource.
Dependencies
- Requires: accepted WMO runtime Mesh finalizer
- Blocks: remaining loader-owned WMO scene/prototype orchestration cleanup
Verification
- Synthetic cached/live traversal, exact resource/order, occluder, shadow, invalid-input, ownership, source and bounded-timing contracts; adjacent WMO, renderer, documentation and coordination gates; checkpoint dry-run.
Documentation deliverables
- Inline API docs; module API/I/O/ownership; data-flow/sequence/dependency diagrams; adjacent renderer docs and M03 Evidence.
Status
- State: ready
- Done: implementation, verification and documentation
- Next: integrator review and merge
- Blocked by:
Handoff
- Commit:
ffed91c(render: extract WMO runtime scene preparer) - Results: preparer PASS
cases=31 iterations=1000 elapsed_ms=3.669; updated Mesh-finalizer boundary PASScases=28 iterations=1000 elapsed_ms=0.204; headless suite64/65with no unexpected failures and only the proprietary ADT placement probe unavailable withoutdata/extracted; editor parse had zero script diagnostics; checkpoint dry-run retained7/7; documentation passed with51module specifications; coordination passed with77historical expired-claim warnings. - Fidelity: cached/live preparation distinction, exact Mesh traversal order,
direct
Occluderslookup/removal and enabled/preserved shadow semantics are unchanged. No private-asset or original-client parity claim is added. - Remaining risks: recursive Resource/SceneTree mutation remains synchronous; no asset-backed WMO portal/room, visual, leak/GPU or p95/p99 evidence.
- Documentation: new full module specification with API/I/O and data-flow,
sequence/dependency diagrams; Mesh-finalizer ownership spec, renderer registry,
world-renderer source map and
RENDER.mdupdated.
- Merge:
57d0a9f(merge: WMO runtime scene preparer) - Post-merge: preparer PASS
cases=31 iterations=1000 elapsed_ms=3.486; Mesh finalizercases=28/0.199ms; all nine adjacent WMO services, shutdown, materials, facade, internal-access30, manifest7/7, documentation51and coordination passed.