Hodos — The Road Maps Itself
Every day, we travel over potholes, damaged pavement and uneven roads. We remember the worst stretches, warn our friends, and take different routes when we can. Yet much of that information never makes it onto a map.
Hodos started with a simple question: what if the roads could be mapped by the people already travelling them, without requiring everyone to stop and submit reports?
What Hodos does
Hodos is an Android application that uses a phone's motion sensors and location to identify potential road hazards during everyday journeys.
Enable automatic mapping, and Hodos watches for journeys in the background. It analyzes motion readings on the phone to identify unusual impacts, estimates their location and severity, and contributes observations to a shared map.
The map brings together observations across journeys rather than treating every bump as a confirmed pothole. Users can explore nearby hazards, inspect supporting reports, confirm a problem or report when a road has been repaired.
How we built it
We built Hodos as a native Android application using Kotlin, Jetpack Compose and MapLibre, with a map-first interface, floating controls and a draggable sheet for nearby hazards.
The detection pipeline processes accelerometer signals locally, using gravity compensation, frequency filtering, adaptive noise thresholds and impact-shape analysis to classify potential potholes, speed bumps and rough pavement.
Appwrite handles observations and map aggregation. A server-side function validates incoming reports, groups nearby events and uses repeated observations to decide which hazards appear on the public map.
We also built offline caching and a persistent upload queue so temporary connectivity problems don't immediately discard observations.
The public website is hosted using Cloudflare Pages, with the project developed openly on GitHub.
Challenges and lessons
The hardest challenge was distinguishing meaningful road impacts from ordinary motion. Accelerometer readings change with vehicle suspension, driving speed, phone position and road surface. A large sensor spike alone cannot reliably identify a pothole.
We approached this by examining motion patterns rather than relying on a single acceleration threshold, and by combining observations across journeys.
We also had to design background recording around Android's permissions, sensor behavior, battery constraints and service lifecycle.
The most important lesson was that detecting a possible hazard and establishing that a hazard exists are different problems.
What's next
Hodos already has a working native Android foundation, an interactive hazard map, automated detection logic and an observation aggregation backend.
The next step is collecting labeled road recordings across different phones, vehicles and conditions to measure detection accuracy, reduce false positives and improve classification.
Our larger goal is to make road-condition information easier to discover, maintain and use.
Better roads begin with knowing where the problems are.
Built With
- accelerometer
- android
- appwrite
- cloudflare-pages
- github-actions
- gps
- gradle
- java
- jetpack-compose
- kotlin
- maplibre
- material-3
- sqlite
- typescript
- vite
Log in or sign up for Devpost to join the conversation.