linuxforvfx

Judging from some messages I received recently there seems to be an ongoing interest on using Linux at home on your Desktop. Some people might want to try it out, because they are searching for an alternative to Windows or OS X or just because they want to try out something new and explore the possibilities of Linux. But there are a few things to consider before getting into the world of Linux and most people are a bit overwhelmed at where to start exactly so I will try to give some tips that helped me personally in setting up a working system, alongside some examples why Linux is my personal favorite.

Is Linux really for me?
Before you get started you should ask yourself one main question: Will I really benefit from using Linux? You might have heard that pretty much all big VFX facilities use Linux as their man operating system, but that doesn’t neccesserely mean it’s a good choice for your home setup, too. Bigger studios use it as their main platform, because traditionally the VFX industry has always been Unix-based. When the SGI (Irix) train went downhill the most obvious choice to convert to was Linux. It had several advantages: It also was a Unix-based system, so transfering over the pipelines built on Irix was a fairly straight forward process. Also it was cost-efficient, because first of all Linux in itself is free and it wasn’t bound to propriatary hardware. With Linux being open source studios also had the freedom to modify the operating system in whichever way they wanted which allows for huge flexibility because you can tailor every component of the OS to be as efficient as possible on the hardware you put it on and to do whatever you want it to do.
Due to that flexibility the performance of Linux usually is at least up to par with Windows and OS X, often times even out-performing other OS’s in terms of rendering speed and OpenGL performance.
Now that might all sound well and nice for bigger companies but what about home-use?
First and foremost question: Will my applications run on Linux? Quite a simple answer: Some will, some won’t. To find out which software has native Linux support is quite easy by checking the system requirements of the software in question. Nowadays most vendors for serious CG & VFX applications do provide native Linux support for most of their software. Pretty much everything from The Foundry (Nuke, Mari, Katana, Modo), Maya, Mudbox, Houdini, Clarisse, Mocha, Silhouette, UVLayout and a lot more. Likewise most plugins and extensions, like 3rd party renderers provide Linux support as well. However if your workflow is centered around ZBrush, 3ds Max and Photoshop Linux will not be for you.
Also it depends a bit on how tech-savy you are and how much you are willing to learn and explore. While nowadays you don’t have to utilize the command line as much as a few years back you still have to go there ocassionally because it’s either faster that way or because there’s no GUI solution (yet). That is not to scare you away from the command line, because while it may seem daunting at first a big part of how you interact with the system is often times faster through┬á the shell and it’s not really difficult to get the hang of it either. For starters I’d recommend this article, which gives a much better introduction to the shell than I could ever give :)
But Linux is not only for geeky command-line nerds. Most of the modern Desktop Environments that you can use with Linux offer amazingly intuitive concepts that make working, especially with CG apps, extremely comfortable. I’ll get into more of that later.

So WHICH flavor…?
As you may or may not know Linux is just the Kernel – the core of the operating system that is responsible for allocating the hardware resources to the programs running on your system. For using it in conjuction with things like a graphical user interface and utility applications there are several distributions of Linux available – Ubuntu, Fedora, Mint, OpenSuse and hundreds more. They all ship with different Desktop Environments and applications. And this is kind of the area where new users have trouble starting. Because of the overwhelming number of choices it’s hard to know which one to pick.
But fortunately the VFX industry has more more or less standardized on RPM-based systems. Most studios pick CentOS for 3 simple reasons: It has a very long support cycle (7 years), it’s a free version of Redhat Enterprise Linux which is built with a high focus on stability and scalability and it’s the primary system that most Software vendors support (Autodesk, The Foundry, SideFX, etc.). That doesn’t mean that you cannot use debian-based distro like Ubuntu or Linux Mint, but going the CentOS route generally seems to be the more obvious choice.
At the time of writing this article, most studios are on CentOS 6. CentOS 7 has been released a good while back and might be a better choice for home-use, especially if you are on a Laptop, as it features a newer kernel and generally more up-to-date drivers for newer hardware.

