# W-038 Status status: done_current_scope task: 实现场景增量 ## Implemented `web/protocol/scene-delta.ts` defines revisioned node add/update/remove, active object/frame changes and mesh/material/camera/light/animation resources. `diffSceneSnapshots` emits changed node and resource fields; `applySceneDelta` rejects stale base revisions and returns sorted immutable node arrays. The native C ABI computes the same minimal delta whenever a new `.blend` is opened, and the Worker exposes it through the `delta` request after validating the envelope. The command registry covers scene/frame state, modifier switches, mesh editing, material/UV authoring, keyframes/constraints and object hierarchy operations. Each command mutates Blender Main and returns the corresponding revisioned delta through `applyCommand`. ## Accepted bounded scope SceneDelta now covers resource collections for meshes, materials, cameras, lights and animations in addition to nodes/frame/active object. Mesh payloads transfer separately so topology and attribute changes replace the associated resource envelope, while node-only changes stay in place. All declared authoring commands are Main-authoritative and covered by save/reopen. Fine- grained `MeshGeometryDelta` patches now transfer only changed byte ranges when field lengths stay stable; topology/attribute layout changes replace only the affected per-mesh envelope. The main-thread client applies patches immutably and retains unchanged mesh buffers.