Thousands of tweets are posted by Twitter users—per second. Although each tweet contains no more than 140 characters, it is enriched with additional meta data, including a timestamp and geographical information about the user at the time of posting. Using this information, the research group nextPlace at University of Applied Sciences Ostwestfalen-Lippe, Germany, which researches geoinformatics, data visualization, and simulation, established the Twitter Geo Stream. The application currently provides three features: dubbed tweet bubbles, tag cloud, and tweet cluster.

Tweet bubbles. Named for the metaphor of soap bubbles, tweets are displayed as rising, geo-referenced points on a Cesium 3D globe. With increasing height, the points change color from green to red. The more relevant the tweet, the slower the climb rate and the larger the point’s diameter. The relevance of a tweet is defined by the count of other tweets with similar content, e.g., hash tags. For tweets aiming at the same content or addressing the same user, a line between these points is shown to visualize their connection. Any tweet is displayed for up to 140 seconds. Moving points and changing their color is done with Cesium’s attribute interpolation feature.

Tag cloud. Indexing any tweet provided by the stream API, the application builds up a dictionary of current relevant hash tags for any region. Using Cesium’s polygon geometry along with its capability to display images as texture, the researchers use the index to create an image showing a “tag cloud” and then render the textured polygon on the globe for a defined region (e.g., UK).

Tweet cluster. Besides the content-based indexing, the application performs some geo data-based clustering using a k-means algorithm. Since it shows the tweets on a blank globe, the researchers included a feature to overlay the globe with new polygons based on these clusters. Doing this they create real new map data based on the Twitter stream in real time.

This JavaScript-based web application is built with open-source components, including Cesium, Bootstrap, and Spring MVC. The app uses websockets for real time-based client-server communication. The server fetches data using Twitter’s hosebird streaming API client and Apache Lucene for some processing. For a real-time application processing huge amounts of data, performance is key, so the researchers appreciate Cesium’s high-performance rendering engine.