Back to the Mac

What can we expect from Apple on October 20th? I have no better idea than anyone. But I can hope!

Educated Guesswork

What everyone expects based on the teaser picture is Mac OS X 10.7 “Lion”. I’m hoping the teaser image reflects some kind of emphasis on 3d, e.g. the Collada support that appears to have been pulled from 10.6. I expect to hear something about the new Final Cut Studio (Motion 5 in particular) — especially since Jobs actually had to deal with rumors of its demise earlier in the year, a new iLife, and — less likely — a significant new iWork. (I wouldn’t be surprised to see an insignificant new iWork, but I’m talking automatic indexing for Pages and serious new functionality for Numbers.)

Aside: it’s funny how “sudden” 10.7 seems given the emphasis on all things iOS over the previous twelve months. A lot of people assumed nothing much was happening on the Mac front because WWDC was all about iOS (indeed some rumor sites have claimed that Apple’s engineering folks have all been pulled off Mac OS X development). I thought at the time that it was all about message management: Apple was carefully orchestrating the release of strategic new products and wasn’t going to confuse people with anything off message.

iWeb: not just the worst iLife App, but the ugliest icon
iWeb: not just the worst iLife App, but the ugliest icon

Rumor has it that iWeb has been completely rewritten and iDVD is gone (it’s been in maintenance mode for a while now). I’d like to see iMovie and Numbers get some serious love. A new iWeb that didn’t suck would be a revelation as that space is still wide open (of the programs in that space, there isn’t a single one I consider useful for pretty much anything). My guess is that the focus of the new iWeb (if there is one) will be MobileMe integration and producing Mobile Safari -friendly pages (something iWeb right now is very, very bad at).

XCode 4 has been in beta for a long time and could get released or have some kind of release date announcement. We might even see some kind of major tool announcement (e.g. some kind of new functionality that will be part of XCode 4 but wasn’t in the semi-public beta).

On the hardware side the consensus is that we’ll see a Macbook Air replacement.

Wishful Thinking

OS Integration

On the OS/software side, I’d love Apple to surprise us with multitouch screen and App Store support for Mac OS X (so you can run iOS apps as Dashboard widgets, say) and Apple TV (which would turn Apple TV into a serious gaming console). This would also hint at the future reintegration of iOS and Mac OS X (indeed I expect and hope to see Mac OS X become “classic” under iOS, but I imagine that’s a few years down the track).

Fix Fracking iTunes

As much as I wish for it, iTunes was just revved, so any hope for serious improvements in the near future will be in vain.

Wireless Sync For Frack’s Sake. Every iOS device ever made has built-in wireless networking and we still have to plug the damn things in to sync them. Seriously?

DRM Craziness. It was one thing when most of us had one computer and one iOS device, but just figuring out which Mac can sync to which iPod / iPhone / iPad or whether I can safely upgrade one of my devices is getting to be difficult for me, and I’m a freaking developer.

I imagine that the way all this stuff works (or doesn’t) must be infuriating for the kinds of people who own buttloads of Macs and iOS devices (like… I don’t know… iOS developers?). Why doesn’t it get fixed?

E.g. when I plug my iPhone 4 into my Macbook Pro or my Mac Pro (and I know it’s synced to one of them) I get the same warning about needing to backup before I can upgrade. WTF? I’d really like to see Apple completely rethink the “rules” by which iTunes operates along the lines of “it’s the job of iTunes and not DRM to stop people pirating shizzle” so that you can sync to any PC and let the PC device whether it can play a track or not.

But then, if syncing were wireless I wouldn’t even need to think about this crap, right?

Organizational Craziness. Until iTunes became a movie store the typical iTunes collection didn’t dominate your storage requirements. These days it’s entirely possible that your iTunes folder is most of the stuff on your hard disk, and that most of your iTunes folder is video. If you want to do something as simple as copy all the music on your desktop to your laptop you’ll need to figure out the inner structure of the iTunes folder (OK it’s not that complicated, but still). Even so, iTunes is just really stupidly organized these days. E.g. by default if you have multiple logins for a Mac, one person can’t play another’s music. And why is your iTunes folder in your music folder when it’s essentially got all kinds of stuff in it?

