Repolode
InteractiveComputerGraphics

InteractiveComputerGraphics/SPlisHSPlasH

Открытая библиотека на C++ для физически реалистичного моделирования жидкостей методом сглаженных частиц (SPH), с Python-привязками и CLI.

Звёзды
1,957
Форки
344
Открытые issues
17
Последний коммит
10 дней назад

Что это?

SPlisHSPlasH — библиотека для моделирования жидкостей методом сглаженных частиц (SPH), бессеточным лагранжевым методом, который вычисляет значения для каждой частицы по конечному набору её соседей. В библиотеке реализовано несколько решателей давления для несжимаемых жидкостей (WCSPH, PCISPH, PBF, IISPH, DFSPH, PF), а также методы моделирования вязкости, поверхностного натяжения и вихревого движения.

Помимо обычных жидкостей, библиотека поддерживает взаимодействие жидкости с твёрдыми телами, двустороннее взаимодействие с деформируемыми телами, многофазное течение и силы сопротивления. Сцены задаются в JSON, а результаты можно экспортировать в файлы partio или VTK для использования в Maya, Blender или ParaView. Для Windows и Linux доступны симулятор командной строки `splash` и устанавливаемые через pip Python-привязки (pysplishsplash).

Проект собирается с помощью CMake и требует компилятора C++11. Поиск соседей выполняется на CPU или GPU; если доступна векторизация AVX, библиотека её использует.

Ключевые возможности

  • 01Решатели давления для несжимаемых жидкостей: WCSPH, PCISPH, PBF, IISPH, DFSPH и PF
  • 02Моделирование в 2D и 3D с поиском соседей на CPU или GPU
  • 03Взаимодействие жидкости с твёрдыми телами и двустороннее взаимодействие жидкости и твёрдого тела
  • 04Многофазное моделирование и вычисление сил сопротивления
  • 05Импорт сцен в JSON с поддержкой скриптов на Python
  • 06Экспорт данных о частицах в форматах partio и VTK

Сценарии использования

  • Исследование решателей давления для SPH и методов взаимодействия жидкости с твёрдыми телами
  • Создание данных для анимации жидкости с последующим импортом в Maya, Blender или ParaView
  • Создание скриптов для сцен с жидкостями на Python с помощью привязок pysplishsplash

Быстрый старт

  1. 1

    Установите предварительно собранный пакет Python для Windows или Linux

    pip install pysplishsplash
  2. 2

    Запустите симулятор командной строки

    splash

Что важно знать

  • Предварительно собранные Python wheels доступны только для Windows и Linux и только для Python 3.6–3.10.
  • Для сборки из исходного кода необходимы CMake и компилятор C++11.

Темы

#fluid-simulation#sph#physics-simulation#cpp#python-bindings#computer-graphics#deformable-solids#fluid-dynamics#fluids#multiphase-flow

Частые вопросы

Что такое SPlisHSPlasH?
Открытая библиотека на C++ для физически реалистичного моделирования жидкостей методом сглаженных частиц (SPH), с Python-привязками и CLI. SPlisHSPlasH — библиотека для моделирования жидкостей методом сглаженных частиц (SPH), бессеточным лагранжевым методом, который вычисляет значения для каждой частицы по конечному набору её соседей. В библиотеке реализовано несколько решателей давления для несжимаемых жидкостей (WCSPH, PCISPH, PBF, IISPH, DFSPH, PF), а также методы моделирования вязкости, поверхностного натяжения и вихревого движения.
SPlisHSPlasH можно использовать бесплатно? Какая у него лицензия?
SPlisHSPlasH распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
SPlisHSPlasH всё ещё поддерживается?
Активно поддерживается. Последний коммит в SPlisHSPlasH — 28 окт. 2026 г..
Для чего можно использовать SPlisHSPlasH?
Исследование решателей давления для SPH и методов взаимодействия жидкости с твёрдыми телами Создание данных для анимации жидкости с последующим импортом в Maya, Blender или ParaView Создание скриптов для сцен с жидкостями на Python с помощью привязок pysplishsplash
Как установить SPlisHSPlasH?
Установите предварительно собранный пакет Python для Windows или Linux: pip install pysplishsplash Запустите симулятор командной строки: splash
Где скачать SPlisHSPlasH?
Исходный код и инструкции по установке — на GitHub: https://github.com/InteractiveComputerGraphics/SPlisHSPlasH

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

CFD-решатель на основе метода lattice Boltzmann для моделирования потоков на GPU и CPU через OpenCL, с визуализацией в реальном времени и поддержкой нескольких GPU.

Данные и аналитика#cfd#lattice-boltzmann#opencl
5,4 тыс.+22 за неделю480C++OtherОбновлён 9 дней назад

Физическая библиотека на C++17 с привязками Python для расчёта кинематики, динамики и контактов у сочленённых роботов и анимированных персонажей.

1,2 тыс.+1 за неделю307C++BSD-2-ClauseОбновлён вчера

Blender — бесплатный пакет с открытым исходным кодом для создания 3D-контента: моделирования, риггинга, анимации, симуляции, рендеринга, композитинга, трекинга движения и видеомонтажа.

21,7 тыс.+243 за неделю3,5 тыс.C++OtherОбновлён 24 часа назад