Wow, well done, this is amazing! I am currently working on an university project that is quite similar to this in concept. How did you implement the FEM methods yourself? Do you have this code available? Thank you!