Pixar’s Universal Scene Description- Setup


Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications. A preview build is available for early adopters, here.

There are two tarballs available for download, usd-20151216.tar.gz which includes the USD libraries, and deps-vfx2015.tar.gz which includes all the dependent libraries required by USD.

If you wanna get this up and running without taking the pain to read through the detailed setup instructions, you may download the following gist and run as root. Don’t forget to add the following line to your ~/.bashrc

source /opt/pixar/usd/bin/activate.sh


As per the package README, the pre-built binaries expect to find library dependencies in /opt/pixar/usd-vfx2015. I went ahead with the recommended install location.

[sourcecode lang=”bash”]

sudo mkdir /opt/usd

# Assuming you downloaded the files to ~/Downloads

sudo tar xfv ~/Downloads/usd-20151216.tar.gz -C /opt/pixar

sudo tar xfv ~/Downloads/deps-vfx2015.tar.gz -C /opt/pixar


The default shell for CentOS is bash. So if you are haven’t changed to any other shell, you can add the following line to your ~/.bashrc file so that the environment is set correctly before you proceed building the dependencies.

source /opt/pixar/usd/bin/activate.sh

Next step is to install the dependencies.

[sourcecode lang=”bash”]

yum groupinstall "Development Tools"

yum install zlib-devel

yum install glibc-devel.i686


You may use the links below to download the rest of the dependencies.







Create a temp directory in your home directory and extract each of the packages in to that.

[sourcecode lang=”bash”]

mkdir /tmp/usd_build

cd /tmp/usd_build

# Assuming you downloaded the files to ~/Downloads

tar xfv ~/Downloads/binutils-2.24.tar.gz

tar xfv ~/Downloads/mpfr-3.1.2.tar.gz

tar xfv ~/Downloads/mpc-1.0.1.tar.gz

tar xfv ~/Downloads/db-4.7.25.NC.tar.gz

tar xfv ~/Downloads/gmp-5.1.2.tar.bz2

tar xfv ~/Downloads/gcc-4.8.2.tar.gz

sudo /opt/pixar/usd/bin/build_deps.sh /tmp/usd_build/

If the build was successful, you should be able to see the following in the console.

Libraries have been installed in:

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,–rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
Installing DB utilities: /opt/pixar/usd-vfx2015/bin …
cp -p .libs/db_archive /opt/pixar/usd-vfx2015/bin/db_archive
cp -p .libs/db_checkpoint /opt/pixar/usd-vfx2015/bin/db_checkpoint
cp -p .libs/db_codegen /opt/pixar/usd-vfx2015/bin/db_codegen
cp -p .libs/db_deadlock /opt/pixar/usd-vfx2015/bin/db_deadlock
cp -p .libs/db_dump /opt/pixar/usd-vfx2015/bin/db_dump
cp -p .libs/db_hotbackup /opt/pixar/usd-vfx2015/bin/db_hotbackup
cp -p .libs/db_load /opt/pixar/usd-vfx2015/bin/db_load
cp -p .libs/db_printlog /opt/pixar/usd-vfx2015/bin/db_printlog
cp -p .libs/db_recover /opt/pixar/usd-vfx2015/bin/db_recover
cp -p .libs/db_stat /opt/pixar/usd-vfx2015/bin/db_stat
cp -p .libs/db_upgrade /opt/pixar/usd-vfx2015/bin/db_upgrade
cp -p .libs/db_verify /opt/pixar/usd-vfx2015/bin/db_verify
Installing documentation: /opt/pixar/usd-vfx2015/docs …
+ echo ‘Done!’
+ exit 0

I had done a fresh install of CentOS 6.x for testing USD. Hence had forgot to install the graphics drivers for my rig. So I ran in to this error.

ImportError: libOpenCL.so.1: cannot open shared object file: No such file or directory

You can get the graphics card drivers (NVIDIA/ATI) installed, to fix this error.

You can test if the installation was successful by loading one of the example files using the usdview application.

The tutorials can be found under /opt/pixar/usd/tutorials/


Building PyQt for Maya 2012 ( Linux x64 )


SIP needs to be built prior to building PyQt.

Download SIP from here

Maya 2012 uses Qt 4.7.1.

Download it from here

Download PyQt from here

First step is to build qt from source. Extract the tarball and CD in to the directory


While running configure, if you get the following error

Basic XLib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/anoop/apps/sources/qt-everywhere-opensource-src-4.7.1 /mkspecs/linux-g++-64.

install teh libXext development package. I used zypper to install the package from the web

zypper install xorg-x11-libXext-devel

executing the configure after the installation gave the following error

cannot find -lXrender

this was happening because configure couldn’t find libXrender.so. This can be fixed by creating a symlink to libXrender.so.1 in the /usr/lib64 directory

ln -s /usr/lib64/libXrender.so.1 /usr/lib64/libXrender.so

After successful configuration run the following to install Qt to /usr/local/Trolltech/Qt-4.7.1 directory


make install

Building SIP

Extract the SIP zip archive to /home/username/SIP

cd /home/username/SIP

After setting the variables, run the following

/usr/autodesk/maya2012/bin/mayapy configure.py


make install

Building PyQt

Extract the archive to /home/username/PyQt-x11-gpl-4.7.4

cd PyPyQt-x11-gpl-4.7.4

/usr/autodesk/maya2012/bin/mayapy configure.py -q /usr/local/Trolltech/Qt-4.7.1/bin/qmake

make -j4

make install

Building OpenEXR libraries on Linux ( openSUSE 11.4 )


OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications. In order to develop plugins and tools that can handle OpenEXR file formats, you need to have the OpenEXR libraries built for your OS.

