Please Buy Cheetah3d

Usability and 3d software, from the expensive to the free to the cheap.

Among my various half-assed skills, I can model, texture, and light 3d graphics (or “cg” as it’s now referred to by the cognoscenti). I have a bunch of examples here, but I’ve put one up here (it was my design for QuickMP3’s icon) to brighten up my blog with a picture for a change.

Anyway, I’ve used a lot of 3d software over the years, but I’ve never been a hardcore pro, and I’ve always thought that my stuff didn’t quite cut it, especially where character modeling and animation were concerned.

Back in the heyday of multimedia development, when you needed quite a lot of skill and knowledge to get even quite modest stuff even working on most hardware and people like me could get paid — literally — hundreds of thousands of dollars for a couple of months’ work simply because no-one else could do it that fast, that cheap, or that well, my casual interest in 3d led me to spend quite ridiculous amounts of money on 3d software.

For example, I spent something like AUD $15,000 (~USD $11,000) over a three year period on licenses and upgrades for Strata Studio Pro, ElectricImage Animation System, Form*Z, and 3D Studio Max (along with Character Studio). While these purchases were always “justified” by the work I was paid to do (hey I was earning six figures, I had no dependents, and it was tax deductible), in part, with them, the real reason I kept buying new packages instead of just making do with (say) Strata Studio Pro (relatively cheap at ~$1200) was that I kept thinking if only I had feature X I would be able to do character animation.

Anyway, I’m someone who expects to make major progress in new areas with relatively little effort, and if I don’t I tend to do something else. For example, if I have some fairly major programming project that requires me to learn a new programming language, I tend to expect to get the project substantially working within a few days or pick a new language. (This is not the way to approach character animation.)

Well the good times have gone (oddly enough, roughly coincident with the dot com bust) and I don’t have tens of thousands to waste on software I hardly use, so I started trying to work with very cheap or free software. (Even the upgrade prices of most of the packages I’ve mentioned are high, except for ElectricImage which has other issues.) In any event, all the major vendors give you free demos these days, and I must say that the free demos are not encouraging. (Hint for marketing pros at Autodesk et al: letting people have free demos won’t work if you simply convince them they have no clue how to use your software.)

Here’s my very quick summary of the high end 3d market. This is the stuff of religious wars … I’m not trying to diss your favorite product.

Usability

3D Studio Max wins
Cinema4D pretty good
Maya bad
Lightwave bad and strange
XSI very bad and very strange

Functionality

Maya wins for post production, Max wins for games
Everyone else is a close second (for either)

In general, 3d programs are really complicated. I mean really, really, really complicated. This complexity is used to justify 3d programs having really bad UIs. 3d Studio Max wins because it does some really obvious stuff well:

  • You can draw stuff by clicking on a tool and then dragging in your view. The thing you want to create will appear more-or-less where you expect it to. Insofar as it behaves oddly, you can figure out how to fix it fairly easily.
  • You can move the viewport around fairly easily and intuitively.
  • You can select things by clicking on them.
  • You can modify your selection by clicking on modifier tools.
  • You can “see” most of the things you can do either by clicking tabs or right-clicking. Commands that don’t apply to the current selection will generally be greyed out.
  • Undo works

In usability terms, of the high-end 3d programs, 3D Studio Max is (relatively):

  • Visible
  • Forgiving
  • Explorable

(Sadly, even today, Usability is hardly a well-established discipline — just consider the fact that two of the best known “gurus” in Usability (who work together) have quite different priority lists (Tog’s, Nielsen’s) for usability.)

For what it’s worth, I don’t think much of Nielsen. Two of his ten items are, essentially, online help. If your users are looking for online help you’ve generally failed. Another item: “Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.” is absolutely right for some things and absolutely wrong for a large class of other things (you need to give the user more information when they’re doing less common tasks).

The point is, the best high end commercial 3d software scores about 5/10 on the usability scale.

None of these features conflicts with the complexity of 3d programs, and yet few or none of these things are true of any of 3d Studio Max’s competitors. Unless you work almost daily in most high end 3d programs you have to remember the weird characteristics of each program to use it at all (forget about efficiently).

