We present a perceptually based algorithm for modeling the color shift that occurs for human viewers in low-light scenes. Known as the Purkinje effect, this color shift occurs as the eye transitions from photopic, cone-mediated vision in well-lit scenes to scotopic, rod-mediated vision in dark scenes. At intermediate light levels vision is mesopic with both the rods and cones active. Although the rods have a spectral response distinct from the cones, they still share the same neural pathways. As light levels decrease and the rods become increasingly active they cause a perceived shift in color. We model this process so that we can compute perceived colors for mesopic and scotopic scenes from spectral data. While our tone mapping operator works with spectral data from any source, we show how to produce spectral data of static scenes using multiple images and a camera with known spectral sensitivity. If the spectral sensitivity isn't provided by the camera manufacturer, we describe a one-time calibration procedure to estimate the sensitivity. Should obtaining spectral data of a scene be infeasible, we also describe how the effect can be approximated from high dynamic range RGB images by learning a mapping from RGB to rod and cone responses. Once we have determined rod and cone responses either directly or through our approximation process, we map them to RGB values that can be displayed on a standard monitor to elicit the same color perception when viewed photopically. Our tone mapping method focuses on computing the color shift associated with low-light conditions and leverages current HDR techniques to control the image dynamic range. We include results generated from both spectral and RGB images as well as experimental data.