짧은 선이나 고리가 계속 길어지며 주름지고 접혀 주어진 공간을 채운다A short line or loop keeps lengthening, wrinkling and folding to fill the available space.
노드 40개의 닫힌 고리가 7초 동안 삽입 거리 8px 규칙으로 늘어나며 반발 반경 14px 안에서 주름을 만든다
반발을 약하게 해서 선이 서로 통과하거나 너무 강해서 폭발하듯 튄다. 시드 없이 실행해 매번 다른 모양이 나온다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 초기 노드 | 40개 | 30~60개 | 작은 원 고리 |
| 삽입 거리 | 8px | 6~12px | 이보다 길면 노드 삽입 |
| 반발 반경 | 14px | 10~20px | 이 안의 이웃을 밀어냄 |
| 정렬 힘 | 0.2 | 0.1~0.3 | 이웃 중점으로 당김 |
// 고정 스텝 시뮬: 16.67ms마다 step(nodes) 1회, 프레임 f의 상태는 f회 스텝의 결과
function step(n) { n.forEach((p, i) => { p.f = align(p, n[i-1], n[i+1], 0.2).add(repel(p, n, 14)); }); n.forEach(p => p.add(p.f)); split(n, 8); }
tl.to({}, { duration: 7, ease: 'none', onUpdate() { draw(stateAt(Math.round(this.progress() * 420))); } }, 0);그대로 붙여 넣는다Paste as is
<대상> 캔버스에 차등 선 성장을 넣어줘. 초기 노드 40개 닫힌 고리, 삽입 거리 8px, 반발 반경 14px, 정렬 힘 0.2, 고정 스텝 16.67ms, 시드 고정으로 7초 동안 진행해. 선은 2px 흰색이고 배경은 어두운 남색으로 해줘.
Add differential line growth to the <target> canvas. Start with a closed loop of 40 nodes, insertion distance 8px, repulsion radius 14px, alignment force 0.2, fixed step 16.67ms, fixed seed, running 7 seconds. Draw a 2px white line on dark navy.
<파일>에 differential growth 시뮬을 구현해. 노드 40, 삽입 8px, 반발 14px, 정렬 0.2, 7초(420스텝). 상태는 스텝 수로만 결정하고 60스텝마다 체크포인트를 캐시한다. 1.5초, 4초, 7초를 캡처해 선이 겹치지 않고 주름만 늘어나는지, 두 번 seek해도 같은 모양인지 확인해.
Implement a differential growth simulation in <file>: 40 nodes, insertion 8px, repulsion 14px, alignment 0.2, 7 seconds (420 steps). Define state by step count only and cache a checkpoint every 60 steps. Capture at 1.5s, 4s and 7s and verify the line never crosses itself, only wrinkles more, and seeking twice gives the same shape.
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo