SOUNDS BEHIND PICTURES - DATA VISUALIZATION IN 3D
MAT 259, 2018
Zhenyu Yang

Concept
This homework is a processing program that visualizes the numbers of scores written by Brian Tyler from 1997 to 2017. During this period, Brain wrote scores for 71 films, 8 TV films. 22 TV series, and 6 video games.

In this project, the previous 2D visualization is expanded into 3D. The colorful floating points are now moving in 3 degrees of freedoms. Points are gathered as clusters, and each cluster represents a year from 1997 to 2017. The 3D location of each cluster is decided by the total number of checkouts, the total number of media types and the total number of works of Brain Tyler's works from SPL.

Query
SELECT 
    bibNumber,
    itemType,
    title,
    COUNT(bibNumber) AS Counts,
    SUM(CASE
        WHEN (YEAR(cout) = 2006) THEN 1
        ELSE 0
    END) AS '2006',
    SUM(CASE
        WHEN (YEAR(cout) = 2007) THEN 1
        ELSE 0
    END) AS '2007',
    SUM(CASE
        WHEN (YEAR(cout) = 2008) THEN 1
        ELSE 0
    END) AS '2008',
    SUM(CASE
        WHEN (YEAR(cout) = 2009) THEN 1
        ELSE 0
    END) AS '2009',
    SUM(CASE
        WHEN (YEAR(cout) = 2010) THEN 1
        ELSE 0
    END) AS '2010',
    SUM(CASE
        WHEN (YEAR(cout) = 2011) THEN 1
        ELSE 0
    END) AS '2011',
    SUM(CASE
        WHEN (YEAR(cout) = 2012) THEN 1
        ELSE 0
    END) AS '2012',
    SUM(CASE
        WHEN (YEAR(cout) = 2013) THEN 1
        ELSE 0
    END) AS '2013',
    SUM(CASE
        WHEN (YEAR(cout) = 2014) THEN 1
        ELSE 0
    END) AS '2014',
    SUM(CASE
        WHEN (YEAR(cout) = 2015) THEN 1
        ELSE 0
    END) AS '2015',
    SUM(CASE
        WHEN (YEAR(cout) = 2016) THEN 1
        ELSE 0
    END) AS '2016',
    SUM(CASE
        WHEN (YEAR(cout) = 2017) THEN 1
        ELSE 0
    END) AS '2017'
FROM
    spl_2016.outraw
WHERE
    title = 'Bartender'
    OR title = 'Six string samurai'
    OR title = 'Settlement'
    OR title LIKE '%4th Floor%'
    OR title = 'Simon Sez'
    OR title = 'Panic'
    OR title = 'Shadow Hours'
    OR title = 'Four Dogs Playing Poker'
    OR title = 'Terror Tract'
    OR title = 'Frailty'
    OR title = 'offsite'
    OR title = 'Bubba Ho tep'
    OR title LIKE '%Vampires%' and title like '%Los Muertos%'
    OR title = 'Darkness Falls'
    OR title = 'hunted'
    OR title = 'Last Stand'
    OR title = 'big empty'
    OR title = 'Timeline'
    OR title = 'Perfect Opposites'
    OR title = 'Final Cut'
    OR title = 'Godsend'
    OR title = 'Paparazzi'
    OR title = 'Clair obscur'
    OR title = 'Constantine'
    OR title = 'Panic'
    OR title = 'Annapolis'
    OR title = 'Bug'
    OR title LIKE '%fast and the furious Tokyo drift%'
    OR title = 'Partition'
    OR title LIKE '%Finishing%' and title like '%Game%'
    OR title = 'War'
    OR title LIKE '%Aliens vs Predator Requiem%'
    OR title = 'rambo'
    OR title = 'Bangkok Dangerous'
    OR title = 'Eagle Eye'
    OR title = 'Lazarus Project'
    OR title = 'Killing Room'
    OR title = 'Dragonball Evolution'
    OR title = 'fast and the furious'
    OR title LIKE '%Middle Men%'
    OR title = 'Final Destination'
    OR title = 'Law Abiding Citizen'
    OR title = 'Skyline'
    OR title = 'Battle Los Angeles'
    OR title = 'Tattoo'
    OR title = 'Fast Five'
    OR title = 'Final Destination 5'
    OR title = 'John Dies at the End'
    OR title LIKE '%Columbus%' and title like '%Circle%'
    OR title = 'Brake'
    OR title = 'Iron Man three'
    OR title = 'Standing Up'
    OR title = 'Thor The dark world'
    OR title = 'Teenage Mutant Ninja Turtles'
    OR title = 'Expendables'
    OR title = 'Into the Storm'
    OR title LIKE '%All Hail the King%'
    OR title LIKE '%Furious 7%' or title = 'furious seven'
    OR title LIKE '%Age of Ultron%'
    OR title = 'Truth'
    OR title LIKE '%Disappointments Room%'
    OR title LIKE '%Return of Xander Cage%'
    OR title = 'Criminal'
    OR title = 'Now you see me 2'
    OR title = 'Now you see me'
    OR title = 'Power Rangers'
    OR title LIKE '%Fate of the Furious%'
    OR title = 'mummy'
    
    OR title = 'Final Justice'
    OR title = 'Sirens'
    OR title = 'Jane Doe'
    OR title = 'Trapped in a Purple Haze'
    OR title = 'Last Call'
    OR title = 'Thoughtcrimes'
    OR title = 'Painkiller Jane'
    
    OR title = 'Living in Captivity'
    OR title = 'Jenny'
    OR title = 'Level 9'
    OR title = 'Fear Itself'
    OR title like '%Star Trek Enterprise%'
    OR title like '%hawaii five%'
    OR title = 'Terra nova The complete series'
    OR title like '%Sleepy Hollow%' and title like '%season%'
    OR title like '%Scorpion%' and title like '%season%'
