A couple weekends ago, a few of us from Analytical Graphics Inc (AGI) took a trip into Center City Philadelphia to participate in the Apps4Philly Civic Hackathon. The Apps4Philly event brought public transportation, civic data enthusiasts and developers together to prototype new applications for Philly’s open-data initiative.

There is a great open-data movement in Philadelphia, but there is not a one-stop viewer for the heterogeneous datasets. Our goal was to develop OpenPhillyGlobe as an open-source web-based 3D globe for visualizing Philly’s open data with an initial focus on simultaneously visualizing multiple transit layers.

OpenPhillyGlobe, showing real-time locations of SEPTA buses and pedestrian traffic data.

While the pitch for this application may sound ambitious, Cesium already provides the infrastructure to make this possible. Through the use of the DataSource and DynamicScene layer of Cesium, we found it straightforward to integrate with KML, GeoJSON, and real-time datasources. Furthermore, the data fusion nature of this application allows for this capability to grow organically; we can add additional datasets to grow a compelling visualization of Philadelphia transportation infrastructure.

The outcome of our efforts was a prototype of the OpenPhillyGlobe that aggregated several data layers, including the real-time visualization of SEPTA buses, SEPTA rail routes, pedestrian traffic counts, and bike theft data. Any of these data layers can be enabled to construct a hybrid dataset tailored to the end user. In building this application, we applied and demonstrated several key Cesium features, ranging from DynamicObject representation of SEPTA buses, to Geometry and Appearance rendering of pedestrian data.

What we have found through this experience is that Cesium has come a long way since our last public Hackathon appearance; the OpenPhillyGlobe concept was the outcome of two developers, two days. In addition to stress testing Cesium’s features for data visualization, our OpenPhillyGlobe application won the “Beyond Dots on a Map” prize, sponsored by Azavea. While there is far more we could use from the Cesium toolbox, we have a great start to a useful application that can thrive out in the open source community. To see the source for our sample app built with a dependency on Cesium, have a look at our project on github.