BREAKING: 🎉 HinaPE reached 1000 commits! 🎉
HinaPE is a cross-platform and portable research-oriented physics-based animation infrastructure. HinaPE is a recursive acronym for "HinaPE is not a Physics Engine".
Prerequisites & dependencies:
- C++ 20
- cmake > 3.24
- intel tbb: we use intel tbb for parallel computing, so make sure you have installed it.
Built-in dependencies
- assimp: various 3d-model-formats loader
- glfw3: windowing & input
- stb: texture loader
- glad: OpenGL loader
- nfd: file dialog
- imgui: GUI (include implot & imguizmo)
- libigl: geometry processing
- eigen3: linear algebra
- compactNsearch (optional): fast nearest neighbor search
- cppnumericalsolvers (optional): nonlinear solvers
First recursively clone this repo and all submodules.
git clone --recursive https://github.com/HinaPE/HinaPE.git
cd HinaPE
For all platform (MacOS, Ubuntu, Windows)
cmake -S . -B Build
cmake --build Build --config Release
Physics Features
- Fluid Engine
- SPH solver
- PciSPH solver
- PBF solver
- Flip solver
- PIC solver
- APIC solver
- Level set solver
- MPM snow
- Cloth Engine
- PBD/XPBD solver
- FMS/PD solver
- FEM solver
- Rigidbody Engine
- powered by reactphysics3D
- powered by box2D
- powered by PhysX 5.1 (optional)
Rendering Features
- Backends: HinaPE is designed with OpenGL & Vulkan & DirectX 12 & Apple Metal backends.
- Rendering Engine: Built-in PBR renderer & GLSL pathtracer.
You need to first recursively update all submodules
git submodule foreach --recursive git pull origin master
git submodule foreach --recursive git checkout master
Documents
- [Physics Module Dev Manual](./doc/dev manual - physics module, zh-CN.md)