I had been not using Maya for the past few months since I have been dealing with proprietary applications used at my workplace. So I decided to continue work on Maya whenever I get back home after the days work. And what better way to start things all over again than starting with the API.

So I made a checklist of the libraries and other tools which I need to get built to start working on the same.So here I was building OpenEXR on openSUSE 11.4 and I stumbled across few things here and there which I felt would be valuable if I share with you all.

Building OpenEXR on you OS requires the zlib and ilmbase libraries which has to be linked at the time of configuring.So the first task is to get zlib and ilmbase libraries built on your machine.
I had my libraries installed in my sandbox folder which is /usr/local/sandbox referred by environment variable $SANDBOX. In case you have installed in locations other than standard paths like(/usr/include and /usr/lib) you need to make the build aware of the same.

setting the the environment variable PKG_CONFIG_PATH to $SANDBOX/lib/pkgconfig will let OpenEXR get the package info regarding zlib and ilmbase.

./configure –prefix $SANDBOX LDFLAGS=-L$SANDBOX/lib CPPFLAGS=-I$SANDBOX/include


While executing make if you come across the following error

main.cpp:195:28: error: ‘strcmp’ was not declared in this scope
make[1]: *** [main.o] Error 1
make[1]: Leaving directory `/home/anoop/apps/sources/openexr-1.6.1/exrenvmap’
make: *** [all-recursive] Error 1

you can fix it by including

#include <string.h>

in the header file list of main.cpp in both exrmaketiled and exrenvmap dirs.

and then execute

make install

Recommended PC Configuration for CG Artists – May 2011

Back to blogging again! I had moved in to a new apartment and my ISP turned out to be too inefficient with the shifting process, making me wait for more that 20 days to get the connection shifted to my new place. And on the professional side, I was pretty much occupied with the current feature productions happening in the studio.

But in the mean time, I got a chance to dig in to the latest computer hardware out there, to help out my friend with a new configuration for home. My search stumbled across a few components which I felt would do justice to the kind of work we deal with, on a day to day basis.

Hence thought of sharing the configuration with you in case some of you find it useful. So here it goes…

Intel Core i7 2600K Sandy Bridge 3.4GHz approx 16500 INR

Asus P8P67 PRO approx 12600 INR

Gskill Sandy Bridge 16GB 1600 DDR3 approx 10000 INR

Corsair 1000HX approx 15000 INR

Cooler Master CM690 II Advanced approx 5500 INR

2 x Dell Professional 2311H 23-inch widescreen monitor 26000 INR

MSI N580GTX  Lightning approx 30000 INR

2 x WD 1TB 6Gbps SATA3 approx 9400 INR

Corsair CSSD F80GBP2 BRKT 80GB SSD force series approx 10000 INR

Total approx 1,34,700 INR

Disclaimer: Please note that the configuration suggested is based on personal experience and does not guarantee in anyways high performance for all kinds of applications available on the market. The individual user experience may vary depending on the resources demanded by various applications under different working environments. The approximate prices listed are based on market study and may vary depending on different factors and hence are not supposed to considered as final price listings.

Setting MARI_CACHE Locations outside MARI

The MARI_CACHE environment variable can be used to specify the cache location from outside Mari. This can be one or several directories. If this variable is not set Mari prompts you where to store the cache files when you first launch it

I had selected the cache location from the user interface after starting up Mari. But later I planned to use another location and hence deleted the directory. The next time I tried starting Mari, I was welcomed with a message

/usr/local/bin/mari: line 35: 13275 Aborted (core dumped) $currentPath/bin/MriBin $@ &>${mariLog}

The MariLog.txt clearly indicated the crash was happening due to the missing file path. Since the configuration was saved in the first startup instance, setting the environment variable also didn’t seemed to help me run Mari on my user account.

Debug : [ MriApplication.cpp: 352] : Cache Location ‘/mariCache’ not exist
MriBin: MriDataBlockManager.cpp:233: bool MriDataBlockManager::setup(const QStringList&, qint64, int): Assertion `false’ failed.
Cannot Create cache root at /mariCache

The workaround is to delete the CacheLocations.ini file which saved under the directory /home/user/.config/TheFoundry . Or you can even create a new folder and point the path to your new directory


Installing Foundry Mari on openSUSE 11.3

MARI is a creative texture-painting tool that can handle extreme projects. MARI was developed at Weta Digital to handle the massively complex, highly detailed look development work demanded of the texture department by projects such as DISTRICT 9, THE LOVELY BONES, and AVATAR.

This is how the installation directory looks like. You can add symlink to the mari* shell script in the bin folder if you want. In case you are not executing the script from the same directory, you need to make slight modification to the script to make it accessible.

[sourcecode language=”bash”]
# This version is intended to launch Mari from the directory this
# script is located in, does not require Mari to be installed

#export presentScriptPath=`dirname $0`
export presentScriptPath="/usr/local/Mari1.0v4"
export currentPath=`cd $presentScriptPath; pwd`
export binDir=$currentPath"/bin/"
export PATH=${PATH}:$binDir
export mariLog=$MARI_LOG_FILE
if [ "$mariLog" == "" ] ; then
export mariLog=/scratch/logs/MariLog.txt

# Look for options
for p in "$@"
case "$p" in
# turn off the log output
export mariLog=

if [ "$mariLog" == "" ] ; then
$currentPath/bin/MriBin $@
$currentPath/bin/MriBin $@ &> ${mariLog}

I have commented out the line

[sourcecode language=”bash”]
export presentScriptPath=`dirname $0`

and replaced with

[sourcecode language=”bash”]
export presentScriptPath="/usr/local/Mari1.0v4"

which is the installation directory for Mari

Disclaimer: Please support the developers as I do not in any way support piracy. Go out and purchase the softwares if you like them.