Inspiration
3D printing is an incredible tool for makers, engineers, and students, but it has a frustrating problem: a print can fail without anyone noticing. A small adhesion issue can turn into a tangled mess of filament, wasting hours of printing time and material. We wanted to build something that would let us step away from a printer without having to constantly worry about whether a print was still going correctly. For SBUHacks' Steel & Steam theme, we drew inspiration from the industrial machinery of the past. Steam-powered factories relied on gauges, monitoring instruments, and human operators to keep machines running. We wanted to bring that same spirit of mechanical oversight to modern manufacturing. As a result, we decided to develop LayerLock.
What it does
LayerLock is a 3D-printer monitoring system designed to recognize potential print failures and help users respond before more time and filament are wasted. The system combines several components:
- Computer vision: A pretrained YOLO model analyzes images from a camera overlooking the printer, looking for signs of spaghetti failures.
- Raspberry Pi camera: A network-connected camera provides real-time snapshots for analysis.
- Monitoring backend: A FastAPI server receives detection confidence values and evaluates the printer's monitoring state.
- Web dashboard: A React interface displays monitoring information, risk indicators, and incident history.
- Alert infrastructure: The system supports failure warnings and notification functionality so users can respond to suspicious activity.
The interface takes visual inspiration from industrial control rooms, combining steel tones, bronze accents, and mechanical instrumentation with a modern monitoring dashboard. Our aim is to make 3D printing less dependent on constant human supervision.
How we built it
We divided LayerLock into three major parts: vision, software, and hardware integration. For computer vision, we used Python, OpenCV, and Ultralytics YOLO. The model analyzes frames captured from the Raspberry Pi camera and produces structured predictions indicating whether it sees spaghetti-like filament. The Raspberry Pi exposes a camera snapshot endpoint, allowing our vision pipeline to retrieve images across the local network. We used this approach to keep the computationally intensive inference on a separate computer rather than requiring the Pi to run the entire model. For the application, we built a FastAPI backend and a React frontend. The backend handles monitoring data and risk evaluation, while the frontend presents the information through our Steel & Steam-inspired interface. We also developed video evaluation tools to test the model against recorded 3D-print failures and compare alternative pretrained detectors. Automated tests helped us validate individual components and their integration. We brought the separate components together using Git branches and pull requests, then tested the combined application.
Challenges we ran into
Our biggest challenge was making computer vision work reliably outside of ideal example images. The model could identify obvious spaghetti in photographs, but real printer footage was much harder. White filament sometimes blended into white printer components, and camera angles made developing failures difficult to recognize. We also discovered false positives. In some test videos, the model identified printer logos, wires, or surrounding hardware as spaghetti. In others, it missed visible failures entirely. We evaluated additional pretrained YOLO models, but they introduced their own false positives. Instead of switching models based on advertised accuracy, we compared their predictions and manually inspected the results. Another challenge was integrating work developed by different teammates. The camera, vision system, backend, and frontend had separate interfaces, dependencies, and configuration requirements. Merging everything required careful conflict resolution and testing. These problems showed us how different a working prototype can be from a reliably deployed monitoring system.
Accomplishments that we're proud of
- Built a working computer vision pipeline that detects spaghetti-like failures from live camera images.
- Connected a Raspberry Pi camera to our inference system over the local network.
- Demonstrated spaghetti detections using both webcam footage and Raspberry Pi camera snapshots.
- Built a monitoring backend and interactive web dashboard.
- Created tools for evaluating models on recorded 3D-print failure footage.
- Compared multiple pretrained models rather than assuming the first one was the best.
- Integrated our team's code into a single repository.
- Developed a distinctive Steel & Steam visual identity inspired by industrial instrumentation.
What we learned
This project taught us that detecting an object in a photograph is very different from monitoring a physical machine continuously. We learned about model evaluation, confidence thresholds, false positives, camera placement, image contrast, and the limitations of pretrained computer vision. We also gained experience connecting hardware and software through network endpoints, building backend APIs, and coordinating work across Git branches. Most importantly, we learned that good engineering requires acknowledging uncertainty. A detection model can provide useful evidence of a failure without being reliable enough to make every decision automatically.
What's next for LayerLock
Our next priority is improving reliability under real printing conditions. We want to collect more representative images from our own camera setup and use them to evaluate and potentially fine-tune the detector. We also want to expand detection beyond spaghetti to other common problems, such as bed detachment and layer shifting. On the hardware side, we plan to strengthen printer telemetry and control integration, validate additional sensor inputs, and test recovery behavior under supervised conditions. Longer term, we envision LayerLock as a more complete monitoring system that can help makers, schools, and workshops supervise multiple printers without constantly checking each machine. Our goal is simple: catch problems sooner, waste less material, and make 3D printing more dependable.
Log in or sign up for Devpost to join the conversation.