Since none of the high end packages are terribly compelling usability-wise, there’s a very capable free alternative. Blender. Blender has recently been used to complete a very impressive short film and all the files used to create the film are available for free as well — the idea being that artists have demonstrated that they can do real high end work with Blender and are giving away the techniques they used to do it.

Now, Blender is the third least usable 3d program I’ve ever spent significant time trying to use (the “winner” in this category is Alias PowerAnimator, while second place goes to SoftImage XSI; I’m ignoring programs I essentially bounced off completely). If you go back to the list of virtues of 3D Studio Max:

  • If you figure out how to insert items they appear at fixed size at the position of the 3d cursor and aligned to the current view. You’ve probably moved the 3d cursor by accident by now so you may well not see what you’ve created. You almost never want to align newly created objects to arbitrary views so you’ll want to learn how to strip the rotation from newly created objects…
  • It’s not at all obvious how to navigate the viewport.
  • Clicking (with the left button) repositions the 3d cursor. This is not a useful feature for (I guess) 90% of users.
  • You can modify your selection in some ways by entering edit mode (press tab) and in other ways by leaving it (press tab). Anything that works in both modes behaves differently in the two modes.
  • The good news is that many commands are visible if you have the correct tab selected. The bad news is that there are two levels of tabs, the icons make no sense, and many functions are labelled using hardcore industry insider jargon (e.g. catmull-clarke).
  • Undo only works sometimes.

Hey, but it’s free.

Now I did render the forklift icon (above) using Blender. But I didn’t model it in Blender, and I had to pretty much look up documentation every step of the way. And I doubt I could do it again without going through the documentation again.

Really, the only reason I’ve persevered with Blender is that it’s free. In actual fact, it’s probably the most unusable 3d program I’ve ever used, but XSI is a dog and it’s Windows only and PowerAnimator has been replaced by the far more usable Maya (well, the far more Usable Maya 8.5; Maya 1-3 were horrible too), which I would probably buy if I could justify the expense. Also, Maya is a dog and has draconian licensing. (Blender works very nicely even on low end hardware. It’s also tiny. And did I mention it’s free? So it’s on every computer I ever touch.)

Despite being Open Source, any attempts or requests to improve Blender’s UI are met with outright hostility by the community. The users are invested in the lousy UI which they know and claim to love. The programmers are … well programmers. Either the UI makes sense to them or it doesn’t impinge on their consciousness when test rendering glass balls in HDRI environments assembled with two clicks or loaded from a file made two years ago. The best we can hope for is that the next version will have an absolutely terribly but completely user-customizable interface. This means that once you’ve figured out how to do something and provided you can be bothered you can fix each UI problem for yourself as you discover it and then try to remember what you did.

Usability Rule # … I don’t know … 7: big preference dialogs are not a substitute for decent UI design. (Why? Well for one thing, an importent way to learn to use stuff is to ask people, and people won’t know the answer if everyone is using a differently configured program. Basically every configurable option conflicts with Usability Rule #1: Consistency. This doesn’t mean that every configurable option is bad, but it does mean it comes with a cost, and the benefit had better be worth it.)

So, enter Cheetah3d. At $129 Cheetah3d 4.0 is, in my opinion, for anyone except full-time hardcore 3d artists, the best 3d program on the planet. Now, please note, I haven’t used them all, and I’ve used even fewer of them lately. But, based on my pretty well educated guesses, none of the other software out there has a fighting chance.