Bloat and Crap. And then there’s the whole “why is it so freaking slow?” issue. Back before iTunes was iTunes (I believe it was called SoundJam) I wrote an MP3 player (QuickMP3) that could import a music library tens, maybe hundreds, of times faster than iTunes. How? Simply by assuming a file that looked like an audio file was an audio file. My program would assume “foo.mp3” was in fact an mp3 until it tried to play it. 99.9% (or more) of the time this just worked, and the rest of the time it simply resulted in the track being skipped (and removed from the playlist) “just in time”. (iTunes can get tripped up by an MP3 that has become corrupt since it was imported, so it’s not like it doesn’t still need to check at playback anyway.) iTunes makes you wait while it checks each damn track, and audio and video tracks are big and complicated, so it’s slow. There are plenty of boneheaded design decisions in iTunes along these lines and they need to be fixed.

Easy, Stupid Stuff. Recent versions of iTunes are able to go into full-screen visualizer mode with a single keystroke (great) but it takes two to get out of it.

While we’re at it — the new icon really does suck.


Collada Logo

Wouldn’t it be nice if Apple revealed a serious 3d app that would put it back in the 3d landscape. This could either be third-party (e.g. Autodesk reveals 3D Studio Max 2011 running on Mac OS X) or open-source (e.g. Apple releases a fork of Blender with a real Cocoa UI). Given the level of attention Apple’s job ads get, it’s almost inconceivable that it could simply pull a major 3d app out of its ass today without having made a lot of ripples (but it did buy some serious 3d hardware outfits a few years back didn’t it?).

Apple could possibly just buy its way into this market (after all, high-end 3d is one of the biggest segments for the kind of computer Apple makes its money in, and if it wants to keep selling high-end computers it might want to take this into consideration). Autodesk’s market cap is currently around $7B, but it looks a bit overpriced to me (but what do I know?) simply based on its P/E. Maxon is owned by some kind of huge German conglomerate (which might make it both cheaper and easier to acquire than a publicly listed company like Autodesk). But here’s something to think about: Newtek is big in both video and (fadingly so) in 3d, has a highly portable 3D code base, and a market cap of ~$55M. I would guess that Pixologic (zBrush) and Luxology are both possibilities too. Maybe SideFX (Houdini) too.

If Apple is to acquire a 3d vendor it will need to be privately held and, preferably, small. Apple could already have closed a deal on one of the smaller companies mentioned and simply have it under wraps, whereas if it tried to buy Autodesk we’d probably all know about it. A big company like Autodesk is simply too nasty for Apple to buy — it could possibly buy Maya or Softimage from Autodesk though.

Imagine if Final Cut Studio 5 were to include Modo or Lightwave Core, or one of these products became a $195 product for Mac users.


Sony's impossible to parody "Unique Remote" for its GoogleTV Product.
Sony's impossible to parody "Unique Remote" for its GoogleTV Product.

