原始粒子系 / Primordial Particle System

1種類の粒子から育つ、胞子や細胞のような構造

まず観察する / Getting started

最初は原論文方式で2,000ステップ動かした「生態系」です。リング状・三角形の細胞や密な胞子をプリセットから選び、拡大して観察できます。「原始のスープ」はランダムな粒子から始まり、構造が育つまで数百〜数千ステップかかる場合があります。胞子や細胞という呼称は形と振る舞いの比喩で、生物や進化の実現を意味しません。

Start with an ecosystem evolved for 2,000 original sequential updates. Presets include a compact spore, a ring-like cell and a triangular cell sampled from our own simulations. Primordial soup begins with random particles. Structures take time to emerge and can change or dissolve. These are life-like patterns, not biological organisms.

プリセット / Presets

プリセットは形を強制する仕組みではありません。リセット後も同じ運動ルールだけで変化します。原論文の著者が配布した座標データではなく、本サイトの実装で生成した例です。原論文Fig. 4に対応する形態を目安に選んでいます。

ルール / Rule

Schmickl、Stefanec、Crailsheimが2016年に発表したモデルです。粒子は向きを持ち、半径r以内の左側L・右側Rの粒子数を数えます。N=L+Rとして、向きの変化は Δφ = α + βN sign(R−L)。向きを変えてから一定距離vだけ前進します。左右が同数なら追加の旋回は0です。粒子自体は増減せず、引力・斥力行列もありません。

Each particle turns by α + βN sign(R−L), then moves forward by v. N counts neighbors within radius r; R and L count neighbors on either side of its heading. Equal counts give no density-dependent turn. Our screen coordinates use positive clockwise turns. All particles obey the same rule, with no attraction matrix or particle birth/death.

代表値はα=180°、β=17°、r=5、v=0.67。初期状態は位置と向きを一様ランダムに分布させます。原論文の胞子・細胞の再現は密度や更新方式に依存し、常に分裂するとは限りません。

CPUとGPU / Update order matters

初期設定の「CPU・原論文方式」は、各ステップで順番をシャッフルし、1粒子ずつ位置を更新する逐次方式です。CPU計算はWeb Workerで行い、操作画面を応答可能に保ちます。「自動・同時更新」はWebGPUが使えればGPU、使えなければCPUで、全粒子を同じ直前の状態から更新します。

同時更新はGPUに適した派生版です。更新順序というモデルの条件が違うため、原論文方式と同一の構造・寿命・分裂頻度は保証しません。原論文のパターンを観察する場合は「CPU・原論文方式」を使ってください。

Original mode uses shuffled sequential CPU updates in a Web Worker. Auto parallel selects WebGPU when available, otherwise synchronous CPU updates. Synchronous updating is a model variant, not an exact acceleration of the paper's sequential algorithm. Structures and lifetimes can differ; use Original mode for the reference presets. GPU and synchronous CPU also differ in floating-point precision.

粒子数・大きさ・境界 / Controls

粒子数は100〜5,000個。増減は世界の大きさを固定したまま行うため、密度も変わります。表示する粒子の大きさは物理ルールに影響しません。拡大は中央を拡大する表示操作です。画面回転やリサイズも世界の大きさや密度を変えません。プリセットのリセットは粒子数・世界の大きさ・運動パラメータ・拡大率をそのプリセットに戻します。

原論文の境界は上下左右がつながるループです。端をまたいだ粒子も最短距離で数えます。壁モードは反射境界による比較実験用で、原論文の条件とは異なります。粒子の色は局所密度の目安で、種類ではありません。緑は疎、茶は中間、青・黄は密、桃は特に小さな範囲の密集を強調しています。色分けは可視化用に調整してあり、構造を自動認識しているわけではありません。

Particle count changes density in a fixed-size world. Dot radius and zoom affect drawing only. Resizing the browser preserves the simulated world. Wrapped boundaries are the reference; reflecting walls are an experimental extension. Colors visualize local density, with compact neighborhoods highlighted in pink; they are not particle types or a structure classifier.

負荷保護 / Load protection

計算は1回ずつ実行し、遅くなったら更新頻度を下げます。継続的に重い場合や応答がない場合は停止し、粒子を半分にして手動で再開できます。GPUの異常時は状態を保持して同時更新のCPUへ切り替え、停止します。別タブの表示中は新しい計算を送りません。設定変更・リセット・一時停止より前の計算結果は破棄します。OSの「動きを減らす」が有効な場合は停止状態で始まります。

Only one update is in flight. Slow processing reduces the update rate; sustained load or timeouts pause playback. Halve particles and resume manually. GPU errors preserve the last committed state and fall back to synchronous CPU mode, paused. Hidden tabs suspend scheduling. Stale results are discarded. Reduced-motion preferences start paused.

出典・実装 / Sources and implementation

運動ルールは原論文に基づき、本サイト用のCPU・GPUコード、操作画面、プリセットの計算データを独自に作成しました。第三者のソースコードや図版をコピーしていません。

hamzALIFE · Privacy