基于 Taichi (现代 GGUI 后端) 开发的高性能 GPU 并行多物种集群(Boids)仿真器。本项目抛弃传统的圆形粒子渲染,创新性地采用动态三角形网格缓存(Triangle Mesh Buffering),通过每个粒子的速度矢量实时定向构造流线型箭头,并支持同物种聚合、对齐及全物种排斥的复杂涌现行为。
- 高性能 GPU 并行计算:利用 Taichi 的
@ti.kernel和矩阵向量算子,在 GPU 上单帧轻松支撑数千个粒子的邻域搜索与行为结算。 - 面向方位的三角形箭头拓扑渲染:
- 动态根据粒子速度矢量计算朝向(Heading)与正交副法线(Side)。
- 每个粒子当场生成 3 个顶点构成的箭头(尖端、左翼、右翼),通过
canvas.triangles高效灌入显存渲染,具备极佳的视觉方向性。
- 多物种群落生态 (Multi-Species Swarming):
- 预设红、绿、蓝三种不同生态群落(Species)。
- 相同物种之间产生内聚力 (Cohesion) 与对齐力 (Alignment);所有物种之间共享排斥力 (Separation),形成逼真的群游、分流与追逐动态。
- 全功能 ImGui 交互面板:实时调节群体规模、行为权重、感知半径及箭头几何尺寸,并支持一键重洗(Re-shuffle)集群。
仿生群集行为(Craig Reynolds' Boids Algorithm)在本引擎中通过三个基础动力学算子实现:
- Cohesion (内聚):引导同类粒子向邻域局部质心(Center of Mass)靠拢。
- Alignment (对齐):调整自身速度趋向于同类邻域的平均速度。
- Separation (排斥):防止粒子间距过近而产生近距离排斥反冲力($\propto 1/dist^2$)。
- Boundary Reflection (边界硬碰撞):二维边界墙壁反射,使粒子群永不丢失。
确保您的系统已安装 Python 以及支持 GPU 加速的硬件环境。
pip install taichi numpy将代码保存为 boids_simulator.py 并运行:
python boids_simulator.py启动程序后,左上角将弹出 Universe & Arrow Control 实时调参面板,支持动态调整:
- Global Simulation Scale:
Total Arrows (N):实时调节激活的粒子总数(最高支持 3000 个静态预分配上限)。
- Steering Weights (行为权重):
Cohesion (Intra):同物种内聚权重。Alignment (Intra):同物种对齐权重。Separation (All):全物种排斥防撞权重。
- Perception & Spatial Radii (感知半径):
Visual Radius:视线感知范围。Separation Radius:紧凑避障半径。
- Physics & Visuals (物理与视觉):
Max Speed Limit:最大移动限速。Delta Time (dt):时间步长。Arrow Scale:三角形箭头在屏幕上的绝对几何尺寸大小。Re-shuffle Swarm:一键重置所有粒子坐标与群落分布。
本项目基于 MIT License 开源协议。
