流体シミュレーション
|
85
|
0
|
マウスまたは指でドラッグして流体を動かしてください
※ パフォーマンスはデバイスにより異なります
📋 このツールを作ったプロンプト
以下のプロンプトをClaude・ChatGPT・GeminiなどのAIに貼り付けると、同じようなツールを作ることができます。
ブラウザで動く流体シミュレーションをHTML単一ファイル(HTML/CSS/JS完結)で実装してください。 【アルゴリズム】 Jos Stam の「Stable Fluids」論文に基づくグリッドベースの流体シミュレーションを実装する。 - グリッドサイズ N=100((N+2)×(N+2) の配列で境界を含む) - 各セルに速度場 (vx, vy) と密度場 (r, g, b) を持つ - 1ステップの処理: diffuse(ガウス=ザイデル反復)→ project(非圧縮性の保証)→ advect(バックワード移流) - 境界条件: 速度は壁で反転(setBound)、密度は壁と同値 【インタラクション】 - マウス/タッチのドラッグ操作で、グリッド座標に変換した位置に速度と密度を加算する - 前フレームとの差分を力として使用(差分×force定数) - 半径1セルの周囲3×3に力・密度を分散して加える 【カラー】 - レインボーモード: フレームごとに hue を加算し HSL→RGB 変換でカラーを決定 - 単色モード: 赤・橙・緑・青・紫・白の6色スウォッチから選択可能 - モード切替ボタンと色スウォッチを横並びで表示する 【スライダー】 - 粘度(viscosity)と拡散(diffusion)をスライダーで 0〜99 の範囲で調整できる - 値は Math.pow(10, -6 + v*0.04) でスケーリングし、0のときは正確に0とする 【描画】 - canvas に createImageData で直接ピクセル書き込みを行い requestAnimationFrame でループ - グリッドセルをピクセルにマッピングして描画する - canvas サイズは親要素幅に合わせてリサイズ対応する 【制約】 - 外部ライブラリ不使用 - グローバル汚染防止のため即時関数(IIFE)で全体を囲む - HTML/CSS/JS をすべて1ファイルに収める
Rui Software