노드는 하나의 스프링 애니메이션(목표를 향해 velocity += (target - pos) * stiffness; velocity *= damping; pos += velocity)을 그대로 재사용하되, 각 노드의 target이 고정된 좌표가 아니라 "바로 앞 노드의 현재 위치"입니다. 1번 노드는 리더(마우스, 자동 경로 등)를 쫓고, 2번은 1번을, 3번은 2번을 쫓는 식으로 체인이 이어집니다.
앞 노드가 빠르게 방향을 바꾸면 뒤 노드는 그 변화를 즉시 따라가지 못하고 스프링 특유의 지연·오버슈트를 겪습니다 — 이 지연이 노드 인덱스가 클수록 누적되어, 리더의 급격한 움직임이 꼬리 끝에서는 크고 느슨한 채찍질처럼 보입니다. 각 노드의 stiffness·damping을 동일하게 두면 균일한 로프처럼, 뒤로 갈수록 stiffness를 낮추면 더 나긋나긋한 꼬리처럼 보입니다.
노드 수가 많아지면(20개 이상) 매 프레임 연산량이 선형으로 늘어나지만 각 노드는 독립적이라 위치 갱신 자체는 병렬화하기 쉽습니다 — 성능보다는 개수가 적을 때부터 "체인처럼 보이는" 최소 노드 수(보통 6~10개)를 먼저 찾는 게 관건입니다.
언제 쓰나
커서를 따라다니는 트레일, 캐릭터의 꼬리·머리카락, 로프 시뮬레이션처럼 "뒤로 갈수록 지연되는" 것이 자연스러운 대상에 씁니다. 즉시 반응해야 하는 UI 요소에는 부적합합니다.