CLICK ON THE PICTURE TO ZOOM SCALE 1:1
The key was to build the mathematical solution for this (that would be easy for any mathematician I guess…) And that’s it! Still quite bad programming (“functionnal programming”), but good work!
Take this picture:
Okay it’s not a “real” picture, but it could be: imagine that this is a precise representation of the amount of light that falls on a wall, the wall having the same proportions as the picture. The value of every pixel is proportional to the amount of light on the wall.
It is possible to take such a picture, one needs a properly calibrated digital camera. The result is fairly good if one has a good solution to remove the lens “vignetting”, and to check if the CCD or CMOS reacts properly.
So let’s imagine — for now — that it is the case: the picture is an almost perfect one, it is the map of the intensity of the light on the wall, coded in 16bit greyscale (values in the range 0 – 65535), and the exposure is good: no value is equal to 0 or to 65536, all the data is properly recorded witout being truncated.
We have a list of 386 color samples coded in RGB, printed with a very good inkjet printer. These color samples are measured by a spectrophotometer, i.e., we have their curves of absolute reflectance. We also have the spectral distribution of the illuminant (a fluorescent tube for ex.) — and we can use some Color Matching Functions to convert our spectral data into a colorimetric language allowing additive color calculations (CIE XYZ)
With all this, we are ready to calculate what sould be printed on the wall in order to get a uniform light field of a unique color, and the picture starting this post shows how the wallpaper could look like, before being printed (it is one of the infinite geometrical suitable solutions, using random numbers to distribute colors)
This is not only a simulation, all has been computed, only the wall’s image is a fake. That’s “painting with paints and lights”, the beginning of a long story I hope :)
A few more spectra (just a bit!) :