I think the only criteria should be city or county lines. For multiple districts within a city, the lines should follow natural land borders or be straight.
What so many lefties miss is that the worst gerrymandered districts are the ones created for minority democrats.
How about we have a computer program that can generate districts that have short boundaries, and avoid putting too many people into districts with far-flung populations when there are closer populations they should be grouped with (I think the logarithm would be to minimize the sum of the distances of each voter from the center of area of his district, or better still from the center of population of his district.
Add some randomness, run 1001 versions for each state. Let the Democrats toss out 500, and the republicans toss out 500. Better still, just pick the one that minimizes the distance of voters from the population center. (One could make it computationally easier by assuming all voters live at the center of area of their zip code, and then doing this based on zip code populations).