격자의 점들이 서로 다른 사인 위상으로 움직여 밝은 결절과 빈 영역을 만드는 패턴Grid dots move with different sine phases, creating bright nodes and empty regions.
30x30 점이 주파수 비 2:3의 두 파동으로 6초 동안 움직이며 중앙에 밝은 결절과 가장자리에 빈 영역이 생긴다
주파수 비를 복잡하게 잡아 규칙이 안 보이거나, 진폭이 커서 점이 겹쳐 뭉친다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 루프 길이 | 6000ms | 4000~9000ms | 위상 한 바퀴 |
| 격자 | 30x30점 | 20x20~40x40 | 간격 48px |
| 주파수 비 | 2:3 | 2:3/3:4/1:2 | 정수비 |
| 진폭 | 8px | 4~12px | 점 이동량 |
| 점 반경 | 2~5px | 2~6px | 간섭 값에 비례 |
function draw(p){const ph=p*6.283;
for(let i=0;i<30;i++)for(let j=0;j<30;j++){
const x=240+i*48,y=60+j*32;
const v=Math.sin(i*.42*2+ph)+Math.sin(j*.42*3-ph);
ctx.beginPath();ctx.arc(x+v*4,y+v*4,3.5+v*1.2,0,6.283);ctx.fill();}}그대로 붙여 넣는다Paste as is
<배경>에 파동 간섭 격자를 만들어줘. canvas에 30x30 점을 간격 48x32px로 깔고, 각 점을 sin(i*0.84+phase)+sin(j*1.26-phase) (주파수 비 2:3)의 값 v로 v*4px 이동시키고 반경을 3.5+v*1.2px로 해. phase는 6초 동안 0에서 2π로 linear 반복. progress 순수 함수로 그려 seek 가능하게 해.
Build a wave interference grid for <target>. On a canvas, lay 30x30 dots at 48x32px spacing and displace each by v*4px where v = sin(i*0.84+phase) + sin(j*1.26-phase) (a 2:3 frequency ratio), with radius 3.5+v*1.2px. Loop phase from 0 to 2pi over 6s, linear. Draw as a pure function of progress so it is seekable.
<파일>에 wave-interference 캔버스를 구현해. 30x30점, 주파수 비 2:3, 진폭 8px, 루프 6000ms. 0초, 1.5초, 3초, 6초를 캡처해 밝은 결절과 빈 영역이 이동하는지, 0초와 6초가 같은 프레임인지 확인해.
Implement a wave-interference canvas in <file>: 30x30 dots, frequency ratio 2:3, amplitude 8px, loop 6000ms. Capture at 0s, 1.5s, 3s, and 6s to verify bright nodes and empty areas migrate and that 0s and 6s frames are identical.
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo
claude-skill:synced/39cd27d1-5d54-43b6-b557-65596e75bccb_30aab8dd-6815-4962-a41b-a684567e027b/algorithmic-art/SKILL.md)Apache-2.0