24-hour virtual hackathon, May 8th to 9th 2026
The City of Leuven (Belgium) is responsible for keeping public space clean and responding quickly to issues such as litter (zwerfvuil) and illegal dumping (sluikstort). This involves detecting problems in the streets, registering them in internal systems, assigning crews and equipment, and tracking completion and costs.
Leuven wants to combine fast, low-threshold reporting with data-driven deployment for street cleanliness. The idea is twofold but integrated into one workflow: (1) staff can create a service request/work order in Planon directly from a WhatsApp message, ideally by sending a photo that contains geo-location (or by adding a location pin), and (2) the city can collect street imagery (e.g., via cameras mounted on municipal vehicles) to automatically calculate an “AI cleanliness score” per street segment. Together, these inputs feed an operational view (dashboard/heatmap) that highlights where intervention is needed most and enables targeted routing of people and cleaning machines.
Planon supports a REST API that can execute Business Object Methods (BOMs) for create/read/update flows (e.g., via endpoints such as /execute). WhatsApp can act as an easy internal intake channel (text, photo, location pin), while an integration service validates the sender, extracts metadata, and creates/updates the Planon record. Vehicle imagery can be processed to detect litter/illegal dumping and aggregate results into a cleanliness score and heatmap per street segment. Key considerations: authentication/authorization for internal use, data quality (accurate location), human-in-the-loop verification for uncertain detections, and privacy/GDPR-friendly processing (e.g., avoid storing identifiable faces/plates; store only derived metrics where possible).
Design and prototype an end-to-end solution that turns street cleanliness signals into actionable work in Planon: enable “one-message reporting” via WhatsApp (photo + location → Planon service request/work order) and enrich it with an AI-based cleanliness scoring pipeline that produces a heatmap for prioritisation. The solution should help Leuven detect issues earlier, reduce administrative friction, and deploy crews and machines more efficiently.
Leuven is a diverse city, with a big student population compared to it’s size. Students tend to cluster in certain areas (bars are close together, big buildings for student housing). The population also varies with time: the first week of the academic year is very busy, during weekends, examination periods and holidays they tend to go back home. In the weekend, the bars are mostly populated by people from the surrounding towns (especially the nightlife center “Oude markt”. In summer, the city is deserted, apart from specific large events such as music festivals or sporting competitions.
Sorted garbage is collection on a fixed schedule, depending on the zone of the city. More information can be found at https://leuven.be/en/trash-collection-calendar.
Litter has it’s own page at https://leuven.be/zwerfvuil (Dutch only). It has a place to signal the presence of litter, but it allow you to register as a volunteer who collects litter, and receive some basic equipment (maybe you can do something with that 😉).
There is also professional street cleaning. Apart from the standard car with brushes, they operate with these cute mega-vacuums. These devices could perhaps be used or modified
Another system with small flatbed trucks collects wastes from public bins.
Known hotspots are the public bins, that overflow and are also the target of dumping. The glass recycling spots are also a popular dumping area. Lastly, a typical pastime for students in Leuven is throwing bikes in the river, or abandoning them on the streets at the slightest malfunction
· Keep your eyes on the prize: your solution only needs to create a heatmap of where litter (may) be present. All the rest of the tech stack is a bonus
· Don’t forget the context: it’s a lot easier solving this problem only for Leuven. Don’t solve this problem for the entire world. Try to leverage the specifics
· Don’t try to solve the problem perfectly (at first). Solving it 80% correctly is ten times easier than solving it 100%, and once that’s done, iterterate.
· Don’t forget, people have been looking at this problem before. For example, https://littercam.ai/. You can get a lot more ideas/nuances/potential problems if you spend 10 minutes seeing what’s already there
· Ask for feedback! We love talking trash 😉