Project Info
Inspiration
Throughout the hackathon, our team was intrigued by staff members sorting through trash bins in order to ensure recycling, compost and landfill waste was separated. After further investigation and a quick staff member interview, we learned about San Francisco's "zero-waste" program. This program requires event hosts within city limits to sort their waste into the three specified categories to reduce landfill use, with penalties or bans for events that fail to meet the waste sorting criteria. The demand for waste sorting has grown so much that private companies, such as Green Mary, have entered the sector. Our team came up with an innovative solution, Smart Bin. Smart Bin automates waste sorting, reducing manual labor costs and reducing pollution.
What it does
Smart Bin is a smart, standalone trash disposal system. It scans incoming waste and sorts it as it goes through our system.
How we built it
Our system is built on top of a Raspberry Pi. The Raspberry Pi hosts a Yolo11 object detection system that scans incoming waste and makes an inference as to what section it should be directed to (landfill, compost, recycling). The output from out model is then sent to an Arduino board that controls a servo motor using PMW. Our motor directs the trash to its corresponding bin, effectively sorting it.
Challenges we ran into
One challenge we ran into was the internet connection at the venue. We wanted to download open-source data sets from Roboflow Universe to train our Object Detection model to segregate different types of waste. We also dealt with hardware difficulties during the event, running the servo motors took a lot of juice from the batteries so we had to prepare a lot beforehand. We also modeled designs of our props to be 3d printed during the event, which took a long time to print where we had to optimize different slicing methods to improve from 7 hours of printing to sub 5 hours of print time. We also had limitations when it comes to computing power of the raspberry pi, where all of our detection model, and functions are all ran on this mini-computer.
Accomplishments we're proud of
We are extremely proud of what we built. We were able to build Smart Bin as a standalone system, one that is only dependent on a Raspberry Pi, an Arduino Board, and a servo motor. The total cost of our unit comes out to less than $50, making it highly accessible and likely to make an impact on the environment.
What we learned
Through this project, we gained a deeper understanding of the complexities involved in waste management and automation. We learned about the real-world implications of waste diversion requirements for events and how crucial it is to accurately sort trash. Additionally, we improved our skills in hardware integration, machine learning, and rapid prototyping, which were crucial to successfully building a working product in a limited time frame.
What's next
Our next steps involve expanding the scalability of the system across urban environments by integrating even more advanced real-time data analytics and optimizing waste collection routes through machine learning algorithms. We aim to enhance the mobile experience by allowing users to locate and interact with SmartBins seamlessly. Additionally, we plan to collaborate with municipalities and large organizations to implement SmartBin on a larger scale, helping cities reduce waste inefficiencies and environmental impact.
SmartBin - 

Intro
Introducing SmartBin—an automated hardware solution that sorts trash automatically into the correct bins for compost, landfill, and recycling. Using a combination of a Servo Motor, Arduino Uno, custom-designed and 3D-printed funnels, and a computer vision YOLO-trained model, we’ve developed a system that makes waste sorting more accurate and efficient, reducing the need for manual labor.
How does it work?
Just three simple steps. Throw your trash in the chute, SmartBin scans, and the pipe motor directs. SmartBin uses a camera to capture images of waste as it’s placed into the system. These images are then processed using a YOLO model running on a Raspberry Pi, which is trained to identify whether an item is compostable, recyclable, or destined for the landfill. YOLO’s real-time image recognition helps classify items quickly and accurately.

Trash Detection Model
We grabbed datasets from Roboflow and uploaded them onto Ultralytics Hub to train our model on Google Colab for over 100 Epochs and classified 10 main classes that revolve around daily urban trash.
Workflow

