노이즈 흐름장 탐구
노이즈 플로우 필드(Noise Flow Field): 캔버스 위로 보이지 않는 바람이 분다면
완전히 비어 있는 캔버스를 상상해 보세요. 이제 그 위에 수천 개의 작은 입자를 올려놓고 이렇게 말합니다. '앞으로 나아가라.'
하지만 우리는 각각의 입자에게 정확히 어디로 가야 할지 일일이 지시하지 않습니다. 캔버스 전체에 보이지 않는 '바람'이 숨어 있기 때문입니다. 어떤 곳에서는 바람이 왼쪽으로 불고, 다른 곳에서는 오른쪽으로 불 수도 있습니다. 조금 더 나아가면 바람의 흐름이 휘어지기도 하죠. 어떤 곳에서는 소용돌이치고, 어떤 곳에서는 강물처럼 흐르며, 또 어떤 곳에서는 서서히 방향을 바꾸기도 합니다.
입자들은 이 '바람의 지도'를 볼 수 없습니다. 그저 자신이 위치한 곳에서 바람이 부는 방향을 따라갈 뿐입니다. 수천 개의 입자가 움직이기 시작하면, 그 뒤로 가늘고 섬세한 궤적이 남습니다.
시간이 지나면서 복잡한 패턴이 서서히 드러납니다. 그 모습은 🌬️ 바람, 🌊 흐르는 물, ☁️ 연기, 🪶 깃털, 혹은 🧵 비단처럼 보일 수도 있고, 공간을 가로질러 흐르는 보이지 않는 힘처럼 느껴질 수도 있습니다. 이것이 바로 노이즈 플로우 필드(noise flow field)입니다.
'바람 지도'를 상상해 보세요
노이즈 흐름장(noise flow field)을 이해하는 가장 간단한 방법은 처음부터 복잡한 공식을 들여다보는 것이 아닙니다. 대신, 바람 지도를 상상해 보세요.
캔버스 전체에 바람이 분다고 가정해 봅시다. 여기서는 → → → 바람이 오른쪽으로 붑니다. 옆으로 이동하면 ↗ ↗ ↗ 바람이 오른쪽 위 대각선 방향으로 불기 시작합니다. 더 이동하면 ↑ ↑ ↑ 바람의 방향이 위쪽으로 바뀝니다. 그다음에는 ↖ ↖ ↖ 다시 방향이 꺾이기 시작합니다. 캔버스 전체를 이런 화살표들로 채우면 흐름장(flow field)이 만들어집니다. 이는 캔버스 위의 모든 지점에서 흐름이 어느 방향으로 움직여야 하는지를 나타내는 지도입니다. 흐름장 안에서 입자는 그저 '바람을 따라가기만' 하면 됩니다.
이제 이 장(field) 안에 작은 입자 하나를 놓아봅시다. 입자가 바람 방향이 ↗인 지점에 도달하면 오른쪽 위로 움직입니다. 다음 단계에서는 바람 방향이 →로 바뀐 새로운 위치에 도달하여 오른쪽으로 움직입니다. 그다음 단계는 ↘이므로 오른쪽 아래로 움직이기 시작합니다. 여기서 중요한 점은, 입자 스스로는 전체 지도가 어떤 모습인지 알지 못한다는 것입니다. '내가 어디로 가고 있지?'라고 물을 필요조차 없습니다. 그저 '지금 여기 있는데, 바람이 어느 방향으로 불고 있지?'라고 확인하고 그 방향을 따라가기만 하면 됩니다.
입자가 하나뿐이라면 별다른 특별한 일은 일어나지 않습니다. 그저 움직이고, 방향을 바꾸고, 다시 움직이고, 또 방향을 바꾸는 과정을 반복할 뿐입니다.
하지만 입자 100개를 투입하면 상황이 흥미로워지기 시작합니다.
입자가 1,000개가 되면 이동 경로들이 서로 얽히기 시작합니다.
입자가 10,000개가 되면 전체적으로 유려하게 흐르는 패턴이 나타납니다.
가장 놀라운 점: 우리가 직접 선을 그리지 않았는데도 매우 자연스러워 보인다는 것입니다
최종 패턴을 보면 '수학자들이 이 곡선들을 직접 그린 걸까?' 하는 의문이 들 수도 있습니다. 하지만 정답은 '아니오'입니다. 우리는 '여기에 곡선을 그려라'라고 지시한 적조차 없습니다. 그저 입자가 이동할 위치를 정의하고 입자들이 스스로 움직이게 했을 뿐입니다. 입자가 이동하면서 뒤에 흔적을 남기는데, 수많은 입자의 흔적이 겹쳐지면서 최종 패턴이 만들어지는 것입니다.
따라서 노이즈 흐름장(noise flow field)은 흐름 선을 직접 그리는 방식이 아니라, 흐름 그 자체가 선을 만들어내도록 하는 방식입니다.
그렇다면 왜 그렇게 자연스러워 보일까요?
만약 모든 위치에서 방향을 무작위로 결정한다면, 결과는 ↗ ← ↓ → ↖ ↑ ← ↘와 같은 형태가 될 수 있습니다. 뚜렷한 패턴이 없기 때문에 입자의 움직임은 혼란스러워지고, 마치 오래된 텔레비전 화면의 '스노우(지직거리는 잡음)' 같은 모습이 될 것입니다. 하지만 노이즈 흐름장에 사용되는 '노이즈'는 단순히 완전히 독립적인 난수의 나열이 아닙니다. 이는 연속성과 부드러운 변화를 특징으로 하는 노이즈입니다. 가장 대표적인 구현 방식 중 하나가 바로 펄린 노이즈(Perlin noise)입니다. 펄린 노이즈는 인접한 위치 간에 값이 부드럽게 변하도록 생성되므로, 연속적인 흐름장을 구성하는 데 이상적입니다.
즉, 어떤 지점의 방향이 '오른쪽'이라면 인접한 지점의 방향도 대체로 '오른쪽'이 됩니다. 그다음 지점은 '오른쪽 위'로 약간 바뀌고, 더 나아가면 방향이 점차 회전하는 식입니다. 한 지점에서는 '오른쪽'이었다가 바로 다음 지점에서 '아래쪽'으로 바뀌는 것과 같은 급격한 변화는 일어나지 않습니다. 대신 방향이 점진적으로 변하기 때문에(→ → ↗ ↗ ↑ ↖ ↖ ←), 입자가 부드럽게 방향을 바꿀 수 있습니다. 이것이 바로 노이즈 흐름장이 종종 자연스럽고 유기적인 느낌을 주는 이유입니다.
도대체 '노이즈(noise)'란 무엇일까요?
이 시점에서 여러분은 이렇게 물을지도 모릅니다. '그런데 겉보기엔 꽤 규칙적인데, 왜 노이즈라고 부르나요?'
여기서 말하는 '노이즈'를 단순히 완전히 무작위적인 혼돈으로 생각해서는 안 됩니다. 펄린 노이즈(Perlin noise)는 오히려 부드럽고 연속적이면서도 무작위적인 변화에 더 가깝습니다. 예를 들어 0.41, 0.43, 0.45, 0.48, 0.52, 0.55와 같은 식이죠. 숫자는 변하지만 0.42 → 0.97 → 0.03 → 0.81처럼 갑작스럽고 급격하게 튀지는 않습니다.
따라서 이는 완전히 규칙적이지도, 완전히 무질서하지도 않으며, 질서와 무작위성 사이 어딘가에 위치합니다. 바로 이 점 때문에 자연스러운 느낌의 시각적 요소를 생성하는 데 아주 적합한 것입니다. 펄린 노이즈의 설계 목표 중 하나는 일반적인 난수(random numbers)보다 더 연속적이고 자연스러운 수치 변화를 만들어내는 것입니다.
그래서 우리는 이 노이즈를 '바람'으로 바꾸어 보았습니다.
노이즈 자체는 그저 수치값으로 이루어져 있지만, 우리는 이 값들을 각도로 변환할 수 있습니다. 예를 들어, 특정 위치의 노이즈 값 → 각도로 변환 → 방향 도출 → 화살표 생성 → 흐름장(flow field)의 일부가 되는 식입니다. 캔버스 전체에 이 계산을 적용하면 다음과 같은 흐름이 만들어집니다: 노이즈 → 방향 → 흐름장 → 입자 → 궤적 → 노이즈 흐름장.
과정 요약
전체 과정을 정리해 보겠습니다:
1단계: 부드럽게 변화하는 노이즈 필드를 생성합니다.
2단계: 노이즈를 방향 벡터로 변환합니다.
3단계: 이 벡터들이 보이지 않는 흐름장(flow field)을 형성합니다.
4단계: 흐름장이 적용된 캔버스 위에 수많은 입자를 배치합니다.
5단계: 각 입자는 현재 위치에서의 흐름장 방향을 지속적으로 확인합니다.
6단계: 입자들은 흐름장이 가리키는 방향을 따라 이동합니다.
7단계: 입자들은 이동 경로에 흔적을 남깁니다.
마지막으로, 노이즈 기반의 흐르는 듯한 흐름장 패턴이 나타납니다.
왜 어떤 때는 물처럼 보이고, 또 어떤 때는 연기처럼 보일까요?
이는 흐름장(flow field)의 규모와 움직임 양상이 달라질 수 있기 때문입니다. 흐름장이 아주 천천히 변하면 넓은 영역에서 방향이 비교적 일정하게 유지되어, 입자들이 넓고 매끄러운 흐름을 형성하게 됩니다. 반면 흐름장이 더 세밀하게 변하면 입자의 움직임이 복잡해지며, 정교하게 소용돌이치거나 서로 얽히는 패턴이 만들어질 수 있습니다. 따라서 몇 가지 매개변수만 조절해도 동일한 시스템으로 완전히 다른 시각적 효과를 연출할 수 있습니다.
중요한 매개변수 중 하나는 노이즈 스케일(noise scale), 즉 난류의 세밀함인데, 이는 쉽게 말해 '바람이 얼마나 변화무쌍한가'로 이해할 수 있습니다. 스케일이 크면 바람의 방향이 천천히 변하여 입자들이 🌊 광활한 유선(streamline)을 형성할 수 있습니다. 반대로 스케일이 작으면 바람의 방향이 더 잘게 변하여 입자들이 🌀 더 복잡하고 밀도 높은 질감을 만들어낼 수 있습니다.
또한 흥미로운 질문이 하나 있습니다. 과연 바람 그 자체도 움직일 수 있을까요? 물론입니다. 노이즈를 단순히 수평 및 수직 차원을 넘어 시간의 흐름에 따른 차원까지 확장하면, 특정 지점의 바람 방향이 매 순간 미세하게 달라질 수 있습니다. 결과적으로 흐름장 전체가 서서히 이동하기 시작하며, 입자가 계속 움직이는 동안 그들에게 영향을 미치는 '바람' 또한 변화하게 됩니다. 그 결과물은 더 이상 정지된 이미지가 아니라, 끊임없이 숨 쉬고 흐르며 진화하는 세상이 됩니다.
눈에 보이는 것은 '바람'이지만, 실제 바람은 존재하지 않습니다
입자 그 자체만 보여준다면 수많은 작은 점들 외에는 아무것도 보이지 않을 것입니다. 하지만 각 입자가 지나온 자취를 남기면 상황은 완전히 달라집니다. 입자(●)가 이동(——)하며 경로를 이어가고, 마침내 완전한 유선(streamline)이 형성됩니다. 수많은 입자의 유선이 서로 얽히며 우리가 보는 복잡하고 역동적인 흐름의 장(flow field)을 만들어냅니다. 즉, 이 작품의 궁극적인 미적 매력은 입자의 움직임과 그 자취의 축적이 결합하여 탄생하는 것입니다.
이미지 속에는 실제 바람이나 물, 연기, 심지어 물리적인 입자조차 존재하지 않습니다. 모든 것은 수학적 계산의 결과물입니다.
그럼에도 불구하고, 수많은 입자가 부드럽게 변화하는 방향장(directional field)을 따라 움직일 때, 우리의 눈은 자연스럽게 그 패턴을 하나의 '흐름'으로 인식합니다. 이처럼 수학은 움직임으로, 움직임은 자취로, 자취는 시각적 형상으로 변모하며, 그 형상은 자연 세계에 대한 연상을 불러일으킵니다.
노이즈 플로우 필드(noise flow field)는 어트랙터(attractor)와 어떻게 다른가요?
수학적 어트랙터를 이미 접해보셨다면, 노이즈 플로우 필드는 매우 색다른 경험을 선사할 것입니다.
예를 들어, 드 용(De Jong) 어트랙터는 점화식(recurrence formula)을 바탕으로 단일 지점을 반복적으로 계산하는 데 초점을 맞춥니다.
이케다(Ikeda) 어트랙터는 회전, 스케일링(크기 조절), 위치 간의 피드백을 중심으로 합니다.
로렌츠(Lorenz) 어트랙터는 3차원 동역학계와 카오스(혼돈)에 중점을 둡니다.
반면, 노이즈 플로우 필드는 점이 최종적으로 어디로 끌려가는지(수렴하는지)에 집중하지 않습니다. 대신 수많은 입자가 '보이지 않는 흐름의 장(flow field)'을 따라 어떻게 움직이는지를 강조하므로, 수학적 바람 지도(wind map)와 더 유사하다고 볼 수 있습니다.
노이즈 플로우 필드는 반드시 '끌어당기는 힘(attraction)'을 필요로 하지 않습니다. 어트랙터가 주로 시스템이 장기간 진화한 후 안정적인 구조가 형성되는 것을 강조하는 데 반해, 노이즈 플로우 필드에는 그러한 '도착지'가 없을 수도 있습니다. 입자가 단순히 앞으로 나아가다 경계에 닿으면 다시 나타나거나, 새로운 입자가 계속 생성될 수도 있습니다. 심지어 흐름의 장 전체가 시간에 따라 변할 수도 있습니다. 따라서 엄밀한 의미의 '어트랙터'라기보다는 플로우 필드 기반의 제너레이티브 아트(generative art) 시스템으로 이해하는 것이 더 적절합니다.
보이지 않는 지도
노이즈 흐름장(noise flow field)의 개념을 가장 단순한 이야기로 풀어보자면, 다음과 같이 상상해 볼 수 있습니다. 캔버스 위에 보이지 않는 지도가 있다고 가정해 봅시다. 이 지도의 모든 지점에는 화살표가 놓여 있습니다. 이 화살표들은 완전히 무작위로 배치된 것이 아니라, 완만하게 곡선을 그리며 서로 연결되어 하나의 연속적인 흐름을 만들어냅니다. 여기에 수천 개의 입자를 투입합니다. 입자들은 지도의 전체 모습을 알지 못하며, 오직 두 가지 사실만 인지합니다. 바로 '지금 내가 어디에 있는가?'와 '이곳의 바람은 어느 방향으로 부는가?'입니다. 입자들은 이 정보에 따라 움직이며 자신의 뒤로 궤적을 남깁니다. 결국, 이 입자들이 그려낸 경로들이 모여 그 보이지 않는 지도의 모습을 드러내게 됩니다.
눈에 보이는 것은 단순한 정지 영상이 아니라, 움직임이 남긴 흔적입니다. 입자의 움직임이 없다면 궤적도 생기지 않을 것입니다. 흐름장이 없다면 입자들은 어디로 가야 할지 알 수 없을 것입니다. 노이즈가 없다면 그토록 부드럽고 자연스러운 방향 전환도 일어나지 않을 것입니다. 노이즈 → 방향 → 흐름장 → 입자 → 궤적 → 노이즈 흐름장으로 이어지는 이 요소들이 결합할 때, 비로소 보이지 않던 '수학적 바람의 장(mathematical wind field)'이 우리 눈에 보이게 됩니다.
어트랙터의 세계를 계속 탐험해 보세요
어트랙터와 마찬가지로, 노이즈 플로우 필드(noise flow fields)는 '단순한 규칙으로 복잡한 시각적 세계를 창조할 수 있다'는 매력적인 개념을 보여줍니다.
매개변수를 조절해 추상적인 질감을 만드는 것을 좋아하신다면, 드 용(De Jong) 어트랙터와 클리포드(Clifford) 어트랙터를 살펴보세요.
회전, 피드백, 그리고 카오스(혼돈)에 관심이 있다면 이케다(Ikeda) 어트랙터를 탐구해 보세요.
3차원 공간에서의 독특한 움직임을 선호하신다면 아이자와(Aizawa) 어트랙터와 로렌츠(Lorenz) 어트랙터로 실험해 볼 수 있습니다.
노이즈 플로우 필드는 색다른 경험을 선사합니다. 단일 지점이 목적지에 도달하기를 기다리는 대신, 보이지 않는 지도를 따라 수천 개의 점이 함께 흘러가는 모습을 관찰하게 됩니다.
바람이나 플로우 필드, 혹은 그것들을 지배하는 수학적 규칙 자체는 눈에 보이지 않지만, 그것들이 그려내는 경로는 볼 수 있습니다. 결국 이러한 경로들이 모여 흐름이 있는 수학적 그림을 완성합니다.
또한 더 놀라운 수학적 패턴을 탐색하거나 위키백과에서 노이즈에 대해 더 읽어볼 수 있습니다.