Threat Dynamics iconThreat Dynamics

Open streets. Six colors.

Every city begins with real street geometry. We fetch it once, preserve its hierarchy, and run the same urban fingerprint through six deliberately different color systems.

Shanghai street network rendered by Threat Dynamics

From a place name to 17.6 million pixels.

The current city exports are 4200 × 4200 PNGs. Batch generation locks the render settings for a city list, downloads map geometry once per city, and reuses that in-memory data for every selected theme.

01

Locate

A city and country are resolved to coordinates, with an adjustable radius controlling how much of the street network enters the frame.

02

Source

Our fork reads one-degree OpenStreetMap PBF extracts from a local cache or CDN, with the live Overpass API available as a fallback.

03

Render

Roads are projected and layered by hierarchy in Matplotlib. Coastline, water, parks, labels, and gradients can be composed above the base geometry.

04

Publish

The geometry is reused across six visual systems, exported as full-quality square PNGs, indexed, and served independently from the image CDN.

python create_map_poster.py --city "Johannesburg" --country "South Africa" --data-source pbf --theme risk/default

The code behind the maps.

The renderer began with Ankur's MIT-licensed MapToPoster project. Our fork adds a full GUI, PBF tile sourcing and caching, batch workflows, risk themes, and large-scale generation tooling. Map data is derived from OpenStreetMap contributors.