This is very impressive work! you have certainly surpassed my previous 2D efforts. I had implemented 2D soft shadows in a geometric manner by casting back-faces and calculating penumbra/umbra regions based upon the size of the light source. Is this similar to what you do or are you using a technique that's more akin to shadow-mapping?