city-roads is a web-based visualization tool that renders every road within any city by fetching and displaying geographic data in the browser.
The tool solves the problem of visualizing large-scale road networks by querying OpenStreetMap through the Overpass API and rendering the results as an interactive map. To handle performance constraints, the project maintains a pre-indexed cache of approximately 3,000 cities with populations over 100,000, stored in protobuf format. When a user searches for a city, the tool first checks this cache, then falls back to live Overpass queries for uncached areas. Name resolution uses Nominatim to convert search queries into geographic area identifiers.
The tool works best for visualizing individual cities rather than large regions. Most cities render without problems and produce visually striking road network patterns. However, rendering is constrained by browser and device memory capacity. Very large areas with millions of road segments, such as entire states, may cause performance degradation or crashes even on powerful devices. The project includes a Scene API documented in the repository, enabling developers to build custom programs and visualizations on top of the city-roads foundation, with examples available in a companion repository.
Development activity shows consistent engagement with the project's core functionality. The maintainer actively solicits feedback and encourages users to share creations built with the tool. Documentation is maintained for the scripting API, indicating ongoing support for extensibility. The project remains open to contributions and collaboration, with the maintainer reachable through social channels for questions about custom implementations.