Look into “Wave function collapse” like this one:
Make “shapes” of meshes, create ship out of them. Instead of random generation , let player choose variants.