Back to Projects

Case Study

- 3 min read

EcoWise

Flutter Firebase TensorFlow Lite Cloud Functions Dart
EcoWise project hero image

Overview

EcoWise is a cross-platform mobile application that uses machine learning to help users accurately sort waste. Point the camera at an item, and the app identifies what it is and tells you exactly how to dispose of it based on your local municipality’s recycling policies. Beyond the scanner, EcoWise includes educational modules and a competitive leaderboard to drive sustainable habit formation.

The project resulted in a U.S. patent filing (63/862,043) for its novel approach to offloaded machine learning in classification applications.


The Problem

Recycling contamination rates in the United States hover around 25%, largely because people don’t know what goes where. The rules change between cities, between waste haulers, and even between apartment complexes. Existing recycling guides are either too generic (ignoring local policies) or too buried to be useful in the moment you’re standing over the bins.

I wanted to build something that could answer the question instantly: What do I do with this?


Technical Approach

ML Pipeline

The core classification engine uses a TensorFlow Lite model trained to recognize 50+ categories of common waste items. The key architectural decision was offloading inference to the cloud for the initial classification, then caching the model and results locally for subsequent scans.

This hybrid approach solves two problems at once:

  • Cold-start accuracy: Cloud inference runs a larger, more accurate model than what fits comfortably on-device.
  • Offline capability: Once a user has scanned an item category, the classification is cached locally and works without connectivity.

The patent filing covers this specific architecture—the interplay between cloud-first inference, intelligent caching, and graceful offline degradation in classification apps.

Classification Accuracy

The model achieves 95% top-1 accuracy across the 50+ waste categories. Training data was augmented with varied lighting conditions, partial occlusion, and background noise to handle the messy reality of photographing garbage.

Gamification Architecture

To drive sustained engagement rather than one-time usage, EcoWise integrates a community leaderboard backed by Firebase Realtime Database. Users earn points for correct classifications, completing educational modules, and maintaining daily sorting streaks.

The leaderboard uses a Firestore-backed ranking system with server-side score validation through Cloud Functions. This prevents client-side score manipulation while keeping the read path fast through denormalized leaderboard documents.

Educational Modules

Each waste category links to a curated educational module explaining:

  • Why the item is classified the way it is
  • What happens to it after collection
  • Local policy variations the user should know about

These modules are content-managed through Firebase Remote Config, allowing updates without app releases.


Results & Impact

  • Patent filed: U.S. Patent Application 63/862,043 for novel offloaded ML classification architecture
  • 95% classification accuracy across 50+ waste categories
  • Cross-platform deployment on iOS and Android from a single Flutter codebase
  • Educational content covering local recycling policies for multiple municipalities

What I Learned

The most interesting challenge wasn’t the ML model—it was the caching architecture. Designing a system that gracefully degrades from cloud to local inference without the user noticing required careful thinking about cache invalidation, model versioning, and connectivity detection. The patent process itself was educational: distilling a technical architecture into claims that are both specific enough to be defensible and broad enough to be meaningful.

Building for behavior change is harder than building for utility. The gamification system went through multiple iterations before landing on a design that motivated repeat usage without feeling manipulative. The leaderboard works because it’s community-scoped (your neighborhood, your school) rather than global—people care more about beating their neighbor than beating a stranger.