# W-050 Status status: done_current_scope task: SceneIR adapter ViewportRenderer now tags imported meshes and lights with `userData.blenderId`, `userData.sceneNodeId` and `userData.revision`, keeps a Blender-ID object index, and exposes `applyDelta()`. Pure node visibility and transform updates mutate the existing Three object; node lifecycle changes fall back to a validated snapshot rebuild so geometry/material ownership stays correct. The adapter now performs mesh raycast selection and applies multi-selection highlights, consumes binary WBG1 mesh resources, and installs validated LOD levels with hysteresis. Resource-aware SceneDelta entries trigger a validated resource rebuild while node-only deltas update existing Three objects. The Worker keeps the previous geometry generation and emits byte-range patches or affected-mesh replacements. Objects sharing one Blender Mesh datablock are coalesced into a raycastable `InstancedMesh` with per-instance transform and selection. A capability-gated OffscreenCanvas Worker owns WebGL when requested; browsers without that capability retain the same main-thread renderer.