There are various algorithms for finding approximate optima to messy fitness landscapes.
Genetic algorithm would be one approach. You map the printable shape space onto a bit vector and define a fitness function (optimization objective function) to guide the search. Hardest part is coming up with a fitness function that gives you what you want, this gets tricky when you are trying to balance multiple constraints.
Genetic algorithm would be one approach. You map the printable shape space onto a bit vector and define a fitness function (optimization objective function) to guide the search. Hardest part is coming up with a fitness function that gives you what you want, this gets tricky when you are trying to balance multiple constraints.