Show HN: Gravity – 뉴턴부터 아인슈타인까지의 인터랙티브 태양계 시뮬레이터
출처: Hacker News
주말에 재미와 자기 교육을 위해 만든 것으로, 궤도가 왜 존재하는지, 단순히 행성이 도는 모습을 보여주는 것이 아니라 스스로에게 설명하기 위해 만들었습니다. 학교에서 명확히 설명되지 않았던 내용이죠.
가이드 투어로 시작해 아이디어를 단계별로 구축합니다: 두 물체와 동등·반대 방향의 힘, 관성(태양을 없애고 지구가 직선으로 떠다니는 상황), 그 다음 “궤도는 떨어지고 계속 놓치는 것”이라는 개념, 작은 로켓을 이용한 우주 속도, 보이저 1·2호의 실제 중력 어시스트(시계가 1977–1989년 실제 날짜대로 움직여 행성들이 대규모 탐사 정렬에 맞춰 슬링샷이 이루어짐), 마지막으로 아인슈타인—곡률이 있는 시공간으로서의 중력, 고전적인 고무 시트 우물.
실제 구현: 모든 천체는 실제 반지름·질량과 J2000 궤도 요소를 사용합니다; 위치는 매 프레임 케플러 방정식을 풀어 계산합니다. N‑Body 모드(심플렉틱 레프포그)로 전환하면 실시간 에너지 드리프트(~1e‑6%)를 확인할 수 있어 적분기가 정직함을 알 수 있습니다. 유일하게 가짜인 것은 스케일—실제 스케일에서는 아무것도 보이지 않으므로, 실제 스케일과 로그 재매핑된 “시각적” 스케일 사이를 전환할 수 있으며 물리 계산은 항상 실제 AU 단위로 진행됩니다.
기술: TypeScript + Three.js + Vite, 완전 클라이언트 사이드, 백엔드 없이 오프라인에서도 동작(표면 텍스처는 값‑노이즈로 절차적으로 생성; 지구만 실제 이미지를 사용). 소스: https://github.com/qunabu/Gravity
질문에 기꺼이 답변합니다—물리학이나 설명에 대한 피드백도 언제든 환영합니다. 이 프로젝트는 실제 물리와는 크게 다를 수 있지만, 제가 스스로 이해한 방식이며 현실과 대면해 보는 것이 즐겁습니다.
댓글 URL: https://news.ycombinator.com/item?id=48459837
점수: 31