A QGIS plugin to automatically generate sidewalk networks from OpenStreetMap streets. Available in the official QGIS Plugin Repository: https://plugins.qgis.org/plugins/osm_sidewalkreator/

Recent updates introduce a Processing provider and headless tooling that make it easier to automate and test the full pipeline:
generateprotoblocksfromosm — protoblocks from polygon inputgenerateprotoblocksfrombbox — protoblocks from BBOX extentfullsidewalkreatorfrompolygon — full pipeline from polygon (sidewalks, crossings, kerbs)osm_sidewalkreator_full_bbox — full pipeline from BBOX extentdocker/ for bbox/polygon inputs (no local QGIS install required)scripts/run_qgis_tests.sh and quick local tests via pytest -m 'not qgis'release/release_zip.pyTutorials:
Provider id: sidewalkreator_algorithms_provider. A helper executes Processing inside Docker so you don’t need a local QGIS:
# From source tree
./scripts/run_qgis_processing.sh generateprotoblocksfromosm INPUT=/path/to/polygon.gpkg OUTPUT=/tmp/protoblocks.gpkg
# From a packaged release
./scripts/run_qgis_processing.sh --use-release generateprotoblocksfromosm INPUT=/path/to/polygon.gpkg OUTPUT=/tmp/protoblocks.gpkg
Examples with full pipeline:
# Full network from polygon (sidewalks, crossings, kerbs)
./scripts/run_qgis_processing.sh fullsidewalkreatorfrompolygon \
INPUT_POLYGON=/path/to/aoi.gpkg \
OUTPUT_SIDEWALKS=/tmp/sidewalks.geojson \
OUTPUT_CROSSINGS=/tmp/crossings.geojson \
OUTPUT_KERBS=/tmp/kerbs.geojson
# Full network from BBOX extent (EPSG:4326)
./scripts/run_qgis_processing.sh osm_sidewalkreator_full_bbox \
INPUT_EXTENT="-49.3,-25.5,-49.29,-25.45" \
OUTPUT_SIDEWALKS=/tmp/sidewalks.geojson
Headless runners (simpler Docker scripts) are also available — see docker/README.md:
docker/run_full_bbox.sh, docker/run_full_polygon.shdocker/run_protoblocks_bbox.sh, docker/run_protoblocks_polygon.shNotes:
assets/test_outputs/ by default (overridable)Quick local tests (no QGIS):
pip install -r docker/requirements.txt
pytest -m "not qgis"
Full test suite in Docker/QGIS:
./scripts/run_qgis_tests.sh
Optionally build a helper image:
docker build -f docker/Dockerfile -t my-org/qgis-test:latest .
Test data lives under assets/test_data/. To refresh the small OSM extract used by tests:
curl -L "https://overpass-api.de/api/map?bbox=-49.248337,-25.491146,-49.239228,-25.486957" -o test/data/curitiba_sample.osm
Create a plugin zip (written under ~/sidewalkreator_release by default):
python release/release_zip.py
Customize inputs/outputs/excludes:
python release/release_zip.py --plugin-dir /path/to/plugin \
--output-dir /tmp/build --exclude tests docs "*.pyc"
European Journal of Geography (12/12/2023): https://eurogeojournal.eu/index.php/egj/article/view/553
de Moraes Vestena, Kauê, Silvana Philippi Camboim, and Daniel Rodrigues dos Santos. 2023. “OSM Sidewalkreator: A QGIS Plugin for an Automated Drawing of Sidewalk Networks for OpenStreetMap”. European Journal of Geography 14 (4):66–84. https://doi.org/10.48088/ejg.k.ves.14.4.066.084
Experiments repository: https://github.com/kauevestena/sidewalk_analysis