Inspiration
Food waste is a huge problem. College campuses in the United States generate an estimated 22 million pounds of food waste annually. Every day in dining halls, students take food they don't end up eating, and most schools have very little visibility into what those leftovers actually are. They might know how much food they purchased or how much waste was thrown away overall, but they usually don't know which specific foods students consistently leave on their plates.
What it does
Foodprint is an AI-powered dining hall waste-tracking system that analyzes leftover food on student plates. A Raspberry Pi camera monitors plates, Overshoot detects when a full plate is present, and Gemini analyzes captured images to identify leftover foods. The system combines this data with scraped dining hall menus using Browserbase and stores the results in a database. Staff can then view waste trends, meal-specific waste patterns, recent plate events, and actionable insights through a dashboard, helping them understand what foods are being wasted most frequently.
How we built it
We built Foodprint using a Raspberry Pi camera stream, Python, FastAPI, SQLite, and OpenCV. Overshoot handles full-plate detection, while Gemini generates detailed leftover descriptions from captured images. Browserbase and Stagehand automatically scrape dining hall menus and store them as structured data. The backend aggregates waste events and serves analytics through a FastAPI dashboard, allowing dining hall staff to explore trends and menu-specific waste patterns.
Challenges we ran into
One of our biggest challenges was how classifying against the entire Berkeley Dining menu was far too broad a problem, which pushed us to scope classification down to one dining hall and meal period at a time. Scraping the menu data itself was its own challenge, since the site is JS-rendered and filter-based, requiring Browserbase and Stagehand instead of a simple static scrape.
Accomplishments that we're proud of
We're proud that we built a working end-to-end pipeline in a short timeframe, taking a live Pi camera feed all the way through AI-based food classification to a working dashboard. We solved the dynamic menu problem by using Browserbase to automatically scrape Berkeley Dining's daily menus, and we designed two physical deployment options, a conveyor belt mount and a trash can mount, so the system could realistically fit different dining hall layouts.
What we learned
Working on Foodprint taught us a lot about the gap between planning hardware on paper and actually wiring it up, since things like camera mounting and color format only became obvious once we had real components in hand. We also learned that scoping a problem well matters as much as the model you choose, which is why we narrowed classification down to one dining hall and meal period at a time.
What's next for Foodprint
Our next goal is to move beyond generic leftover descriptions and improve menu-item-level identification accuracy. We also would love to bring this to life and expand it to dining halls across the world so that we can help universities reduce food waste at scale by turning everyday dining hall activity into actionable sustainability insights.
Built With
- browserbase
- fast-api
- gemini
- overshoot-ai
- python
- raspberry-pi
- sqlite
Log in or sign up for Devpost to join the conversation.