It isn’t the best dedicated modeler around (that would be modo or if you don’t want to spend the money perhaps silo) and it isn’t the best renderer around. It doesn’t have every feature you might want (it conspicuously lacks particles, volumetric lights and materials, and motion blur). So what’s so good about it?

  • What it does, it does very very well.
  • It does almost everything you need
  • It has a clean, uncluttered UI
  • It’s fast and light and cheap enough to be on every computer you use*
  • Even I can do character animation with it
  • It’s fully scriptable (via JavaScript but, unfortunately, not AppleScript
  • Its native file format is human-readable XML
  • It has a seamless workflow to Unity 3d

Oh, and it only runs on a Mac.

* As long as it’s a Mac.

Thinking out loud about Leopard

The Leopard announcements have been widely judged as disappointing. Pretty much every SteveNote is judged disappointing just afterwards, and then folks gradually absorb the information and recast it all as amazing later (I, for one, thought the iPod was an overpriced useless gizmo that only geeks would buy; if you find reportage at the time, you’ll see I was not alone), forgetting that at the time they were disappointed.

I wasn’t disappointed. I’m writing this little note to myself as a kind of open diary entry (hmm I guess that’s what a blog is 🙂 ). Maybe I’ll laugh at myself in six months’ time.

First of all, the Mac Pros are the most droolworthy pieces of hardware Apple has ever released. Well, at least since the Quadra 700 or perhaps the Mach 5 boxes (anyone remember those? Photoshop launched instantly on those suckers…). Sure, I think the cases look ugly and are freaking huge, but you get a whole pile of grunt for not much money. And after reading HardMac I discover that the CPUs aren’t soldered in, so you can buy a 2GHz box and swap in faster CPUs at your leisure (more useful to folks outside the US where Apple’s prices are ridiculous). The only real complaint is that there’s no midrange graphics card option (e.g. an X1600 or a GeForce 7800).

But on the OS front, Time Machine — if it works — is a reason to buy Leopard on its own. Backups are a huge deal. We’re reaching the point at which the hard disks on which millions of people are storing their entire photo and/or music libraries are going to die of old age and you can only imagine the kinds of horror stories that will start circulating by word of mouth. Similarly, the “but I was just magically saved by Time Machine” stories could become a serious selling point. For serious users developers, Time Machine could make, at minimum, version control for small, single-developer projects completely irrelevant. Whether it will have the ability to roll back servers, etc., remains to be seen, but just this much is a serious win (for me, anyway).

I might note that Time Machine — at least as shown — directly supports everything at file level via Finder, but it appears to offer an API for application developers to allow application specific and/or finer grained support. This is what makes having something like Time Machine implemented as OS level so powerful.

The ability to turn any part of any web page into a Dashboard Widget is not only incredibly cool, but it has the potential to both change the way we browse the web AND make Dashboard actually useful and amazing rather than a use-three-times-and-forget piece of eye candy (as it is now). Dashcode sounds pretty compelling, but a lot of that will hinge on whether its JavaScript debugger is as good as advertised.

iChat’s screen sharing features (mentioned on the website but ignored during the KeyNote) are pretty mind-blowing. First of all, having this functionality for free at OS level is pretty amazing (but will iChat be able to broadcast and/or connect to non-Mac clients?) and might make remote meetings and collaboration a lot more doable than is currently the case with half-assed tools such as GoToMyPC or WebEx. The big question for me is the extent to which this functionality may be available independently of iChat. E.g. can we log in to a Mac OS X box remotely with a GUI, or can we only screenshare via iChat?

Next, there’s Spaces. I’ve used several virtual screen programs over the years and at some point, such as when I stopped using the computer it was installed on, just given up on them. This is because while they are great in theory, they all suck in practice. It looks to me like Spaces may address this suckage in a number of ways, not least of which is by making it an OS feature so I don’t need to install it (or license it) on specific machines. But it also appears to be much more intelligently and simply designed than other virtual screen implementations, in part because it’s implemented at OS level:

1. When you jump to an app (e.g. by clicking on it in the dock) you automatically go to its space.

2. There’s a well-defined spatial relationship between the spaces which is consistently reinforced with animations and screen layouts. This is really important (and one of the reasons why many people think the OS X Finder sucks*).

3. I’m hoping that it will be well-integrated with Expose (i.e. that dropping into the Spaces overview is, in essence, what Expose will do now).

I’m not convinced that Spaces will be wonderful; but it has the potential to suck less than its predecessors.

* I think the OS X Finder sucks too, but not because it isn’t spatial. I think the OS X Finder sucks because it is trying to do a really hard job (manage hundreds or thousands of files in a directory, etc.) with a really bad UI design (arrays of icons or lists of text labels) that dates back to when users only had 500 files on their hard disk.

That said, most of the other announcements are pretty ho-hum. 64-bit — yeah, whatever. Being able to install 16GB of RAM is all the 64-bit support I really need for now. Core Animation — cute but will it lead to anything useful or just more cute screensavers? Spotlight — stealing some ideas from QuickSilver and adding remote searches; cool but hardly earthshaking. Mail 3 looks nice, but I don’t currently use Mail 2 (I use gmail) — although I must say when I do launch it to check my old mail (from before gmail) it does make me think I should go back :-).

