title: Simulating Light (Point Source) in 2D Room
body: <p>I am trying to simulate an omnidirectional light source in a 2D room.  I would like to set up a room and have "light" propagate from a point source, stopping only when it reaches a wall.  The result is shadows will be cast where the light cannot reach.  The below picture shows the problem with several point sources</p>
  
  <p><a href="https://i.stack.imgur.com/fLKmy.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fLKmy.png" alt="enter image description here"></a></p>
  
  <p>I am implementing this in <a href="https://d3js.org/" rel="nofollow noreferrer">D3 JS</a> as part of a game based around the <a href="https://en.wikipedia.org/wiki/Art_gallery_problem" rel="nofollow noreferrer">art gallery problem</a>.</p>
  
  <p>I am struggling to come up with a data structure suitable for allowing this simulation and animation.  I imagine a circle radiates out from the source, splitting into arcs whenever it encounters a wall?  <strong>Is there a way to do this without simulating lots of individual light beams?</strong></p>