There's a website proposing an objective method of forming districts. They call it the Shortest-Splitline Algorithm. I recommend reading through the site and looking at their examples of gerrymandering, but I also recommend paying attention to the deficiencies of their system. The fact is that the U.S. census doesn't pinpoint individuals, it just divides the land into "tracts" and counts how many people are in each one. Since tracts are probably rectangles more often than not, having an algorithm that draws straight lines at all angles necessarily splits tracts. To be workable, the algorithm has to have a rule about which side of the line each tract goes to, and they don't really have a good answer.
The Shortest-Splitline Algorithm ignores all demographics and geology (rivers, mountains, etc.), which is mostly good, but there are two demographic aspects that can still be used in an objective districting system: county borders and population density. In my home state of Colorado, redistricting is required to break up counties as little as possible (and within that, to break up municipalities as little as possible). This is practical because the parties have a level of organization that goes by county (after all, there are county offices to fill) and going by counties for all three legislative districting plans (Congress, state Senate and state House) means that the number of different ballots that have to be printed is minimized. As for the other aspect, we all know that urban areas tend to be more liberal, and rural areas tend to be more conservative. The most quantifiable difference between urban and rural areas is population density, and in fact this leads them to have different sets of issues--e.g. urban areas don't deal much with wildlife management, and rural areas don't deal much with public transportation. You want legislators to be able to concentrate somewhat on certain issues, so that they can have expertise in solving problems. Districting based on party affiliation and ideology only leads to expertise in ignoring problems. Basing the districts on population density would create some safe districts for both parties, and some not so safe districts. So a state can have some ability to change the party proportions without having the utter chaos of every race being decided by a handful of votes.
My process is to make the most urban district first, and call it District 1 (so even the numbering is objective), by an iterative process. If you tried to look at every combination of counties ... well, in Colorado we'd have 2^64 possible combinations to go through, and it might take longer than the age of the universe to find the right one. And then you get to work on District 2! So using an iterative process allows it to take a finite amount of time. You start with the county that has the highest population density (not the one with the highest population), and if the district doesn't have enough people, you keep adding the densest county from among those that are adjacent to what's already included. Once you pass the ideal number of people, you remove the least-dense county on the periphery until the population is too low. It can (though rarely does) go back and forth for a while, until you realize that the district has exactly the same counties it did a few steps ago. So the way to bring the process to an end is, when you remove a county that was removed before, you stop and split that county so as to achieve exactly the right population for the district.
This is a quick process, and it's possible that a computer could do it, but it's easier for a human to deal with the adjacency issue than to program it. Colorado was extremely easy because it's a compact state with no wide waterways. For coastal states, it may have to be a matter of law or judicial ruling whether any given pair of counties is to be considered adjacent. California managed to present enough problems initially that I believe I've worked out all the bugs.
For part 2, I've written out the exact wording for an amendment to the Colorado Constitution, including some rules to take care of the difficult situations I've encountered (like when adding a county to a district splits the rest of the state).
I've included pictures of how the CO and CA Congressional districts turned out (there's no way to get the pictures to appear where I want in the post), and here are links to what the congressional districts are like now (per the 2000 census): http://nationalatlas.gov/printable/congress.html#co, http://nationalatlas.gov/printable/congress.html#ca. Just click "Preview Map" next to the state's name. The exact splitting of counties in my maps is very approximate, because I can't go through it town by town, as an actual redistricting commission would. In Colorado, the districts did indeed end up in order of increasing area (I colored them in rainbow order--red, yellow, green, cyan, blue, magenta, and then grey), in California not so much, because some of those technicalities I mentioned interfered with the ideal. (There's an odd district caused by the fact that Santa Barbara and Kern counties have about 2 miles of shared border.) But that's okay; it's still objective and still has a tendency to progress from urban to rural. By the way, if you try to do it backward and create the most rural district first, the rest of the districts are forced to be more spidery, which is one of the complaints about the current gerrymandering.
(Part 2 is here.)