Hans Zimmer's OST and Its Original Film Checkout Trend
MAT 259, 2018
Sihwa Park

Concept
Extending my previous 2D visualization work, which is to compare the checkouts of OSTs, in which Hans participated or composed, and the checkouts of their original films from the Seattle Public Library dataset, this 3D visualization has an almost similar concept to the 2D version.

Query
This query is the same with the query of my 2D visualization work.

SELECT
    YEAR(cout) AS Year,
    MONTH(cout) AS Month,
    SUM(CASE
        WHEN (title LIKE 'Blade Runner 2049%soundtrack%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Blade Runner 2049 OST',
    SUM(CASE
        WHEN (title LIKE 'Blade runner 2049%' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Blade Runner 2049',
    SUM(CASE
        WHEN (title LIKE 'Dunkirk%soundtrack%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Dunkirk OST',
    SUM(CASE
        WHEN (title = 'Dunkirk' and bibNumber = '3276118') THEN 1
        ELSE 0
    END) AS 'Dunkirk',
    SUM(CASE
        WHEN (title LIKE 'Hidden figures%original score%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Hidden Figures OST',
    SUM(CASE
        WHEN (title LIKE 'Hidden Figures%' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Hidden Figures',
    SUM(CASE
        WHEN (title LIKE 'Kung Fu Panda 3%music%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Kung Fu Panda 3 OST',
    SUM(CASE
        WHEN (title LIKE 'Kung Fu Panda 3%' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Kung Fu Panda 3',
    SUM(CASE
        WHEN (title LIKE 'Interstellar%soundtrack%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Interstellar OST',
    SUM(CASE
        WHEN (title LIKE 'interstellar%' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Interstellar',
    SUM(CASE
        WHEN (title LIKE 'Son of God%Motion Picture Soundtrack%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Son of God OST',
    SUM(CASE
        WHEN (title LIKE 'Son of God%' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Son of God',
    SUM(CASE
        WHEN (title LIKE 'Man of Steel%soundtrack%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Man of Steel OST',
    SUM(CASE
        WHEN (title LIKE 'Man of Steel%' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Man of Steel',
    SUM(CASE
        WHEN (title LIKE 'Inception%Music%Motion Picture%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Inception OST',
    SUM(CASE
        WHEN (title LIKE 'Inception%' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Inception',
    SUM(CASE
        WHEN (title LIKE 'Sherlock Holmes%motion picture soundtrack%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Sherlock Holmes OST',
    SUM(CASE
        WHEN (title = 'Sherlock Holmes' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Sherlock Holmes',
    SUM(CASE
        WHEN (title LIKE 'Madagascar%motion picture soundtrack%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Madagascar OST',
    SUM(CASE
        WHEN (title = 'Madagascar' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Madagascar',
    SUM(CASE
        WHEN (title LIKE 'Madagascar%2%Music%Motion Picture%' and itemType LIKE '%cd')
        THEN 1
        ELSE 0
    END) AS 'Madagascar Escape 2 Africa OST',
    SUM(CASE
        WHEN (title = 'Madagascar Escape 2 Africa' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Madagascar Escape 2 Africa',
    SUM(CASE
        WHEN (title LIKE 'Madagascar 3%Music%Motion Picture%' and itemType LIKE '%cd') THEN 1
        ELSE 0
    END) AS 'Madagascar 3 Europes Most Wanted OST',
    SUM(CASE
        WHEN (title = 'Madagascar 3 Europes most wanted' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS 'Madagascar 3 Europes Most Wanted',
    SUM(CASE
        WHEN (title LIKE '12 Years A Slave%Music%Motion Picture%' and itemType LIKE '%cd')
        THEN 1
        ELSE 0
    END) AS '12 Years A Slave OST',
    SUM(CASE
        WHEN (title = '12 Years A Slave' and itemType LIKE '%dvd') THEN 1
        ELSE 0
    END) AS '12 Years A Slave'
FROM
    spl_2016.outraw
GROUP BY YEAR(cout) , MONTH(cout)
ORDER BY YEAR(cout) , MONTH(cout)

Duration : 463.161 sec

Preliminary sketches
Instead of using a circular timeline for showing an issue date of each item, it draws a 3D spiral timeline at the center.



Moreover, it uses not only 3D bars but also 3D half-disc(cylinder) shapes to plot checkout data. What I am expecting in using 3D half-discs is that if a user see a graph from the top or bottom of it, the user can compare the trend of DVD and OST checkouts in a different way that a DVD or OST checkout graph is hidden by the other one at some point thereby understanding one is more popular than the hidden one at the moment.




Process
Starting from a wireframe, I explored color scheme, positions of titles and time labels.








Final result
For controlling the camera's viewpoint according to each item and changing a graph mode between a bar and a disc, I added a GUI. By clicking each item, it animates the camera's location to the starting point of the item's linear timeline by translating and rotating so that a user can only focus on the item's graph.










Code
All work is developed within Processing 3.3.6
Source Code + Data