DOLPi - RasPi Polarization Camera

A polarimetric imager to locate landmines, detect invisible pollutants, identify cancerous tissues, and maybe even observe cloaked UFOs!

Similar projects worth following
The polarization of light carries interesting information about our visual environment of which we are unaware because human vision is virtually insensitive to polarization. Some animals have evolved the capability to see polarization as a distinct characteristic of light, and rely critically on this sense for navigation and survival. Many fish, arthropods, and octopuses use polarization vision as a compass for navigation, to detect water surfaces, and to enhance the detection of prey and predators. Polarization cameras do exist, but at over $50,000, they are mostly research curiosities that have found few practical uses outside the lab. The DOLPi project aims to widely open the field of polarization imaging by constructing a very low cost polarimetric camera that can be used to research and develop game-changing applications across a wide range of fields; spanning all the way from environmental monitoring and medical diagnostics, to security and antiterrorism applications.

DOLPi – Two Low-Cost, RasPi-based Polarization Cameras for Humanitarian Demining and other Applications

The project's blog is at:

A complete project description including detailed construction instructions and Python code is available in pdf format at:

Or from HERE (Dropbox download)

Mirror backup site for the project description at:

All files available from Dropbox. CLICK HERE to be taken to DOLPi folder.

Images and text (c) 2015 David Prutchi unless otherwise stated.

NOTE: The space available for the project description in Hack-A-Day.IO is limited, so the following "detailed description" is just a brief summary of the most significant aspects of the DOLPi Project. If interested in this project, please download instead the complete project whitepaper available as a single pdf file at:


This project presents the development and construction of two low-cost polarimetric camera types based on the Raspberry Pi 2. DOLPi-MECH (and its productized IR-VIS-UV version DOLPi-UI) is a filter-wheel-type camera capable of performing full Stokes analysis, while the electro-optic based DOLPi-EO camera performs full linear polarimetric analysis at higher frame rate. Complete Python code for polarimetric imaging is presented. Various applications for the cameras are described, especially their use for locating mines and unexploded ordinance in humanitarian demining operations.

A complete project description including detailed construction instructions and Python code is available in pdf format at:

The DOLPi Project

Clouds of colorless pollutants, antipersonnel mines, and skin cancers are so difficult to detect because they blend so naturally with their background that our unaided eyes cannot see them. However, an octopus faced with the same problem would probably have a very easy time at locating these threats. This is because our human eyes can only distinguish objects from their background through the contrast in their color and/or intensity. On the other hand, octopuses would be able to see the contrast in light polarization between these items and their background.

Try this experiment - next time that you go outdoors on a sunny day, tilt your head while wearing polarized sunglasses. You will find that parts of the sky turn into a lighter shade of blue when you turn your head sideways. The intensity of the glare will also change considerably as you tilt your head while looking at a reflective surface like still water, or the windshield of a car. Look at a static scene like a parking lot while tilting your head back and forth – do the windows of parked cars seem to flash? The reason for this phenomenon is that the light scattered by the sky, or reflected by many surfaces is “polarized”. That is to say that light waves from these sources vibrate mainly in one direction.

In fact, every photon that reaches our eyes has its own polarization, yet this aspect of light is barely used in our daily life because our unaided eyes are insensitive to polarization, and thus we don’t have an intuitive sense for its use (actually, humans have very marginal sensitivity to polarized light as discovered by Haidinger in 1846, but changes in polarization can only be perceived under very specific conditions and do not contribute to visual feature discrimination).

In spite of this, polarization of light carries interesting information about our visual environment of which we are usually unaware. Some animals have evolved the capability to see polarization as a distinct characteristic of light, and rely critically on this sense for navigation and survival. For example,...

