Okay, I've got the obstruction rendering and the decibel free-space loss formula working in my WiFi coverage simulator.
Next it's time to use flatten-js to find ray intersections, measure how much material the ray passes through, and multiply by the resulting transmission coefficient in order to get occlusion working.