I'm not addicted to caffeine. I'm just addicted to not sleeping.

A Little Talk About Google SketchUp

Date/Time Permalink: 06/04/08 12:25:51 am
Category: Reviews

A motto of mine: To keep your sanity and balance, break your own rule every great, long, once in a while. So, on a site devoted to FOSS, while being a raving FOSS zealot, I will now kind of, sort of, review Google SketchUp, a proprietary graphics application.

I have yet to blog in detail a philosophy about open source and quality which I have called "Tools vs. Toys". But briefly, my rule of thumb is that if it is a Tool, (editors, operating systems, programming languages, mission-critical apps) it must be open source or it is not worth the memory bytes to store it. Toys, on the other hand (games, video, music, entertainment), have near-equal quality regardless if they are proprietary or open source. I've been able to comfortably keep that philosophy intact for years, but Google SketchUp challenges it.

I used the (beer) free version of SketchUp 6.To get it running, I used the Wine Windows-emulator. This blog post, complete with the comments, was all the help I needed. Specifically, I ran the setup program, installed Gecko on the second run, and then used Wine's regedit program to make changes to the HKEYs as the comments specify. It doesn't do any good to describe this further, because FSM knows what's going to happen on your system, and mine is so tweaked and hacked it isn't even Slackware any more.

SketchUp did finally run. I should say it "walked". It is indeed insanely buggy on Linux. I've gotten it to crash at least a dozen times, several triggered simply by mousing over the menu and once when trying to export an image to PNG. It takes a lot of patience to keep going when the UI does this:

Google SketchUp on Linux

Here's what you're seeing: Any mouse click causes the entire buttons-and-menus area to black out. To make a button appear again, you have to mouse over it. The menu headers never show up at all, but a click to the invisible black space makes a drop-down appear anyway. In addition, all of the cursors show up in the editor window with a white box around them, and each shape of cursor has its own unique hotspot, which you can't see when it's on the pixel you want because there's white box in the way. I couldn't begin to figure out what the problem is, but I'm thinking it's something to do with GTK??? And the fact that I'm emulating Windows software on Wine in Slackware in a hacked-up environment?

Anyway, despite the problems, I followed the excellent video tutorials and managed to crank out a few decent "Hello World" images.

Google SketchUp on Linux

Google SketchUp on Linux

Google SketchUp on Linux

The only way I could use these models in production, since it crashes when I try to export to PNG, is to take screenshots in Gimp, mask out the beige background, and then work from there. Here's that last building imported into Inkscape and vectorized:

Google SketchUp on Linux

SketchUp has strong points and weak points. It is indeed fantastically intuitive to start using and even very fun, but once you start pushing it to create greater works, it starts letting you down. For instance, it's easy to carve a block down to a curved shape, but only in one dimension. Let's say I wanted to make the top piece of this chair back:

Google SketchUp on Linux

It's easy enough to make the front profile:

Google SketchUp on Linux

And also easy to carve out the curve from the top:

Google SketchUp on Linux

But it is impossible to do both at the same time:

Google SketchUp on Linux

UPDATE: A big penguin salute to commenter "Nessunome", who reveals to us a way to do this using intersections. Complete with illustration here.

Other things (how to make a sphere) are possible, but so fiddly and non-obvious that you're very unlikely to know how to do it or even if it is possible to do. Basically, SketchUp suffers from the affliction of looking good in demos, but not holding up well in production. For one thing, to do anything precise, you have to type in numbers. Oops, look out! It's a command line! That thing that everybody but me hates! Well, if you're going to type in coordinates, you can do that in POVRay and Blender, too, albeit not in the variety of formats that SketchUp allows.

However, it does shine in some ways, even to the point of excellence. It's more of a CAD-type program than a true 3D program. It's unbeatable (presuming you can get rid of the bugs) if all you want to draw are architectural sketches, and indeed that's the stated intended purpose of the developers. There is nothing you can do in SketchUp that cannot also be done in Blender or POVRay, and indeed KDE's KPOVModeler is within an iota of having as intuitive an interface, while modeling for the 10x more powerful POVRay.

OK? You can point out the wonderful SketchUp object warehouse, and use those models yourself, but now you're just playing the Sims without the Sims part. If anybody produces the Blender-made Elephant's Dream using only SketchUp, I'll eat my mouse.

Which leads us to the inevitable confrontation: SketchUp is closed-source, proprietary, and bound to stay that way. It gets a free one-day pass on this site because Google has been so buddy-buddy with FOSS, and as a demo for those who want to run it on Linux. The reason it's likely to stay proprietary is because it has... PATENTS! Yes, the patent flying-monkeys are coming out of the sky to get you; run, Dorothy, run! At least, the "Push/Pull" tool is patented - this is what you use to pull a square into a block and a circle into a cylinder.

Well, is this prior art? Here I am doing the same thing in Blender, using "extrude":

Google SketchUp on Linux

And I can move it any old way I want here. For that matter, Inkscape has an extrude tool, too, and it ain't even blinkin' 3D!

There are many aspects to Google SketchUp that are just plain derivative of other 3D drawing editors; it's just that Google brought these elements together in a thought-out way to provide a uniquely low-barrier interface, which is actually the kind of thing that Google does best.

So, there's something to say for G SU. Sadly, there'd be a lot more to say for it if it was (a) open source so we could fix it and extend it, (b) ported to Linux natively, and (c) not patented. I'm not one of those trolls who go around pointing at Google saying, "They're gonna turn evil any moment!", but reluctantly, I have to say here regarding SketchUp, "Google, this is one rotten fart in your otherwise lovely flower garden."

/*                                                                       */
/* -__ /\\                                     -__ /\\          ,        */
/*   ||  \\               _          '           ||  \\        ||        */
/*  /||__||  _-_  \\/\\  / \\ \\ \\ \\ \\/\\    /||__||  _-_  =||=  _-_  */
/*  \||__|| || \\ || || || || || || || || ||    \||__|| || \\  ||  || \\ */
/*   ||  |, ||/   || || || || || || || || ||     ||  |, ||/    ||  ||/   */
/* _-||-_/  \\,/  \\ \\ \\_-| \\/\\ \\ \\ \\   _-||-_/  \\,/   \\, \\,/  */
/*   ||                  /  \                    ||                      */
/*                      '----`                                           */
Follow me on Twitter for an update every time this blog gets a post.
Stumble it Reddit this share on Facebook

suddenly the moon