このプロジェクトについて
SwarmingLilMenは、C#/.NET 8.0でゼロから構築された2Dボイド/スウォームシミュレーションを基盤とする、エマージェントなマルチエージェントシステム向けの実験的エンジンです。スクリプト化よりもエマージェンスを重視し、いくつかのシンプルで合成可能なステアリング規則が豊かなマクロパターンを生み出します。プロジェクトは初期開発段階(GPL‑3.0‑only)で、集約駆動システムアプローチから、独立テスト可能なReynoldsスタイルのステアリング規則へのアーキテクチャ転換が進行中です。
実装は2つが並存しています。レガシーのデフォルトパイプラインは、集約駆動のStructure‑of‑Arrays(SoA)ステアリングシステム、均一グリッドボイド、インタラクティブなRaylibレンダラを備えています。カノニカルパスは、スキャフォールディングと3つのステアリング規則で構成され、`--canonical` オプションで有効化します。カノニカルな認識/空間インデックス契約とフォースバジェットの強制は実装済みですが、計測UX、規定シナリオ、マルチグループセマンティクス、カノニカルベンチマークは未完です。
実証された機能には、キャッシュ効率を高めるStructure‑of‑Arrays(SoA)データレイアウト、正確に500ティックの順序付き運動ハッシュをカバーする固定ステップシード付きレガシー・カノニカルパス、エージェントゲノムデータ構造と変異API、プリセット(balanced、strong‑separation、tight‑flocking、fast‑loose、slow‑cohesive)によるシミュレーションパラメータの設定、レガシー均一グリッドボイドパイプラインとインタラクティブRaylibレンダラ、ステアリング計測付きカノニカル単一グループレンダラ、そして非パフォーマンステストだけで構成されるCIゲートのxUnitテストスイートがあります。パフォーマンス測定用のBenchmarkDotNetスイートも用意されています。
システムパイプラインは均一グリッドを再構築し、各ティックでSense、Behavior、Wander、Integrateシステムを実行します。パフォーマンスの原則として、割り当てに配慮したホットパス、内部ループでのLINQ/デリゲート/ボクシング禁止、ループ不変式の持ち上げ、仮想ディスパッチよりも直接/静的呼び出しを使用することが挙げられます。目標はインタラクティブ時に60 FPSで50k‑100kエージェント、ヘッドレス時に1M以上のエージェントを処理することですが、現在の50k測定は16.67 ms/ティックの予算を大幅に超えており、カノニカルのスループット、レンダラFPS、ティックごとの割り当ては未測定です。
プロジェクトはスタンドアロンのJavaScriptブラウザデモも提供しています。Boids Basic(Reynoldsアルゴリズムとリアルタイムパラメータ調整)、Self‑Propelled Particles/Vicsek Model(活性物質の相転移と秩序パラメータ追跡)、Ant Colony Optimization(フェロモントレイルによる経路探索)、Particle Swarm Optimization(連続グローバル最適化とフィットネスランドスケープ可視化)です。これらのデモはインストール不要で、素早いイテレーション、デモ、学習、プロトタイピングに利用できます。
ロードマップは以下のフェーズで構成されます。Phase 3:マルチグループ相互作用/戦闘/代謝、Phase 4:再生産/進化/形質ドリフト、Phase 5:SIMD最適化/並列化/NativeAOT、Phase 6:追加シナリオプリセット/リプレイ/高度メトリクス。技術スタックはC# 12 on .NET 8.0、Raylib‑cs 7.0.2(レンダリング)、xUnit 2.9.3(テスト)、BenchmarkDotNet 0.15.6(ベンチマーク)です。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.