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 the source and output directories:
python release/release_zip.py --plugin-dir /path/to/plugin \
--output-dir /tmp/build
The release builder uses a fixed runtime manifest. Development files such as
tests, Docker helpers, shell scripts, source translations, and repository
documentation are never copied into the plugin archive. Compiled .qm
translations are included when available.
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