La vie comme l'autobus


two interleaved 3D perspectives of two layers of 2D scatter plots of the operations of the central ohio transit authority

La vie comme l'autobus is an OpenGL based sandbox application analyzing statistics of, and plotting the GPS coordinates reported by, buses operating in and around Columbus, Ohio. It is being written in The Python Programming Language, and currently utilizes the Numpy and Pyglet libraries.

Watch a video from the application below, or click the single frame image to the right for a full resolution preview frame.

>>> Download / Watch The 3D Video

9mb MPEG4
1024x768 12fps 750 frames


This video runs at 6x normal speed of data recorded at one-minute real-time intervals. So, with a guestimated average speed of 30mph for the buses, it is in the video represented as if the buses where perhaps going about 180mph on average, instead. It also uses a simple jitter effect meant to bring out the subtle 3D separation of the two plots.

More about this work

Brief technical aspects

If you have trouble playing the video, try watching it with VLC.

This project started naturally with poking around the data from COTA's website. There are many data sets publicly available on the web, but I like this one because it is near my home, and I ride the bus sometimes and find them to be ll a pretty darn good thing, in general. Hats off to the drivers.

I wanted to try and graphically present this data in a pure, raw form, and then just see what would come out of it. So this uses just simply GL_POINTS on a 1024x768 grid to which the coordinates downloaded from the website are translated.

Following Tufte's advice of "looking at your data before you analyze it," I initially used a set of shell scripts and smaller Python hacks to render the points into SVG, and everything was then just XML transformations, and a function that looks very much like Celsius and Fahrenheit conversions: associating the minimum and maximum latitude and longitude with the minimum and maximum height and width of the image. I mention this because I find the entire field of GIS to have its own lingo, large bloated (but amazing!) applications, and it is a linear deviation perhaps from rest of computerdom. Plus, it would've been overkill to use shapefiles or something for all this, and this proportional approach works fine because cause the area is small. From there, the SVG was rasterized with ImageMagick, and finally rendered video with ffmpeg. Here is that very demo loop, with titles done in Inkscape, and data recorded from one full day shown in the video in 10 second loops. One second in this video is almost 2 hours in real life.

>>> Download / Watch the shell script created whole-day loop video

3mb MPEG

This then led to my first foray into OpenGL programming, thusly the application that generated the first video link above, and it has been a lot of fun. The code is a mess, hopefully I can provide source code soon, but also, the data is not very regular, and is updated only every minute. It is still surprisingly rich, though, even with its failings of precision.

The 3D video featured above of recorded data over the course of a few hours was stop-frame animated from the application while not running in its main loop, but simply step-sequenced by hand, and then screen-captured.

Other renderings

This application performed as a demonstration installation at The Fuse Factory Ignition show at Recentris at Easton, March 28th and 29th, 2008. Features included brief, tweened 3D camera rotations, describing titles, and basic stats such as the current count of the buses, number of routes in service, average lateness or earliness, and total points plotted, using live data from COTA.

Work is ongoing. I would like to release the source at some point, and in a version that could perhaps process other data sets. Your feedback is welcome!

Content

The white dots each represent a unique bus that was reported in the site's data, and white dots visible at any one time make up the entire fleet of buses in operation at that one-minute snapshot in time. As they travel through the grid, they leave gray boxes behind, which are located slightly below on a parallel plane in the 3D space. As they move, they readily map the town with these gray boxes. Prominent North and South features quickly rendered in 10 minutes of data include High Street, and Cleveland Avenue, but also Broad Street, Main, and Livingston can be seen running East and West.

This is also something of a study of an organic system, literally, life like the bus. One could also perhaps draw parallels even to automata theory. For those familiar with the town, it has a connection to us as residents because we live or work near the distinguishing features of these roads we share with our public transportation.

For many though, the bus is a mystery, or at least, it can be hard to grasp the system as a whole. After watching the application for a little while, many show attendees said that this work gave them a much better sense of the service's coverage of the area.