⇍ January 29th, 2006 ⇏
This spring, Angela and I are going to perform the arduous task of repainting most of the rooms in my house. The first step in such a process is to choose colours. I always find it difficult to picture what the final result will look like just staring at a tiny colour chip, so I looked around for a program that would help me choose. I wanted a program that would let me use a photograph of my room as input and then replace the current wall colour with a colour of my choice. Unfortunately, I couldn't find a program that satisfied me. The solution was to write one myself. Thus "AnttilaSoft Home Painter Pro" was born. After a few weeks of periodic fiddling, I finally have an alpha version working.
The top picture is a photo I took of my bedroom (which will be the office once Angela moves in). The bottom picture is the output from Home Painter Pro after changing the walls to a neutral grey colour. (This isn't the colour we are going to paint the office, but I needed a quick demonstration for this week.)
Once I'm happy with the program I will post the executable and the source code online so that others can try it out, though even in the final version it will require some messing around in Photoshop to define where the walls are.
Interesting. Why wouldn't Photoshop be adequate for this purpose? It seems to me the more dedicated application should map the walls to some rough geometry and do some global illumination (even something as quick as generating a few form factors and doing some quick radiosity). That way a bright red wall in your room would cast a red tint on the other walls and your furniture. A huge aspect of choosing paint color in a room is how all the wall colors will interact with each other and the furniture in the room. Oh that and you should also have a feature to specify the illuminant, whether its a tungsten lamp or day light, but this should be easy enough to do. Neat project.-- Aravind
Photoshop can certainly perform all the same functions that my program can currently do, but it has a steep learning curve for someone like Angela who has never used it (or any other graphics/paint program) before. Yes, ideally I would have rather used a raytracer to render a quick 3D mockup of my house, but this solution seemed a little bit easier for me to do as a weekend project. The clear benefit of this is that I can get decent results with a minimal amount of work. I do need to make it smarter about colour temperature like you mentioned. If I ever write version 2.0, I would definitely like it to automatically map the walls and allow you to specify light sources.-- Michael
I should also mention that a program which can automatically map walls and do global illumination has great money-making potential. Home Depot has a similar program in-store that doesn't let you use your own images, and a few paint manufacturers offer really bad (worse than mine!) programs on the web to sell their paints. I'm sure they or their competitors would pay good money for something that is easy to use and gives reasonably accurate results. The nice thing about the Home Depot in-store unit is that it has a special colour scanner to let you scan your own paint chips, but it's pretty pointless if you are just looking at a picture of a model home. It would be nice to model your own home under realistic lighting patterns.-- Michael
Actually, I take it back. The different illuminant thing wouldn't be easy to do if you tried to do a thorough job. It turns out that some (actually a lot of) paints can have metameric properties (some of which are desirable). So what you want is a spectral reflectance profile for the paint (which you can get with a half decent spectrophotometer) which you can then use against different illuminants. The paint in Kim's old living room had some interesting properties. It had a very different appearance when it was bright and sunny outside vs. the evening. She actually went out and got all little samples and laid them out on the living room floor and monitored their appearance over a few days. Also you don't want to model you entire house and ray trace it, it becomes difficult to visualize. You want to do what you are doing, but just apply some geometry to do the interreflection calculations. I think you're on to something here... hmmm... perhaps we should take this offline :)-- Aravind
Oh yes, I totally forgot about that. Thanks for reminding me! I have to remember to do the same thing with the paint chips that we choose. And yes, we don't want to give away anything patentable. ;)-- Michael
You guys are all in violation of all your NDA. You will all be fined, fired, arrested, and strip-searched for more stolen IP.-- Russell
Hosted by theorem.ca