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:
        
          - Gastronomy, Epicurism, Nutrition
- Drinks
- Food History, Preservation
- Cooking
- Cooking Specific Dishes, Techniques
- Miscellaneous
        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. 
        
          - Size: determined by the number of counts
- Speed: determined by the average
- 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