Inspiration

Our inspiration came from exploring the various challenge tracks and identifying opportunities to address real-world urban problems. Two tracks stood out to us: GrowthFactor’s satellite-powered parking intelligence and SafetyKit’s AI for human safety. We realized that combining these approaches could tackle a common yet critical issue for city residents, finding parking that is not only available but also safe, particularly for vulnerable populations like women and students navigating urban environments at night. This intersection of technology and social impact motivated us to design a solution that leverages data-driven insights to enhance both accessibility and personal safety, making everyday city life more secure and stress-free.

What it does

Lot360 allows users to enter a location and instantly see nearby parking options across three categories: surface lots, street parking, and parking garages. For each type, we estimate parking capacity using different data-driven methods, including computer vision and area modeling for surface lots, curb-length calculations for street parking, and footprint-based multi-level estimation for garages, giving users a realistic sense of how many spots may be available. Instead of guessing where to park, users can compare parking types based on estimated capacity and proximity, helping them choose the option most likely to have open space. Each location is also paired with a safety score that considers neighborhood context, parking type, lot size, and time of day, allowing users, especially women, solo travelers, and those unfamiliar with the area, to make informed and confident parking decisions.

How we built it

For surface lots, the estimator works by taking an OpenStreetMap geometry and choosing a method based entirely on its shape type. If the feature is a street segment (LineString or MultiLineString), we convert it from Web Mercator into its local Universal Transverse Mercator projection to compute the real-world length and estimate spots. If the feature is a surface lot or garage (Polygon or MultiPolygon), we download a satellite tile from Esri World Imagery that covers the lot (with slight padding), convert the polygon boundary into pixel coordinates, and create a mask so we only analyze pixels inside the parking area. On the tile, we apply Gaussian blur, run Canny edge detection, and detect line segments using the Probabilistic Hough Line Transform.

For parking garages, the estimator starts by querying OpenStreetMap using OSMnx to fetch multi-storey parking features. Once we have valid garage footprints, we project them into Web Mercator so we can compute accurate footprint areas in square meters. The number of levels is estimated by checking the OSM tags such as building:levels or height, or a default rule. We then compute the garage centroid and add metadata like name, levels, and estimated spots.

For street parking, we download the road network from OpenStreetMap using OSMnx, either within a distance of a center point, using the drivable road network. We convert the graph into edge geometries and filter out roads like highways, unclassified, and living streets. Including streets with parking-related tags like parking:left, parking:right, or parking:both. For each remaining road segment (LineString or MultiLineString), we project its geometry from WGS84 into its local UTM zone to estimate how much of that length can actually be used for parking by multiplying by a configurable curb factor (to account for driveways, fire hydrants, and no-parking zones).

We created an AI-powered safety risk model that intelligently evaluates how safe each parking location is by combining spatial, environmental, and behavioral risk factors into one normalized score. Using machine learning (KMeans clustering from scikit-learn), we first grouped parking locations into geographic “neighborhoods” based on their latitude and longitude, allowing the model to simulate crime risk baselines. We then applied an AI-driven scoring formula that factored in neighborhood risk level, parking type, lot size, and time-of-day risk. To make the model more realistic, we added slight probabilistic variation and generated a confidence score representing model certainty.

For the frontend, we first used Figma Make to rapidly prototype the user interface and validate the product flow before implementation. We then implemented the interface using React with TypeScript, Tailwind CSS for styling, and Leaflet for interactive map rendering. The frontend dynamically loads structured parking data and safety model output, filtering locations within a 500-meter walking radius of a selected point along with two specified preset locations available through a dropdown feature. Parking markers are color-coded based on availability thresholds, while the safety risk score generated by our safety risk calculation is integrated directly into tooltips, detail cards, and a toggleable heatmap overlay. The walking distance is computed in real time using a Haversine distance function, allowing users to evaluate convenience and safety simultaneously.

Challenges we ran into

Schema Inconsistencies Across Parking Types Garages, surface lots, and street parking all had different OpenStreetMap schemas and metadata structures. Integrating these into one unified frontend format required normalization and careful data mapping.

Duplicate or Overlapping Facilities Some real-world locations were tagged as both a garage and a surface lot, which caused double counting and overwriting issues. We resolved this by implementing duplicate detection and prioritizing more reliable facility types.

Incomplete or Missing Data Many garages lacked building:levels or height data, making accurate capacity estimation difficult. We often spent significant time attempting to locate missing metadata and had to implement fallback estimation rules.

Layer Integration in the Frontend Combining safety heatmaps with parking capacity markers created rendering conflicts and visual clutter. We had to carefully manage map layers and z-index ordering to ensure both datasets were readable simultaneously.

Heuristics for the Safety Model There are a variety of different factors that can be used to design a safety score. However, given the limited time in the hackathon and desire to optimize efficiency, we implemented a hybrid approach: modeling real-world behavior using AI clustering to create neighborhoods with a baseline risk score, modeling behavior using normal distributions, and creating realistic heuristics to model real - world behavior. These values had to be tested and fine tuned in order to avoid overfitting and producing unrealistic results.

Accomplishments that we're proud of

Successfully Integrating Multiple Datasets Without a Data Science Background None of us had formal data science experience, yet we were able to combine different data sources, clustering algorithms, and frontend visualization.

Parallel Development With Interdependent Systems Even though the parking estimators, safety model, and frontend depended on each other’s outputs, we structured our work so we could build in parallel, ensuring we were collaborating effectively using Git.

Accurate Surface Lot Estimation Through Manual Verification After verifying several surface lots by visually comparing detected parking lines with satellite imagery, we found that our approach was reasonably accurate even without labeled training data.

Rapidly Learning and Applying New Technologies We had never worked with satellite imagery processing before this project, yet we successfully implemented parking analysis, applying it effectively in a real-world safety-focused use case.

What we learned

How to uniquely combine multiple datasets (OpenStreetMap, satellite imagery, derived geometry data) to estimate parking capacity across different infrastructure types. How to infer missing data, such as estimating garage floors using building height tags or rule-based assumptions. How to approximate real-world street parking capacity using curb-length modeling and left/right parking metadata. The importance of projection systems (UTM vs. Web Mercator) when calculating accurate spatial measurements. How AI clustering can simulate neighborhood-level safety variation without needing a fully labeled crime dataset.

What's next for Lot360

Enhanced Parking Interaction and Safety Feedback: Lot360 would allow users to “save” a specific parking spot or entire lot, making it easier to locate their car later. In addition, the app could display real-time metrics like the number of available parking spaces and walking times from the lot to the intended destination. Users could also leave reviews and provide feedback on safety conditions, lighting, or accessibility, to improve the safety scores accuracy.

Expanded Search and Navigation Capabilities: Instead of being limited to two preset locations, Lot360 would include a search function where users can enter coordinates or the names of streets, buildings, or landmarks to find nearby parking options. This can help quickly locate potential parking spaces.

Improved Data Accuracy and Lot Details: To increase the precision of parking estimates, Lot360 would integrate additional datasets to fetch the number of floors or building height for garages when OpenStreetMap lacks this information.

Share this project:

Updates