Main Content

The goal of my project was to create a kind of DIY volumetric display that can be built at home with available components for makers.

A volumetric display is a graphical display device that creates a visual representation of an object in three physical dimensions. It renders a digital representation of a real object in physical space, the resulting image displays similar characteristics to a real world object, allowing an observer to view it from any direction. The three-dimensional images created by volumetric 3D displays are visible to the naked eye. It’s just one type of 3D display, and it has always fascinated me more than other common types of 3D displays, such as stereoscopic displays.

Although often seen in science fiction, volumetric displays are not yet commonplace. There are professional systems on the market, but they are very expensive. The goal of my project was to create a kind of DIY volumetric display that can be built at home with available components for makers. Of course there are significant limitations of my DIY version compared to the professional volumetric systems available on the market. But the result is remarkable despite the limited possibilities.

Several types of volumetric displays can be observed:

a. self-luminous (e.g. a LED matrix or rotating LED strips)
b. projection-based (projection of points onto a 2D projection plane that periodically sweeps to form a physical volume)
c. cross section based (e.g. multiplanar stacked translucent 2D displays)
d. Holographic (wave optics based systems that reproduce the properties of light waves - amplitude, wavelength, and phase)

My display project belongs to type “b.”, it uses a projector and a sweeping volume. The main components for my DIY display are :

1) A fast projector capable of displaying many hundreds of frames per second (more is better)
2) A sweeping projection volume that can be precisely controlled and is fast enough to provide the necessary persistence of vision effect.
3) Electronics for synchronization and control (based on Arduino)
4) Software tools for calibration, content creation and visualization (Windows based software)

The basic principle of operation is that the projector shoots a series of images onto the moving projection surface, resulting in a 3D object composed of many layers. For correct operation, the movement of the volume must be synchronized with the projector.

1) A fast projector
To achieve the necessary persistence of vision effect, we need a projector capable of producing several hundred frames per second. There are professional projectors for scientific purposes that can go up to 1000 frames per second and beyond, but they are very expensive. There are also some projects that use the TI “light Crafter” evaluation kit, but I have not been able to get my hands on one.

So can a cheap projector be “hacked”(modified) for this purpose? Yes - sort of. Here is what I did. First, the only type of projector that can achieve these high frames rates is DLP. LCDs are too slow and LCOS too expensive. DLP projectors can easily output 1000Hz frames because they modulate light intensity (grayscale) by switching on and off at several kHz. But the problem is how to control the DMD chip for our purposes. All the magic is in the ASIC and hidden. So we need to find another way. A standard DLP projector used for home theater or office purposes is a projector that uses a DLP chipset to create the image. The chipset is the micromirror device (“DMD”) and an ASIC(s) that controls it. The DMD is a chip that consists millions of tiny mirrors which represents the pixels of the image.

Home DLP projectors use only one DLP chip and process RGB light sequentially using a rotating color wheel. A single image is actually a sequence of subframes of red, green and blue image components. Due to the persistence of vision of our eyes, our brain sees a complete color image. Typically 3 or 4 segment color wheels are used. For better color reproduction, 6-segment RGBRGB color wheels are used as well. Some color wheels contain a yellow, cyan, or magenta segment in addition to the RGB segments. They are not suitable for our purpose. For this project, we need a simple wheel with RGB configuration only.

1.1 Modification of a standard DLP projector
The simple idea is to use the RGB color subframes as individual monochrome frames. If the color wheel is moved out of the projector’s optical path (it can’t be removed completey since the projector would no longer work), we get a bunch of additional black and white images that used to be the R, G, B planes. Basically, we sacrifice color and gain frame rate. Which projector to look for ? Here are my search criteria:

- must be a DLP type
- should have a simple color wheel configuration such as RGBRGB or RGBW (no RGBCMY or something like this)
- capable of accepting vertical input rates >60Hz, ideally 120Hz or more
- affordable

After some research, my choice was the Benq W1070. Introduced in 2013, it was (and still is) an excellent 1080p projector for home cinema and office use. It accepts 120Hz input for DLP3D and according to available documentation it has a RGBRGB color wheel. Meanwhile it has been discontinued by BenQ and can be purchased used in the 100-200EUR range. Please have a look at my video for detailed step-by-step instructions on how I did this modification.

Relocation of the color wheel : The best location I found is where the speaker was previously mounted. Of course this is only one possiblity.

Sensor-cable: I simply attached additional wires in parallel to the sensor, so that we can later analyze the sensor signal.

1.2 Frame sequence analysis
In order to reduce the “rainbow effect” of DLP projectors, most color wheels cycle through the RGB planes a number of times per frame. So projectors show repeating RGB planes multiple times per frame quickly to reduce this effect. However, these repeated RGB planes are not suitable for our application. The same content would end up multiple times on different Y-positions. The goal is to find a projection mode with a high input frame rate and as few R, G, B subframe repetitions as possible. A good solution for me was to use the “120Hz frame sequential mode” for DLP3D.

Some numbers:

- This 120Hz mode provides consecutive 120Hz R, G, B images : 120Hz*3 = 360Hz
- To avoid flickering, the total “Volume Refresh Rate” should not be less than 30Hz (but also does not need to be much higher).
- With 360fps and 30Hz volume refresh, we will get 12 vertical planes for our volume : 360fps/30Hz=12
- Not impressive enough? How about this: At Full HD input, we get 24.8 million voxels : 1920x1080x12 = 24.8M (!)

Back to our 120Hz input mode. It is intended for DLP3D and will sequentially generate a high refresh rate. Don’t be confused by the term DLP “3D” : We only use the highest possible frame rate of the projector, which happens to be this mode! Later on, the Arduino will control the projector via RS232 and will set this mode. The frame sequence for this mode is shown below.

1.3 Adding a shutter
This can be done using a LCD shutter (sometimes also called “light valves”). Basically a shutter is “one huge LCD pixel”, which will block or unblock the light passing though it. It’s a liquid crystal display without a backlight and is used to control the amount of light passing through an optical system. If the shutter is fast enough, we can select each subframe from the projector stream individually.

I tried a couple of commercially available light valves but due to switching speed, the best option was to re-use an old pair of old TV “active shutter glasses” which were used in the passed 3D-TV era. They usually can flip in less than 1ms and can easily achieve 144Hz or more. In order to reproduce the shutter control signal later, the signal was first analyzed in the working 3D glasses (Note : This signal of course depends very much on the model). In my case, I measured the follwing signal on the control wires : The control voltage oscillates around +9V..0..-9V. They become opaque at +9V and -9V and will be transparent when shorted (0V).

The shutter element was carefully removed and 2 wires were attached. They will later be controlled by the electronics (see section below). I mounted the projector on a base plate and used aluminum profiles to create a solid frame around it.

To be able to project upwards, I used an angled mirror and placed the shutter on top. This element is what I call the projector front unit. All front unit parts are 3D printed and a link to the STL repository is included below.

What we have so far: The combination of the above elements is a cheap projector modified to produce black and white frames at 360fps that can be addressed individually.”

Link to article