Repolode
qunabu

qunabu/Gravity

重力が軌道を形作る仕組みを、ガイドツアーと実際の天文データで学べるTypeScript・Three.js製の太陽系シミュレーター。

スター
220
フォーク
17
未解決の Issue
0
最終コミット
29 日前

これは何?

Gravityは、TypeScript、Three.js、Viteで構築されたブラウザー上で動作する太陽系シミュレーターです。天体のサイズや質量、J2000.0の軌道要素には実際の天文データを使用しており、惑星、冥王星、主要な衛星が実際の軌道をたどります。スケールを変更しているのは描画のみで、切り替えれば、実寸スケールと太陽や小さな水星も同時に見えるビジュアルスケールを選べます。

プロジェクトを起動すると、軌道が生まれる理由を解説する43ステップのガイドツアーが始まります。ニュートンの法則から始まり、地球と月の系、ラグランジュ点、潮汐、一般相対性理論へと進みます。各ステップにはディープリンクがあり、解説文は英語とポーランド語を切り替えられます。ツアーの後は、自由探索モードでシミュレーションを直接操作できます。

物理モデルは、解析的なケプラー模型と、全ての天体間に働くニュートン重力をリープフロッグ積分器で計算し、エネルギーの変化をリアルタイムで表示するN体モデルを切り替えられます。テクスチャはcanvas上でプロシージャルに生成されるため、画像ファイルがなくてもオフラインで動作します。

主な機能

  • 01太陽、惑星、冥王星、主要な衛星の実際のサイズ、質量、J2000の軌道要素を使用。
  • 02実寸スケールと、小さな天体も見やすいビジュアルスケールを切り替え可能。
  • 03解析的なケプラー軌道と、リアルタイムのN体重力シミュレーションを切り替え可能。
  • 04ディープリンクと英語・ポーランド語の解説文に対応した43ステップのガイドツアー。
  • 05オフラインでも使える、プロシージャル生成の惑星・衛星テクスチャ。

ユースケース

  • 学生に軌道力学やニュートンの法則を教える。
  • ラグランジュ点、潮汐、軌道共鳴の仕組みを視覚的に探る。
  • 3D科学可視化の参考として、TypeScriptとThree.jsのコードベースを活用する。

クイックスタート

  1. 1

    依存関係をインストールする

    npm install
  2. 2

    localhost:5173 で開発サーバーを起動する

    npm run dev

使う前に知っておきたいこと

  • 月の軌道の昇交点、引数、位相の値は概算です。実際の値は軌道長半径、離心率、軌道傾斜角、周期のみです。
  • ビジュアルスケールには非線形の再マッピングを使用しているため、そのモードでは軌道の楕円は完全な楕円ではなく、近似的な形になります。
  • 月を有効にした N 体モードでは、より細かいタイムステップが必要です。時間倍率が非常に高い場合、精度が低下することがあります。

トピック

よくある質問

Gravity とは?
重力が軌道を形作る仕組みを、ガイドツアーと実際の天文データで学べるTypeScript・Three.js製の太陽系シミュレーター。 Gravityは、TypeScript、Three.js、Viteで構築されたブラウザー上で動作する太陽系シミュレーターです。天体のサイズや質量、J2000.0の軌道要素には実際の天文データを使用しており、惑星、冥王星、主要な衛星が実際の軌道をたどります。スケールを変更しているのは描画のみで、切り替えれば、実寸スケールと太陽や小さな水星も同時に見えるビジュアルスケールを選べます。
Gravity は無料で使えますか?ライセンスは?
Gravity は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
Gravity は今もメンテナンスされていますか?
活発にメンテナンス中。Gravity の最終コミットは 2026年9月21日 です。
Gravity は何に使えますか?
学生に軌道力学やニュートンの法則を教える。 ラグランジュ点、潮汐、軌道共鳴の仕組みを視覚的に探る。 3D科学可視化の参考として、TypeScriptとThree.jsのコードベースを活用する。
Gravity のインストール方法は?
依存関係をインストールする: npm install localhost:5173 で開発サーバーを起動する: npm run dev
Gravity はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/qunabu/Gravity

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト