번개, 산호, 눈송이는 왜 서로 닮았을까
번개, 산호, 서리, 강 하구의 가지는 재료도 크기도 전혀 다른데 모양은 이상하게 닮았습니다. 그러니 각각 복잡한 사정이 있을 거라고 생각하기 쉽습니다. 그런데 "무작위로 떠돌던 입자가 덩어리에 닿으면 붙는다"는 규칙 하나만 반복해도 이런 가지 모양이 저절로 자랍니다. 아무도 가지를 그리라고 시키지 않았는데, 바깥쪽 끝이 안쪽 틈을 가려 버리는 것만으로요. 아래 장면에서 입자 4,000개를 떨어뜨려 보세요.
모델은 이렇게 움직입니다
- 격자 한가운데에 씨앗(점·선·고리)을 놓습니다. 덩어리를 감싸는 큰 원 위에서 입자를 하나씩 출발시키면, 입자는 상하좌우로 무작위로 한 칸씩 떠돕니다.
- 덩어리에 닿으면 붙는 확률만큼의 확률로 그 자리에 붙습니다. 안 붙으면 계속 떠돌고, 너무 멀리 가면 버리고 새 입자를 내보냅니다. 100%면 닿는 즉시 붙습니다.
- 이렇게 붙은 순서대로 색을 입혔습니다(금빛이 먼저, 하늘색이 나중). 바깥으로 뻗은 가지 끝은 입자가 먼저 닿고, 안쪽 틈은 가지에 가려 잘 닿지 못해서 가지가 갈라지며 뻗어 나갑니다.
- 덩어리가 얼마나 성긴지는 프랙탈 차원 D로 재요. 반지름 r 안의 입자 수가 rD에 비례한다고 보고 로그-로그 그래프의 기울기를 구합니다. 꽉 찬 면이면 2, 가는 선이면 1입니다.
직접 돌려보기
① 입자가 떠돌다 붙어 자라는 모습
흰 점이 지금 떠도는 입자이고 꼬리는 최근 경로입니다. 흐린 점선 원이 입자를 내보내는 곳입니다. 화면은 덩어리가 자라는 만큼 저절로 넓어집니다.
② 3D로 보기: 시간을 높이로 쌓은 가지 탑 3D
위 덩어리를 그대로 가져와, 입자마다 붙은 순서만큼 높이 올려 쌓았습니다. 맨 아래가 처음 붙은 입자, 맨 위가 방금 붙은 입자입니다. 돌려 보면 탑이 위로 갈수록 바깥으로 벌어지는 깔때기 모양이에요. 나중에 온 입자일수록 안쪽 틈이 아니라 바깥 가지 끝에 붙었다는 뜻입니다. 안쪽 높은 곳이 텅 빈 것이 "바깥 끝이 안쪽 틈을 가린다"는 모습입니다. "납작하게"를 고르면 높이가 0으로 내려와 위 그림과 같은 모양이 됩니다.
위 그림과 같은 결과를 입체로 본 것입니다(새로 계산한 값 없음) · 드래그로 회전 · 휠(두 손가락)로 확대 · 위 실험의 재생·일시정지·처음부터를 따라갑니다
③ 가지가 얼마나 성긴지 재기
가로는 반지름, 세로는 그 안의 입자 수(둘 다 로그 눈금)입니다. 빨간 선의 기울기가 프랙탈 차원 D이고, 회색 점선(기울기 2)은 빈틈없이 꽉 찬 면일 때입니다. 점 씨앗은 중심에서, 선·고리 씨앗은 붙은 입자 150개 둘레에서 잰 평균이라 더 낮게 나오는 경향이 있어요.
④ 새 입자는 어디에 붙을까
가장 최근에 붙은 입자 300개가 중심에서 얼마나 떨어진 곳에 붙었는지입니다(가장 먼 끝까지의 거리를 1로). 대부분 바깥 가지 끝에 붙고 안쪽 틈은 거의 비어 있어요. 이것이 가지가 갈라지는 이유입니다.
⑤ 붙는 확률별로 얼마나 촘촘해질까
입자 1,200개를 키운 뒤, 가장 먼 끝까지를 반지름으로 하는 원 중 입자가 채운 비율입니다(점 하나가 한 번의 실행). 붙는 확률이 낮을수록 같은 입자 수로 더 작고 촘촘한 덩어리가 됩니다.
이 결과가 말하는 것, 말하지 않는 것
말하는 것:
- 덩어리의 바깥 끝에는 입자가 잘 붙고 안쪽 틈에는 거의 안 붙어서 가지가 뻗어요. 마지막에 붙은 300개 중 57%는 바깥 30%에, 안쪽 절반에는 9%만 붙었어요.
- 가지가 길어지면 끝은 더 튀어나와 더 잘 붙고, 틈은 더 가려져요. 붙는 확률이 100%일 땐 원의 9%만 채워진 성긴 모양이고, 5%로 낮추면 26%가 채워진 촘촘한 모양이에요.
- 그렇다면 모양을 보고 자란 방식을 짐작해 볼 수 있어요. 성긴 가지면 '끝만 자라는 방식'을, 촘촘한 덩어리면 '붙기 전에 안쪽까지 들어가는 방식'을 먼저 떠올려 보면 돼요.
상세 설명
말하는 것: 점 씨앗, 붙는 확률 100%, 입자 4,000개를 무작위 8번 키우면 프랙탈 차원 D는 평균 1.66(범위 1.61~1.69)이었습니다. 가장 먼 끝까지의 반지름은 평균 123칸이고 그 원의 약 9%(8.6%)만 입자로 채워졌으며, 마지막에 붙은 300개 중 57%가 바깥 30%에, 안쪽 절반에는 9%만 붙었습니다. 붙는 확률을 낮추면 촘촘해졌습니다. 4,000개를 키웠을 때 채움 비율은 100%에서 9%, 20%에서 16%, 5%에서 26%였고 반지름은 120칸에서 71칸으로 줄었으며 D는 1.66에서 1.78로 올랐습니다. 입자 수를 늘려도 D는 500개에서 1.56, 2,000개에서 1.65, 4,000개와 8,000개에서 1.66이었습니다. 선 씨앗(입자 3,000개)은 D 1.59, 고리 씨앗은 1.52로 잰 값이 더 낮았는데, 이는 다른 방법(표본 둘레 평균)으로 잰 값이라 점 씨앗과 직접 비교하기 어렵습니다.
말하지 않는 것:
- 이 시뮬레이션이 직접 보여 준 건 '끝은 자라고 틈은 가려진다'와 '붙는 확률을 낮추면 촘촘해진다'예요. 번개·산호·눈송이가 같은 원리로 자란다는 건 생각해 볼 점이고 보여 준 게 아니에요.
- '붙는 확률을 낮추면 촘촘해진다'는 입자 수가 유한해서 생긴 효과가 섞여 있어요. 아주 크게 키워도 같은지는 이 페이지에서 확인하지 않았어요.
- 실제 번개·눈송이·산호는 각자 다른 물리나 생물 과정이 있어서, 확산과 붙는 과정을 재서 모양과 견주어 봐야 해요.
상세 설명
말하지 않는 것: 이 덩어리는 번개나 눈송이, 산호를 재현한 것이 아닙니다. 비슷한 모양이 같은 원리로 생긴다는 뜻도 아니고, 눈으로 닮았다는 시각적·통계적 유추일 뿐입니다. 진짜 눈송이는 얼음 결정이 표면에서 자라는 방식 때문에 여섯 방향 대칭이고 DLA와는 다른 메커니즘이 주로 작용합니다. 진짜 번개는 전기장과 공기의 절연 파괴 물리가 있고, 산호는 생물의 성장과 해류가 얽혀 있습니다. DLA는 장난감 모델이며, 이런 현상 중 일부(전기도금, 점성이 다른 유체의 손가락 모양 침투 등)에서 비슷한 모양이 관찰된다고 알려져 있을 뿐입니다. 또 "붙는 확률이 낮으면 D가 올라간다"는 이 페이지의 결과는 입자 수가 유한해서 생기는 효과가 섞여 있습니다. 아주 크게 키우면 어느 붙는 확률에서도 같은 D에 가까워질 것으로 알려져 있지만, 이 페이지에서 확인한 것은 아닙니다. 격자 위의 단순화이므로 모양에 격자의 영향(상하좌우 방향성)이 조금 남아 있습니다.
이론적 근거와 구현 메모
- 모델의 뿌리: Witten과 Sander(1981)가 "Diffusion-Limited Aggregation, a Kinetic Critical Phenomenon"(Physical Review Letters 47, 1400)에서 제안한 확산 제한 응집(DLA) 모델입니다. 무작위로 확산하는 입자가 덩어리에 닿으면 붙어, 단순한 규칙에서 프랙탈 덩어리가 생김을 보였습니다.
- 핵심 가정과 수식: 덩어리는 한 번에 입자 하나가 무작위 걸음(확산)으로 닿아 붙으며 자랍니다. 입자가 덩어리 표면의 어느 곳에 닿을 확률은 그 둘레의 확산 농도장(라플라스 방정식의 해)이 정하는데, 튀어나온 끝일수록 닿기 쉬워 가지가 자랍니다. 크기는 M ∝ RD(질량 M, 반지름 R, 프랙탈 차원 D)로 늘어납니다. 슬라이더의 "붙는 확률"은 닿았을 때 붙는 확률이고, "입자 수"는 키울 총량입니다.
- 이 프로젝트의 단순화: 이 프로젝트는 560×560 격자 위에서 상하좌우 한 칸 걸음을 쓰고, 입자를 덩어리를 감싸는 원에서 출발시켜 더 먼 곳에서 버립니다(원 논문의 설정을 그대로 재현한 것이 아닙니다). 선·고리 씨앗과 "붙는 확률" 슬라이더는 이 프로젝트가 더한 변형입니다. 격자 때문에 방향성이 조금 남고, 입자 수가 유한해서 D가 점근값보다 낮게 나옵니다.
- 이론값과 시뮬레이션: 2차원 DLA의 프랙탈 차원은 약 1.71로 널리 알려져 있습니다(이 값을 검증하려는 문헌 값으로만 사용했습니다). 시뮬레이션에서 점 씨앗, 붙는 확률 100%, 입자 4,000개를 8번 키워 잰 D는 평균 1.66(±0.03, 범위 1.61~1.69)으로 약 0.05 낮았고, 입자가 적을수록 더 낮았습니다(500개 1.56, 2,000개 1.65, 4,000개·8,000개 1.66). 크기가 유한하고 격자 효과가 있어 점근값에 못 미치는 것으로 보입니다.
- 더 읽을거리: Witten & Sander (1981), Physical Review Letters 47, 1400. Mandelbrot, 『The Fractal Geometry of Nature』(W. H. Freeman, 1982). Vicsek, 『Fractal Growth Phenomena』(World Scientific).
- 시뮬레이션은 시드 난수(mulberry32)를 쓰고 같은 시드면 같은 결과가 나옵니다. 입자는 덩어리의 가장 먼 끝보다 6칸 바깥의 원에서 출발하고, 그 1.6배+20칸 바깥에서 버려지며, 덩어리가 반지름 160칸에 닿으면 성장을 멈춥니다.
- 프랙탈 차원은 반지름 r = 3부터 가장 먼 끝의 절반까지(1.25배씩 늘리며) 안쪽 입자 수를 세어, r ≥ 4인 점들에 최소제곱 직선을 맞춘 로그-로그 기울기입니다. 검증은
node tools/validate-dla.js로 할 수 있습니다.