I've implemented a pretty simple version of what you are trying to achieve in my game, see here:

When you jump on the ground or simply move over it, the ground will soften up and your player sinks in and gets very slow. I'm using an invisible model for the ground/ collision detection and deform the ground entity using a (vertex) shader and some smoothed entity skills.
The same can be applied to three dimensions, of course, and with multiple dents.