Simulating Urban Patterns of Life:

A Geo-Social Data Generation Framework


Joon-Seok Kim, Hamdi Kavak, Umar Manzoor, Andrew Crooks, Dieter Pfoser, Carola Wenk, Andreas Zufle


Data generators have been heavily used in creating massive trajectory datasets to address common challenges of real-world datasets including privacy, cost of data collection, and data quality. However, such generators often overlook social and physiological characteristics of individuals, and their results are often limited to simple movement patterns. To address these deficiencies, we propose an agent-based simulation framework that facilitates the development of socially plausible models of human behavior, in which agents correspond to individuals that act contingent on personal preferences, goals, and needs while at the same time within a realistic geographical environment. Researchers can use a drag-and-drop interface to design and control their own world including the geospatial and social (i.e. geo-social) properties. The framework is capable of generating and streaming very large data that captures the basic patterns of life in an urban area. Streaming data from the simulation can be accessed in real time through a dedicated API.



by Joon-Seok Kim

on November 6, 2019

at Chicago, Illinois, USA

Main features

  • Drag-and-drag style model builder
  • Simulation based on human behavior model
  • Streaming (ZeroMQ PUB/SUB patterns)

Model Builder

Build your own model with our model builder.

Patterns of Life

We can observe patterns of life. The following figures shows mobility and hunger level of agents over time.










Our framework enables users to perform various analysis using Big Data tools such as Spark Streaming. We demonstrate a use case of streaming data analysis on a Zeppelin Notebook.

Sample data description

File type: CSV

Number of agents: 10,000

Step size: 5 minutes

Period: 1 week (2016 steps)

Data size: 5 GB

Header information (name/type):

time (millisecond), id (String), step (Long), workLocation (WKT), money (Double), homeLocation (WKT), destination (WKT), workedHour (Double), wage (Double), currentLocation (WKT), sleep (Double), food (Double)



Data Download: Part1, Part2, Part3, Part4, Part5