MAT259 Final Project:

3D DataVisualization

by Zachary Rubin



For the final MAT259 project, students create a 3D interractive data visualization using data collected as part of the Seattle Public Library project (link).



The idea behind this project was to create a 3 dimensional interractive data visualization which would provide users with an effective and visually pleasing format to explore relationships between different item formats (eg. Book, CD, Magazine), the day of the week, time of day, and duration for which they are checked out.


Modes and Operation:

There are several modes, and methods of control which can be accessed by hovering over the "CONTROL" pane in the bottom portion of the screen. A list and brief description follows:






As shown above, the base visualization is a collections of dots whose colors correspond to the item format, and whose positioning in 3D space are functions of day of the week, time of day, and duration of checkout. In this scheme (assuming opacity is left near the default) the popular time/day/duration parings are emphasized by being drawn more brightly. With the 'Lines' checkbox selected, lines are drawn between consecutive transactions creating the frame like archecture shown. In spherical mode, time of day and day of week are mapped to angular components and checkout duration is mapped to radius. This creates a spiked orb because both the angular values (day of week and time of day) are recorded in discrete values. For obvious reasons, there are 7 possible values for day of week, and time of day is recorded at 30 min intervals between 8am and 8pm. For this reason the orb has 7 spikes along ρ (elevation) and 24 spikes for each of these 7 values along θ (azimuth). When the 'Log' checkbox is checked, the information is compressed along the the checkout duration axis, which makes outliers in the data more easily viewable.



The UCSB MAT program, Professor George Legrady, T.A. Reza Ali, Ben Fry, and everyone behind the developement of the Processing language as well as the PeasyCam and ControlP5 libraries.