The footprint polygon uses `rotateVec` (R(-angle)) but the sprite was drawn via SVG `rotate(+angle)`, so image and box counter-rotated and diverged by 2x the item's rotation in the 2D floorplan. Negate the image rotation so the sprite tracks its box (and the 3D orientation). Scoped to items — the only emitter of the `image` floorplan geometry kind. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>