Building a Cellular Automata Model for Urban Planning

My last blog post ended with my plans to break away from the Urban Informatics textbook and dive into some of the references to expand on the interesting ideas it brought up. I looked into DUEM, a Cellular Automata (CA) model that was highly refined.

I became very interested in the capabilities of CA models—specifically, I was curious to see how they've developed in the time since the textbook was written. This led me down quite a rabbit hole, and I now find myself wanting to develop my own prototype CA model of Fort Lauderdale. I plan to continue my general research on Urban Informatics, but I feel I learn more deeply when I have a concrete project to clarify the scope of my research.

I subscribe to several newsletters and YouTubers who create content on urbanism, and through these sources, I've become interested in Transit-Oriented Development (TOD) as the future of urban planning. With that in mind, I firmly believe that CA models can help make a strong case for TOD in practice. I want to build a model with cells as small as a single block—or even smaller. The goal is to predict how a city (Fort Lauderdale) grows differently under policies that encourage versus discourage TOD.

I have a very long way to go before I can say I'm ready to make this project a reality, but I've outlined a general timeline and project overview.

Project Overview

  • Project Name: Cellular Automata
  • Project Manager: Ethan
  • Project Description: A prescriptive Cellular Automata model of Fort Lauderdale and the surrounding areas. It will be used to model how changes in transit-oriented development policy—as well as the addition of new transit stops/locations—would alter the city's growth.
  • Problem Space: Traffic congestion, car reliance, transit ridership, CO2 emissions, etc.
  • Goals: Properly model the city and accurately show how policy changes would impact the urban environment in practice.
  • Research Fields: Various transit options in the FTL area; studies by Stevens and Dragicevic, Lau and Kam, White and Engelen.
  • Deliverables: A research paper detailing the process of building the CA model, and the findings regarding Fort Lauderdale using said model.

Development Timeline


Over the past two weeks, I've read several papers on the various applications of CA. Generally, it seems to be used for larger-scale growth predictions, specifically tracking non-urban land becoming urban. There's a lot to learn from these models, and I will absolutely continue studying them, but this use case feels somewhat limited regarding what's actually possible with the technology.

What I'm envisioning is a model that incorporates the current state of the transit system in Fort Lauderdale, factors in the system's future plans, and then predicts how the urban environment will be shaped around transit hubs and stops. The first hurdle is exactly this: predicting how the city will change according to the baseline, current state of policy. After establishing that, I will try to replicate the impacts of certain policy changes.

Because I want such a high level of granularity for this model, I want to avoid running the actual simulations in Python. I plan on incorporating Go into the project for the simulation and vector manipulation phases. I also believe that using irregular cell shapes and sizes will reduce the computational overhead of having such a tight focus around transit hubs, as I'll be able to group areas without transit interaction into larger, less demanding cells. I'll likely handle the initial spatial partitioning in Python, as GeoPandas is a tool I am very comfortable with, and I'd rather not reinvent the wheel in Go.

A couple of the papers I've read focused specifically on Vector-Based CA (V-CA) models, and they successfully utilized irregular cells combined with a buffer-zone-based neighbor designation system. I plan to use walking-time calculations—repurposing the code I already wrote for my 15-Minute City Toolkit project—to generate these buffer zones from the center of any given cell. Typically 'as the crow flies' is used for this kind of buffer, however given my use case and scale I feel that it's not going to be nearly as accurate as a proper pedestrian level measure of distance.

I'm very excited to continue exploring Urban Informatics, both the textbook and the broader field. I plan to dedicate at least 1-2 days a week purely to general research, reading textbook chapters, and catching up on newsletters. The rest of my time will be spent specifically on this new CA project. It covers a lot of ground, and I expect to learn a tremendous amount from both the research and the development process.