As a modest aside, I’d really like to see a single-piece bluetooth keyboard and trackpad for around $100. Bonus points if it works with iOS devices in the obvious way. But then the existing glass trackpads could do this job too. (And note how that would dovetail nicely with running iOS Apps under OS X (it would be damn useful for iOS developers using the simulators too).

You know what would be really cool? Stick an accelerometer in the Magic Trackpad (or this new thing) and allow it to be a game controller for AppleTVs running iOS games.

Radical Macbook Pro Redesign

I’d like to see Apple release MacBook Pro’s with no internal optical drive, and switch to SD media / USB sticks for software distribution. Multitouch and/or stylus support would be great (indeed, wouldn’t it be neat to get a hybrid tablet now given the direction Apple is heading with the iPad?) but perhaps too much to hope for. (Especially since it might divert developer attention away from iOS.) Given that Apple kind of has too many laptop lines right now, the Macbook Pro 13″ and Macbook Air could merge, while the Macbook Pro 15″ fills the empty space left by removing the optical drive with battery and the Macbook Pro 17″ keeps its optical drive.

Mac Pro Lite / Headless iMac / xMac (Again. Sigh.)

You can now get a bleeding edge, quad core iMac with a decent (but RAM-poor and down-clocked) GPU and a magnificent display that will be obsolete in 18 months simply because its GPU isn’t upgradeable (and frustrating right now because it could so easily have a better GPU with more RAM). The only option for anyone even a little serious about 3d is to pay twice as much for a Mac Pro. This wouldn’t be so bad if there were some kind of not-quite-so-huge-and-expensive Mac Pro option, e.g. a quad core non-Xeon machine with a box half-to-two-thirds the size of a Mac Pro that sold for $1200-1500. There’s plenty of room for Apple margin in there (and it’s not like you can’t pay that kind of money for a modestly awesome PC these days).

I guess the big question for Apple is whether it’s leaving money on the table with its current lineup. I guess their thinking runs like this: some hypothetical buyer wants a Mac to game on or do 3d, and either ends up buying an iMac (and cursing its GPU and having to upgrade in 18 months) or a Mac Pro (and pays Apple an extra $1000 more than he/she intended) or a Windows PC.

In the first case, Apple makes about as much money as it would have if it sold a hypothetical xMac. In the second case Apple makes more money (and the buyer likely ends up being very happy in the long run). And in the third Apple makes no money and perhaps loses a current or potential customer forever. This has to be weighed against the money Apple loses to cannibalized Mac Pro sales if an xMac were an option for the folks who currently buy Mac Pros because there is no cheaper option, even though they don’t need all the goodies the Mac Pro offers (overpriced server CPUs chief among them).

One possible option would be a bigger Mac Mini with a quad core CPU, 8GB RAM, an SSD and a decent (and upgradeable) GPU. It’s hard to imagine Apple couldn’t make serious margin on such a machine without cannibalizing Mac Pro sales (or perhaps even not caring if it did).

But it’s not going to happen.

Bottom Line

(Edit: I’ve added how I did in parentheses.)

  • iOS 4.2 and 10.6.5 will probably get mentioned/announced/released (yeah this is a Mac event but iOS 4.2 is bound to 10.6.5 for printing) (no)
  • 10.7 Announcement (“Spring 2011”) (“Summer 2011”)
  • Final Cut Studio 5 Announcement (“Early 2011” — NAB is in April, but perhaps earlier since Apple doesn’t care much about trade shows any more) (no)
  • New iLife with no iDVD and iWeb replacement (yes, iDVD and iWeb in maintenance mode)
  • New iWork but with disappointing feature set (no)
  • New Macbook Air (yes, two)
  • XCode 4 Announcement (“Available for download today”) (no)
  • Some speed bumps (no, unless you count the Macbooks Air)
  • Addendum: PCWorld’s wish list includes iChat support for FaceTime which I think is almost certain (yes)

And I did not predict the Mac App store. (I was fooled by Apple’s denial of earlier rumors, which turns out to have been a half-truth.)

Snow Leopard: Collada Support

While Snow Leopard isn’t being sold on its new features, it probably could be. Here’s an interesting snippet of Apple’s Snow Leopard pages that a post on Cheetah 3d’s forums put me onto:

Collada Digital Asset Exchange (.dae) files are a popular way to share 3D models and scenes between applications. Preview now displays these files with OpenGL-powered 3D graphics, so you can zoom and rotate around a 3D scene and play viewpoint animations. You can also print the scene or save it as an image or movie file. And you can use Quick Look to display them as well.

A quick Googling of “Snow Leopard Collada” reveals that this little announcement is creating quite a buzz, and not without reason.

What’s Collada? It’s a rich 3d file format that — like FBX and unlike 3DMF — doesn’t suck and — unlike FBX — isn’t proprietary and subject to bizarre incompatibility issues every time Autodesk squeezes out a new version of the SDK.

By “rich” I mean that it enables 3d programs to store almost any information they would store in their own proprietary formats. By “doesn’t suck” I mean that other programs are generally able to get that information out again.

If Apple’s support for Collada goes deeper than simply being able to render .dae files in Preview and QuickLook, e.g. allowing programmers to relatively easily load, retrieve data in usable form from, save, and render Collada files, it could lead to a renaissance of 3d on the Mac, and deliver the benefits that Quickdraw 3D promised and so spectacularly failed to deliver.

The second bit: “retrieve data in usable form from” is the tricky part, since Collada is a very hairy format, which means that an ideal implementation would support all the hairiness, but allow you to access raw data in a lowest-common denominator way — e.g. load in complex NURBS objects and then acquire them as meshes at a specified detail level. One thing Apple might do is pick which bits of Collada to support thoroughly and — if they pick well — effectively create a compatible subset of Collada which different software developers can depend on and treat as the defacto standard (kind of the way Photoshop 4.0’s file format is a defacto standard for interoperable Photoshop documents).

Apple’s support for Collada could also help give Collada the momentum it needs to gain stronger support in the 3d world. Right now, a lot of programs have so-so Collada support and superb FBX support (in large part because Autodesk makes supporting FBX pretty easy). But Collada is richer and less proprietary than FBX. In a sense, Collada is analogous to QuickTime in that it can serve as both a format for storing raw and working content as well as delivering optimized end-user content.

Supporting Collada at OS level could be a great “judo” move on Apple’s part. It would allow the Photoshop wannabes to easily offer Photoshop-like 3D support (easily embed 3d objects in layered documents, and provide texture-painting capabilities), and encourage everyone on the Mac — or interoperating with people using Macs — to support a single rich 3d file format. It creates an ecology where indie developers can create “do one thing and one thing well” 3d tools on the Mac that doesn’t really exist on any platform right now.

We’ll see.


Screenshot of LuxRender in Action
Screenshot of LuxRender in Action

So, remember how I was saying that the one feature Blender doesn’t have is good motion blur? Turns out that there’s an Unbiased Renderer that works with Blender (it’s free and open source too, of course) and it produces amazing results (albeit slowly). It’s called LuxRender, and it’s a fork of the PBRT (Physics-Based Rendering Technology) project, which is essentially a rendering engine put together to test new theories about physically accurate rendering (i.e. stuff that ends up in SIGGRAPH papers).

Correction: it turns out that Blender has very good vector motion blur support and one should never use Blender’s frame-averaging system unless one is a masochist. (One of the problems with Blender is that often a crappy feature remain prominently in place while a newer, superior alternative feature remains hidden. This is the case both with motion blur and the rigging.)

There’s an old joke in computer graphics called The Law Of Constant Rendering Time which holds that it always takes a day to render an image, regardless of the speed of the computer. The basic idea is that we’ve been “improving” our lighting models at exactly the rate necessary to cancel out improvements in processor speed. The latest incarnation of this is unbiased rendering, which tries to actually model the way light works (versus taking various shortcuts which produce biased renders — i.e. renders which do not converge on a “correct” render no matter how much computation you throw at them. Radiosity and raytracing are both biased under this definition).

Anyway, this research has spawned a whole new generation of rendering engines, all markedly slower than we’ve grown used to, and with the peculiar property of producing noisy images that slowly get better (and you can spend as much time as you like rendering them — you’re never “done”). LuxRender is free, but there are several commercial options including Maxwell Render, Indigo, and Fryrender. I don’t know how fast Maxwell Render is (there’s no question it’s good), but its priced in the “if you need to ask, you can’t afford it” ballpark. All in all, the whole PBRT crowd reminds me of the “charge what the market will bear, tripled” gold-rush mentality of SGI era. (Well, Indigo is fairly cheap.)

I’ve been playing around with LuxRender this evening. It’s definitely an awesome tool for creating the occasional “hero” render, although both the rendering time and the extra difficulty setting up a scene make it difficult to use casually. (It doesn’t have normal “lamps” — all light sources are physically modeled objects that glow or transmit light… so a light bulb is a glowing filament — and you need to make special materials independently of Blender.)

The other fascinating aspect of LuxRender is that by default it’s kind of like “the works” in an old school renderer — you get everything — caustics, sub-surface scattering, refraction, internal reflection, and even chromatic aberration and depth of field “for free”. And, unlike with old school renderers, these aren’t set up with tricks and fudges where you finess the parameters to get the right result. You pick the materials and lights correctly and it pretty much does what it ought to. So, in a sense, this approach reduces the work done by the artist at the cost of more CPU time — it’s just that CPUs aren’t quite fast enough yet.

A simple scene showing off the frost glass, shiny metal, and glass presets. This is the result (original at 800x600) after about five minutes on my Macbook Pro.

But it does look like the future of rendering.

How I learned to stop worrying and love Blender

Blender's complexity is necessary, but some of the difficulty getting to grips with it stems from gratuitously different design decisions or easily fixed mistakes.
Blender's complexity is necessary, but some of the difficulty getting to grips with it stems from gratuitously non-standard UI features or easily fixed foibles.

As my reader knows, I’ve something of a love/hate relationship with Blender. Or perhaps it’s more of a need/despise relationship. If there’s ever a feature I need in a 3d program but don’t have in my current favorite, the answer is always “well, Blender does it and it’s free” (unless the feature is motion blur — Blender’s motion blur sucks … or it did last time I tried to use it).

My favorite 3d tool for the past few years has been Cheetah 3d, which has many virtues, a few flaws, and a lot of missing features. I think it’s important to differentiate between a missing feature and a flaw, the latter being a feature that doesn’t work as well as it should, or isn’t as easy to use as it should be. Blender, measured in the same way, has many virtues, a spectacular number of flaws, and not many missing features (that I can think of).

It’s worth noting that for any given user, sometimes it’s better to have a flaw than a missing feature (if you need that feature, however flawed), while at other times it’s worse (e.g. if that flawed feature creates clutter or confusion and you didn’t need it anyway). Although after over fifteen years of 3d experience I thought myself a pretty advanced 3d artist, I still have a lot to learn, and Cheetah 3d’s simplicity has helped me learn some of it. But, over time, Cheetah 3d’s missing features have become an increasing sore point, while my continued grappling with Blender’s apparent flaws has led me to better understand its significant, but less apparent virtues.

The real problem with Blender, it turns out, is that it has a lot of hidden modes. Most powerful software has hidden modes, and understanding those hidden modes slowly turns the software from incomprehensible to amazing as you have “aha” moments. Sometimes the developers of great software will recognize a few or many of the moments necessary to help you on your way and explain them to you at the right time minimizing the time it takes for you to reach nirvana. Sometimes developers will leverage your understanding of existing software rather than [gratuitously] create new paradigms of their own. The fact that Blender has done neither doesn’t make the software bad, merely the process of grokking it unnecessarily unpleasant.

It’s full of modes!

Clicking this icon in the NLA window toggles between Action and NLA mode
Clicking this icon in the NLA window toggles between Action and NLA mode. Which mode you're in is not apparent aside from this.

A lot of software today tends to be virtually modeless when used for common purposes. Modes were recognized as a bad thing in user interface design when Apple produced the original Human Interface Guidelines for the Mac.

Even so, the early Mac programs were very modal. For example, if you pressed command-F in MacWrite a “Find Dialog” appeared which was modal. You couldn’t, for example, select some text in the underlying document and paste it into the text field. If you were “finding” stuff and saw a typo you had to leave “Find Mode” to correct it, and then resume “Find Mode”. In MacPaint when you zoomed in you were in “fat bits” mode and the only tools you could use were the pencil and eraser. Much of the complexity in modern software has resulted from eliminating modes — in essence making all things possible all the time.

It’s not acceptable for a modern word processor not to offer all its formatting functionality in headers and footers when, once upon a time, you essentially entered a crippled mini word-processor to modify your header or footer.

The worst kinds of modes are hidden or implicit modes — i.e. modes you can be in without being able to tell. A classic example of such a mode is selecting stuff in Photoshop. If you “make a selection” that’s all you’re doing — making a selection. You aren’t actually selecting anything. If you then “lift” part of the underlying image (i.e. selecting that part of the layer underneath your selection) the user interface doesn’t change even though you’re now in a different mode. Understanding this odd behavior was, for me, the big aha moment in learning to use Barneyscan Photoshop. Before I figured that out, Photoshop just seemed perversely difficult to use.

And, in fact, Photoshop is perversely difficult to use. MacPaint didn’t do things the way Photoshop did, and Deluxe Paint (and later Studio/8 and Studio/32) managed to extend MacPaint’s abilities without breaking MacPaint’s paradigm to the extent that they allowed you to do everything Photoshop managed with its “selections as entities in and of themselves” without requiring users to unlearn their existing habits. No-one cares any more because every graphics pro knows Photoshop and has committed all the shortcuts for manipulating selections to muscle memory, but it’s easy to forget how perverse Photoshop seemed to people who knew how to use other graphics programs back in 1990.

Blender Revealed

To my mind, figuring out Blender requires at least two major realizations. Perhaps by documenting them I may help someone else “get over the hump” faster than I have.

The first realization is that Blender is built around the concept of a 3d cursor. You need to learn how to work with the cursor. (Shift-C snaps the cursor back to the origin, and learn to use the Shift-S menu — it’s wonderful.) The 3d cursor is a very powerful concept — analogous to a text cursor — but other 3d programs make do without such a concept, so realizing that Blender has this concept and is to a considerable extent built around it is analogous to understanding Photoshop’s concept of a selection as an entity of itself — once you realize that Photoshop is all about selections and learn how to work with them everything becomes second nature.

Aside: one thing I tried early with Blender was switching its mouse behavior over so that left-click selects and right-click sets the cursor. Unfortunately, Blender becomes somewhat broken with this option. In my opinion Blender would be a much easier program to use (and master) if left-click selected, and if — indeed — major thought were put into making more common actions left-clicks and less common actions right-clicks. This may be addressed (at least by preferences) in 2.50, but don’t hold your breath.

The second realization is that Blender is full of modes, that most of these modes are hidden, some modes stick to specific objects while others affect the entire program, and that in some cases which mode you can enter is itself a modality. This isn’t as easy to wrap in a nutshell — but it’s probably helpful to know that if Blender is acting in a weird or apparently unpredictable way, you’ve probably managed to trip over a hidden mode.

Blender is difficult, but most of that difficulty is necessary

When I say Blender is full of modes, these are modes in every sense — menus change, the way things are displayed changes, what you can select and do changes, etc. etc. etc.

And when I say hidden, I mean that how the user interface behaves can be completely changed by a setting on a panel you can’t see, or by the mode you previously got into when you had something else selected.

Here’s a particularly hairy example: there are two distinct animation modes in Blender, “Actions” and “NLA” (Non-Linear Animation).

The idea is that you animate a figure’s basic reusable behaviors (e.g. walking, jumping, waving) as individual “Actions” and then you build longer animations using the NLA window which treats actions as layers (much like video layers in After Effects or Final Cut Pro).

Whether you’re in NLA mode (where what you see happening and what you are modifying is happening in the non-linear animation context) or Action mode (where what you see and do affect a specific action) is not necessarily visible or apparent at any time. Oh, and, each action you’ve created is, itself, a different mode (and which you’re in is not apparent unless you happen to have the right display visible and the right hierarchy disclosed and scrolled into view).

Now, let’s suppose you’re editing vertex weights in the course of “rigging” a model.

What does this mean? Well, you’re trying to choose how the vertices in a mesh are affected by the movement of the bones in its animation rig — a virtual “skeleton” made of “bones”; the model is the mesh, the rig is the skeleton, and to say a model is rigged is essentially to say that it has had a skeleton built for it and has been attached to that skeleton using vertex weights).

Sounds pretty complicated, right? Well it is, and so it’s kind of stupid to expect the user interface for this to be simple or particularly straightforward. I think it’s fair to say that no similarly conceptually complex task is explicitly supported in, say, Photoshop or Word or Excel, each of which has a pretty complex user interface in its own right.

The usual way of showing bone weights is to show a “heat map” indicating how tightly bound vertices in a mesh are to a given (selected) bone. This is how the mind-bogglingly complex Blender does it. This is how the beautifully simple Cheetah 3d does it. But in Blender, to select a bone you … select the bone. In other words, you right-click (because selection is done by right-clicking) on the bone and voila. Pretty neat, huh? In Cheetah 3d you look for the skeleton deformer modifier tag in the hierarchy view, click on it, and then find the bone in a scrolling list in the properties browser.

Now, in Blender it’s important to make sure that the armature (or “skeleton” of the model you’re working on is in “Pose mode” — armatures can be in one of three modes) and then select the mesh and set it to “Weight Paint Mode”. If the armature is in the wrong mode, the mesh won’t be posted while you’re finessing vertex weights, which means you won’t be able to see whether what you’re doing is working. Also, you may not be able to directly select the bones you’re interested in. This is all horribly complex, involves hidden modes, and is utterly counter-intuitive. But the benefits (you can paint weights on a posed model and see the changes in real time, and you can select bones directly) are absolutely huge.

