I'm sure it's an interesting problem. I do think that it would be problematic to try to extend the data set beyond your own printer.
My personal list of things which I would like to catch, in order of occurrence:
- The hotend gets clogged or the filament spool was cross-loaded or it was a sticky filament like carbon fiber or it's brittle and breaks... and it begins "air printing" for the remainder of the print
- Very tall columns sometimes break loose from the base due to bad adhesion or lack of a raft, perhaps, resulting in air printing
- Parts which occupy nearly the entire footprint of the print volume will often start curling at the edges (non-heated bed) which sometimes results in hotend crashing in that zone
- When there are many small parts without a raft, one or more of those might not adhere correctly and never get a good start
I would say that most of my print job failures happen within the first 8 layers, even the first 3 if I'm honest.
I almost never get things that look like the Flying Spaghetti Monster.
In my own cases, I'm thinking that a better solution would be to detect that the spool itself hasn't moved in 60 seconds, say. This would likely cover half of my problems. Curling, part separation might be good candidates for photographic analysis. In theory, the Cancel button behavior could be modified to mark a particular job as failed within this plugin which then takes a snapshot in this moment and stores it for your data stack along with the layer information. But you'd also need to store similar photos at that same layer, I'd think otherwise. So if my fails are mostly happening at layer 3, then successful prints at layer 3 also need to be sampled.