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:

  1. Binge-learned Flutter/Dart through documentation and YouTube tutorials (special shoutout to The Net Ninja)
  2. Broke the model three times trying to convert TensorFlow to TFLite (until I discovered quantization)
  3. 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 camera and image_picker plugins
  • State management with SharedPreferences for 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) 🏔️

  1. The "Hungry Dataset" Problem
    Combined datasets had inconsistent labels ("biological" vs "organic"). Solved by creating a label taxonomy and manual verification subset.

  2. The Flutter-TFLite Tango
    Model outputs misaligned until discovering Interpreter.runForMultipleInputs() needed 4D tensor reshaping.

  3. The Phantom EXIF Error
    Some Android images rotated 90° during processing. Fixed with EXIF orientation checks using image lib.

  4. The 72-Hour Finale
    Debugged camera freezes during submission week—turned out to be unclosed CameraController in 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

Share this project:

Updates