This is an implementation of the paper by Zhou et al. "An Algorithm for Creating Geometric Dissection Puzzles" : https://archive.bridgesmathart.org/2012/bridges2012-49.pdf
"A dissection problem is the problem of partitioning a geometric figure (such as a polytope or ball) into smaller pieces that may be rearranged into a new figure of equal content"
This is written in C++ using the libigl library for rendering.
Example Output: