Inspiration

We are a team of three electrical engineering students from BCIT. Through our time in school and in our personal projects we have worked with 3D Printers a lot. And we mean, _ a lot_. Through our shared experience, we know how annoying and frustrating it is when your 10-hour long print fails while you were off doing something else important like studying, sleeping, eating or studying.

What it does

We setup a Raspberry Pi & a Camera focused on an Ender 3. The Raspberry Pi watches over while it prints, occasionally taking snapshots from a live video feed. The snapshots are then fed into Gemini AI API, which then processes the data and identifies any problems with the 3D print. As soon as a problem has been identified, the user receives an alert through a live discord web-hook -- with a picture, an AI analysis of the problem, as well as an action to remedy the problem.

How We Built It 🛠️

Our system is powered by a Raspberry Pi, which serves as both the host for our web application and the brain for monitoring the 3D printer. The user interface was built with a React frontend and a Flask backend, creating a responsive and modern web dashboard. A camera connected to the Raspberry Pi captures an image of the print every five seconds. This image is sent to the Google Gemini API for analysis. If Gemini's vision model detects a print failure, such as spaghetti or warping, our system triggers a Discord webhook. This instantly sends an alert to the user, complete with the problematic image and a description of the potential error. To tie it all together, we designed and 3D printed a custom panda-themed mount to hold the monitoring camera.

Challenges We Ran Into 🧗

Our primary technical hurdle was interfacing with the Raspberry Pi camera. We discovered that the various camera libraries and APIs for the Pi have significant compatibility differences. Early attempts resulted in conflicts with our software stack. After troubleshooting several alternatives, we successfully integrated a library that was stable and performed well with our Python backend, allowing us to reliably capture images for analysis.

How We Built It 🛠️

Our system is powered by a Raspberry Pi, which serves as both the host for our web application and the brain for monitoring the 3D printer. The user interface was built with a React frontend and a Flask backend, creating a responsive and modern web dashboard.

A camera connected to the Raspberry Pi captures an image of the print every five seconds. This image is sent to the Google Gemini API for analysis. If Gemini's vision model detects a print failure, such as spaghetti or warping, our system triggers a Discord webhook. This instantly sends an alert to the user, complete with the problematic image and a description of the potential error. To tie it all together, we designed and 3D printed a custom panda-themed mount to hold the monitoring camera.

Challenges We Ran Into 🧗

Our primary technical hurdle was interfacing with the Raspberry Pi camera. We discovered that the various camera libraries and APIs for the Pi have significant compatibility differences. Early attempts resulted in conflicts with our software stack. After troubleshooting several alternatives, we successfully integrated a library that was stable and performed well with our Python backend, allowing us to reliably capture images for analysis.

Accomplishments We're Proud Of 🏆

We are especially proud of creating a polished and intuitive user interface that successfully streams a live video feed from the printer. For our entire team, this was our first time building a full-stack web application. Achieving a functional, real-time monitoring system with a clean, modern aesthetic in such a short timeframe was a major success for us.

What We Learned 🧠

This project underscored the importance of a well-defined project scope and effective team collaboration from the start. We learned how to integrate disparate technologies—hardware, web development frameworks, and a third-party AI API—into a cohesive system. We also learned that clear communication and task delegation are critical to making rapid progress during a hackathon.

What's next for PandaCam

We will add an option for the user to stop the print remotely when a problem has been identified. Another idea for improvement is uploading the model that is being printed so that AI can compare the print to what it is supposed to be, to identify more errors as early as possible.

Share this project:

Updates