Finally, the new voice synthesiser rocks. It’s a minor thing but still, it has useful applications. I could actually imagine writing a little app to turn texts from Project Gutenberg into iPod tracks or CDs for road trips … it sounds THAT good.

Windows on the Mac, Revisited

One of the comments on a recent post points out that he (or she?) has blogged on this topic before and in more detail. (I’m hardly the first to observe that WINE, Crossover, et al are, at least conceptually, a far better solution to this problem than Parallels or Boot Camp.)

However, on reading his comments, which I summarize below as five reasons Apple should do this and five reasons it shouldn’t (I’ve paraphrased and renumbered):

Reasons it Should

1. The hard work is done (WINE etc.)
2. Since they’re dropping Classic support…
3. Vista will not support EFI in first release…
4. Apple desperately wants to break into the Enterprise market…
5. Leopard seems to have few compelling new features

Reasons it Shouldn’t

6. Fear of Microsoft retaliating
7. Support would be a nightmare
8. Microsoft’s Mac Business Unit would be alienated
9. Not a new issue and they’ve never done it before
10. It’s not very Apple

Here’s my reaction to said reasons.
1. Agreed.
2. That’s just stupid. It’s not a reason.
3. Irrelevant.
4. Yes, but so what?
5. So, you know what’s in Leopard?!
6. Far-fetched. What could Microsoft try* to do that’s more malicious than “Zune”?
7. Absolutely true and a good point. Might have to be a free download “beta” like Boot Camp.
8. Possibly true.
9. Completely and utterly wrong. Aside from some horrible kludges (like Mac Charlie and the PC compatibility card for early PowerPC Macs) which were essentially low-end PCs that shared the Mac’s monitor, Apple has never had x86 CPUs in its machines, and Mac OS has never run on x86 CPUs.
10. Simply a matter of opinion, and I think far MORE Apple like than Boot Camp or Apple’s previous PC compatibility efforts.
* Actually, Zune is probably a gift for Apple, since the real victims are PlaysForSure licensees. But I doubt Microsoft considered Apple’s feelings.

Mentioned, but not enumerated, is a very important reason — the fact that a company which is on the cusp of developing a native Mac version of a program might decide simply to support the Mac’s Win32 compatibility layer instead. This is a real issue, but it’s not really clear that it doesn’t already exist because of Parallels and Boot Camp. If it’s a key productivity app, then chances are you’ll want it native. Photoshop native is going to kick pretend Photoshop native for the foreseeable future.

The Bottom Line

Apple’s core PC market is people who buy their own computers or can tell their company which computer to buy for them. The whole enterprise thing is never going to work out because enterprise IT hates, loathes, and fears Apple (subject of another blog post I think 🙂 ).

There are a certain number of people out there who want to use both a Mac and a PC for whatever reason. (I’m one of them.) You can only really use one at a time. I would argue that the vast majority of these people want to use their Macs for almost everything and their PCs for gaming and/or 3D apps (like 3DS Max) and one or two random Windows-only apps.

At the moment, Apple and Dell (say) are selling these folks two computers every X months for 1.7Y dollars. If Apple can produce a computer for Y dollars that serves all these people’s needs then their customers will be very happy, and either upgrade more frequently or buy a higher end computer. In my case I’d also save on desk space, power bills, fan noise, and carpet wear from sliding my chair from desk to desk).

If Apple is working on this, it’s doing a very good job of keeping it secret (e.g. it is either doing it from scratch — unlikely — or working on Open Source projects and either not pushing back its changes or somehow concealing its contributions or working with someone like Codeweavers and maintaining absolute radio silence). So it probably isn’t. That said, the solution I’m describing is going to happen whether Apple does it or not. So all the arguments against it are, in the end, irrelevant.

Running Windows Apps on a Mac & Other Stories

One of the best stories I’ve heard about Apple’s history concerns Ellen Hancock, whom Gil Amelio brought into Apple as Chief Technology Officer. Her role is pretty much overlooked these days, but she is responsible for pulling the plug on Copland, looking for a viable replacement, and — ultimately — acquiring NeXT, Steve Jobs, and Avie Tevanian (her successor).