[ Javascript required to view QuickTime movie, please turn it on and refresh this page ]

My first successful character animation in Blender. (Rendered in Cheetah 3d.) Getting there was much harder than in Cheetah 3d, but I can actually reuse and make tweaks to the rigging and the animation itself which are impossible or very difficult in Cheetah 3d. Flaws vs. Missing Features.

Eating My Own Words?

I’ve ridiculed Blender’s lack of usability in the past, and probably will in the future. Even some of my praise for Blender in this post probably seems close to ridicule. It’s a ridiculously — and often unnecessarily — difficult program to get into. Almost all of my complaints (and then some) are as true now as ever. There are so many simple things that could easily be fixed in Blender to make it easier for new users that it’s not even funny. The same was true for Photoshop when it came out, and — over time — Adobe changed some things to be less non-standard while others eventually asserted their dominance. Even today I’m pretty sure any Deluxe Paint or Studio/32 thinks that the keyboard shortcuts for Photoshop are idiotic compared to those for their cherished bitmap editors. I know I do.

The fact is that Blender is an incredibly capable, rock-solid piece of software (I can’t remember when it last crashed on me). Its user interface foibles are stupid and ugly, but you can get past them, and in the great scheme of things it’s certainly worth never having to pay for another 3D Studio Max upgrade or figure out how to replace that burned out ElectricImage dongle.

