Fetching the latest programs, projects, and workspace data.

Create and distribute free geodata for the world
Explore maintainer wishlists.
Showing 5 of 49 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: pacoalbacetec
The majority of mapped sidewalks in OSM lack explicit names, which makes Valhalla generate vague pedestrian routing instructions. This project aims to resolve this problem with three different steps: First, parsing existing OSM tags such as (is_sidepath:of:name, street:name) that are currently ignored, as name aliases. This is a low-risk change that immediately benefits around 30,000 ways worldwide. Then, implementing spatial join in the graph enhancer that assigns street names to unnamed sidewalks by comparing them to nearby vehicular edges with matching heading parallelism and geometric proximity, using angle and distance thresholds. Third will be adjusting Odin's narrative generation so derived names produce natural phrasing instead of the current vague ones. Deliverables include Lua tag parsing with gurka integration tests, the spatial join algorithm with edge case handling, modified maneuver instructions, and performance benchmarks measuring tile build impact. Nice-to-have goals include using (is_sidepath:of) to adjust road class in the Sif pedestrian costing, detecting park entrances and the new ideas we discover during the project.
Mentors: Student: Agasta
Nominatim currently classifies places using a single OSM class/type pair, which causes duplicate database entries for multi-tagged objects, fragile handling of administrative boundaries, and insufficient granularity for modern search queries. This project adds native category support to Nominatim's PostgreSQL backend by introducing a categories column across the place, placex, and search_name tables using PostgreSQL's ltree[] type for hierarchical querying. Categories are assigned in the Lua import scripts following Photon's osm.<class>.<type> approach, replacing the place_classtype_* tables currently used for POI filtering. Deliverables include: schema changes with migration support for existing installations, Lua-based category assignment, replacement of classtype table lookups with category-based queries in search_name, and as stretch goals, API include/exclude filtering parameters and a flexible YAML-driven CategoryGenerator for enriched categories like cuisine.italian or access.wheelchair.yes.
Mentors: Student: Sherley Sonali
Valhalla currently lacks a scalable way to detect routing and guidance regressions introduced by pull requests. This project builds a three-component QA system: a coverage-driven Python route generator that produces 10,000+ test routes over a static Switzerland OSM extract, exercising all costing models and routing-relevant OSM tag categories; a GitHub Actions pipeline that builds Valhalla graphs from both master and PR code, runs all routes against both, and computes geometry and instruction diffs; and a React review application - built inside valhalla/web-app, where maintainers can inspect diffs route by route, compare map geometry and turn-by-turn instructions side by side, and accept or flag changes before the baseline updates. The deliverable is a maintainer-usable, publicly deployed QA tool that makes routing drift visible and catchable at PR review time.
Mentors: Student: Venetis Charalampidis
closures.osm.ch is a community-driven platform for reporting temporary road closures in real-time, built during GSoC 2025. It is not yet production-ready: the Valhalla routing integration is architecturally backwards (the frontend pushes coordinates to Valhalla rather than Valhalla pulling closure data), government data feeds are unsupported, and several features needed for real-world adoption remain incomplete. This project closes that gap across three pillars: (1) replacing the prototype routing integration with a correct architecture — a closure_sync sidecar service that feeds Valhalla's native live traffic tiles infrastructure, with a backend-served exclude_polygons endpoint as an immediate stepping-stone; (2) implementing CIFS and DATEX II importers to ingest authoritative government road closure data with attribution and deduplication; and (3) completing the remaining loose ends — a Mapbox Vector Tile overlay of active closures with Redis caching, and UI internationalisation via Transifex. Deliverables: self-hosted Valhalla instance, POST /api/v1/routing/closure-aware endpoint, frontend cleanup, CIFS and DATEX II importers with shared base class, GET /api/v1/tiles/{z}/{x}/{y}.mvt endpoint, and i18n wiring with English and German initial translations.
Mentors: Student: ManbhavSugla
This project aims to provide first-class DuckDB support for Martin TileServer. DuckDB, with its spatial extension and native ST_AsMVT and and ST_AsMVTGeo functions, enables efficient vector tile serving directly from analytical file-based datasets such as GeoParquet. With PostGIS, this is not possible since it’s a transactional database and not suitable for reading analytical columnar datasets. Martin currently has support for PostGIS tables and views as well as file formats such as MBTiles and PMTiles to build and server vector tiles. This project will extend Martin’s architecture to DuckDB and provide support for persistent DuckDB databases with spatial tables as well as local and remote GeoParquet files.