»Generating Utopia« is a realtime visualization of social location data, made with Processing. Its aim is to show what human habitats could look like if it was possible to transform them depending on the location-based behavior of their residents.

Although current discussions might indicate otherwise, the pictures we draw of ourselves within todays’ social media channels are no reliable representations of who we are in real life. We select what others get to see from our reality, and mostly, we share and publicly like only what considerably leaves a good impression on the rest of the world. We build an utopia, telling the story of what we think our lives should look like. This conclusion is all the more inspiring, regarding the fact that social networks begin to expand into physical space: we’re not only telling what we are up to, but also where we are.

»Generating Utopia« tries to make those individual utopias visible and shows, what human environments could look like if it was possible to transform them depending on location-based information of their inhabitants. The data was taken from various users of the social platform »Foursquare«.

Generating_Utopia_003

Generating_Utopia_011

Generating_Utopia_008

Generating_Utopia_007

The realtime application starts with an airplane view on an existing city in its current topology. By selecting a dataset from one of its inhabitants, the city will morph into something else, growing mountains and tubes exactly at those places, where the person checked in with their Foursquare account. From this, one can see in what different ways persons are »using« their city – respectively what they want their social environment to think they do. A utopian (or dystopian) version of the cityscape begins to grow from the ground. The city seen in the footage is a middle-sized German town called Würzburg.

The application, which was made using the Processing programming environment, generates the imagery in realtime and is completely interactive. One of its key features is that the major part of the visualizations are generated programmatically from data available online. For example, the buildings are downloaded from the openstreetmaps.org API as outlines, translated into 3d models and rendered at their according places. This makes it possible to visualize every possible place on earth just by changing the geocoordinates and adding datasets for that place. There was no custom modeling involved.

The project was created during the first semester of my master studies at FH Würzburg, Faculty of Design; supervising professors were Prof. Erich Schöls and Prof. Gerhard Schweppenhäuser.

Data sources:

Generating_Utopia_012

Generating_Utopia_006

Generating_Utopia_010

Generating_Utopia_009

Visuals

Inspired by utopian urban planning projects since 1920 and science-fiction concept art from the 20th century, »Generating Utopia« wants to make a more vibrant approach to the field of data visualization – We don’t share exact to-the-minute updates from our lives in social media. Consequently, focus is put on drawing pictures that leave room for interpretation as well as imagination rather than an exact mapping of given information.

While the use of atmospheric lighting, soft shading and depth-of-field aims at achieving a picturesque, drawing-like look of the landscape, the data visualization itself is pretty decent – the colorful growing tubes are not further defined, yet they might be a hint at how transportation might look like in a utopian future: they might be light rails for self-driving vehicles, or Futurama-like tubes for transporting people with air pressure – the interpretation is up to the viewer. Basically, they are the visual representation of a virtual web the user has drawn in the city with the data he left.

Generating_Utopia_008

Data visualization

The height of the mountains hints at how frequently a person has visited the according places. Much effort was put into the algorithm deciding how tall a mountain will be, as the number of Check-Ins differs heavily from venue to venue and from user to user. When a specific area has many places with few checkins, the hole district will elevate, but it gets more disrupted than it would be with a single, “big” checkin.

In order to make the growing web more readable and the links easy to distinguish, they are drawn in three different colors, each representing an attribute as to how the place is most commonly used. For getting the three groups, the existing 9 categories from Foursquare were thematically reduced to their basic functions: work (red), reacreation (blue) and transport (yellow). From this, people can get a quick overview on the users behavior without having to read much information.

Some people want to show their job is important to them, so their work place grows a huge pile, filling its surroundings with red tubes. Others want to show they are always on the go, so their landscape will fill with dozens of small hills and links in all colours. Some residents are mostly focused on the center of their city, building huge but compact structures; other spread out and integrate the city’s borders into the web.

For diving deeper into the user data and being able to comprehend the categorizations, it is possible to switch on labels for all the visited places. They show the name of the place, how many times the user checked in, and their category.

Generating_Utopia_002

Generating_Utopia_001

Generating_Utopia_004

Generating_Utopia_005

Making of

»Generating utopia« was made using the Processing programming environment. The initial function of the application was to serve as framework generating terrain from real map data, being able to deform it based on various kinds of location data, and export it as 3d-model for rendering it with 3d software. Later during the project I decided to make it a realtime application and do the rendering and image output right from the Processing sketch as well.
A challenging task was to keep the transforming terrain updated in realtime while providing as much detail and rendering quality as possible. A heightmap keeps track of all the changes and transformations done to the terrain, while the terrain is a dynamic GL model which is only updated at “changed” positions to keep the performance stable.

As for the lighting, using prerendered lightmaps for realtime-transforming terrain didn’t make sense – to achieve the “sunsetty” mood a shader was created which changes the lighting depending on the viewing position, so there is always a smooth balance between light and dark on objects.
The project makes intense use of the advanced OpenGL features implemented into Processing by Andres Colubri. Karsten Schmidt’s library »toxiclibs« is used for some model calculations.
For the depth-of-field effect, a slightly adapted version of Martin Upitis’ GLSL dof shader was used.

Here’s some screenshots from the creating process:

Sorting and locating the data

Making01

Making03

Making02

Conceptional renderings

Rendering01

Rendering03

Rendering04

Rendering05

Rendering_white_01

Rendering_white_03

Making the realtime app

Making05

Making04

Making06