This is a learning project, large portion of algorithms are hand coded without any optimisation. check the lastest branch for more features. But stop working on this... maybe I would in the future, but no gurantee.
C++ 17
libigl 2.3.0
glfw 3.35 WINx64 vc2015
glad Opengl 3.3 core
Eigen: check consistence with libigl
json.h: https://github.com/nlohmann/json
CGAL 5.3
boost 1.78.0(the library is too large to be included, install and ref it seperately)
- create *.obj in Blender.
- Then using https://github.com/wildmeshing/fTetWild to generate tetrahedral mesh in *.msh
*.msh is format define in Gmsh: https://gmsh.info/doc/texinfo/gmsh.html
base class of the objects in the world, store information of the objects that spawned
inherited class from Objects. spawned as world statics. Cannot move or deform. Collision detection is allowed.
inherited class from Objects. Spawned as world dynamic. Has 2 extra properties: velocity and mass (use for physics simulation) And more properties could be added for deformable simulation
Base class of physics engine, process the world and predict the next state
inherited class from Engine. using the basics Newton's laws.
FEM, PBD, PD, etc: adding later
pasring files, calling engines to simulate, export setup for the current state, etc
render the world and display.