Hey all! I'm diving into a university project where I'm building a 2D CNC printer that sketches images—basically a simple plotter. Here's the setup I'm looking at: I'm using a Flutter desktop app to receive images and then plan to use Python with OpenCV to process those images into lines or edges. The processed data will then become movement commands sent to an Arduino Uno via serial.
I realize that many people go for tools like Inkscape for this type of task, but I'm committed to keeping it all code-based. I'm currently hitting a wall with the image processing phase and was considering OpenCV's edge detection methods (like Canny), but I'm unsure if that's the best route for creating clean paths or how to translate that into drawing instructions. Has anyone tackled something similar or have suggestions on how to go from image to lines to coordinates to CNC movement? Thanks a lot!
2 Answers
Have you thought about using an existing solution like LightBurn? It’d do what you need without reinventing the wheel. But I get it if you're looking for a fully automated solution through your app instead.
Check out some open-source projects that have tackled image-to-line conversions! You might find something useful hidden in Inkscape's code, specifically their TraceEngine. It’s well documented, and if your project is GPL, you could even use it directly with Flutter's FFI.
Thanks for that tip! I didn't realize I could dive into the TraceEngine code. I'll definitely look into it and see how I can make it fit my workflow.

Yeah, I'm really trying to automate everything through Flutter without relying on other programs. If LightBurn could run in the background or via code, I might consider it, but I want full integration.