FEMFX is a multithreaded CPU library for deformable materials physics, utilizing the Finite Element Method (FEM). Solid objects are represented as a mesh of tetrahedral parts, and every aspect has materials parameters that management stiffness, how quantity modifications with deformation, and stress limits the place fracture or plastic (everlasting) deformation happen. The mannequin helps a variety of supplies and interactions between supplies. We intend for these options to enhance slightly than substitute conventional inflexible physique physics. The system is designed with the next concerns:
- Fidelity: realistic-looking wooden, metallic, plastic, even glass, as a result of they bend and break in keeping with stress as actual supplies do.
- Deformation results: non-rigid use instances resembling soft-body objects, bending or warping objects. It is not only a visible impact, however supplies will resist or push again on different objects.
- Changing materials on the fly: you’ll be able to change the settings to make the identical object behave very in a different way, e.g., flip gelatinous or soften.
- Interesting physics interactions for gameplay or puzzles.
The library makes use of intensive multithreading to make the most of multicore CPUs and profit from the pattern of accelerating CPU core counts.
Features
- Elastic and plastic deformation
- Implicit integration for stability with stiff supplies
- Kinematic management of mesh vertices
- Fracture between tetrahedral faces
- Non-fracturing faces to manage form of cracks and items
- Continuous collision detection (CCD) for fast-moving objects
- Constraints for contact decision and to hyperlink objects collectively
- Constraints to restrict deformation
- Dynamic management of tetrahedron materials parameters
- Support for deforming a render mesh utilizing the tetrahedral mesh
To maximize the worth for builders, we’re offering the implementation supply code as a part of GPUOpen below the MITx11 License. The full launch consists of the library supply code, pattern code, and for Unreal Engine builders, supply for a plugin that demonstrates customized rendering and scene creation.