GROUP BY bibNumber , itemtype, title
ORDER BY Counts DESC
				
The results I obtained:




Inspiration and Idea
I was inspired by the beauty of the galaxy. A galaxy is a gravitationally bound system of stars, stellar remnants, interstellar gas, dust, and dark matter.



Galaxies come in three main types: ellipticals, spirals, and irregulars. A slightly more extensive description of galaxy types based on their appearance is given by the Hubble sequence. Since the Hubble sequence is entirely based upon visual morphological type (shape), it may miss certain important characteristics of galaxies such as star formation rate in starburst galaxies and activity in the cores of active galaxies. In this project, the data clusters are generated in forms of elliptical galaxies.

Some other pictures of galaxies:












Sketches and Process
Cluster:

All data in each year from 1997 to 2017 are presented as a cluster in the space. A cluster has points floating on a sphere surface. The radius of a cluster and the motion velocity of floating points of a cluster are proportional to the activity of Tyler, which measures how active Brain Tyler was in the corresponding year.

The activity is calculated by the equation below:



COLOR CODING:

Red – green- blue color system with transparency

PointShader implemented to render points in each cluster.

Points are in 4 different colors, representing 4 different categories of scores: Films, TV Films, TV Series, and video games.

Spatial sound effect:

To further enhance the experience, I included a piece of Tyler's works of each year in the corresponding cluster. Each cluster is acting as a sound source when a user turns on colors for all clusters. The distance between each cluster and the camera is continuously calculated to decide the volume of each sound source.



Some notes during the design process:








Final result






Compare among axes:

The data clusters' locations in the 3D space are decided by three variables: The total number of checkouts of Tyler's works in a year, the total number of checked-out works in a year, and the total number of the types of checked-out works in a year. These three values are used as the coordinates of each cluster so that we can easily compare any two of them simply by viewing clusters against two axes(i.e. X and Y axes).

Compare the total number of checked-out works in a year and the total number of the types of checked-out works in a year:



Compare the total number of checkouts of Tyler's works in a year and the total number of works in a year:



Compare the total number of checkouts of Tyler's works in a year and the total number of the types of checked-out works in a year:



INTERACTION

By using a keyboard, users can browse the space from any point in any view angle.

Keyboard control:

Key "A": View the previous cluster

Key "D": View the next cluster

Key "S": Turn on/off colors of other clusters

Key "1": Go to pre-defined viewpoint 1

Key "2": Go to pre-defined viewpoint 2

Key "3": Go to pre-defined viewpoint 3


Code
All work is developed within Processing

Compatibility:
The code now can run on Windows / Linux system. Compatibility issue was found on Mac system. A Mac-compatible version will be updated soon.

Source Code + Data

SCREEN RECORD
https://youtu.be/YGqdNBQCKn0