With FEM in Houdini 13, the rest attribute is stored on vertices which allows a tetra to change its rest state independently of the surrounding tetras. With this, parts can be expanded and shrunk to get a muscle type action.
I have started with a worm since it is quite simple, the contractions and expansions move back along the worm in a wave, opposing the travel direction. It took quite a bit of tweaking to get him moving at all. One major element of a real worm's action that's missing is the little hairs that grip the ground. I couldn't find a way to change the friction per point so I have gone a bit hacky and multed down v wherever I didn't want the worm to move. I would love to hear if there is a per point friction control!
Here is the video
Houdini 13 FEM Worm locomotion from Sam Hancock on Vimeo.
...and the .hip is here
H15 .hip here, for some reason, setting the rest attribute in the SOP solver no longer worked, I just turned on the rest geo option on the object and bypassed it in the SOP solver ... ?