R3F: slow lerp factor causes near-zero rotation at beat entry in headless testing — snap on beat change
R3F: passing ref.current as JSX prop gives static snapshot — animated child always invisible
R3F + Zustand: per-beat animations always static because setBeatProgress never called
React Three.js graph activity pulses kept renderer RAF loop alive indefinitely
s&box NoticePanel: uses Vector3.SpringDamped for smooth slide-in/out animation.
s&box NPC AnimationLayer: sync move/look state, compute move_direction as atan2, broadcast attack triggers
s&box animated door: sync DoorState + TimeSince, AnimationCurve easing, RotateAround pivot, host-authoritative
s&box: Driving character animations with SkinnedModelRenderer — Set parameters, IK, bone transforms, events