【Show HN】ニュートンからアインシュタインまで!物理を体感できるインタラクティブな太陽系シミュレーター『Gravity』を開発しました
Show HN: Gravity – interactive solar-system simulator, from Newton to Einstein
好奇心と学習を兼ねて、週末のプロジェクトとして太陽系シミュレーター『Gravity』を開発しました。学校の授業では「なぜ惑星が公転するのか」という根本的な理由が腑に落ちなかったのですが、それを自分なりに可視化するために作ったものです。このツールは、順を追って理解を深められるガイドツアー形式になっています。まず、2体問題における相互作用と慣性(太陽を消すと地球が真っ直ぐ飛んでいく様子など)から始まり、「軌道とは、落下し続けながらも的を外し続けている状態である」という概念、ロケットによる宇宙速度の変化、さらにボイジャー1号・2号の実際の重力アシスト(1977〜1989年の実際の惑星配置とスイングバイを再現)を経て、最後はアインシュタインの「時空の歪み」までを視覚的に体験できます。物理モデルについてですが、各天体は実際の半径・質量・J2000軌道要素を使用し、毎フレームケプラー方程式を解いています。エネルギードリフト(約1e-6%)をリアルタイム表示できるN体問題モード(シンプレクティック・リープフロッグ法)も搭載しており、計算の精度も確認可能です。唯一「嘘」をついているのはスケール感で、真のスケールだと何も見えないため、対数ベースの「視覚用スケール」と切り替えられるようにしました。物理演算自体は実データ(AU)に基づいています。技術スタックはTypeScript + Three.js + Viteで、完全にクライアントサイドで完結しており、オフラインでも動作します。惑星のテクスチャも地球以外はプロシージャル生成(バリューノイズ)です。ソースコードはこちら:https://github.com/qunabu/Gravity ご質問や物理モデル、解説に関するフィードバックは大歓迎です。自分なりの解釈で構築したモデルなので、現実の物理学と照らし合わせる良い機会になればと思っています。