iLove Food
MAT 259, 2018
Chantel Chan

Concept
I wanted to show the different kinds of books related to food that the Seattle Public Library has to offer. "Food" has its own category under the Dewey Decimal System, 641. In addition to that, the decimal points specify more which group it belongs to. By following this catalog, I was able to narrow down the groups into 6 categories:

I took inspiration of my animated visualization from agar.io, a game where you can eat other nodes, and become bigger. This is a fun and appropriate concept to apply to the topic I am working on: food!

Query
In my query, I wanted to generate the deweyClass type, and the number of checkouts each title has per year. Later when I export to .csv, I took the values of the counts of each year and took the average and standard deviation of the title. The average shows the typical number of checkouts of each year, and the standard deviation shows how high the variation is between all the values and the average.

The code can be found here.

Preliminary sketches
Like previously mentioned, the interface is influenced by the game, agar.io






Process
The position each point initially starts off with is randomly generated.
  1. Size: determined by the number of counts
  2. Speed: determined by the average
  3. Jitter: determined by the standard deviation

Initially, the code ran very slowly because I was running many for loops that required a lot of memory. Because of this, all the nodes lagged and the framerate was very low. This meant that the movements of the items where not smooth and actually seems discrete. However, I was still able to zoom in the 3D environment and hover over the nodes to look at the title and category.







Final result
threads() is a function used when there is a task that takes too long and would slow down the main animation's frame rate, such as grabbing data from the network. With this, I was able to make the movements of the spheres much smoother. In addition, I also slowed down the speed of them so that users are able to hover over them without having the need to play catch up.






Code
All work is developed within Processing
Source Code + Data