Read more »

  • iPhone DOLPi Polarization Camera Developed by Paul Wallace

    David Prutchi07/03/2016 at 15:07 0 comments

    Reader Paul Wallace contacted me to tell me about the DOLPi electro-optic polarization camera that he built for his iPhone. His ingenious solution makes use of the iPhone's flashlight to calibrate and synchronize the control of the polarization analyzer (hacked from a welder's mask as described in the DOLPi whitepaper).

    The drive voltage at which quasi-45 degree rotation of polarization occurs varies over time, so Paul used a phototransistor to detect light from the iPhone's flashlight that passes through a 45-degree polarizer on its way through the liquid-crystal panel. By varying the drive voltage across the liquid crystal panel, a minimum in transmitted light occurs when the 45 degree polarizers cross. As shown in the following picture, this level can be detected and used to set the corresponding 45 degree voltage reference:

    LCP transmission to 45-degree polarized light as a function of voltage in Paul Wallace's iPhone implementation of a DOLPi polarimetric camera
    LCP transmission to 45-degree polarized light as a function of voltage in Paul Wallace's iPhone implementation of a DOLPi polarimetric camera

    The iPhone’s flashlight is also used to synchronize the change in polarization with the image taking. The iPhone blinks the flashlight after every three images have been taken. The device uses this flash to reset the 0,45,90 sequence to a known state.

    Paul provides details of the Arduino-controlled circuit, its firmware, and the iPhone app in his webpage:

    Thanks Paul for sharing, and kudos for your very ingenious solution!

    Arduino-controlled circuit for the iPhone-based DOLPi Polarimetric camera developed by Paul Wallace
    Arduino-controlled circuit for the iPhone-based DOLPi Polarimetric camera developed by Paul Wallace

  • Final Version of DOLPi Whitepaper Posted

    David Prutchi10/26/2015 at 12:49 0 comments

    The final version of the whitepaper is now available at:

    Copies of all project files are available for download from Dropbox and Github

  • All DOLPi Files Now Available from Dropbox

    David Prutchi10/26/2015 at 12:14 0 comments

    All DOLPi Project files for the productized versions are now available on Dropbox. The project's whitepaper and finalist video are also included.

    CLICK HERE to be taken to the Dropbox file

  • Finalist Video Released

    David Prutchi10/25/2015 at 23:07 0 comments

    What a marathon weekend! I'm almost done though...

    I just posted the finalist video for DOLPi:

  • DOLPi-UI Universal Imager Hardware Completed and Working

    David Prutchi10/18/2015 at 23:22 0 comments

    This weekend I was able to complete the construction and test of the DOLPi-UI imager. It is capable of viewing and polarimetric imaging in the IR-VISIBLE-UV bands. A FLIR Lepton module extends its imaging (but not polarimetric) capabilities down to the longwave IR ("thermal IR"). Raspberry Pi is able to simultaneously present the thermal IR image while acquiring images in the near-IR, visible, and near-UV ranges.

  • Productive Weekend for DOLPi-UI

    David Prutchi10/12/2015 at 11:36 0 comments

    Had a very productive weekend for DOLPi-UI (Universal Imager). The main Chassis is assembled and all electronics and software are working. I added a FLIR Lepton module to extend the imaging range (although not polarimetry) to the longwave IR ("thermal" infrared).

    Still have to complete the assembly with the new bandpass filter wheel and light shield that are *still* being 3D-printed.

    I have a few surprises for the final submission!

  • DOLPi is a HAD 2015 Prize Finalist!

    David Prutchi10/05/2015 at 16:48 0 comments

    HAD just announced the 2015 HAD Prize Finalists, and DOLPi is one of them! Thanks HAD!

    Pushing along for the final submission, parts for the final product-ready prototypes of DOLPi and DOLPi-MECH are now being 3D printed. Here is a DOLPi-MECH filter wheel being printed by an Ultimaker 2:

  • More Elegant Liquid Crystal Panel Driver for DOLPi

    David Prutchi10/03/2015 at 20:18 0 comments

    Although the circuit of shown so far as the liquid crystal panel's AC driver works well, I’m not too happy with the intrinsic non-linearity of the FET. Because of this, today I designed and tested an alternative, a bit more complex, but I believe more elegant design. In the circuit shown below, the LCP drive amplitude tracks linearly with the DAC’s output.

    The non-inverting amplifier built around U1 approximately doubles the output of the DAC. This voltage is then presented to an H-bridge implemented by the analog switches in U2. The H-bridge produces a continuous biphasic train at a frequency given by the oscillator built around U3A and U3B. U4 doubles the +5V coming from the Raspberry Pi to power U1 and U2. The LCP is connected between the legs of the H-bridge.

  • Project whitepaper updated to v4

    David Prutchi10/02/2015 at 18:56 0 comments
  • DOLPi Whitepaper Updated to v.3

    David Prutchi09/25/2015 at 20:59 0 comments

View all 27 project logs

View all instructions

Enjoy this project?



JVS wrote 07/17/2019 at 00:56 point

David this is very impressive, however regarding mines does it have enough resolution to "see" the activation pin in most underground AP mines? I'm not an expert but the pic you show is of surface mines. Also would this work with plastic AP mines? those are particularly nasty and hard to detect.

  Are you sure? yes | no

pascal.fust wrote 07/08/2016 at 20:23 point

Hi David, 

your project opened my eyes for a very "new" aspect of visualization, adding another dimension to vision. I wonder (as a complete novice to this topic) if this technology could be applied for the detection of animals in nature. In particular, when thermal imaginary gets challenging on warmer days, a reliable detection technology is still needed.

  Are you sure? yes | no

paul wrote 07/31/2015 at 18:05 point

My understanding is that the LCP works like a variable phase plate, with the "active" axis nominally set at 45 degrees to the two polarizers in the "welding goggle" application.  So at "0" its a 0 wave plate, and no polarization rotation.  At "90" it's a half-wave plate, so 90 degrees of rotation.  That would mean that in the middle, it's a quarter-wave plate, not a 45 degree rotator, so what you are measuring through the final polarizer is either RHC or LHC circular polarization intensity, not the 45 degree linear component.  This is the reason for the somewhat complicated arrangement of the Bossa Nova Salsa camera cited, which used a fixed quarter wave plate in addition to Two LCP's.  You could confirm this either way using an external polarizer at 45 degrees, but one needs to be careful, as most polarizers for photographic applications include a quarter-wave plate to circularly polarize the light after it passes through the initial linear polarizer to avoid polarization interactions with the various beamsplitter coatings in the camera.
I am very interested in whether the LCP is a polarization rotator or variable phase plate, as I have been working a similar concept, but mechanically rotating the filters.  A "solid state" solution has a lot of appeal, and even if the LCP is a variable wave plate, the 45 degree linear measurement could be made by a smaller 45 degree rotation of the final polarizer.  And the RHC measurement in the "between" state then gives you the information to measure all the Stoke's parameters and completely characterize the polarization state in the image.

  Are you sure? yes | no

David Prutchi wrote 08/01/2015 at 18:32 point

Hi Paul!

I agree with you - the image that DOLPi takes at "45 degrees" is not strictly that,  which is why I state in the paper:

"Bossa Nova’s method is straightforward if laboratory optical-grade components are used. These are very expensive and out of reach for most private enthusiasts. However, I found through experimentation that a welding mask LCP and a polarizer sheet can also give very satisfactory results."

I didn't want to go into a thorough explanation of polarization optics to keep the project accessible, but your comment convinced me that I need to at least add a footnote with a brief explanation.  That said, based on my experiments, I'm convinced that DOLPi's "45 degree image" indeed contains a dominant 45 degree component when observing linearly polarized light. 

My original implementation was Salsa-like (using 2 LCPs from welding mask filters), so I was very surprised that better-quality images with essentially the same content were obtained using a single LCP driven as described in the project that I posted.

I am currently on vacation, so I don't have my notes with me, but I'm thinking about writing a second version of the paper with more detailed content for advanced experimenters (like you) who won't shy away from formal descriptions and additional math.

Please let me know your results if you replicate my design (or something similar with a LCP).    Additionally, please take a look at the following references which you may find interesting in connection with this matter:   (especially slide 12 and on)



  Are you sure? yes | no

David Prutchi wrote 08/24/2015 at 20:12 point

Hi Paul!

Please take a look at today's project log update.  I built a mechanical filter-wheel polarimetric camera to benchmark the LCP-based camera - especially the question that you raised about the dominance of the 45 degree component (when analyzing linearly-polarized light) with my pseudo-45 degree analyzer.  I'll post results as soon as I manage to get some time to run comparison tests.



  Are you sure? yes | no

David Prutchi wrote 09/21/2015 at 12:31 point

Hi Paul!

Again, thank you for your useful comment.  I added a whole section on this topic in the new version of the whitepaper.  I also placed comparative results for DOLPi (electro-optic with pseudo 45 degree) vs. strict polarimetric with DOLPi Mech.



  Are you sure? yes | no

npupp wrote 07/31/2015 at 10:50 point

ah fantastic project! much potential!

a potentially overlooked application of this is visualising stress fields within (some) transparent materials (optical birefringence creates polarisation dependence relating internal stress to polarisation angle; occurs in perspex, polycarbonates, glasses) can be pseudo-quantified. 

Drop me a line if you want to chat...

  Are you sure? yes | no

David Prutchi wrote 07/31/2015 at 13:17 point

Thanks!  That's an application that I forgot to mention, and I shouldn't have...  My graduate advisor was the late Prof. Mircea Arcan who invented a number of photoplastic and photoelastic stress and strain indicators, including the Vishay occlusion imaging system.  Thanks for jarring my memory!  That should make some nice example pictures!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates