Why People Click

My wife has her own blog on the Psychology Today website. (I think it took her about a day to overtake the traffic for all my websites put together — sigh.) The one thing I can claim credit for is the title (although I suggested it for something else — um, TBA).

Oh yeah, I also published a book about five weeks ago, it’s called Learn 3D with Cheetah 3D 6. It’s essentially “Cheetah 3D 6 The Missing Manual” except that I’m not famous enough to be commissioned to write a “Missing Manual”. I wrote Learn 3D in about six weeks of my spare time (mostly late at night) and it has outsold anything I’ve ever put on the market (which is amazing given Cheetah 3D 6 is an indie niche product, or depressing given the effort I’ve put into other things I’ve tried to sell).

Cheetah 3D 5.6 Mini-Review

Thanks to changes in Google’s pagerank algorithm designed to deal with content farms the pagerank of some of my web pages has risen dramatically. Suddenly, this website is likely to be one of the first places someone looking for information or a review of Cheetah 3D will come, so it occurs to me that I ought to update my reviews.

When I last reviewed Cheetah 3D it had just turned 5.0. The major change had been the addition of a powerful new node-based shader system. Since then we’ve had five more dot-releases (each of which has heralded significant new functionality; there was no 5.4), C3D has appeared in the Mac App Store, Martin’s been teasing us with screenshots of the 5.7 beta (I’m not privy to it, although I was a beta-tester for 5.0), and version 6 has been mentioned in dispatches.

 

Particle City created using a scripted particle emitter.
Particle City created using a scripted particle emitter.

Here are the highlights:

  • ParticlesCheetah 3d’s particle system is very competent (and fully scriptable) but is not very useful (yet) for typical “particle effects”  owing to C3D’s lack of volumetrics, sprites, and motion-blur. So while you can’t really do clouds of billowing smoke or explosions with it, in a few hours I was able to write a particle script that instantly creates cities from a set of buildings.
  • 64-bitCheetah 3D tends to choke when I get to around 10,000,000 triangles so I’m not sure how big a deal 64-bit support is. But it’s there.
  • Character Animation Refinements
    • Pose Tags can be assigned to individual objects (and their sub-hierarchies) allowing you to better manage multiple characters in a scene, but also to attach pose management to hands, weapons, faces, and so forth.
    • Keyframes can be copied-and-pasted, and keyframe hierarchies can be moved around with a single click, making fine-tuning of animations bearable.
    • Rigging is much improved thanks to the incorporation of a brilliant “bone-heat” skinning algorithm published by some MIT researchers. (I came across its implementation in Blender and after getting spectacular results with it with no effort I suggested it to Martin. He implemented it within two weeks.) I noted this feature when it first appeared in 5.1.
  • Multiple selections now — at last — work as expected. (You can select a bunch of objects and translate them together.)
Bone heat implementation allows meshes to be skinned very easily
Bone heat implementation allows meshes to be skinned very easily

Summing Up

Cheetah 3D improves steadily, but it still has significant shortcomings. There’s still no network rendering or AppleScript support (to allow us to fudge it). Character animation is still clunky (if you do want to try your hand at character animation with C3D, you may find my Pose Utilities script helpful). Motion blur is MIA. And there are no volumetrics (shafts of light, clouds). If you don’t need these things, or can work around their lack, it’s a lovely piece of software.

Cheetah 3d 5.1

I rigged the figure on the left by using C3d's old auto-weight and then spent hours tidying up by painting weights. The one on the right was heat-skinned in a few seconds by clicking a button.
I rigged the figure on the left by using C3d's old auto-weight and then spent hours tidying up by painting weights. The one on the right was heat-skinned in a few seconds by clicking a button.

Cheetah 3d 5.1 came out yesterday, a less than two months after 5.0 came out. While it doesn’t complete the planned 5.x feature set (normal maps, more up-to-date FBX support, and particles are among the promised outstanding features) it represents a substantial improvement over 5.0.

5.1's node-based shader system now lets you preview anything, which is a huge improvement.
5.1's node-based shader system now lets you preview anything, which is a huge improvement. Once volumetrics and sub-surface scattering are added, C3d will have one of the most capable and easy-to-use shader systems around.

In particular, the biggest single problem with the animation system (the inability to move keyframes on more than one object at a time) has been fixed (you can now move all keyframes down a hierarchy from the current selection), and automatic vertex weighting  has been updated to support heat-mapping (the same algorithm implemented in Blender 2.46), which is just ridiculously nice.

Review: Cheetah 3d v5

My proposed icon for Cheetah 3d
My proposed icon for Cheetah 3d 5.x

Cheetah 3d v5 finally “shipped” so I’m allowed to talk about it. This is the fifth installment of what is a pretty unique product — a user-friendly, Mac-native all-in-one 3D tool. If you have any experience of 3D software you’ll know that there are essentially “toy” programs with cute UIs that don’t let you do anything serious, “one-trick pony” programs that do one thing very well (some have a good UI, but most don’t), and incredibly, mind-bogglingly complicated programs with utterly incomprehensible UIs that seem to have been designed by aliens for different aliens.

I’ve been an avid user of C3D since v4 introduced rudimentary character animation features. I’d been interested since v3 (because C3D was the least expensive and most Mac-like program to have a seamless workflow with Unity), but v3 didn’t offer me any functionality I didn’t already know how to get from Blender and Silo. Once I started using C3D my Blender and Silo usage dropped to almost nil — until I ran into C3D’s fairly major shortcomings for character rigging and animation, which brought me back to Blender.

Cheetah 3d is a really interesting product. It’s a minimalist “all-in-one” 3d program that allows you to do pretty much everything, but it has a really slick, native UI, and the barest minimum of features.

The new node-based material editor is the single major addition to C3D v5.
The new node-based material editor is the single biggest addition to C3D v5.

You can see my hastily cobbled-together video tutorial for helping new users figure out C3D’s material system here.

What you get with C3D is:

  • Very good modeling tools with a non-destructive modifier chain, but your basic modeling tools are polygons and subdiv — no NURBS, no solids.
  • Solid UV unwrapping tools.
  • A node-based materials to rival vastly more expensive programs (this is new in v5).
  • Basic texture painting, but it’s very crude so mostly useful for marking up a material for fine-tuning elsewhere (e.g. Photoshop)
  • Solid but not deep animation tools.
  • A JavaScript scripting interface.
  • An excellent rendering engine (especially for arch viz and industrial design) with area lights, HDRI, radiosity, ambient occlusion, and “sun” lights.
  • Good support for foreign files, including fbx, obj, 3ds, sia import and export, and dae (Collada) export.

This seems like a fairly decent feature set — and it is. But depending on your project, you may run into some limitations sooner rather than later:

  • No particles (although this is promised for a 5.x update).
  • No volumetrics. You can’t fill a sphere with turbulent clouds or do “god ray” effects (light streaming through dust).
  • No SSS (so rendering milk, marble, vegetation, and human skin is difficult).
  • No motion blur. (I have developed a tool for faking motion blur from animation frames specifically to address this.)
  • Very weak character animation UI. No NLA tools (although I am told the underlying engine fully supports NLA). No instrumentation. For me, this is the single greatest flaw in  C3D.
  • Poor animation workflow support (e.g. you can’t tweak a mesh once it’s been rigged).
  • No network rendering. Indeed no good way to “hand off” rendering to a second box even via scripting.

As mentioned above, C3D v5 adds an amazingly powerful (and approachable) node-based material system (which adds significant new functionality, such as anisotropic material support and blurred transparency), and two features conspicuously absent from v4 — bevel and a bend modifier. (I say conspicuously absent because v4 had many features similar to — but less generally useful than — bevel and bend.) Yes, this isn’t a huge amount of new functionality.

It has to be said that one of C3D’s greatest strengths is its lack of clutter and approachability. I’ve learned a huge amount by playing with C3D, and often this results in knowledge of the underlying principles which I can then take to a more complex and cluttered tool (like Blender or Max). One user of v5 commented that he hoped to understand Lightwave’s node-based material system by learning C3D’s much more approachable version.

