whatisgithub

What is elastic-streets?

jeremyiv/elastic-streets — explained in plain English

Analysis updated 2026-05-18

34PythonAudience · dataComplexity · 3/5Setup · moderate

In one sentence

Generates looping animated maps where a city visually stretches and shrinks to show how driving times change over 24 hours.

Mindmap

mindmap
  root((elastic-streets))
    What it does
      Animates traffic time maps
      Warps city distances
    Tech stack
      Python
      Mapbox data
    Use cases
      City traffic animations
      Interactive viewer
    Audience
      Data visualizers
      Urban planners

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Create a 24-hour looping animation showing how traffic changes a city's shape.

USE CASE 2

Reproduce pre-built animations for Manhattan, Seattle, or Los Angeles with two commands.

USE CASE 3

Generate similar traffic-time animations for other cities using Mapbox data.

USE CASE 4

Explore the animation interactively in a browser-based viewer.

What is it built with?

PythonMapbox

How does it compare?

jeremyiv/elastic-streetsjianshuo/claude-skillsopsintech/opsintech-platform
Stars343434
LanguagePythonPythonPython
Setup difficultymoderatemoderatemoderate
Complexity3/53/54/5
Audiencedatavibe coderops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Generating a new city's animation requires a Mapbox API key and 10 to 30 minutes of computation.

So what is it?

Elastic Streets creates animated videos of city maps where the distance between any two points on screen corresponds to how long it actually takes to drive between them at that hour of the day. During rush hour, when travel times are long, the city stretches and swells. In the middle of the night, when roads are clear and drives are quick, the city compresses back down. The result is a 9-second looping animation showing 24 hours of a city breathing in and out. The project works by taking real driving speed data, either from Uber Movement records (available for Manhattan and Seattle from 2019) or from Mapbox traffic estimates (usable for any city). For each of the 24 hours in the day, it runs a mathematical optimization that repositions every street intersection so that the screen distances match the real drive times as closely as possible. It then smoothly interpolates through the 24 positions to produce the final animation. The pre-computed layouts for Manhattan, Seattle, and Los Angeles are already included in the repository, so reproducing the existing videos requires only two commands and no data downloads. Rendering takes roughly 10 to 30 minutes on a standard machine. An interactive browser-based viewer is also included, letting you step through the 24-hour animation in a web page. For cities beyond the three included, the project provides scripts to pull traffic estimates from Mapbox and re-run the full computation from scratch. The README also notes that the project folder includes a CLAUDE.md file that gives Claude Code enough context to rebuild or extend any of the animations conversationally, without needing to read through the scripts manually.

Copy-paste prompts

Prompt 1
Walk me through running elastic-streets to reproduce the Manhattan traffic animation.
Prompt 2
Explain how elastic-streets repositions street intersections to match real drive times.
Prompt 3
Show me how to use the Mapbox scripts to generate an elastic-streets animation for a new city.
Prompt 4
Help me use the interactive browser viewer included in elastic-streets.

Frequently asked questions

What is elastic-streets?

Generates looping animated maps where a city visually stretches and shrinks to show how driving times change over 24 hours.

What language is elastic-streets written in?

Mainly Python. The stack also includes Python, Mapbox.

How hard is elastic-streets to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is elastic-streets for?

Mainly data.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.