Dynamic particle field?


Is it possible to create a dynamic particle field which player can interact with: move some particles, “consume”/remove particles and so on, in real time?

For example:
Assume, there is a uniform particle field; player can select a particles in a some spherical volume and then remove those particles. Then other particles from the field should flow to the empty space to make the field to be uniform again…
And in case if player add/emit more particles in some specific point into the field, then those particles should flow from that point to the rest of the field evenly.

Is it possible with particle systems or need to implement it in some other way? Maybe there are any similar examples?