Сделал браузерную симуляцию жидкости с тысячами частиц

Сделал браузерную симуляцию жидкости с тысячами частиц, работающую в реальном времени

Это штука, которую я хотел реализовать ещё с самого начала карьеры. Перепробовав разные подходы, в итоге остановился на GPU.js для расчёта взаимодействий частиц и эвристической модели вместо полноценного физического солвера — так получилось сохранить производительность в реальном времени. Для рендера не использовал WebGL — всё сделано на Canvas 2D с крупными спрайтами и CSS blur/contrast, чего оказалось достаточно для убедительного эффекта жидкости.

Больше всего меня удивило, насколько мощными могут быть вычисления на GPU, особенно с учётом того, что всё это работает прямо в браузере.

Демо в комментариях — можно в реальном времени менять параметры, переключаться между поведением жидкости и чем-то ближе к желе, а также менять направление и силу гравитации.

Сделал браузерную симуляцию жидкости с тысячами частиц | Сетка — социальная сеть от hh.ru