We thought of doing a project like this a while ago. If you just want com/net/org names, you can download all the currently registered domain names from NSI everyday. From there you can do a simple db query to determine available names. The only problem with this method is that the "available" names could have been registered within the past 24 hours. To prevent this we considered making another app that then queries SRS. This app would spawn like 100 threads that each do a single name lookup. With this we could simultaneously look up 100 names in 5 seconds.
The hardest part with the project was finding the bandwidth to download NSI's massive name database everyday. But even with the database, we still had trouble coming up with good names. Appending "my" and "the" to names didn't do much good as someone had already registered every variation on these names. GetADomain does a nice job. If they then did a lookup on all their suggested names before presenting them to the client they'd have a wicked product.
