Implement expanding circle that is blocked by walls

I would like to create a simulation of wifi/sound waves in 2D, so basically expanding circles around a starting point that lose in intensity. This has already been discussed in other topics, however, I did not find anything that allows the waves to dissapear or be partially absorbed on walls or even get bounced back or diffract.

Some ugly drawings to try to visualize what i was thinking of:

114132-81295-wall.png

Here the blue dots are the starting points of the waves:

The bouncing back on the walls is not drawn in both cases, but it can also be imagined easily or completely omitted.

I have no idea how i should implement this:

Modifying the texture’s pixels and use any water ripple algorithm?

Spawning circle sprites? How to partially mask the waves then? I don’t think a solution with layers for each room would provide scalable results (many rooms oriented and connected arbitrarily).

Any suggestions will be very appreciated.