High-Fidelity 3D Seismic Voxel Simulator
Yugamiは、2011年以降の日本近海における**26,000件超(M2.0〜)**の地震観測データを基盤とし、地下深部における「歪み(応力)の蓄積」と、巨大地震に伴う「応力解放(ストレスシャドウ)」を可視化する、ブラウザベースの3D物理シミュレーターです。
過去の震央をプロットする従来の点描グラフとは一線を画し、物理モデルに基づく**「応力の蓄積・連鎖・解放」の動的なサイクル**をリアルタイムに演算・表現しています。
日本列島を約50km四方のグリッドに分割。M2クラスの微小地震であっても、同一座標における頻発を検知し、CPU側でエネルギーを合算します。これにより、単体では不可視な微小活動を「潜在的なストレスの塊」として可視化します。
同一エリア内で短期間(30日以内)に連続して地震が発生した場合、バフ(ストレス蓄積率)を最大5倍まで指数関数的に増幅。危険な群発活動や前兆すべりを「赤く膨れ上がる光」として視覚的に強調します。
蓄積されたストレスは等方的な円形には広がらず、プレートの沈み込み角に基づいた「構造的な指向性」を持って深部へ浸透するように伝搬します。これにより、地殻の三次元的な歪みの継承を表現します。
M7.0以上の大地震が発生した際、当該エリアに蓄積されていたストレスを完全放出し、周囲一帯に強力な「負のポテンシャル(エネルギー吸収状態)」を発生させます。この静穏期間(デバフ状態)は余震のエネルギーも吸収し、長期間の沈黙を視覚的な「暗闇」として表現します。
- 左クリック + ドラッグ: カメラの回転 (Rotate)
- 右クリック + ドラッグ: カメラの平行移動 (Pan)
- マウスホイール: ズームイン / ズームアウト (Zoom)
- [ ▶ PLAY / ⏸ PAUSE ]: シミュレーションの再生・一時停止
- [ « SLOW / FAST » ]: 再生速度の変更(0.1倍 〜 10.0倍)
- タイムラインスライダー: 任意の日時にシーク
- マグニチュードフィルタ: 右下のログに表示する地震の規模を絞り込みます(M2.0+ 〜 M7.0+)
Space: 再生 / 一時停止←(Left Arrow) : 30日戻る→(Right Arrow) : 30日進む
GitHub Pagesにて、インストール不要でブラウザから直接シミュレーターを体験できます。
本プロジェクトはVanilla JavaScriptで記述されており、ビルド不要です。また、必要な地震データ(data/earthquakes.json)もすべて同梱されているため、クローンしてすぐに動かせます。
- リポジトリをクローンします。
git clone https://github.com/mati0516/Yugami.git
- ローカルサーバーを起動して
index.htmlにアクセスします。 (VSCodeの Live Server 拡張機能や、Pythonのpython -m http.serverなどを推奨)
(※最新の地震データに更新したい場合のみ、node scripts/fetch_data.js を実行してください)
- Vanilla JavaScript (No Frameworks)
- Three.js (WebGL 3D Rendering)
- カスタムGLSLシェーダー (Vertex Shaderでの距離計算と異方性スプレッド)
- GSAP (アニメーション補助)
本プロジェクトは、以下の素晴らしいオープンデータおよびサービスを活用して構築されています。深く感謝申し上げます。
- USGS (United States Geological Survey) 本シミュレーターの核となる、高精度かつ膨大な地震発生データ(M2.0以上の震源位置、深さ、マグニチュード)は、すべてUSGSのAPIより取得・利用させていただいております。
- Natural Earth / Open Source GeoJSON Maps
日本列島の美しい海岸線と地形データ(
japan.geojson)の描画基盤として利用しています。 - Bird 2003 Plate Boundaries (Hugo Ahlenius, Nordpil)
地球上のテクトニック・プレート境界線(
plates.geojson)を描画し、エネルギー伝播の異方性(沈み込み帯の方向)を計算するためのベースデータとして利用しています。