When you search for a color palette, VANGOGH searches the internet using BING search API, and downloads 100 images tagged with the search term. It then resizes the images to 50*50 pixels to improve efficiency. The images are cached and can be viewed here
The images are clustered based on perceptual similarity, ie, similar colored images are grouped together. This is done by generating color moment for each image, which serves as the signature of the image, which are then used to cluster, using an algorithm called K-Means clustering.
Each image is then converted to a collection of pixels. The constituting colors are visualised on a 3D space, where the spatial coordinates X,Y,Z are the values R,G,B of the pixel. The collection of colored points is then grouped using K-Means clustering, to generate the color palette. Palettes are tweaked and ranked based on color theory.
Each image now has a palette. And palettes from the same image cluster create a palette theme as they share a common color scheme. VANGOGH currently provides 4 themes with 5 palettes in each. The palette data and the 3D visualisation of color space of the images are sent to the browser, all under 8 secs.