찌르레기 떼에서 영감. 리더 없이, 이웃 셋만 보고 결정하는 개별 규칙이 거시적 무리를 만든다.
구현
- Canvas 2D · Boids 알고리즘 세 힘: 분리(너무 가까운 이웃 밀어냄) · 정렬(근처 이웃 평균 방향) · 응집(근처 이웃 중심 끌림)
- 입자 160(데스크탑) / 80(모바일) · O(N²) 페어 탐색 · rAF 60fps
- 커서 반경 90px
FLEE힘 2.6x, tap 순간 200msSCATTER_MULT2.0x 추가 - 한글 formation: 22s 간격으로 OffscreenCanvas에
숨·빛·별·길·결·새중 하나 렌더 →alpha > 128픽셀을 step=4로 샘플 → 파티클과 그리디 1:1 매칭 →GLYPH_PULL0.0022 약한 인력 · 3.8s 유지 · 1.6s 페이드 - 경계: torus wrap · 연결선:
dist² < 900인 페어만 alpha 가중치
성능
- IntersectionObserver로 뷰포트 이탈 시 rAF 정지 ·
visibilitychange로 탭 숨김 시 정지 - 테마 색은 1.5s 간격 캐시 (매 프레임
getComputedStyle회피) prefers-reduced-motion에서 formation 비활성, 순정 Boids 유지