AMD offers FEMFX deformable physic library

Posted on Tuesday, Dec 17 2019 @ 12:30 CET by Thomas De Maesschalck
AMD published FEMFX via its GPUOPEN project. This is a multithreaded CPU library for deformable material physics. Game developers can find the library and sample code at GitHub.
FEMFX is a multithreaded CPU library for deformable material physics, using the Finite Element Method (FEM). Solid objects are represented as a mesh of tetrahedral elements, and each element has material parameters that control stiffness, how volume changes with deformation, and stress limits where fracture or plastic (permanent) deformation occur. The model supports a wide range of materials and interactions between materials. We intend for these features to complement rather than replace traditional rigid body physics. The system is designed with the following considerations:

  • Fidelity: realistic-looking wood, metal, plastic, even glass, because they bend and break according to stress as real materials do.
  • Deformation effects: non-rigid use cases such as soft-body objects, bending or warping objects. It is not just a visual effect, but materials will resist or push back on other objects.
  • Changing material on the fly: you can change the settings to make the same object behave very differently, e.g., turn gelatinous or melt.
  • Interesting physics interactions for gameplay or puzzles.

    The library uses extensive multithreading to utilize multicore CPUs and benefit from the trend of increasing CPU core counts.

  • Elastic and plastic deformation
  • Implicit integration for stability with stiff materials
  • Kinematic control of mesh vertices
  • Fracture between tetrahedral faces
  • Non-fracturing faces to control shape of cracks and pieces
  • Continuous collision detection (CCD) for fast-moving objects
  • Constraints for contact resolution and to link objects together
  • Constraints to limit deformation
  • Dynamic control of tetrahedron material parameters
  • Support for deforming a render mesh using the tetrahedral mesh

    To maximize the value for developers, we’re providing the implementation source code as part of GPUOpen under the MITx11 License. The full release includes the library source code, sample code, and for Unreal Engine developers, source for a plugin that demonstrates custom rendering and scene creation.

  • About the Author

    Thomas De Maesschalck

    Thomas has been messing with computer since early childhood and firmly believes the Internet is the best thing since sliced bread. Enjoys playing with new tech, is fascinated by science, and passionate about financial markets. When not behind a computer, he can be found with running shoes on or lifting heavy weights in the weight room.

    Loading Comments