TwiTerra reveals how people use Twitter to share and re-share ideas, building connections that encircle the world.
Graphical User Interface Design in AJAX,Introduction to Computational Media (Wed)
TwiTerra uses the Twitter API and the third-party Twittervision API to build data models of geo-located retweet trees, showing how an idea is initiated with an original tweet and branches out as other users re-broadcast it. This information is gathered constantly and stored in a database, which is later visualized on a globe using a set of open-source Java libraries created by NASA.
Retweets are broadcast to audiences that are different from the audience of the original tweet, and this non-discriminatory message forwarding can expose incidental recipients to content that they might not have otherwise seen. Thus Twitter can serve to break people out of otherwise homophilous social networks, and TwiTerra visualizes these liberations in the context of both each other and of the planet as a whole.
My primary research has been several months of personal Twitter use. I have also spent time browsing the public feed of tweets from all users, exploring various search queries, and reading articles by a variety of bloggers. In addition, I explored political Twitter memes in somewhat more depth in a paper for Clay Shirky’s class on the election.
Everyone: Twitter non-users who are skeptical about its usefulness and worth as well as current Twitter users will appreciate the visualization of how it brings the world together.
A visitor or group of visitors would see the globe visualization on a large screen from several yards away, and would be able to watch several iterations of retweet trees during their approach. Upon arrival, visitors would be able to read the text of a handful of tweets in the visualization before I presented the one-line pitch. For the majority that is unlikely to be familiar with Twitter, I could explain the basic concept (“140-character status updates for interested friends, family, coworkers and strangers”) and the idea of a retweet (“repeating an idea or passing on a message from a person that you are following to all of the people who are following you, with attribution given to the original author”). I would provide further explanation to those that required it, and I would offer implementation details to those that had sufficient aptitude/interest.
I wrote a PHP script that fetches new tweet and stores them in a database, and it has been running as a cron job on my Dreamhost server since November 25th. At the time of the show, I had at least 78,000 tweets in the database with 35,000 distinct retweet trees.
I wrote the visualization side of the project in a programming language called Scala that runs on the JVM, and I used Scala’s associated web framework, Lift, to access the database. NASA has made available a set of Java libraries that display a Google-Earth-like globe in an applet, and I used those libraries and the included drawing/text functionality to visualize the retweet data on a globe. I used the Timing Framework Java library to manage the various animations.
Prior to this project, I did not have substantive experience with either Scala, PHP or MySQL, and I learned a lot about working with those tools. In addition, I now feel relatively comfortable with NASA’s World Wind Java libraries, despite their relatively sparse documentation. I also became much better at searching around on the Internet for solutions to programming problems.