Inspiration:
The idea for EcoScan AI stemmed from the growing global waste crisis and my passion for leveraging AI to drive environmental change. Witnessing how improper waste disposal contributes to pollution and resource depletion, I wanted to create an accessible tool that empowers everyday users to make sustainable choices. The Arm AI Developer Challenge inspired me further, as it emphasized efficient on-device AI for mobile devices—perfect for running lightweight models on Arm-based hardware without relying on the cloud. I drew from real-world apps like recycling scanners but aimed to add a "wow" factor with generative tips, making sustainability fun and educational.
What it does: EcoScan AI is a React Native mobile app that uses on-device AI to scan waste items via your device's camera. It classifies them in real-time as recyclable, compostable, trash, or unknown, then generates personalized eco-tips—like "Repurpose this plastic bottle into a DIY planter to reduce landfill waste!" All processing happens locally for privacy and efficiency, optimized for Arm architecture to ensure low power usage and fast inference on smartphones.
How we built it: We built EcoScan AI as a one-day MVP using React Native with Expo for rapid cross-platform development. For the core AI, we integrated TensorFlow.js with a quantized MobileNet model for image classification, mapping detections to waste categories. The camera feed uses expo-camera for real-time tensor processing, running inference every 1-2 seconds to balance speed and battery life on Arm CPUs. Generative tips start with a simple rule-based simulator with randomization for an AI-like feel, scalable to lightweight LLMs. The codebase is under 300 lines, focusing on simplicity: App.js handles UI and logic, ai.js manages models. We tested on Arm-based Android devices to verify optimizations like tensor disposal for memory efficiency.
Challenges we ran into: Time constraints were the biggest hurdle—building a functional MVP in one day meant prioritizing core features over polish, like advanced LLM integration or AR overlays. Integrating TensorFlow.js with React Native required troubleshooting tensor handling and permissions, especially ensuring smooth performance on lower-end Arm devices without overheating. Fine-tuning the model for accurate waste classification was tricky with limited training data, so we relied on pre-trained mappings, which sometimes misclassified edge cases like mixed materials.
Accomplishments that we're proud of: We're thrilled to have created a privacy-focused app that runs entirely on-device, showcasing Arm's efficiency in edge AI. Delivering real-time classification with generative tips in such a compact MVP is a win, and it's open-source on GitHub for community contributions. The app's potential to educate users on sustainability while being hackathon-ready (with a demo video and screenshots) makes us proud—it's not just functional but engaging, turning waste sorting into an interactive experience.
What we learned: This project deepened our understanding of on-device AI optimizations, like model quantization for Arm hardware to achieve low-latency inference without cloud costs. We learned the importance of scoping MVPs tightly for hackathons, balancing innovation with feasibility. Experimenting with TensorFlow.js in React Native highlighted mobile AI's challenges and rewards, such as handling camera streams efficiently. Overall, it reinforced how AI can address real-world issues like environmental sustainability in accessible ways.
What's next for EcoScan AI: Next, we'll expand the model with community-sourced datasets for better accuracy across global waste types. Integrate true on-device LLMs (e.g., quantized Phi-2) for more sophisticated tips, add AR visualizations for disposal guides, and support user-submitted scans to build a collaborative database. Long-term, we aim for app store release and partnerships with recycling programs to amplify its impact.
Built With
- expo-camera
- expo.io
- mobilenet
- react-native
- tensorflow-js
Log in or sign up for Devpost to join the conversation.