소행성을 몇 년 전에 살짝 밀면 지구를 비껴갈까?
소행성이 지구로 온다면, 커다란 로켓으로 세게 밀어내야 할 것 같지요. 그런데 이 모델에서 미는 세기는 1초에 1cm 빨라지게 하는 정도, 걷는 속도보다 훨씬 느립니다. 이렇게 작은 밀기로 정말 지구를 비껴가게 할 수 있을까요? 비결은 세기가 아니라 언제 미느냐에 있을지도 모릅니다. 가상의 소행성을 만나기 10년 전, 1년 전, 한 달 전에 밀어 보세요.
모델은 이렇게 움직입니다
- 태양 둘레를 가상의 지구가 1년에 한 바퀴, 동그란 궤도로 돕니다. 가상의 소행성은 길쭉한 궤도(기본: 한 바퀴 1.66년, 태양에서 0.84~1.96배 거리, 6° 기울어짐)로 돌다가 20년째에 지구와 정확히 같은 자리에 오도록 만들었습니다. 밀지 않으면 지구 한가운데로 옵니다.
- 지구와 만나기 몇 년 전(리드 타임)에 소행성의 속도를 조금(밀기 세기, cm/s) 바꿉니다. 미는 방향은 셋 중 하나입니다: 나아가는 방향으로, 옆으로(태양 쪽), 위로(궤도면 밖). 그 뒤에는 태양의 중력만 받으며 날아갑니다.
- 지구 곁을 지날 때 지구 중심에서 가장 가까이 온 거리를 지구 반지름으로 잽니다. 이 모델은 지구 반지름 2개보다 멀리 지나가면 비껴감, 1~2개면 아슬아슬, 1개보다 가까우면 부딪힘으로 봅니다(이 기준은 이 프로젝트가 정한 것).
- 계산은 지구 궤도 반지름을 1, 1년을 1로 놓은 단위로 하고, 화면에서는 알기 쉽게 지구 반지름과 cm/s로 바꿔 보여 줍니다(지구 궤도 반지름 = 지구 반지름 23,481개, 지구 공전 속도 = 29.78 km/s로 환산). 실제 소행성이나 실제 위험을 계산한 것이 아닙니다.
직접 돌려보기
① 태양계에서 지구 곁까지 3D
처음에는 태양계 전체를 봅니다. 노란 화살표가 미는 순간과 방향이에요. 태양계 크기에서는 밀기 전 길과 민 길이 겹쳐 보일 만큼 차이가 작습니다. 소행성이 지구에 다가가면 화면이 지구 곁 확대(실제 비율)로 바뀌고 재생이 느려집니다. 흰 소행성은 밀지 않았을 때의 길, 주황 소행성은 민 뒤의 길입니다.
드래그로 돌려 보기 · 휠이나 두 손가락으로 확대 · 가만히 두면 카메라가 천천히 돕니다(끌 수 있어요) · 휴대폰에서 세로로 쓸면 페이지가 내려갑니다. "자동"이면 소행성이 지구에 다가가 재생이 느려질 때 지구 곁 확대로 바뀝니다. 3D는 아래 그래프와 같은 계산을 그린 것입니다.
② 밀고 나서 두 길은 얼마나 벌어지나
재생이 지난 시점까지만 그립니다. 밀기 전 길로 갔을 소행성과 민 소행성 사이 거리예요. 한 바퀴 돌 때마다 출렁이면서도 조금씩 더 벌어지는지 보세요.
③ 언제, 얼마나 세게 밀면 비껴갈까 (집계: 이 소행성으로 미리 계산)
지금 소행성을 나아가는 방향으로 1·10·100 cm/s로 밀었을 때, 리드 타임마다 지구를 비껴간 거리입니다(두 축 모두 10배 눈금). 재생과 상관없이 미리 계산한 집계예요. 초록 점선 위면 비껴감, 붉은 띠 안이면 부딪힘입니다. 옅은 파란 띠는 지금 고른 리드 타임이에요.
④ 비껴가게 하려면 얼마나 세게 밀어야 하나 (집계)
지구 반지름 2개 이상 떨어져 지나가게 하는 데 필요한 세기를 미는 방향마다 그렸습니다(두 축 모두 10배 눈금). 굵은 선이 지금 고른 방향이에요. 이 모델에서는 미는 세기와 비껴간 거리가 거의 정비례해서, 1 cm/s로 밀었을 때의 거리로 나눠 구했습니다.
이 결과가 말하는 것, 말하지 않는 것
말하는 것:
- 일찍 밀면 아주 살짝으로 충분하고, 늦게 밀면 세게 밀어도 모자랄 수 있어요. 이 모델에선 10년 전 1 cm/s는 비껴갔지만, 한 달 전 100 cm/s는 부딪혔어요.
- 나아가는 방향으로 살짝 밀면 한 바퀴 도는 시간이 아주 조금 달라지고, 그 차이가 바퀴마다 쌓여요. 그래서 오래 기다릴수록 거의 그 시간만큼 더 벌어져요.
- 그렇다면 언제, 어떻게 밀까? 이 모델에선 일찍, 나아가는 방향으로가 가장 적게 들었어요(10년 전 0.97, 1년 전 15, 한 달 전 425 cm/s). 아주 늦으면 옆으로 미는 쪽이 덜 든 궤도가 많았어요.
상세 설명
말하는 것: 기본 소행성을 만나기 10년 전에 나아가는 방향으로 1 cm/s만 밀면 지구 반지름의 2.06배 떨어져 비껴갔습니다(지구에 대한 속도 10.7 km/s). 같은 소행성을 1년 전에 10 cm/s로 밀면 1.32배(아슬아슬), 0.1년(약 한 달) 전에 100 cm/s로 밀면 0.47배로 부딪혔습니다. 비껴가는 데 필요한 세기는 10년 전 0.97 cm/s, 1년 전 15 cm/s, 0.1년 전 425 cm/s였습니다(10년 전보다 16배, 438배). 서로 다른 궤도 20개에서도 필요한 세기의 중앙값은 10년 전 1.59, 1년 전 14.1, 0.1년 전 432 cm/s였고, 20개 모두 10년 전에 미는 쪽이 적게 들었습니다. 나아가는 방향으로 밀면 궤도가 아주 조금 커지거나 작아져 한 바퀴 시간이 달라지고, 그 차이가 바퀴마다 쌓입니다. 그래서 오래 둘수록 거의 리드 타임에 비례해 벌어집니다(이론 계산과 5~20년에서 1% 안으로 맞음). 옆으로(태양 쪽) 밀면 이 쌓임이 거의 없어 10년 전에는 나아가는 방향보다 중앙값 38배 세게 밀어야 했지만, 0.5년 전처럼 늦을 때는 20개 중 15개에서 옆으로 미는 쪽이 오히려 적게 들었습니다.
말하지 않는 것:
- 일찍과 늦게, 미는 방향에 따른 차이는 이 시뮬레이션이 직접 보여 준 거예요. 다만 가상의 소행성과 지구라서 실제 소행성의 위험이나 충돌을 계산한 게 아니에요.
- 지구의 중력, 달과 다른 행성, 햇빛이 미는 힘, 소행성의 모양·회전, 실제로 미는 방법과 그 오차는 빠져 있어요. 비껴감 기준(지구 반지름 2개)도 이 프로젝트가 정한 선이에요.
- 현실에서는 소행성을 일찍 찾아내 궤도를 정확히 재는 일이 먼저일 수 있어요. 이건 생각해 볼 점이고, 이 시뮬레이션이 직접 보여 준 건 아니에요.
상세 설명
말하지 않는 것: 이 모델은 가상의 소행성과 가상의 지구로 만든 단순화이며 실제 소행성의 궤도·위험·충돌 가능성을 계산하지 않습니다. 지구의 중력(지구가 소행성을 끌어당겨 휘게 하는 효과), 달과 다른 행성, 햇빛이 미는 힘, 소행성의 모양·크기·회전, 실제로 어떻게 미는지(충돌·끌기 등)와 그 정확도는 모두 빠져 있습니다. 비껴감 기준(지구 반지름 2개)은 이 프로젝트가 정한 선입니다. 리드 타임이 늘어도 거리가 고르게 늘지 않는 것(예: 0.25년이 0.5년보다 큼)은 궤도의 어느 지점에서 미느냐에 따라 효과가 달라지기 때문입니다. 숫자는 모두 이 모델에서 나온 예시입니다.
이론적 근거와 구현 메모
- 모델의 뿌리: 소행성을 일찍 조금 밀어 궤도를 바꾸는 방법은 행성 방어에서 오래 이야기되어 온 생각이며, 2022년 NASA의 DART 우주선이 작은 소행성에 일부러 부딪혀 그 궤도를 바꾸는 데 성공했다고 알려져 있어요. 이 모델은 그 실험을 재현하지 않고, "언제 미느냐"가 왜 중요한지만 단순한 태양 중심 궤도로 보여 줍니다.
- 핵심 가정과 수식: 소행성은 태양의 중력만 받습니다:
a = −μ r / |r|³,μ = 4π²(길이 = 지구 궤도 반지름, 시간 = 1년). 지구는 반지름 1인 원 궤도를 1년에 한 바퀴 돕니다. 소행성은 20년째에 (1, 0, 0)에서 지구와 만나도록, 그 자리의 속도(궤도면이 지구 궤도면과 만나는 선 위, 활력 방정식v² = μ(2/r − 1/a)와 일치)에서 거꾸로 적분해 처음 상태를 얻습니다. 적분은 속도 베를레(한 걸음 1/4000년, 시간 대칭)라 앞으로 다시 돌리면 같은 길을 되밟습니다. 리드 타임 L년 전에 속도를Δv만큼 바꾸고(나아가는 방향 / 궤도면 안에서 속도에 수직인 태양 쪽 / 궤도면에 수직) 20±0.05년 사이에서 지구와 가장 가까운 거리를 찾습니다(걸음 사이는 3차 에르미트 보간 + 황금분할 탐색). 나아가는 방향으로 밀면 궤도 크기가Δa = 2a²vΔv/μ만큼 바뀌고 한 바퀴 시간이 달라져, 도착이δt ≈ 3·L·a·v·Δv/μ만큼 빨라지거나 늦어집니다. 비껴간 거리는 이 어긋남 중 지구에 대한 상대 속도에 수직인 부분입니다. - 이 프로젝트의 단순화: 지구의 중력을 넣지 않아 지구 곁에서 소행성 길이 휘지 않습니다(실제로는 지구가 끌어당겨 더 가까이 오게 만들 수 있어요). 달·다른 행성·햇빛의 힘, 소행성의 모양과 회전, 미는 방법과 그 오차는 없습니다. 미는 것은 한순간에 속도를 바꾸는 것으로 단순화했습니다. 궤도는 지구 궤도면과 만나는 선이 정확히 지구 궤도 위에 오도록 고른 가상의 궤도이며, 판 2부터는 긴반지름 1.1~1.9, 이심률 0.15~0.6, 기울기 2~14°에서 무작위로 뽑습니다. 비껴감 기준(지구 반지름 2개)은 이 프로젝트가 정한 것입니다.
- 이론값과 시뮬레이션:
node tools/validate-asteroid.js로 확인합니다. 20년 동안 에너지 상대 오차는 최대 1.0×10⁻⁶, 거꾸로 20년 갔다가 다시 앞으로 20년 오면 지구 반지름의 1.3×10⁻⁸배 안으로 같은 자리에 돌아오고, 밀지 않으면 최접근 거리는 1.5×10⁻⁸(사실상 0)입니다. 위의 이론식δt ≈ 3·L·a·v·Δv/μ로 계산한 비껴간 거리와 시뮬레이션은 리드 5·10·20년에서 1% 안으로 맞았고(1.09 대 1.09, 2.08 대 2.06, 3.75 대 3.72), 2년에서는 20% 차이가 났습니다(이론식은 바퀴마다 쌓이는 부분만 보고 한 바퀴 안의 출렁임은 빼기 때문). 미는 세기를 2배로 하면 거리도 2배가 되는지(차이 최대 0.02%)도 확인했습니다. - 더 읽을거리: 궤도 역학의 기본(케플러 궤도, 활력 방정식)은 천문학·우주공학 교과서에서 찾을 수 있습니다. DART 실험은 NASA가 2022년에 한 소행성 궤도 바꾸기 실험입니다.
- 이 프로젝트가 직접 설계한 단순화 구현입니다. 한 판을 고르면 20년 치 기준 궤도와 민 궤도를 미리 적분해 두고, 재생은 그중 지금 시점까지만 보여 줍니다(②의 그래프와 통계 카드도 지금까지만; 비껴간 거리는 가장 가까운 순간이 지난 뒤에 보입니다). 재생 한 칸은 약 0.9일이며, 지구에 다가가면 거리에 맞춰 재생을 늦춰 지구 곁 확대 화면을 몇 초에 걸쳐 지나가게 합니다. ③④는 지금 소행성의 궤도로 리드 타임 9개 × 세기·방향마다 미리 계산한 집계라 재생과 상관없고, 슬라이더 중 리드 타임·세기를 바꿔도 같은 소행성이면 그대로입니다. ① 3D는 계산 결과를 그대로 그리며 새로운 숫자를 만들지 않습니다. 태양계 보기에서는 지구와 소행성을 보이게 크게 그렸고, 지구 곁 보기는 지구 반지름을 1로 한 실제 비율입니다.