Installation Guide

The following installation guide assumes that user have not root privileges and the non-standard software may not be pre-installed on the given machine.

Following libraries are assumed to be installed in the system (with headers):

  • libpcre
  • libxml2
  • libjpeg (version 6.2)
  • liblua (version 5.1)
  • libgl1-mesa
  • libglu1-mesa
  • libssl

The guide will cover installation of following software packages:

  • Boost
  • Collada DOM
  • OpenVRML
  • OpenSceneGraph
  • Vitrall

In the scope of the following document, it is assumed that environment variable VITRALL_ROOT points to a directory where all software packages will be installed (including Vitrall itself), for example:

export VITRALL_ROOT=$HOME/vitrall

Create directory structure for locally installed software:

mkdir -p installs
mkdir -p local
cd local
mkdir -p lib
mkdir -p include
mkdir -p bin

Add $VITRALL_ROOT/local/bin to your PATH environment.

Vitrall does not support configuration of dynamically loaded external libraries yet. Because of this, it is needed to use LD_LIBRARY_PATH:



Typically, Boost should be available through system repositories of your distribution. If version found there is too old or if you don't have root privileges to the system, then proceed with following:

Download and extract into directory:


the newest version of  Boost libraries. After archive decompression export directory containing extracted Boost into environment variable BOOST_ROOT, for example:

export BOOST_ROOT=$VITRALL_ROOT/installs/boost_1_48_0

Then compile Boost (it may take a while).

./ --with-libraries=filesystem,thread,program_options,regex,python,system,random

If the compilation was successful:

ln -s $BOOST_ROOT/boost $VITRALL_ROOT/local/include/boost
cp $BOOST_ROOT/stage/lib/*.so* $VITRALL_ROOT/local/lib

Vitrall also uses following Boost libraries:

  • Asio,
  • Bind,
  • Function,
  • Optional,
  • Ref,
  • Property Tree,
  • Smart Ptr,
  • String Algo.


An exhaustive documentation of CMake is available  here.

In the following of the guide, source-dir will stand for the directory containing Vitrall server source code (usually repo/trunk/src/vitrall), and build-dir will stand for the directory, in which project tree will be created by CMake, and binaries will be built. It is strongly encouraged to build project in a directory separate to the repository directory.

CMake supports a variety of development environments, just substitute generator-name in command below with one of the generators listed in the end of:

$ cmake --help

For example, to create simple unix makefiles:

$ cd build-dir
$ cmake -G "Unix Makefiles" source-dir

CMake automatically searches for needed libraries. If CMake failed to create project tree, probably some needed libraries were not found in the system. Refer to library dependencies? for more information. If everything went ok, you can start to build Vitrall using IDE of your choosing, for example:

$ make

Collada DOM

The latest versions Collada Dom project (2.3 and 2.3.1) cause segmentation fault in both Vitrall and osgviewer applications.

The latest versions which runs correctly is 2.2, available here: Download it and extract into:


To install, execute below commands:

cd $VITRALL_ROOT/installs/collada-dom
cp Makefile.linux Makefile

Add following lines:

includeOpts += -I$(VITRALL_ROOT)/local/include
libOpts += -L$(VITRALL_ROOT)/local/lib

in file: ./dom/make/ before last line (containing include make/

Add following line:

prefix := $(VITRALL_ROOT)/local

in file ./dom/Makefile in line number 198 (just before .PHONY: uninstall).

mv dom/include/1.4/dom/domasset.h dom/include/1.4/dom/domAsset.h
make os=linux project=minizip -C dom
cp dom/build/linux-1.4/ dom/build/linux-1.4/libminizip.a $VITRALL_ROOT/local/lib
make os=linux project=dom -C dom
make os=linux project=dom -C dom install


The latest version of OpenVRML - 0.18.9 (the one available from debian repository) is not compatible with OpenSceneGraph?. recommends 0.17.12 version, version 0.17.2 was also tested. Library is available at

After downloading the source package do the following

cd openvrml-0.17.2 
mkdir build
cd build
../configure --disable-script-node-java --disable-xembed --disable-player --disable-mozilla-plugin --disable-examples --disable-script-node-javascript
make install


Current downloads of OpenSceneGraph source code can be found here: To get the svn address visit: Download latest release and extract into:


Export extracted OSG directory into environment variable OSG_ROOT, for example:

export OSG_ROOT=$VITRALL_ROOT/installs/OpenSceneGraph-3.0.1

Do the following:

cd $VITRALL_ROOT/installs
mkdir -p osg-build
cd osg-build
cmake $OSG_ROOT

If you would like to build OSG examples:


It may happen that cmake will fail to find Collada DOM headers. To check if this is the case, run:

cmake -L .

and search for variable COLLADA_INCLUDE_DIR. If it is set to NOTFOUND, following command should fix the problem:

cmake -D COLLADA_INCLUDE_DIR:PATH=$VITRALL_ROOT/local/include/colladadom .

Finally, compile and install (it may take some time):

make install

You may check whether OSG is properly configured (especially library linking issues), by running:

osgviewer $VITRALL_ROOT/repo/trunk/resources/models/vitrall.dae


Luabind can be downloaded from  here (version 0.9.1 is checked, headers from version 0.9.0 have a known bug?). Extract it into:


and change directory to the luabind directory.

Create file CMakeLists.txt with following content:

cmake_minimum_required (VERSION 2.6)
project (LUABIND)

file(GLOB FILES src/*.cpp)

include_directories(. ${VITRALL_ROOT}/local/include /usr/include/lua5.1 /usr/include/lua)
add_library (luabind ${FILES} )


cmake .
ln -s `pwd`/luabind $VITRALL_ROOT/local/include/luabind
ln -s `pwd`/ $VITRALL_ROOT/local/lib/


Library  libjpeg-turbo provides JPEG compression routines using vector processor instructions and implements API of libjpeg library, so it is a drop-in replacement of the latter.

 NASM is needed to compile this library.

To install libjpeg-turbo checkout from it's svn repository:

cd $VITRALL_ROOT/installs
svn co libjpeg-turbo
cd libjpeg-turbo
autoreconf -fiv
./configure --prefix=$VITRALL_ROOT/local
make install


First, check out source from project repository.

svn checkout --username <name> repo
mkdir build
cd build
cmake ../repo/server

You may now tailor Vitrall configuration of Vitrall build to your specific needs by running:

cmake -i .

When you are done, execute:


Remember to have LD_LIBRARY_PATH include $VITRALL_ROOT/lib and $VITRALL_ROOT/lib64.

Script ./ is a convenience method for fast choosing which modules to build. You may use:

./ xml echo.xml

to build all modules that are needed for this configuration.

You may run test Vitrall server with command:

./vitralld echo.xml


You may run a testing rendering configuration:

./vitralld demonstration.xml

Add to the command line:

--var model=models/native/

if you haven't compiled OSG with COLLADA support.