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...