Let’s start with a quick video:
About the Project
The idea for QuakeTime started with a vague notion of modeling geological data in an abstract but interpretable manner. The USGS quake data provided a nice wrapper for this concept in a week where North Korean nuclear bomb tests were verified through seismographic readings.
Once I’d solved the technical problems of capturing and parsing data for QuakeTime, i quickly realized that plotting ~900 points–roughly the number of earthquakes per week recorded in the USGS data–on a reasonably hi-resolution screen didn’t produce very compelling visuals. I spent a great deal of time refining the viewing experience of the data with particular focus on (a) making something that was abstract on first read but became clearer through exploration (b) pretty and ( c ) navigable.
I played around with a number of visual representations of the quakes–even stepping briefly into WebGL territory–before coming around to a series of expanding and fading bubbles. I wanted to convey a a sense of a slow boil: a process that’s violent and sudden in one sense, but steady and continuous in another.
When presenting the piece, I heard a fair amount of criticism about a lack of map backing the data. I’m still sure I want one….I’ve tested a few and the project winds up looking extremely literal and/or like a nuclear war simulation. I did–as a pean to the masses–add data points for 20 of the world’s largest cities for visual reference. I’ve also added instructions and a brief about page to the site to make it a bit more accessible/inviting.
QuakeTime consists primarily of two distinct components:
- CSV: a csv parser/reader and writer to strip data off the USGS website and write it to a local file , and then to convert the csv to a json array to be passed to the client.
- Express: an easy to deploy application framework + the jade HTML and stylus CSS templating engines
- Socket.io: for sending asynchronous data to the client.