OpenVDB  8.0.1


Note: The dependency information on this page details a complete requirements list for building OpenVDB as a standalone package. If you wish to use OpenVDB with a supported 3rd party DCC (Houdini/Maya), make sure you've first read the Building OpenVDB information.

There are a number of optional and required dependencies necessary when building different components of OpenVDB. Below you'll find a full list of all dependencies, any minimum/recommended version requirements and some guides for getting these dependencies installed. You'll also find information on any known issues with particular software. Please report any issues not listed here to the OpenVDB TSC.

Note that OpenVDB is production tested against the VFX Reference Platform. Not all dependencies exist in the VFX Reference Platform, but for those that do, their specified versions are always recommended.

OpenVDB Components

Component Requirements Optional
OpenVDB Core Library CMake, C++14 compiler, IlmBase::Half, TBB::tbb, Boost::system, Boost::iostream Blosc, ZLib, Log4cplus, OpenEXR::IlmImf
OpenVDB Print Core Library dependencies -
OpenVDB LOD Core Library dependencies -
OpenVDB Render Core Library dependencies, OpenEXR, IlmBase -
OpenVDB View Core Library dependencies, OpenGL, GLFW3, GLEW* -
OpenVDB Python Core Library dependencies, Python, Boost::python Boost::numpy, NumPy
OpenVDB AX Core Library dependencies, LLVM Bison, Flex
OpenVDB UnitTests Core Library dependencies, GoogleTest CppUnit**
OpenVDB Documentation Doxygen -

Dependency Table

Package Minimum Recommended Description apt-get Homebrew Source
CMake 3.12 Latest Cross-platform family of tools designed to help build software Y Y
GCC 6.3.1 6.3.1 C++ 14 Compiler: The GNU Compiler Collection Y Y
Clang 3.8 Latest C++ 14 Compiler: A C language family frontend for LLVM Y Y
Intel ICC 17 Latest C++ 14 Compiler: Intels C++ Compiler Y Y
MSVC 19.10 Latest C++ 14 Compiler: Microsoft Visual C++ Compiler Y Y
IlmBase 2.2** 2.3 Used half precision floating points and EXR serialization support Y Y
OpenEXR 2.2** 2.3 EXR serialization support Y Y
TBB 2018 2018 Threading Building Blocks - template library for task parallelism Y Y
ZLIB 1.2.7 Latest Compression library for disk serialization compression Y Y
Boost 1.66 1.66 Components: system, iostreams, python, numpy Y Y
LLVM 6.0.0 8.0.0 Target-independent code generation Y Y
Bison 3.0.0 3.0.5 General-purpose parser generator Y Y
Flex 2.6 2.6.4 Fast lexical analyzer generator Y Y
Python 2.7 2.7 The python interpreter and libraries for C++/python bindings Y Y
NumPy 1.14.0 1.14.0 Scientific computing with Python Y Y
GoogleTest 1.8 Latest A unit testing framework module for C++ Y Y
CppUnit 1.10 Latest A unit testing framework module for C++ N Y
Blosc 1.5.0 1.5.0 Recommended dependency for improved disk compression N N*
Log4cplus 1.1.2 Latest An optional dependency for improved OpenVDB Logging Y Y
GLFW 3.1 Latest Simple API for OpenGL development Y Y
OpenGL 3.2 Latest Environment for developing portable graphics applications Y Y
GLEW 1.0.0 Latest A cross-platform OpenGL extension loading library. Y Y
Doxygen 1.8.8 1.8.11 Documentation generation from C++ Y Y

Known Issues

1 RuntimeError: FATAL: module compiled as little endian, but detected different endianness at runtime.

Installing Dependencies

This section details a number of ways to get you up and running with the required OpenVDB dependencies.

Using UNIX apt-get

Note: Blosc and CppUnit are unavailable using apt-get. See the other package manager methods or the manual installation options.

1 #!/bin/bash
2 # Core library
3 apt-get install cmake # CMake
4 apt-get install libilmbase-dev # IlmBase
5 apt-get install libopenexr-dev # OpenEXR
6 apt-get install libtbb-dev # TBB
7 apt-get install zlibc # zlib
8 apt-get install libboost-system-dev # Boost::system
9 apt-get install libboost-iostreams-dev # Boost::iostream
10 # AX
11 apt-get install llvm-8-dev # LLVM
12 # Python
13 apt-get install libboost-python-dev # Boost::python
14 apt-get install libboost-numpy-dev # Boost::numpy
15 apt-get install python-dev # Python
16 apt-get install python-numpy # NumPy
17 # Optional
18 apt-get install liblog4cplus-dev # Log4cplus
19 apt-get install googletest # GoogleTest
20 # vdb_view
21 apt-get install libglfw3-dev # GLFW
22 # Documentation
23 apt-get install doxygen # doxygen

Using Homebrew

Homebrew is a package manager for UNIX systems and is an alternative to apt-get or manual installation from source.

Note: Homebrew installs blosc 1.16 by default with no option for previous versions. OpenVDB recommends Blosc version 1.5 as there are known issues with using later versions of blosc. See the manual installation options.

1 #!/bin/bash
2 # Core library
3 brew install cmake # CMake
4 brew install ilmbase # IlmBase
5 brew install openexr # OpenEXR
6 brew install tbb # TBB
7 brew install zlib # zlib
8 brew install boost # Boost
9 # AX
10 brew install llvm # LLVM
11 # Python
12 brew install boost-python # Boost-python
13 brew install python # Python
14 brew install numpy # NumPy
15 # Unit Tests
16 brew install gtest # GoogleTest
17 brew install cppunit # CppUnit
18 # vdb_view
19 brew install glfw # GLFW
20 # Documentation
21 brew install doxygen # Doxygen

UNIX Manual Installations

Some dependencies may be unavailable using the above package manager methods. Below are manual installation methods for these packages. Note that you will have to provide your chosen installation locations to the OpenVDB CMake build system when building OpenVDB.


1 #!/bin/bash
2 wget
3 unzip
4 cd c-blosc-1.5.0
5 # Install to users home directory - you may customise this location
6 mkdir -p $HOME/blosc
7 # Requires CMake
9 make
10 make install

CppUnit (for AX Unit Tests)

1 #!/bin/bash
2 wget
3 tar -xvzf cppunit-1.13.2.tar.gz
4 cd cppunit-1.13.2
5 # Install to users home directory - you may customise this location
6 mkdir -p $HOME/cppunit
7 ./configure --prefix=$HOME/cppunit
8 make
9 make install