Who knows? Maybe in five years I’ll be writing a similar article about my newfound love of GIMP.

Addendum: Blender Hints

Simple things that may make Blender easier to use.

  1. Oddly enough Preferences are accessed by “dragging down the menu bar”. WTF? Well, that’s how it works.
  2. Having opened up preferences, you probably want to go to Edit Methods and go to Add new objects: (on the left) and turn off Switch to Edit Mode and Aligned to View which may be on by default (because they used not to be options). Aligning new objects to your view is hardly ever what you want, and many users have the shortcut for (a) switching out of edit mode, (b) clearing a newly created object’s rotation, and (optionally) (c) returning to edit mode burned into muscle memory.
  3. You’ll also probably want to change your default directories to minimize the amount of navigation you have to do in Blender’s (horrible) file requester.
  4. Once you’ve learned how to create a nice setup in Blender you may want to build a good default scene and File > Save Default Settings.
  5. Often, especially when going through tutorials, there’ll be reference to a command that I just can’t locate in a menu. If the command has a hotkey you can find it using the Hotkey and Mouse Action Reference (Help menu) — which has a search command. Then you can at least find out the keyboard shortcut, even if you still won’t know where the heck to find it in the menus.
  6. The Essential Blender (book) is really very good, although it does contain quite a few errors (so if something just isn’t working, maybe the command’s name or the keyboard shortcut is incorrect).
  7. If a bunch of things suddenly disappear or become uneditable you may have inadvertently messed with the scene layer settings (which the standard number keys are shortcuts for, so it’s easy to do). If you don’t use layers deliberately the chances are pressing 1 (above the Q, not on the numeric keypad) will restore everything. If you do then you’ll already know how to deal with this.
  8. Armatures and bones have their own independent layer system, so be prepared for completely orthogonal confusion when working with rigs.
  9. In many cases, Blender reuses key commands in different contexts. E.g. G (grab) is used to move objects in 3d, keyframes in the Action editor, and action layers in the NLA window. N (transform properties) brings up a numeric transform floater in 3d views, and similarly useful floaters in (some) other views. A (select all/nothing) selects all or nothing where appropriate, in the hierarchy view it collapses/expands everything.
  10. It’s well worth learning “root” shortcuts which bring up menus. E.g. Shift-S (“snap”) brings up a menu — usually the next number you type selects the commands (in order) in that menu. In some cases (e.g. G and R) you can press X, Y, or Z to constrain your action to an axis.
  11. Keyboard commands in Blender apply to the panel the mouse is over, which can be very confusing (especially since each pane has its own menu bar and hence its own keyboard shortcuts).
  12. Selecting things is an action (which you can undo). Changing a view is not an action (and you can’t undo it) — unless you moved a camera.
  13. Blender’s camera controls are pretty annoying (absent?), but if you manipulate a camera object in a 3d view with the transform orientation set to “Normal”  or “Local” you can dolly the camera around in a relatively intuitive fashion. (If there’s a command to, for example, create a camera from a current user view, I haven’t found it. Shifty-F lets you fly a camera around, but when you leave Fly mode your camera is back where it started.) Edit: a reader notes that Ctrl + Alt + 0 snaps a selected camera to the current view, which is very handy.
  14. I use Blender on a (Mac) laptop quite a bit, so it’s worth knowing the view navigation controls for folks with no MMB (middle mouse button). Option-drag to orbit, option-shift drag to pan, and scroll-wheel (which Mac laptops do just great) zooms.
  15. Blender supports “virtual screens” internally — three complete viewport layouts (more if you want) that can be accessed via control-left and control-right. Very handy given how cluttered things can get.
  16. The render buffer (F11) can be zoomed and panned using the usual keyboard shortcuts. There are actually two render buffers (containing the current render and the previous render) and you can toggle between them with the J key (very useful for checking what effect that last tiny change had). Click and hold in a render view for an RGBA value.
  17. Note especially for Unity developers: the FBX exporter “bakes” subdiv modifiers (at “render” level) into meshes on export, so beware!
  18. And there’s a ridiculous number of useful tips and gotchas here.

Blender Revisited

Blender’s built-in rendering engine is getting pretty decent. Here’s a quick test render of frosted glass.

Blender 2.5 is still under development. The main thrust of Blender 2.5 is user interface customization. If you’ve read my previous rants posts on the topic you’ll know that I consider Blender’s user interface to be, well, bad. Blender’s UI is customizable, but not to the extent that you can “fix” it. E.g. it has a 3D cursor (its equivalent of the text insertion “caret” you use in word-processors) which determines where new objects appear and which is repositioned by clicking with the left mouse button. See, 3D is just like text editing!

Except that Blender doesn’t take the analogy far enough (you can’t select stuff by left-click dragging, the insertion point doesn’t position itself in the spot “left” by something you’ve just deleted, the view doesn’t scroll to frame the cursor, and so on). Most 3D programs don’t have a “3D cursor” because the concept is, essentially, idiotic (until we have true 3d interfaces so that we can actually see and control cursor placement). Given that Blender does, it would be nice if the idea worked properly.

Anyway, you can customize Blender to switch the left and right mouse button behaviors (so that left-clicking selects and right-clicking sets the cursor) but this has the bad side effect of borking the camera controls (which use the middle and right mouse buttons) and wasting a perfectly good mouse button for a perfectly useless operation.

This test render shows off Blender’s volumetric lighting (it’s not that great, and only supports spotlights) and its sub-surface scattering (which is pretty wonderful).

Blender 2.5 plans to address some or all of this by allowing true, low level UI customization. Hopefully, when it shows up there will Maya, 3D Studio Max, or whatever “themes” that make it easier for those not up to speed with The Blender Way to get things done.

Meanwhile, Blender 2.46 RC1 managed to fix one of my gripes with earlier versions. When you create a new object it is, by default, aligned to the global coordinate system rather than the current view (which, as I pointed out, is almost never what you want). This problem has been around so long that many tutorials include steps for removing the random transform applied to each newly created object as appropriate. This is a pretty huge win for the Blender UI. Another 10-20 improvements of this magnitude and the default Blender UI might not suck so bad.