Light scattering simulation
This is a simulation of light scattering that I wrote in Scratch. It's a 2D demonstration of how light bounces off walls in ways which allow it to explore a wider space. The simulation casts rays from the light source and bounces them off of surfaces. Each ray loses some energy when it bounces off of a surface.

I've included several layouts within the project to showcase the effects of this behavior.

The light source can also be moved around:

A more complex scene:

Click and drag the light, set the scene, and click the green flag to restart the simulation from the new initial state.