So basically you want a piece of software that you can feed:
1) A set of desired shapes
2) A set of photos of scrap wood pieces

And then you want the software to "pack" the puzzle pieces onto the scrap pieces. In other words, figure out the best pieces of scrap to use for each puzzle piece.

Did I get that right?

Sounds like a programming problem to me. I'm not aware of anything that will do that. I wrote a Python app that analyzed photos of puzzle pieces and figured out which pieces went together (the 2000-piece puzzle in question had 500 pieces all black). It was non-trivial. Image processing can be very tricky even for simple problems.