Like every version of Cheetah 3D I’ve used, v5 is stable, responsive, and attractive. I don’t much care for the new icon (it’s an improvement on the old icon insofar as it isn’t a grey blob), so I designed my own similar icon. (See above.) C3D is not without user interface quirks and shortcomings, unfortunately:

  • Multiple selections do not work as expected. If you select more than one object at a time and hit delete, they all disappear. But if you try to move them all at once, you only move the last object selected.
  • The Edit menu still lacks a duplicate function. For a long time C3D had two really annoying copy and paste bugs — first, if you copy and then paste (i.e. “ghetto duplicate”) the original object remains selected, and when you pasted something into a document it would get renamed (foo became foo.1) even if no other object with that name was in the scene. Each of these was annoying of itself, but in combination they were positively infuriating.
  • Orthographic views (e.g. in the 4-pane mode) suffer from z-clipping often making them useless for precise work.
  • You can’t preview orthographic camera views (so if you’re trying to do orthographic renderings you have no way to frame your shots).
  • Finally, in the new material system it’s very hard to get an idea of what you’re getting at different points in the flow (you constantly need to drag outputs to the shader’s diffuse input to see what’s going on and then unmangle your material). I believe this issue will be addressed fairly shortly.

This may sound pretty damning, but none of these is necessarily a showstopper, and every 3d program has numerous UI issues — but most of these long-standing issues, and it’s very frustrating to see them still around after several years.

A simple metal globe demonstrating several new features at once including shadow catchers (barely noticeable), anisotropic materials, and a fairly complex shader.
A simple metal globe demonstrating several new features at once including shadow catchers (barely noticeable), anisotropic materials, and a fairly complex shader.

So, should you buy Cheetah 3D v5? If you’re after a good all-in-one 3D program that’s very approachable and easy-to-use — assuming it’s not missing any features you can’t live without — then, at $149, C3D is a decent value ($149 is a lot for an indie software package). If you bought C3D v4 in the last year and a bit and you’re entitled to a free upgrade then v5 is a no-brainer. Get it. If you’re someone who’s owned C3D v4 for longer then it’s a question of whether bevel, bend, and the new shader system are worth the $69 upgrade price*. From my point of view, the new functionality does little for me and I’m not entitled to a free upgrade, but not having to make a round-trip to Silo to bevel (and Silo has unresolved compatibility issues with Snow Leopard) is almost worth the upgrade price on its own.

Other Options

If one were to do a quick SWOT analysis of C3D, the most obvious threat is Blender — lots of features and free, but not easy to learn — and the obvious weaknesses are C3D’s missing animation (particles, character animation tools) and rendering features (volumetrics, motion blur) while its strength is clearly its UI and its opportunity is the increasing interchangeability of 3d file formats (Autodesk’s .fbx and Collada .dae files). If C3D were to position itself as, essentially, a rendering package — its obvious threats are Luxrender (which is free and open source but hard to use), Indigo (not free but supposedly faster and not quite so hard to use), and Hypershot (expensive, but easy to use and it produces very nice renders more-or-less instantly).

Blender 2.5 is around the corner (the Project Durian team is working exclusively in 2.5 now, which is a great example of “eating your own dog food” and also shows that 2.5 is in a pretty advanced state — at least on Linux). Blender’s progress since they started this approach (doing one major project each year with a team of artists and programmers) has been nothing short of phenomenal. Blender’s usability has been improved markedly, its deficiencies have been acknowledged and documented, and it has a clear path forwards.

I use Blender, Luxrender, Cheetah 3d, Silo 3d, and MoI. Of the three, Cheetah 3d gets more use than all the others combined.Most projects can either be done in C3D entirely or mostly done in C3D, and it’s usually much quicker and easier to get 90% of the job done in C3D than anything else. But some things simply require a more capable tool (i.e. Blender) or a more specialized tool (e.g. Silo, MoI, or Luxrender).

Note: * Dr. Martin Wengenmayer — developer of C3D — released a free update for 4.x users to address some minor Snow Leopard compatibility issues — instead of using them as a way of forcing users to upgrade (like some other software developers), which is commendable.

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.