It started as a silly idea after we discovered the 71 image database of cats native to Wolfram that we make a program to "browse" the cats, that's where the idea of sorting them by fur color came from.

What it does

In practice, it sorts a database of 71 cats by their fur color according to their RGB element, in theory it could sort any database of images according to RGB provided the image is focused on the subject.

How I built it

At first was the issue of how to determine the color of each cat, thankfully the DominantColor function solved this problem for the most part, because all photos had the cats front and center, I took DominantColor within the center 38 pixels (This was the spot I found which eliminated interference from the background in all photos) to determine the color of the cat's fur. After that I struggled forever with the nestles, which I understood nothing of and were the reason I had such difficulty manipulating the RGB data from the colors early on. It was maybe 10 hours of trying any solution that came to mind and googling before I found a way to isolate the RGB. Unfortunately it required me to separate the RGB from the image, and even after succesfully sorting all the colors by RGB without their images, I found it very difficult to attach the images again with a solution that felt universal and honest. After throwing myself at it Saturday night I gave up on the idea of a formula and decided to instead manually sort the pictures, which disappointed me greatly. However after talking with the people at the Wolfram booth I was introduced to the Gatherby, Sortby, and a very clever way of exploring nestles, and so this bridged the gap between where I stood before with my formula, and the solution.

Challenges I ran into

Nobody on the team had experience with Wolfram before coming into this project,

Accomplishments that I'm proud of

Picking up a language as difficult as Wolfram and creating a solution to an unorthodox type of problem such as this one in a matter a day. I spent almost the entire time coding and still have not slept. It was very difficult and I'm glad I accomplished what I sought out to do.

What I learned

I learned about nestles and manipulating complex datatypes in an array with a host of other things. The most significant thing I learned was certainly how to use Wolfram

What's next for Cat Hack

I want to play around with graphical manipulation of images and perhaps integrate some logic into it, because it's an area of Wolfram I've still not yet explored.

Share this project: