NVIDIA открыла исходный код GPU-симуляции PhysX
Изначально PhysX разрабатывалась NVIDIA как система динамики реального времени для игр и использовалась в популярных игровых движках вроде Unity и O3DE. В Unreal Engine 5 её сменила система Chaos, однако PhysX по-прежнему востребована - теперь не только в интерактивных приложениях, но и в офлайн-симуляции. Она активно применяется в плагинах вроде tyFlow для 3ds Max и Golaem для Maya, где используется как движок физики частиц и поведения толпы.
Хотя PhysX в первую очередь ориентирована на симуляцию жёстких тел, она также поддерживает мягкие тела и позиционно-основанную динамику, что делает её подходящей для симуляции жидкостей, сыпучих материалов и других сложных физических сред. Частичный переход к open-source начался ещё в 2018 году, а в 2022 NVIDIA добавила в проект библиотеку Flow - модуль для симуляции газообразных жидкостей. Однако ранее в открытом доступе был только код, работающий на CPU. Поддержка GPU предоставлялась через готовые бинарные файлы.
С выходом PhysX SDK 5.6 и Flow 2.2 всё изменилось: теперь NVIDIA открыла исходный код и для GPU-компонентов. Это делает обе технологии полностью open-source и даёт разработчикам возможность интеграции с графическими процессорами от других производителей - например, AMD или Intel. Хотя портирование будет весьма трудоёмким: PhysX содержит более 500 вычислительных ядер, написанных на CUDA - фирменной технологии NVIDIA для параллельных вычислений на GPU.
Исходный код PhysX SDK 5.6 и Flow 2.2 опубликован на GitHub под лицензией BSD-3-Clause. Система поддерживает сборку под Windows 10 и выше, а также под Linux, с официальной проверкой на Ubuntu 20.04 и выше. Инструкции по сборке доступны в репозитории. Таким образом, PhysX продолжает своё развитие как мощный универсальный движок физики, теперь полностью открытый и пригодный как для игр, так и для профессиональной симуляции в визуальных эффектах и инженерии.