… and Desktop environments?
Just like there are hundreds of distributions, there are also almost as many desktop environments… sigh.. even more choice. This is a bit of a tougher one, because there are many very good choices. At the time of writing a lot of the bigger studios are either using Gnome 2 or KDE.
On Windows or OS X you basically have the desktop environment that ships with the OS. Both systems have Desktop environments that work really well, but you are slightly limited on customizing them to fit your needs. On Linux you can choose between a multitude of desktop environments, that allow you tailoring your Desktop to do exactly what you want it to do. You Can have multiple panels (windows-style), docks (OS X-style), and lots of stuff inbetween with tons of nice widgets that really can easy your workflow.
Gnome 2 is the standard Desktop environment in CentOS 6, which a lot of the bigger companies are using as their primary system. It is a good mix of being low on resources and still features a good amount of customizability. However CentOS 6 is one of the last major distribution using it as it has been replaced by Gnome 3 now. So what about Gnome 3? While it arguably has a very nice look to it, the problem with Gnome 3 is that it heavily relies on your hardware, especially the graphics card, to render various desktop effects that cannot be turned off. It also stripped down a lot of the customization options that have been present in Gnome 2. There are alternatives however. MATE, which is a fork of Gnome 2 that is aiming to keep the traditional Desktop alive and XFCE, which is a very light Desktop environment that offers similar a similar feel to Gnome 2.
KDE is probably a good choice if you are coming from a traditional Windows Desktop, as it has a similar default layout. The real power of KDE however lies in it’s customizability. It’s one of the most flexible Desktop environments and you can set pretty much every option for anything you can imagine. By default KDE can however be quite a memory hog and hungry on computer resources. Luckily due to its flexibility it can be adjusted to use very little resources, while still remaining highly configurable.
If you are working in a studio and you would like to find out which Desktop Environment is currently in use, you can open a terminal and execute echo $XDG_CURRENT_DESKTOP or echo $DESKTOP_SESSION to print out the current DE.

OK, enough of the boring text, let’s have a look at some of my favorite Linux Desktop usability tricks. I’ll focus on Gnome 2/MATE and KDE, but most features apply to other Linux Desktop environments, too.

Quickly moving / resizing your windows.
On Windows or OS X when you want to move a window you have to click-drag the title bar. Similarly you can only resize floating by click-dragging the corners of windows.
On Linux you have modifier that allow quickly accessing these functions. For example you can assign the windows-key as a window-modifier key. That way you can hold the windows key down and move a window by just clicking and dragging anywhere on it. And use the windows-key and middle mouse or right-mouse click-drag to resize it depending on what corner you are closest to.

 

Keeping windows always on top.
Let’s face it: You never have enough space for all of these floating windows, right? Let’s say you are modeling something and you need to keep a reference image somewhere around. In Linux you can keep windows always on top for quick reference:

 

Rolling windows up, instead of minimizing them.
The more windows you have opened simultaniously the more messy your task-bar becomes. This gets especially bad with applications that have lots of floating windows (like Maya). Instead of minimizing them, you can just roll them up to minimize them to their window decoration. They are always on your finger tips but hardly take any space. Most commonly this can be set by double-clicking the title bar for example.

 

Multiple Desktops.
Coming from OS X (or by now, even Windows 10), you’ll be happy to find that Linux also features multiple Desktops. If you haven’t used them yet, you’ll love it. Linux also takes this functionality one step further, by making it really easy to move windows around to a different workspace.

 

Filebrowser-fun:
Most file-browsers support tabs, just like web-browsers. You can quickly jump to another directory by editing the location-bar (usually Ctrl+L in most file browsers).
Also Nautilus (File-browser on Gnome) has this really awesome to select files or folders by pattern via Edit – Select Items Matching… (Ctrl+S)

 

Similarly Dolphin (File-browser on KDE) has a Filter bar under Tools – Show Filter Bar (Ctrl+I). Additionally it allows you to split your view in the file browser for working quickly in 2 directories. If you want to get familiar with the command line you can also enable a Terminal display that live-updates your file browser with the commands you enter

 

Panel Addons
Most Desktop Environments work with panels. Those panels have widgets that you can put on them. You can constantly monitor your system activity, switch your workspaces, place shortcuts for files and folders, and so on and so forth.

panels_crop
kdepanel

 

Those are my personal favorites. Along with some other things this makes working in Linux a real bless in my opinion.

And while Linux has its benefits, there are also downsides. Due to its customizability in pretty much every aspect it also has somewhat of a learning curve, so if your goal is to simply install the OS and get going like you would if you were new to OS X or Windows, you’ll have a bad time. There are times when you have to use the command line and while it is an extremely powerful tool, most people tend to not really like it that much. On the bright side, Linux supports pretty much any hardware without the need to install additional drivers – mice, keyboards, external sound cards, wifi-sticks, you name it. However if you are one of the unlucky guys that has that one piece of proprietary hardware for which there is no Linux support you’ll be left in the dark. Likewise with software. Most free apps are available on Linux through repositories just like they are on Windows or Mac OS – VLC, OpenOffice, Firefox, Chrome, Skype, etc. However if you have to compile stuff for your system, because it is not available for your distribution it will end up in frustration.

That being said, if you are working in a studio environment that uses Linux as their main OS and it’s set up properly you will be able to enjoy its benefits without needing to worry about the technical nitty-gritties, because this is what IT will take care of :)