Has there been work on modeling variations of a 2D shape? E.g., say you want a distribution over 5-sided polygons, or over ellipses, or curved shapes? For simple shapes, like circles, rectangles, etc., this seems really straightforward, but I'm having a hard time coming up with a reasonable way to model more complicated (especially curved) shapes. I suppose for curved shapes I could just treat them as polygons and then do spline interpolation. But even then I would need a distribution over arbitrary polygons. Any ideas?
Edit after comments: I guess the problem isn't one of a "distribution over polygons", but one of parameterizing polygons such that I can put distributions over the parameters. I still don't know how to do this for arbitrary (closed, non-self-intersecting) polygons.
Context: I would like something to sample from that will generate puzzle pieces (e.g., https://static.brusheezy.com/system/resources/previews/000/024/418/original/50-puzzle-pieces-brushes.jpg, https://www.libertypuzzles.com/userfiles/kcfinder/images/complex-whimsy-piece-300.jpg, https://www.mgcpuzzles.com/mgcpuzzles/images/all_new_core_images/jigsaw_puzzle_piece/traditional_puzzle_pc_ap_1T.jpg). This seems to boil down to parameterizing polygons. I could simplify things a bit by modeling the general outline of the piece, the location of the interconnects, and the shape of the interconnects separately, but there are still two polygons in there that need to be modeled (the general outline, and the shape of the interconnect).