Current position
Target position to reach
Velocity vector (modified in place)
Spring stiffness (higher = faster)
Damping factor (higher = less oscillation)
Time step in seconds
Optionalout: Vector3Optional output vector to avoid allocation
New interpolated position
// Smooth camera follow
const velocity = new THREE.Vector3();
let cameraPos = new THREE.Vector3(0, 5, 10);
const targetPos = player.position.clone();
// In update loop
cameraPos = dampedSpringVector3(
cameraPos,
targetPos,
velocity,
8, // stiffness
4, // damping
deltaTime
);
camera.position.copy(cameraPos);
Damped spring interpolation for Vector3 values.
Smoothly interpolates a 3D vector toward a target using spring physics. Perfect for position smoothing, camera follow, or object tracking.