ML Training
P.S. We trained the model at the hotel nearby to get better wifi power.
Pitch Deck
Figma Pitch Deck Presentation Slides
Conclusion
With SmartBin, we’re offering a practical and sustainable solution to a widespread issue, making waste management at large events simpler, more efficient, and compliant with regulations. Join us in working toward a cleaner tomorrow. Thank you!
Analysis
View
Metric
- 16
- 16
- 5
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- Next.jsClaimed
- PyTorchClaimed
- ReactClaimed
4 of 7 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
4.4 MB
Source files
93
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
jdsantelicesl/SmartBin
104 files · 23.6 MB · @ 8c9545f
Structure
Interface
14 files · 13%Screens, components and styles rendered to the user.
Application logic
81 files · 78%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript76%
- CSS20%
- HTML4%
- Python0%
- Markdown0%
Share of indexed source by file size. Binary and vendored files are excluded.
Feature verification
Arduino board control via PWM (pyFirmata)Verified
Output from the model is sent to an Arduino board that controls a servo motor using PWM
Claimed on Devposthigh confidenceactuator.py:12— pyfirmata.Arduino(port) establishes serial connection to the Arduino board and gets a servo pinfirmata_arduino/firmata_arduino.ino:337— Standard Arduino Firmata sketch handles PIN_MODE_SERVO and analogWriteCallback to drive attached servos over serial, the counterpart firmware to pyfirmata
Servo motor sorts waste into landfill/recycling/compost binsVerified
Detection output is sent to an Arduino-controlled servo motor that physically directs trash to the correct bin
Claimed on Devposthigh confidenceactuator.py:21— set_servo_angle(pos) writes distinct servo angles for Recycle(1)/Landfill(2)/Compost(3) via pyfirmata servo_pin.writedetection_test.py:40— Detected class IDs (can, bottle, glass, paper, cardboard, plastic bag) are mapped to set_servo_angle calls, wiring detection output to the actuator
YOLO-based waste detection/classification modelVerified
A YOLO11 object detection/classification model identifies whether waste is compostable, recyclable, or landfill
Claimed on readmehigh confidencedetection_test.py:12— Loads a custom YOLO model (inference/trash-detection.pt) via ultralytics.YOLO and runs inference on webcam framesclassification.py:5— Loads inference/garbage_classification.pt YOLO classification model and reads top1 prediction/confidenceinference/trash-detection.pt— Trained model weight file present in repo (~5.5MB)inference/garbage_classification.pt— Trained model weight file present in repo (~11MB)
Real-time three-step waste sorting flow (throw, scan, direct)Code-supported
Just three simple steps: throw trash in the chute, SmartBin scans, and the servo motor directs it to the correct bin
Claimed on readmemedium confidencedetection_test.py:21— Main loop continuously captures webcam frames, runs YOLO detection, and calls set_servo_angle based on detected class, implementing scan-then-sort logic end to end in softwaredetection_test.py:7— Imports set_servo_angle from actuator.py, chaining detection to physical actuation within one script
Trained on Roboflow datasets via Google Colab/Ultralytics Hub (10 classes, 100+ epochs)Code-supported
Datasets from Roboflow were uploaded to Ultralytics Hub and trained on Google Colab for 100+ epochs across 10 waste classes
Claimed on readmelow confidencedetection_test.py:40— Code references class IDs 1-9 (can, bottle, cap, pop tab, glass, paper, cardboard, plastic bag) consistent with a multi-class waste dataset, but no training script, dataset config, or Colab notebook is present in the repo to confirm the training pipeline itselfassets/google-colab.png— Screenshot asset referenced in README implies Colab was used, but is not executable evidence of the training process
Low-cost standalone unit (under $50)Claimed only
Total cost of the unit is less than $50, making it accessible
Claimed on Devposthigh confidenceNext.js/React web/mobile experienceClaimed only
Built with next.js and react (per Devpost 'Built With' list); README also mentions expanding a mobile experience for users
Claimed on Devposthigh confidenceRaspberry Pi as the standalone compute platformClaimed only
System is built on top of a Raspberry Pi hosting the YOLO detection system
Claimed on Devpostmedium confidence3D-printed funnels/chute for waste routingBlocked
Custom-designed and 3D-printed funnels physically route trash into the correct bin
Claimed on readmelow confidenceFigma pitch deck and design workflowBlocked
Figma was used for a pitch deck presentation and design workflow
Claimed on readmelow confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.