interesting especially in HTML but the black lines (mirrors) need to be able to MOVE as well as adjust the length. Maybe I missed it but the only way to move a mirror is to walk it one edge at a time.
Yes, this is painful as is. Also, when I complete a level the entire frame shifts about 10 pixels to the left as the save button appears. Nice concept though.
I don't know if you want a hint, but... If you do it the right way, no tweaking is needed at all. (The puzzle can be viewed as a very nice illustration of ergodic trajectories.)
I would be interested in collaborating with you to add some more physics: refraction (laser passing through slabs of glass) and curved surfaces (parabolic mirrors and lenses using the thin-lens approximation).
This would be the coolest way to learn about ray-optics.
I think the easiest way to add these would be to just make them fixed objects in the level (so the only drag-able items would still be the straight mirrors).