Lab/Swarm

WebGPU 群れシミュレーション公開中2026

WebGPUのコンピュートシェーダで最大100万体の群れを指先で操る、粒子流動サンドボックス。

サイトを開く
SWARM(群れの観測室)

Screenshots

SWARM(群れの観測室) スクリーンショット 1
SWARM(群れの観測室) スクリーンショット 2

Overview

概要

WebGPUのGPUコンピュート(WGSL)で、最大100万体のパーティクルをリアルタイムに動かすブラウザ実験です。各個体はカールノイズの流れに乗りつつ、ポインタへの引力/斥力で群れ(ムクドリの大群=murmuration)のように渦を巻きます。WebGLでは難しかった規模の群れ表現を、サーバー処理ゼロのブラウザ内だけで実現しています。

How to use

遊び方・使い方

画面をドラッグ/タッチすると、その位置へ群れが引き寄せられ(または反発し)ます。上部パネルで個体数(10万〜100万)、ポインタの引き寄せ/反発、流れの速さ・渦の細かさ・影響半径を調整でき、右下にFPSと個体数を表示。WebGPU対応ブラウザ(最新のChrome/Edge/Safari等)で動作し、非対応時はフォールバック表示になります。

Tech stack

技術スタック

WebGPUWGSLTypeScriptVite

外部エンジンを使わず、WGSLのコンピュート+レンダーパイプラインを直接記述。位置/速度のstorage bufferをGPUで更新し、CPUへ戻さず頂点シェーダで描画することで100万体規模を実現しています。

Highlights

工夫した点

  • 位置・速度をstorage bufferに置き、WGSLコンピュートシェーダでGPU上で直接更新(O(N))。描画も同bufferを頂点シェーダから読み、point-list+加算合成で一括描画
  • カールノイズ場への整列にポインタ引力/斥力を合成し、少ないパラメータで群れの創発的な渦・分岐を生む
  • CPUへ戻さずGPU内で完結させることで、個体数100万でも滑らかなフレームレートを狙う設計

To improve

改善したい点

  • GPU性能差が大きく、低スペック端末向けの自動品質調整(個体数スケーリング)が未対応
  • 群れ挙動のプリセットや、色・形のバリエーションを増やす余地
  • WebGPU非対応ブラウザ向けのWebGLフォールバック実装(現状は案内のみ)

What's next

今後の展望

  • 障害物・複数の引力源・捕食者など相互作用の追加
  • 見た目のプリセット(銀河/煙/液体など)とスクショ・録画共有
  • さらなる個体数の拡大や3D化の検討

Category

3D・実験

Genre

WebGPU 群れシミュレーション

Year

2026

Status

公開中