GeoSpeed AI Platform is a production-style geospatial AI and data-product monorepo for road speed-limit intelligence. It answers: what is the best available speed-limit value for each road segment, what evidence supports it, how confident are we, and is the segment ready for release into a production map-data product?
This project is a full-stack engineering showcase spanning Python pipelines, Java Spring Boot services, C++ matching logic, React + MapLibre dashboards, Docker Compose, and CI.
Speed-limit data powers navigation, routing, driver assistance, map freshness programs, and public-sector safety analysis. The hard part is not one model or one dataset; it is a product-quality system that combines authoritative sources, OSM tags, sign observations, observed-speed sanity checks, release rules, and human review.
| Layer | Components | Purpose |
|---|---|---|
| Data Sources | Open/sample road data, traffic sign observations, feature records, vehicle signals, partner scenarios | Provide road-network, speed-limit, sign, and automotive scenario inputs |
| Processing & Intelligence | Python pipelines, C++ matcher, FastAPI ML inference, vehicle signal service | Ingest, transform, validate, match observations to roads, infer speed limits, and score confidence |
| Product Services & Outputs | Release-candidate GeoJSON/data product, Java API, partner integration Java service | Publish segment-level speed-limit outputs, quality metrics, issue records, and launch-readiness data |
| Applications | React MapLibre dashboard, Auto head-unit simulator, documentation and CI/CD | Visualize map-quality status, speed-limit intelligence, partner issues, and engineering workflows |
| Engineering Foundation | Python, Java, C++, TypeScript, Docker, GitHub Actions | Support reproducible development, tests, builds, and deployment-style workflows |
- React, TypeScript, Vite, MapLibre GL JS
- Java 21, Spring Boot, Maven, OpenAPI
- Python, FastAPI, Pydantic, pytest-compatible typed modules
- C++17, CMake, GoogleTest
- Docker Compose, Kubernetes manifest stubs, GitHub Actions CI
The first demo uses small checked-in sample files under data/sample. These are sample DC/NYC-style demo pipelines designed for public-data integration, not a claim that full jurisdiction-scale public datasets are currently bundled. The architecture is designed for later ingestion from:
- OpenStreetMap roads and
maxspeedtags - Overture Maps Transportation data
- Washington, DC open roadway and speed-limit data
- NYC open speed-limit and traffic-speed datasets
- Optional WSDOT, Caltrans PeMS, or Mapillary-compatible sign observations
No proprietary or paid data is required.
| Area | Status | Notes |
|---|---|---|
| Web dashboard | Implemented | React, TypeScript, MapLibre, sample/open-data-compatible workflows |
| Auto head-unit simulator | Implemented | Route replay, speed-limit alerts, ADAS mismatch, partner debug panel |
| Java product API | Implemented | Spring Boot API with Maven and OpenAPI support |
| Partner integration API | Implemented | Partner scenarios, issues, triage, feature requests, launch readiness |
| Python ML service | Implemented | FastAPI baseline speed-limit inference and evaluation |
| Vehicle signals service | Implemented | FastAPI VSS-style simulated signal replay for simulator use |
| C++ matcher | Implemented | C++17 road/sign matching library and CLI |
| Pipelines | Implemented | Sample ingestion, release candidate generation, validation, report |
| Docker / CI | Implemented | Compose config validation, service tests/builds, pipeline smoke |
make setup
make ingest-sample
make release-report
make testRun the local stack:
make docker-upService URLs:
- Web dashboard:
http://localhost:5173 - Auto head-unit simulator:
http://localhost:5174 - Java API:
http://localhost:8080 - Swagger UI:
http://localhost:8080/swagger-ui/index.html - Python ML service:
http://localhost:8000 - Partner integration API:
http://localhost:8090/api/v1/partner/health - Vehicle signals API:
http://localhost:8010/health
These helpers are intended for local Windows development when make is unavailable:
.\scripts\setup.ps1
.\scripts\run-pipeline.ps1
.\scripts\test-all.ps1They expect Node.js, Python, Docker, and a Java 21 JDK to be available on PATH. The Java test helper uses mvn when present and falls back to each service's mvnw.cmd.
python pipelines/ingest/ingest_osm_roads.py --input data/sample/roads.geojson --output data/sample/normalized_roads.json
python pipelines/transform/infer_speed_limits.py --segments data/sample/roads.geojson --speeds data/sample/speed_limits.geojson --signs data/sample/signs.geojson --observed data/sample/observed_speeds.csv --output data/sample/release_candidate.geojson
python pipelines/validate/generate_release_report.py --input data/sample/release_candidate.geojson --output data/sample/release_report.mdcurl http://localhost:8080/api/v1/health
curl http://localhost:8080/api/v1/segments
curl http://localhost:8000/healthThe auto head-unit simulator screenshot is pending capture and is not linked until the asset is available.
A segment is release-ready only when confidence is at least 0.80, freshness is at least 0.60, conflict score is no more than 0.30, at least one reliable evidence source exists, and no unresolved high-severity issue remains.
The baseline inference engine prioritizes authoritative city or state speed-limit data, then OSM maxspeed, then high-confidence traffic sign observations. Road-class priors fill gaps. Observed vehicle speeds are validation signals only; they are never treated as legal speed limits.
GeoSpeed Auto FDE adds an open automotive partner-integration layer for Forward Deployed Engineering demos. It includes an in-vehicle head-unit simulator, partner issue triage API, launch-readiness workflow, COVESA VSS-style simulated vehicle signals, ADAS mismatch scenarios, and infotainment debug views.
The Auto FDE extension demonstrates automotive partner-integration workflows for speed-limit intelligence, in-vehicle navigation, ADAS validation, vehicle-signal replay, partner issue triage, and launch readiness using an open SDK-style simulator and public/sample data.
Partner scenarios -> Vehicle Signals API -> Auto Head Unit Simulator
-> Partner Integration API -> Issue triage / launch readiness
-> GeoSpeed speed-limit quality data
Auto/FDE quick start:
make auto-up
make vehicle-signals
make partner-api
make auto-dashboard
make auto-test
make launch-readiness-report- MVP sample pipeline and dashboard
- Real open-data ingestion connectors
- Stronger sign-to-road matching and geometry indexing
- Model monitoring and evaluation reports
- Production storage, auth, observability, and deployment hardening
If you want to discuss the project, request a walkthrough, or collaborate, feel free to reach out.
Author
Amin Ilia (AI)


