This is a project I started back in 2013, but haven't found the time to devote to making it happen. To date, I've simulated the display and come up with a preliminary physical design, but have yet to build one. I was going to wait until I had some more progress to report before writing this up on hackaday.io, but I saw the string portraits on HaD, and figured this would be a good time to start documenting the project - it might just give me the kick I've been needing to start this effort back up.
The idea is simple: a number of laser diode modules are fitted with simple motor-driven scanning mirrors. This would create a "sheet" of light from an unmodulated laser. When modulated, however, the laser can now produce a variable "fan" of rays. The rays from an entire ring of lasers overlap in a central circle, where the beams are scattered by the air, naturally occurring dust, or a volume of fog or smoke. When many beams overlap in an area, more light is scattered toward the viewer's eye creating brighter regions, thus forming an image. The contrast ratio of this device is limited by the number of lasers in the display; my simulations show that you could produce a usable display with a few dozen lasers.
Here's a simple diagram of the proposed scanning assembly - one of these will be required for each laser. To scan the beam, a small motor (pager or micro quadcopter) is coupled to a 45-degree mirror. A photodiode senses when the beam crosses a reference position, so that software driving the laser diode modulator can synchronize the laser modulation with the motor. I envision letting the motors run freely, then using a software PLL to synchronize the data fed to the laser diode modulator (there's no need for the lasers to all be synchronized at the scan level).
I picked up a hundred red laser diode modules cheap on ebay for a prototype. Although they're not very powerful, and the red color isn't great for viewing, I think I can make a workable prototype with them. Once I prove to myself that it's worth doing, I can invest in some doubled green modules, which are much brighter but more expensive.
The simulator is interactive, and lets you load different test images and change the number of lasers and the number of angular positions scanned by each laser. Here's an example of an input image and the result with a 36-laser display (obviously, I was thinking of a clock mode):
Unfortunately, when I wrote the simulator in 2013, I used some code that I'm not free to open-source. Looking at it this morning, it uses an old (v1.2) SDL library, which isn't compatible with the new 2.0 version, so it needs a re-write anyway for further development. While I'm at it, I can re-implement the non-free portion so that the whole thing can be open-sourced.
The simulator uses a very simple algorithm to determine the intensity of each projected ray. Each ray path is traced through the target image, and the total sum image intensity along that path is recorded. This intensity is then used to set the projected ray intensity. You might recognize the back-projection algorithm from Computed Tomography (CT) scanning. The idea here is similar, although I haven't worked out a full treatment of the math yet. It's quite possible that the quality of the images could be improved by applying a proper filter to the target image, similar to the filtered back-projection algorithm used in CT.