About
This is an HTML5 experiment. It may run slowly (or not at all) on some (most) browsers. It runs great in Chrome + Safari.
What am I looking at?
Originally, this project was a live stream of tweets that matched certain keywords related to the 2012 Chicago Nato protest. The results were plotted to a Google Map of downtown Chicago so that users could identify heavy traffic areas. After the protest ended, the four days worth of tweets were compressed into a short timeline, and controls were added to traverse the timeline.
Why is playback so inconsistent?
This is intentional! The tweets are shown in relation to the time that they actually happened, hence the uneven flow of playback. The control panel in the upper right of the screen shows the date and time of the playback cursor.
How was this built?
The back-end was built with Tornado, an asynchronous Python web server. The front-end uses a Google Map, HTML + CSS, and the data visualization is rendered using D3, an SVG drawing library for javascript. The streaming connection was implemented using Socket.IO on the front-end, and TornadIO, a websocket library for Tornado, on the back-end.