FEM and MPM Solvers for physics based differentiable programming.
FEMFlow is a set of solver primitives and UI elements that enable to quick creation of physics-based simulations for the purposes of doing machine learning. The idea here is to limit the requirements on the scientist of having to build an entire rendering pipeline and wrangle all their datatypes and simply focus on just writing their research code. The provided modules allow for the creation quick UIs for MPM and FEM simulations. Additionally, there are interfaces for adding windows and menus without the overhead of having to write your own imgui handlers.
There are some built-in solvers that may or may not work, but should serve as an example for now (they're very incomplete).
Python allows for people who don't want to write C to be able to do all of their work from an easier interface. With numba and numpy, you can get pretty close to what C can do for a lot of things.
Active development. Not ready for usage as there are really no docs available.
The main.py
is a testbed for me to work on features and test them, and has useful examples. They are currently subject to change.
To run the finite element visualizer, it's here.
$ conda env create --file environment.yml
$ conda activate femflow
$ ./scripts/fem
To run the material point method visualizer, it's here.
$ conda env create --file environment.yml
$ conda activate femflow
$ ./scripts/mpm