Getting UDM up and running again

Starting to dust of the Urban Data Model (UDM) first started in the Research “Cloud” Studio I co-taught with Thomas Kearns at IIT in 2013-2014. This is a Java based platform, linked to a Post-GIS server, with the goal of providing a relatively user-friendly coding platform for mapping, simulating, and designing on/in/through geospatial city data at spatial and temporal scales not conventionally accessible to the designer. This respawn will be focused on improving existing functionality, swapping out some libraries, integrating new functionality and libraries, and starting to develop test cases.  The UDM is intended as both a design platform and a teaching tool for engaging students in computational thinking, object oriented design, platform based urban design, and critical cartography in the age of big data and <> cities.

Some key issues to be tackled:

  • Setting up a Postgres/PostGIS Server (Cloud-based?)
  • Getting the base code up and running in eclipse
  • Getting a GIT set up for future development
  • Removing the Igeo library graphics (too cumbersome) and using Processing for graphics
  • Developing a todo list of core functionality that should be added/improved

As a test case, the first prototype of this system will be an updated version of the dynamic bus routing system first developed in collaboration with students during the IIT cloud studio.

Previous version of the Dynamic Bus Routing illustrated the challenges of controlling the IGeo graphics (especially in terms of overlapping display geometry and transparency handling), as well as the complications due to the somewhat convoluted structure of the code – the result of rapid development during the school year. Here is a video of the DBR simulation from 2014 in action:

As a result of this experience, the goal here will be to build the system on Processing graphics and a simplified code structure, with a strong focus on building functionality (in static classes or otherwise) that will allow students and designers to focus on design thinking rather than basic platform infrastructure.

WORKPLAN (Test Case 01 – Dynamic Bus Routing Redux)

  • Set up local test PostGIS database, load test data tables (Chicago Street Center lines)
  • Build UDM DatabaseConnection
  • Build GeomConverter (from PostGIS DB -> UObject)
  • Build LayerManager, Layer Class, UObject Class
  • Establish camera controls (zoom to objects, switch between 2d and 3d views, etc.) – determine best Processing camera library – Peasycam, Proscene, OCD.
  • Draw street grid (as generic UObject)
  • Create necessary Data Tables (Street Grid, Census Blocks)
  • Create Street graph Layer
  • Network Utilities – shortest path (kdijkstra, etc.)
  • Create Rider Object + Rider Generator (Census Block)
  • Build Bus UObject
  • Text and visualize full ecology (animations, diagrams)


  • How structured should the code be? (with the goal of creating an easy to use library) Are UObjects a catch all (context, agents, etc)?