I've reviewed every PDF editor out there - then I had ChatGPT build me a better one ...
This file provides functions and modules that construct shapes from a list of cross sections. In the case of skin() you specify each cross sectional shape yourself, and the number of points can vary.