About EcoSort AI: A Journey of Code, Garbage, and Late Nights ☕🗑️
The Spark: When Cultural Confusion Meets Environmental Passion
As an international student at ELTE navigating life in Hungary, my first recycling experience became a comedy of errors. "Does pizza box grease make it non-recyclable? Why are glass colors separated here?" Watching classmates equally confused with coffee cup disposal, I realized: waste management isn't just a technical problem—it's a communication gap between systems and users. This sparked EcoSort AI—an AI translator that bridges human habits and local recycling rules.
The 10-Day Flutter Bootcamp: From Zero to TensorFlow Lite
Coming from Python/Java, mobile development was uncharted territory. With the hackathon deadline looming, I:
- Binge-learned Flutter/Dart through documentation and YouTube tutorials (special shoutout to The Net Ninja)
- Broke the model three times trying to convert TensorFlow to TFLite (until I discovered quantization)
- Turned my dorm into a trash lab—scanning 127 items daily to test accuracy (my roommate still jokes about "the apple core incident")
Key technical takeaways:
- Cross-platform UI logic with Flutter's widget tree
- Camera integration using
cameraandimage_pickerplugins - State management with
SharedPreferencesfor scan history - Model optimization using MobileNetV2 with 94.3% validation accuracy
Building Blocks: How We Stacked the Tech
🧠 AI Brain (Python)
- Dataset Fusion: Combined 3 Kaggle datasets (5,842 images) using custom label mapping
- Transfer Learning: Fine-tuned MobileNetV2 with aggressive augmentation
- TFLite Conversion: Optimized model size to 12.3MB for mobile deployment
📱 Flutter Body (Dart)
- Camera Pipeline: Real-time image capture → preprocessing → model inference
- Location Services: Integrated GPS for future localized guidelines (v2 feature)
- Interactive UI: SVG animations, haptic feedback, and dynamic theming
Mountains We Climbed (and Sometimes Fell Off) 🏔️
The "Hungry Dataset" Problem
Combined datasets had inconsistent labels ("biological" vs "organic"). Solved by creating a label taxonomy and manual verification subset.The Flutter-TFLite Tango
Model outputs misaligned until discoveringInterpreter.runForMultipleInputs()needed 4D tensor reshaping.The Phantom EXIF Error
Some Android images rotated 90° during processing. Fixed with EXIF orientation checks usingimagelib.The 72-Hour Finale
Debugged camera freezes during submission week—turned out to be unclosedCameraControllerin dispose(). Lesson: always. close. resources.
Why This Matters Beyond Code
EcoSort isn’t just about waste—it’s about building environmental empathy through technology. Every proper recycling act tracked in the app’s history becomes a personal climate contribution story. As I present this project from Budapest, I dream of seeing it help not just students confused by new recycling systems, but anyone striving to turn daily habits into planetary healing. 🌍✨
"The greatest threat to our planet is the belief that someone else will save it." – EcoSort’s loading screen quote that kept me coding through those 3 AM nights.
Built With
- app
- dart
- flutter
- machine-learning
- python
- tensorflow
Log in or sign up for Devpost to join the conversation.