Particle Life — симуляция, где из примитивных правил взаимодействия частиц возникают структуры, похожие на живые клетки. Теперь её запустили на WebGPU с поддержкой 100 000 частиц прямо в браузере.
Как работает: есть частицы разных цветов, и матрица сил между ними. Красные могут притягиваться к жёлтым, а жёлтые — убегать от красных. Силы асимметричные, в отличие от реальной физики. Из этих простых правил спонтанно появляются «клетки», «организмы», деление, даже что-то похожее на экосистемы.
Что сделал автор: перенёс симуляцию на compute shaders в WebGPU. Главная проблема — расчёт сил между всеми парами частиц это O(N²), что убивает производительность. Решение: spatial hashing — частицы раскидываются по ячейкам, и каждая взаимодействует только с соседями. Реализовано через atomic linked lists и counting sort.
Результат: 20 000 частиц с нормальным радиусом взаимодействия, до 100 000+ если радиус уменьшить. Всё в браузере, никаких установок.
Код на гитхабе, демо на сайте.
Залипательная штука — можно наблюдать как из хаоса рождается порядок.
@make_game
Post #1735
22K
- 😍 11
- 🔥 2
- 🆒 2