Figure 1. We can create re-programmable multi-color textures from a single material. (a) We mixed CMY pho-tochromic dyes together to create our multi-color ink. (b) After coating the object, we use (c) a UV light source and a projector to control each color channel on a pixel-by-pixel basis, resulting in high-resolution multi-color tex-tures that can be reapplied multiple times.
In this paper, we present a method to create re-programmable multi-color textures that are made from a single material only. The key idea builds on the use of pho-tochromic inks that can switch their appearance from transparent to colored when exposed to light of a certain wavelength. By mixing cyan, magenta, and yellow (CMY) photochromic dyes into a single solution and leveraging the different absorption spectra of each dye, we can control each color channel in the solution separately. Our approach can transform single-material fabrication techniques, such as coating, into high-resolution multi-color processes.
We discuss the material mixing procedure, modifications to the light source, and the algorithm to control each color channel. We then show the results from an experiment in which we evaluated the available color space and the reso-lution of our textures. Finally, we demonstrate our user in-terface that allows users to transfer virtual textures onto physical objects and show a range of application examples.
Programmable matter that has the ability to change its physical properties (color, shape, density) holds the promise of a future in which objects will re-configure themselves according to a user’s needs. One aspect of programma-ble matter is color, which would allow objects to change their appearance repeatedly. For instance, in clothing, ac-cessories could be altered to match the main outfit and textiles could be recolored for different events in the same day.
To update the appearance of objects, researchers started to use re-programmable materials, such as photochromic inks, that can switch from transparent to colored when exposed to light of a certain wavelength. Since the inks are bi-stable, the color remains even when the light source is removed. The process is fully reversible, therefore enabling users to recolor the object as many times as they desire.
A major limitation of using photochromic materials, however, is that they are single-color only, i.e. each material can only transition from transparent to one color and back to transparent (e.g. Photochromic Carpet). To bypass this limitation, researchers printed a voxel pattern with one photochromic color per voxel across the surface of an ob-ject and then selectively deactivated all voxels of the colors that were not part of the desired appearance (Color-Mod). However, this approach had several limitations: (1) it was low resolution (1mm x 1mm voxels) since each voxel had to be 3D printed, (2) it was limited to a few discrete colors only since each color had to be loaded as a separate 3D printing material, (3) it required a specialized 3D printer with 4+ print heads (one print head per color + infill).
Inspired by work from Hirayama et al., we present an approach that addresses all three problems. By mixing cy-an, magenta and yellow photochromic dyes into a single solution and leveraging the different absorption spectra of each dye, we can control each color channel in the solution separately, which results in a range of colors across the CMY color space. Since our approach uses only a single solution, we can transform single-material fabrication pro-cesses, such as coating, into high-resolution multi-color techniques (Figure 1).
The benefits of our approach are as follows: (1) since we no longer need to print individual voxels for each color, we can create high-resolution textures that are limited only by the precision of the projector; (2) since we can control each color channel and can determine to which extent it should be deactivated, we can create a range of intermediate col-ors in the CMY color spectrum and are no longer limited to a few discrete colors; (3) since we only need a single mate-rial for our approach, it eliminates the need for specialized 3D printing hardware and allows us to use simple fabrica-tion techniques, such as spraying or coating instead. Note that we do not claim to achieve the entire CMY color spectrum with our method due to partial deactivation across channels (see Figure 14 for the available color space).
We begin by summarizing the related work on photo-chromic systems and then introduce the main working principle of our approach. We then describe how we developed the CMY photochromic solution, how we modified the projector to output the correct wavelengths for deactivating the different photochromic dyes, and how we determined the achievable color gamut through our evaluation. Finally, we present a range of scenarios that demonstrate our system in practice.
BASIC WORKING PRINCIPLE
When cyan, magenta, and yellow photochromic colors are mixed together into a single solution and the solution is ac-tivated with UV light (i.e. all three color channels are fully saturated), the resulting color is black (Figure 2a). This is consistent with the CMY color chart shown in Figure 2b, i.e. the center of the chart, which shows the result of all three color channels in full saturation is black.
To achieve colors other than black, we need to deactivate one or more color channels. Deactivating the cyan color, for instance, would result in red since only yellow and magenta remain activated (Figure 2b). To deactivate each color channel individually, we can leverage the fact that the deactivation peak (i.e. absorption peak) of each photo-chromic color is at a different wavelength (Figure 3).
Figure 2. (a) CMY inks mixed together achieve black, which matches (b) the CMY color model.
Figure 3. The absorption peak of each photochromic dye is at a different wavelength. To control each color chan-nel, we can use the RGB LEDs of a projector to supply the required deactivation wavelength.
Since all of the deactivation wavelengths are within the spectrum of visible light (390 nm to 790 nm), we can use a regular office projector’s red, green, and blue LEDs to supply one deactivation wavelength each. As can be seen in Figure 3, shining blue light from the projector will deactivate yellow, green light will deactivate magenta and red light will deactivate cyan. Thus, to deactivate a specific photochromic color channel, the projector only needs to project R, G, or B pixels to reduce the saturation of the channel, as shown in Figure 4.
Figure 5 shows the physical result of shining different combinations of RGB on the CMY ink mixture, which we ob-tained by following the deactivation chart in Figure 4. While Figure 5 demonstrates the results obtained by fully deactivating one or more channels, we can achieve intermediate colors of different saturation levels by only partially deactivating each channel. We will provide more information on this when we discuss the algorithm that times the projected deactivation wavelengths to accomplish this.
Figure 4. Theoretical result of shining different combinations of RGB on the mixed CMY photochromic ink.
In the remainder of this paper, we will provide more detail on each of the steps, starting with (1) creating the photo-chromic CMY coating that can be applied to objects, (2) modifying the light output from the projector to ensure the wavelength of the light matches with the deactivation wavelength of the dyes, and (3) developing the algorithm to accomplish intermediate colors of different saturation levels. After this, we will (4) evaluate the color gamut that we can achieve with our method and determine how closely the physical color represents the virtual color. Finally, we will (5) discuss the implementation of our end-to-end system to transfer the texture onto an object.
Figure 5. Physical result of shining different combina-tions of RGB on the mixed CMY dye.
To make our method directly applicable to physical objects, we developed a re-programmable photochromic coating that can be airbrushed onto the surface of objects. To develop the coating, we dissolved cyan, magenta and yellow photochromic dyes directly into a transparent laquer.
Creating the ink mixture
1.DEVELOPING THE PHOTOCHROMIC COATING
#2 Absorption Spectra: To be able to choose photochromic dyes that minimize overlap between different color channels, we determined the absorption spectrum for each photochromic dye. For this, we first mixed 0.1 wt% of each dye in ethyl acetate from Fisher Scientific using a magnetic stirrer for 1 hour at 500 RPM and then filled the solution into quartz cuvettes with a 1mL path length. We then radiated the solu-tion under UV light until the photochromic inks were fully activated and then placed the cuvettes in a spectropho-tometer (Varian Cary 5000 UV-Vis-NIR spectrophotometer) to determine their absorption spectra. The results are shown in Figure 7. We used yellow (DAE-0068) as a starting point for selection since it was the only available dye for this channel. For magenta, red purple (DAE-0012) and red (DAE-004) had the least overlap with yellow and cyan. For cyan, the least overlap with magenta was blue (DAE-0001) followed by blue purple (DAE-0018).
Figure 6. Bi-stable photochromic inks available from Yamada Chemical Co.: 0.1wt% die mixed in ethyl acetate.
#3 Stable under ambient light: Both red (DAE-0004) and blue purple (DAE-0018) were not very stable as they deac-tivated in ambient light after a few minutes. Thus, based on our criteria, we decided to use for cyan: blue (DAE-0001), for magenta: red purple (DAE-0012), and for yellow: yel-low (DAE-0068). This combination minimized overlap of deactivation wavelengths while also being closest to the desired color channels and the greatest stability under ambient light. For the purpose of easier explanation, we will refer to the blue dye as cyan dye and the red purple dye as magenta dye for the remainder of the paper.
Applying the ink to materials & objects
Figure 7. Absorption spectra of the photochromic dyes in the visible wavelength range.
After this, we sprayed our photochromic coating onto the surface of the object using an airbrush system (Iwata HP-CS). The saturation of the sprayed ink can be increased by applying a second layer of ink after letting the first layer dry for 20 minutes. The ink is then fully dried after ca. 24 hours.
By using an airbrush to apply the coating, we can coat the surface of an object evenly. While we sprayed the layers manually and found the consistency to be good enough for our applications, a CNC airbrush system may further improve the results. The coating can also be painted, however, this leads to an appearance that is less uniform.
We used laquer as the carrier material for the photochromic dyes. The laquer is recommended for use on metal (see example of model car exterior in Figure 25) and plastic (3D printed chameleon in Figure 8).
Figure 8. (a) Applying the photochromic coating and (b) the resulting coated object after UV activation.
As mentioned previously, to deactivate each photochromic color channel individually, we need three different light sources: one light source with the corresponding deactiva-tion wavelength for each photochromic dye. Since existing DLP projectors already contain three light sources (3 LEDs for R,G,B), we decided to modify an existing office projec-tor (model: AAXA M6, 1200 Lumens).
To determine the optical spectrum of each of the LEDs in the projector, we used a spectrometer (Thorlabs, CCS200) and found that the three LEDs overlap well with the select-ed photochromic dyes (Figure 9).
2. MODIFYING THE PROJECTOR
The blue LED of the projector creates light output over a small wavelength range and matches well with the yellow deactivation wavelength, therefore, by shining blue light from the projector, we can deactivate the yellow photo-chromic. Similarly, the red LED of the projector creates a light output over a small wavelength range and matches well with the cyan deactivation wavelength, thus, by shining red light, we can deactivate the cyan photochromic color.
Unfortunately, while the green LED of the projector matches well with the magenta deactivation wavelength, the default green LED creates a light output over a broader wavelength range. As a result, while shining green light would deactivate the magenta dye, it would also deactivate large parts of the yellow and cyan dyes.
To limit the wavelength range to only deactivate magenta, we opened up the projector and added a filter in front of the green LED (Semrock Brightline® FF02-529/24-25). To ensure the highest energy output, we placed the filter between the green LED and the collimator (Figure 10). With this modification, we were able to otherwise use the projector as is.
Figure 9. Optical spectrum of the projector output and absorption spectra of cyan, magenta and yellow dyes.
Figure 10. Modified projector with added optical filter between green LED and collimator.
With the modified projector at hand, we can now create a projection image to control the photochromic color chan-nels of each pixel on the physical object.
Effect of Projector Distance on Color Gamut
3. ALGORITHM TO COMPUTE DEACTIVATION TIMES
Since our algorithm takes into account the effect each projector LED has on each photochromic color channel (i.e. its target photochromic color channel and the side effects on the other two channels), we first had to determine saturation decrease over time for each combination of LED and dye.
Apparatus and Procedure: To capture the deactivation times of each dye when exposed to each of the wavelengths R, G, B from the projector, we airbrushed cyan, magenta, and yellow coatings onto seperate white cubes. We placed each cube in front of the projector and fully activated the photochromic dye by shining UV light on its surface for 30 s.
We then shone all three deactivation wavelengths red (R), green (G) and blue (B) onto each cube in order to quantify the effect of the projector’s LEDs on each dye.
The saturation level of each projected R, G, B color bar linearily increased from left to right over time until it reached the right edge of the cube (Figure 12). This proce-dure created a color gradient from fully saturated dye (left) to increasingly desaturated dye (right) and intermediate saturations in between. We then extracted the relative satu-ration level by capturing a photo of each cube under white light, converted the photo to the CMY color space, and plotted the saturation per color channel as the relative satu-ration decrease over time.
Figure 11. (a) Expected result. Results from (b) the naïve approach and (c) our optimization.
Deriving the Parameters of the Algorithm
Result: Figure 13 shows the relative saturation levels over time for each dye and each of the projector’s color channels. While each of the projector’s R, G, B LEDs deactivated its primary photochromic color channel, the deactiva-tion times varied significantly from 32 seconds for the yel-low dye under blue light to 620 seconds for the magenta dye under green light and 800 seconds for the cyan dye under red light.
Figure 12. Effect of exposure time of R, G, B projector channels on C, M, Y coatings (left = 0s, with time increasing to the right).
Computing Deactivation Times: We used the data on relative saturation level over time as input into our approximation algorithm. To minimize the global error rate across all three channels, our algorithm proceeds as follows: Let t=(t_r,t_g,t_b ) be the illumination time of the projector’s color channels, then the estimated color of a coated surface C(t) can be written as:
Figure 13. Deactivation times of the photochromic dye per light channel (R, G, B). We consider a dye to be deactivated when it drops below 5% saturation.
Where X ∈C,M,Y are cyan, magenta, yellow at full saturation and a_j,b_j,c_j are linear factors on the saturation reduction in relation to the illumination time t per color channel. Let P be the target color, then we want to minimize the expression:
We use a gradient descent scheme which can be written as:
With γ being the step size.
An example of the improvement of our optimization algorithm over the naïve approach was shown in Figure 11. Our greatest enhancement is in the yellow color, a result of our optimization algorithm, which prioritizes the red LED over a combination of the red and green LED (as predicted in Figure 4) to deactivate the cyan and magenta dyes (since the green LED also deactivates the yellow dye).
To evaluate our approach, we measured the available color gamut and the maximum resolution of the projected tex-tures.
Available Color Gamut
4. EVALUATING OUR SYSTEM
While Figure 15a/b (5px and 2px width) both show a clear checkerboard pattern, the squares start to become indistin-guishable in Figure 15c (1px width). To clarify if the blur at the edges of the individual pixels in Figure 15 stems from the projector being out-of-focus or from subsurface scattering, we ran an additional test: we attached a 1x1 cm square mask on a UV activated cube and projected white light on it, after which we removed the square mask. Examining under a microscope, the edges and corners of the pixels remained sharp indicating that the projector’s lens and focus is the main reason for blur. Thus, while with our current projector system, the maximum resolution we can achieve is 257 um (2px), a better projector could achieve higher texture resolutions.
Color Fade Over Time
Figure 15. Resolution of checkerboard pattern.
Figure 16. Color fade vs time for cyan, magenta and yel-low dyes under 150 lux illumination.
In the last part of this paper, we describe the end-to-end system that allows users to transfer a texture onto a physical object. Figure 17 shows a summary of the system pipe-line.
5. END-TO-END SYSTEM TO TRANSFER A TEXTURE
Figure 17. Overview of the end-to-end system.
#1 Applying a Virtual Texture to a 3D Model
Figure 18. Hardware setup.
#2 Transferring the Texture onto the 3D Object
Figure 19. (a) Loading the 3D model of the object, (b) applying a virtual texture onto the 3D model, (c) computing the preview texture.
Compensating for Overlap: When projecting a texture onto the object from several sides, parts of the object may be projected onto multiple times. To compensate for this, we compare the intersection points of each ray on the object to the intersection points of all other views. If a hit point is closer than the projected pixel size (129 um), we set this pixel to black, removing any projection on this area.
Compensating for Slanted Edges: The more a surface is slanted, the less light from the projector will hit each target pixel on the surface. As a result, the same deactivating time will reduce saturation more on a perpendicular surface than on a slanted surface. To compensate for this, we calculate the incident angle of each ray on the virtual object and increase the illumination time in relation to this angle (e.g. a 45° angle to the projector’s position increases the illumination time by a factor of 2). We limit the maximal surface angle to 65° in order to limit the total illumination time.
#3 Final result
Figure 20. Projecting the deactivation colors onto the 3D object to achieve the desired texture.
Re-Programming (Repeat Step #1 - #3)
Figure 21. Final result of the texture on the object.
Figure 22. Re-coloring the chameleon (zebra texture) by activating with UV light and applying a new texture.
We demonstrate a range of applications that make use of our ability to reprogram textures on different materials.
#1 Day-to-Night Clothing and Adaptable Fashion
To demonstrate the application of our coating onto textiles, Figure 24 shows a women’s size US 6 shoe (length: 24.5 cm) coated with different textures to match different outfits; both textures took 1.5 hours to apply.
Figure 23. The same phone case re-programmed three times with different textures.
#2 Product Exploration
Figure 24 The same shoe with two different textures to match a user’s daily outfit.
Other scenarios we envision include large-scale applications, such as entire rooms in which walls or furniture can be re-colored (e.g. using a ceiling mounted UV/projector system); and dynamic physical visualizations (e.g. a 3D printed earth sphere could update during the day to show changes in weather).
Figure 25. The same car with two different color textures.
While the contributions we make in this paper extend the capabilities of prior work, there are several improvements that we will address as part of future work.
Creating a Larger Color Gamut
LIMITATIONS AND FUTURE WORK
In this paper, we demonstrated how we can use photo-chromic dyes mixed into a single solution to create re-programmable multi-color textures that are made from a single material. We discussed the properties photochromic dyes need to have in order to achieve a large color gamut (appearance as close as possible to the color channel, minimized overlap in deactivation wavelengths), demonstrated how to create a mixture solution that provides even saturation in each color channel (mixing CMY 1:1:6) and explained how the projector needs to be modified to provide deactivation wavelengths that mostly deactivate a single channel (i.e. by adding filters). Finally, we explained our algorithm to create intermediate colors and provided an end-to-end walkthrough of our system that transfers a vir-tual color texture onto a physical object. For future work, we plan to further increase the capabilities of our system by collaborating with material science researchers to develop improved photochromic dyes and extending our fabrication methods to 3D printing with filaments and resins.
The authors would like to thank the Engineering and Physi-cal Sciences Research Council (EPSRC grant number EP/N509619/1) for partial funding of this work, Ford Motor Company for the financial support, Prof. Masahiro Irie (Rikkyo University) for sending us photochromic samples, Madeleine Laitz for help with analyzing the absorption spectrum of the photochromic dyes, Cattalyya Nuengsigkapian for help with the preview function, and Tom Buehler for support in video editing. Permission to publish was granted by Ford Motor Company.