3D Interactive
MAT 259, 2012
Dallas Mercer

Introduction
The goal of this final project is to represent a correlation between two related topics using data from the Seattle Public Library in a 3D visualization. I chose to use an earlier project (2D Spatial Map) as my reference and starting point, which was based on Pregnancy and the total amount of checkouts per month over the span of 7 years. I wanted to add a 2nd set of data to the final project and decided to use Birth as the topic and see if there was a direct correlation between the two. I was inspired by the typical bar graph visualization that is commonly seen in 2D and wanted to take it into the 3rd dimension. I was also imagining the way a crystal forms, with its sharp/shard like extensions, and also the way French fries pop out of the top of their box.

Background
and Sketches
My final project will be a continuation of my Spatial Map project based on Pregnancy. I want to add a 2nd data set based on Birth and see if I can find a correlation between the two. I'd like to turn the 2D squares into 3D boxes and have them all grouped next to each other inside the 3D field. My inspirations for the visual aspect of this project are a little bit strange (in my opinion) but work really well together to visualize my project. I like the way crystals form their shards and stick out in a linear, jagged, fashion. This is how I see my 3D boxes and the size/length of each box (crystal shard) will be determined by the amount of data it contains. I also see this group of 3D boxes joined together the same way French fries are held together in a box. I want to visualize that same look but without the box of course.


Query
Select year(cout), month(cout), count(*) from inraw where title like '%birth%' and cout > '2006-01-01' and cout < '2012-01-01' group by month(cout), year(cout) order by year(cout), month(cout);
(Replace "birth" with "pregnan" to get data for pregnancy results)
Explanation
This query calls the entire database "inraw" for all titles containing the word "birth" and/or "pregnancy" from the years 2006-2011.
Using Sequel Pro, each query completion time for "birth" and "pregnan" took approximately 4 minutes to complete. In order to avoid this 4 minute delay each time the Processing sketch is ran, I saved both sets of data as a text file and saved it within the Processing folder. (savedData1.txt and savedData2.txt)

Result and
Analysis
To begin, this was my very first 3D project design in Processing and my fifth Processing project overall. I was both technically and aesthetically challenged throughout this project but am very pleased with the results. I did in fact find a strong correlation between Birth and Pregnancy over the 6-year span. This was quite evident from the numbers alone but even more clear when expressed in the 3D visualization. It seems that there are more checkouts for these two titles during the first 4 or 5 months of the year, especially during the years 2009-2010. I was trying to propose a hypothesis as to why these two years have the most checkouts but couldn't find any information to support it.


Code
I used the PeasyCam library in Processing.

Run in Browser

Source Code

Control
Click and drag mouse to control the camera.