Anyway, back to the story which I am reciting from memory. Ellen Hancock comes in to work and she is the most senior woman — ever — at Apple, surrounded by a lot of cocksure guys. She holds a meeting with her key reports and during the meeting utters the following statement. “One of the things that’s always puzzled me about Macs is why when I have a Windows .exe file on my desktop and I double-click it, it doesn’t just work.” The reaction is one of utter consternation. How could anyone working at Apple, let alone its new Chief Techology Officer, be so utterly clueless. And then it starts to dawn on them:

1) She has a PhD in Maths.
2) She has done serious shit at IBM.
3) She’s right.

Not long after this, Virtual PC added a feature which actually allowed .exe files to “just work” if you double-clicked them. It was a horrible kludge — you double-clicked the .exe and Virtual PC (which claimed ownership of that type of file) launched, loaded up the last version of Windows you had run with it, booted Windows, copied the .exe file over to some place Windows (under VPC) could see it, and then attempted to execute it. If the .exe required a bunch of local context to work (as most Windows .exes do) it quite likely crashed.

But the principle was there.

The only word we’ve seen from Apple on Windows compatibility lately is (a) Bootcamp — a pretty much wholly unsatisfactory option for serious users (it’s a great security blanket for switchers). (I am not going to reboot my Mac to run some dumb Windows app; I hardly reboot my Mac at all period. If a Mac OS update requires a reboot, I often leave the dialog up for days before I finally click “Restart”…); (b) pushing Parallels Workstation — almost as unsatistfactory as Bootcamp since it won’t run games, which are Windows’s killer app; and (c) a statement by Phil Schiller that Apple is not going to implement virtualization in Leopard.

So Apple has implemented one pretty much lousy option, is pushing a second, also lousy option, and has denied that it will implement the second lousy option itself.

What Apple hasn’t denied, because no-one has asked, is whether it will implement the correct answer to Hancock’s question — a Win32 compatibility box in the Mac OS X block diagram. You know, those rectangular diagrams which show “QuickTime” in a box that is kind of offset on top of another box labelled “Quartz”. The one with “Carbon” and “Cocoa” sitting side-by-side.

This isn’t the stuff of Science Fiction or a bad rumor page. It has existed under UNIX for years, Linux for not-so-many years, and is currently available for free as Open Source WINE (WINE is not an Emulator) and in various commercial forks. Apple in fact used to sell an equivalent product for UNIX that let you run Mac apps on Sun workstations. Unlike bad option #1 it doesn’t require rebooting your Mac, and unlike bad option #2 it doesn’t require partitioning your hard disk, booting up Windows in a virtual environment, or giving up games. Word has it that World of Warcraft (for Win32) actually runs faster under WINE than under Windows itself.

Let’s see. This option is Open Source or (for certain versions) fairly inexpensive to license, works better than any other option, satisfies the it just works mantra, is unbelievably cool (as in “would make a kickass TV ad”), is already out there, and Apple hasn’t denied that it is working on it. Oh and it doesn’t sell more Windows licenses.

But, you know, maybe Apple will just buy Parallels.

Bootcamp, virtualization, yada yada yada

Microsoft makes tons of money and has legal headaches. Apple makes not quite so many tons of money and has smaller legal headaches. Here’s an interesting possible direction…

Apple makes Windows XP/Vista “the new classic” via strong virtualization (i.e. virtualization where the virtual machine can actually “see” some of the more useful hardware, which is to say the GPU) within OS X 10.5.

OS X 10.6 with Windows Vista bundled (a la Classic) replaces Windows as both Microsoft’s and Apple’s OS. Microsoft still makes a ton of money from OS X 10.6 (via sales of Office and cross-licensing). Apple gets access to Microsoft’s DRM. Windows users get a relatively robust OS. Users get a single OS that can run Windows, Macintosh, and UNIX software seamlessly, play media from anywhere. Apple will lose hardware sales but gain huge market share. Everyone is happy.

Note that Apple is heading this way regardless (and, indeed, Apple has no choice; virtualization is already here and stronger virtualization is the logical, obvious next step).

So it’s merely a matter of whether the two companies cooperate to make everyone’s lives easier, or insist on creating incompatibilities to force some users to choose one platform and live with the inconvenience and other users to work across both platforms and live with a different level of inconvenience.