Skip to content

Latest commit

 

History

14,172 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjectSidewalk_LabelingFromSeattle_KerryPark4_optimized1.5x_web.mp4

Labeling sidewalk accessibility from Kerry Park, Seattle

Project Sidewalk

Project Sidewalk is an open-source web tool for mapping and assessing the accessibility of every sidewalk in the world, using remote crowdsourcing, machine learning, and online satellite & streetscape imagery. Contributors walk virtually through cities and label accessibility features and problems — curb ramps, obstacles, surface problems, missing sidewalks, and more. And all collected data is fully open and downloadable in standard formats like GeoJSON and CSV, so it's easy to integrate into your own systems and research! See https://projectsidewalk.org/api.

Project Sidewalk is deployed in 50+ cities across 10 countries (the US, Canada, Chile, India, Mexico, Ecuador, the Netherlands, Switzerland, and New Zealand), is natively translated into six languages (English, Spanish, German, Mandarin, Portuguese, and Dutch), and has collected 3.4M+ contributor-labeled data points. See the live data dashboard.

If you use or reference Project Sidewalk in your research, please cite:

Manaswi Saha, Michael Saugstad, Hanuma Teja Maddali, Aileen Zeng, Ryan Holland, Steven Bower, Aditya Dash, Sage Chen, Anthony Li, Kotaro Hara, and Jon Froehlich. 2019. Project Sidewalk: A Web-based Crowdsourcing Tool for Collecting Sidewalk Accessibility Data At Scale. In Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems (CHI '19). Association for Computing Machinery, New York, NY, USA, Paper 62, 1–14. https://doi.org/10.1145/3290605.3300292

Project Sidewalk

Tech stack

  • Backend: Scala 2.13 + Play Framework 3.0 (Java 17), Postgres + PostGIS via Slick.
  • Frontend: vanilla JavaScript, organized as independent apps bundled with Grunt (we're migrating off jQuery and Bootstrap).
  • Dev environment: Docker.

For a full architecture overview, see docs/architecture.md.

Quickstart for developers

Everything runs in Docker. In brief:

git clone https://github.com/ProjectSidewalk/SidewalkWebpage.git
cd SidewalkWebpage
make dev      # build + start containers, open a shell in the web container
npm start     # (inside that shell) build assets and run the app

Then open http://localhost:9000. You'll need a secrets file and database dump from a maintainer first — see the full guide: docs/dev-environment.md.

Documentation

Doc What's in it
docs/dev-environment.md Set up and run the app locally.
docs/editor-setup.md Configure IntelliJ IDEA or VS Code for the project.
docs/architecture.md How the backend, frontend, and data fit together.
docs/deployment-and-stages.md Hosted stages, how code reaches each one, and the release runbook.
CONTRIBUTING.md Branch/PR workflow, coding standards, i18n.
docs/style-guide.md Detailed code-style conventions (JS, Scala, HTML/CSS).
docs/internationalization.md How translations work + adding a new language.
CLAUDE.md Short index of cross-cutting conventions, used as AI-assistant context.
docs/testing-and-ci.md Testing strategy and CI rollout plan.
docs/google-cloud.md Google Maps Platform: which calls bill, how to read usage, and the CI rule.
docs/upgrading-libraries.md Dependency-version inventory and how to update each.
docs/logged-events.md How user-interaction logging works + the event reference.
docs/data-notes.md Release-specific caveats for analyzing Project Sidewalk data.
docs/image-credits.md Sources for the images we didn't take ourselves.
docs/label-latlng-estimation.md How a label's map position is estimated from its panorama pixel, the geodesy decision, and the viewport frame contract.
docs/ai-subsystems.md Map of all AI/CV subsystems and repos: what's in production, how the pieces connect, and the project timeline since 2018.
SECURITY.md How to report a vulnerability.
CODE_OF_CONDUCT.md Community standards.

Where documentation lives

Developer documentation lives in this repository — versioned with the code, reviewed in pull requests, and searchable by tooling (and AI assistants). That includes how code ships: cutting a release and the deployment stages are in docs/deployment-and-stages.md. The Onboarding a city — streets, regions, schema, configs — is in the repo too, in docs/onboarding-a-city.md, because tooling in this repo does it. The wiki is being wound down to what changes independently of the code or is maintained by non-developers: the partner-facing deployment considerations and a few operational how-tos for a running deployment (adding road geometries after launch, revealing and hiding regions).

Rule of thumb: if it describes the code, how to contribute, how the code gets deployed, or how a city gets set up, it's in the repo; if it's about operating a running deployment's content, it's in the wiki. We keep one source of truth per topic and cross-link rather than duplicate.

AI in Project Sidewalk

Project Sidewalk increasingly combines crowdsourcing with AI. Two model families are in use today, reflecting our research finding that validating an existing human label is a much easier CV task than finding and labeling features from scratch:

  • AI validation & tag suggestions (in production, ~55 cities): DINOv2-based models judge whether human labels are correct and suggest tags, run daily against a hosted GPU service (sidewalk-ai-api; trained in sidewalk-validator-ai and sidewalk-tagger-ai).
  • AI labeling (piloting): RampNet (ICCV'25) detects curb ramps in whole GSV panoramas at human-level accuracy; sidewalk-auto-labeler deploys it city-wide and submits labels for human validation.

See docs/ai-subsystems.md for the full map — production data flows, config keys, DB tables, and a timeline of every AI/CV repo since 2018.

Contributing

We welcome bug reports, fixes, features, translations, and docs from contributors of all experience levels. Start by picking an open issue, then follow the workflow and coding standards in CONTRIBUTING.md. Project Sidewalk has been built by 160+ contributors — high schoolers, undergraduate and graduate students, researchers, and partner organizations.

Want Project Sidewalk in your city?

Want a Project Sidewalk server set up for your city or municipality? Read our Considerations for Deploying Project Sidewalk into a New City wiki page, then email us at sidewalk@cs.uw.edu.

If you're outside the team and want to set up your own server for a city we don't currently support, start with Onboarding a city: the repo's tooling builds a city's streets and regions from open data and fills a database schema in an afternoon. The server side is still yours to run — email our lead engineer, Mikey (saugstad@cs.washington.edu), with questions.

Project history & funding

Project Sidewalk began in 2012 with a Google Faculty Research Award and NSF Award #1302338, led by Prof. Jon E. Froehlich and then–PhD student Kotaro Hara. The first deployment launched in Washington, DC, around 2017 (CHI 2019 Best Paper, above). The work is currently supported by NSF Awards #2125087 (UI Chicago) and #2236277 (Utah State University). See the wiki for the fuller history, deployments, and mapathon materials.

License

Project Sidewalk is released under the MIT License — see LICENSE.md.

Releases

Packages

Used by

Contributors

Languages