OpenCL을 통해 GPU와 CPU에서 유체 시뮬레이션을 실행하고, 실시간 렌더링과 멀티 GPU를 지원하는 Lattice Boltzmann CFD 솔버입니다.
InteractiveComputerGraphics/SPlisHSPlasH
Smoothed Particle Hydrodynamics(SPH)를 이용한 물리 기반 유체 시뮬레이션 오픈소스 C++ 라이브러리로, Python 바인딩과 CLI를 제공합니다.
- 스타
- 1,957
- 포크
- 344
- 열린 이슈
- 17
- 마지막 커밋
- 10일 전
어떤 프로젝트인가요?
SPlisHSPlasH는 Smoothed Particle Hydrodynamics를 사용해 유체를 시뮬레이션하는 라이브러리입니다. 이는 각 입자의 물리량을 유한한 수의 이웃 입자에서 계산하는 메시리스 라그랑주 방법입니다. 비압축성 유체를 위한 여러 압력 솔버(WCSPH, PCISPH, PBF, IISPH, DFSPH, PF)와 점성, 표면 장력, 와도 계산 방법을 구현합니다.
순수 유체뿐 아니라 강체-유체 결합, 변형 가능한 고체와의 양방향 결합, 다상 유동, 항력도 지원합니다. 장면은 JSON으로 정의하며, 결과는 Maya, Blender 또는 ParaView에서 사용할 수 있도록 partio 또는 VTK 파일로 내보낼 수 있습니다. Windows와 Linux에서 사용할 수 있는 `splash` 명령줄 시뮬레이터와 pip로 설치 가능한 Python 바인딩(pysplishsplash)을 제공합니다.
이 프로젝트는 CMake로 빌드하며 C++11 컴파일러가 필요합니다. 이웃 탐색은 CPU 또는 GPU에서 실행되며, 지원되는 환경에서는 AVX 벡터화를 사용합니다.
핵심 기능
- 01비압축성 유체용 압력 솔버: WCSPH, PCISPH, PBF, IISPH, DFSPH, PF
- 02CPU 또는 GPU 이웃 탐색을 지원하는 2D 및 3D 시뮬레이션
- 03강체-유체 결합 및 유체-고체 양방향 결합
- 04다상 시뮬레이션 및 항력 계산
- 05Python 스크립팅을 지원하는 JSON 장면 임포터
- 06입자 데이터를 partio 및 VTK 형식으로 내보내기
활용 사례
- SPH 압력 솔버와 유체-고체 결합 방법 연구
- Maya, Blender 또는 ParaView로 가져올 유체 애니메이션 데이터 생성
- pysplishsplash 바인딩으로 Python에서 유체 장면 스크립팅
빠른 시작
- 1
Windows 또는 Linux용 사전 빌드 Python 패키지를 설치합니다
pip install pysplishsplash - 2
명령줄 시뮬레이터를 실행합니다
splash
사용 전 알아둘 점
- 사전 빌드된 Python wheel은 Python 3.6~3.10용으로 Windows와 Linux에서만 제공됩니다.
- 소스에서 빌드하려면 CMake와 C++11 컴파일러가 필요합니다.
토픽
자주 묻는 질문
- SPlisHSPlasH은(는) 무엇인가요?
- Smoothed Particle Hydrodynamics(SPH)를 이용한 물리 기반 유체 시뮬레이션 오픈소스 C++ 라이브러리로, Python 바인딩과 CLI를 제공합니다. SPlisHSPlasH는 Smoothed Particle Hydrodynamics를 사용해 유체를 시뮬레이션하는 라이브러리입니다. 이는 각 입자의 물리량을 유한한 수의 이웃 입자에서 계산하는 메시리스 라그랑주 방법입니다. 비압축성 유체를 위한 여러 압력 솔버(WCSPH, PCISPH, PBF, IISPH, DFSPH, PF)와 점성, 표면 장력, 와도 계산 방법을 구현합니다.
- SPlisHSPlasH은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- SPlisHSPlasH은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- SPlisHSPlasH은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. SPlisHSPlasH의 마지막 커밋은 2026년 10월 28일입니다.
- SPlisHSPlasH은(는) 어디에 사용할 수 있나요?
- SPH 압력 솔버와 유체-고체 결합 방법 연구 Maya, Blender 또는 ParaView로 가져올 유체 애니메이션 데이터 생성 pysplishsplash 바인딩으로 Python에서 유체 장면 스크립팅
- SPlisHSPlasH는 어떻게 설치하나요?
- Windows 또는 Linux용 사전 빌드 Python 패키지를 설치합니다: pip install pysplishsplash 명령줄 시뮬레이터를 실행합니다: splash
- SPlisHSPlasH은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/InteractiveComputerGraphics/SPlisHSPlasH
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
관절형 로봇과 애니메이션 캐릭터의 운동학, 동역학, 접촉 시뮬레이션을 위한 Python 바인딩을 제공하는 C++17 물리 라이브러리입니다.
스레드 풀로 Gym 스타일 환경을 다수 병렬 실행하는 강화 학습용 C++ 배치 환경 풀입니다.
Franka Robotics 연구용 로봇을 실시간으로 저수준 제어하는 C++ 클라이언트 라이브러리이며, pylibfranka를 통한 Python 바인딩도 제공합니다.
Blender는 모델링, 리깅, 애니메이션, 시뮬레이션, 렌더링, 합성, 모션 트래킹, 동영상 편집을 지원하는 무료 오픈소스 3D 제작 도구 모음입니다.
일반 Python 함수를 CPU 또는 NVIDIA GPU에서 실행되는 커널로 JIT 컴파일하는 Python 프레임워크로, 시뮬레이션, 로보틱스, ML에 활용할 수 있습니다.