How can I compare the shape of two seperate meshes?

So I have an idea for a side project where the player has to set up lasers to slice a box (or any shape) while it travels down conveyor belts and at the end of the path it is compared to a target shape. Obviously the goal is to slice the original mesh up until it fits the target shape.

So, what’s the best way to compare what would most likely be a static mesh with a sliced up procedural mesh?

My first (and only decent) idea was to create some sort of voxel data using an octree collision test to some arbitrary depth (it can be tweaked for performance reasons) and compare the 2 data sets. This obviously works great for objects that only have 90 degree edges, but will start to get considerably less precise with any diagonal edges.

So does anyone else have a better idea?

Any help is appreciated, and if I’ve explained it poorly feel free to press for more info.

Thanks!