PhysicsSimulationCanvas APIMath
N体問題をブラウザで — 万有引力シミュレーションの実装
7 分で読める
このトピックを深掘りする
クリエイティブコーディング
ブラウザでの数学的シミュレーション・自然現象の可視化・生成アートの実装技法
全12本中 6 本目。
次に読む記事
Reaction-Diffusionのパラメータ空間を探索する — Gray-Scottモデルの4つの顔
Gray-Scott Reaction-Diffusionモデルのfeed/kill率を変えると、斑点・縞模様・珊瑚・細胞分裂と全く異なるパターンが現れる。200×200グリッドでの実装と探索記録。
砂山モデルと自己組織化臨界 — BTWモデルをブラウザで動かす
Bak-Tang-Wiesenfeld砂山モデルの実装を通じて、自己組織化臨界現象をブラウザで可視化する。べき乗則に従う雪崩分布の計測とフラクタルパターンの生成過程を解説。
二重振り子のカオスを数値で見る — RK4積分と初期値鋭敏性の実装
二重振り子シミュレーションの実装を通じて、ラグランジュ力学による運動方程式の導出、RK4積分の安定性、NaN対策、初期値鋭敏性の可視化までを解説する。
シリーズ全体の流れを見ながら、次に読む記事へ進めます。 初めての方は /start →
よくある質問
- Q. N体問題のシミュレーションはなぜ不安定になりやすい?
- 重力は距離が近いほど急激に大きくなるため、時間刻みが粗いと発散しやすくなります。近距離での加速度の上限(ソフトニング)や、固定タイムステップ、半陰的な積分(例: symplectic Euler)などで安定性を上げられます。
- Q. O(n²) の重力計算はどこまで実用的?
- 粒子数 n が増えるとペア計算が急増します。ブラウザでは 60fps を維持するなら、まずは n を抑えつつベクトル演算を最適化し、必要なら Barnes–Hut などの近似(O(n log n))を検討するのが現実的です。
- Q. なぜ積分法が軌道の見た目に大きく影響する?
- 位置・速度の更新順序や数値誤差がエネルギーの増減として蓄積し、軌道が縮んだり膨らんだりします。簡易な Euler 法は誤差が増えやすいので、同じ計算量でもより安定な手法を選ぶと見た目が改善します。
- Q. マウス追従の重力源はどう実装する?
- ポインタ座標をワールド座標に変換し、各粒子に対して「重力源→粒子」の方向ベクトルを正規化して加速度に加えます。距離が 0 に近いと発散するので、最小距離を設けるかソフトニング項を足すのが安全です。