Commit ea61d5f0 authored by Ludovic Courtès's avatar Ludovic Courtès

doc: Improve installation instructions; remove them from the front page.

parent 19990e90
......@@ -2,7 +2,7 @@
<tab type="mainpage" visible="yes" title="Overview"/>
<tab type="user" url="@ref features" title="Features"/>
<tab type="user" url="@ref install" title="Install"/>
<tab type="user" url="@ref install" title="Installation"/>
<tab type="user" url="@ref tutorials" title="Tutorials"/>
<tab type="user" url="@ref roadmap" title="Roadmap"/>
<tab type="user" url="@ref license" title="License"/>
\page install Install
\page install Installing ALTA
## Dependencies
ALTA is decomposed into three parts: the \ref core, \ref plugins, and \ref
commands. The third party dependencies of each part follow those rules:
## Downloading
+ The **core** depends only on Eigen library for its vector class.
To access the sources of ALTA, clone the public [Git][git] repository:
+ **Plugins** depend on whatever library they need. The dependency of a particular plugin and how to install it must be provided in its documentation.
$ git clone
+ **Commands** only depend on the core and on OpenMP.
To ease the installation of ALTA, we provide scripts to install some of the
dependencies in the <em>$ALTA/external</em> directory. Each script is a python
script and has the form <i>obtain_{name}.py</i>. For example, to obtain the
Eigen library, the commands are:
## Dependencies
$ cd $ALTA/external
$ python
ALTA consists of three parts: the \ref core, \ref plugins, and \ref
commands. The core has a number of mandatory dependencies, while
plugins may have optional dependencies.
### List of common plugin dependencies:
The mandatory dependencies are:
+ [Eigen][eigen] library (for core and plugins). You will need a version >= 3.0 to have access to the Eigen implementation of Levenberg-Marquardt.
+ the [SCons][scons] build system;
+ [Quadprog++][quadprog] library (for \ref rational_fitter_quadprog, provided in the external directory)
+ a C++11 compiler, such as recent versions of [GCC][gcc] or [Clang][clang];
+ [Matlab][matlab] with the Engine library (for some plugins)
+ [Eigen][eigen] >= 3.0 (<tt>libeigen3-dev</tt> package on Debian and
derivatives; <tt>libeigen3</tt> in MacPorts; <tt>eigen</tt> in
+ [CGAL][cgal] library (for some plugins)
Optional dependencies that will allow more plugins to be built include:
+ [CERES][ceres] solver library (for \ref nonlinear_fitter_ceres)
+ [pkg-config][pkgconfig] is optional but highly recommended on
GNU/Linux and MacOS X to help find common dependencies and their
compiler and linker flags;
+ [libFLANN][flann] (for the \ref data_interpolant plugin). Note that this library is available through Debian's packages and MacOS ports.
+ [Quadprog++][quadprog], for \ref rational_fitter_quadprog; this one
is shipped with ALTA in the <tt>external</tt> directory;
+ the [NlOpt][nlopt] non-linear optimization library
(<tt>libnlopt-dev</tt> on Debian and derivatives);
You can find more information on the dependencies in the \ref dependencies
+ the [IpOpt][ipopt] library for large-scale ​non-linear optimization
(<tt>coinor-libipopt-dev</tt> on Debian and derivatives);
+ the [CERES][ceres] solver library, for \ref nonlinear_fitter_ceres;
+ the [OpenEXR][openexr] high-dynamic range file format library
(<tt>libopenexr-dev</tt> on Debian and derivatives);
### Obtaining additional depedencies
+ [CGAL][cgal], for some plugins (<tt>libcgal-dev</tt> on Debian and
#### Ubuntu/Debian
+ [libFLANN][flann], for the \ref data_interpolant plugin
(<tt>libflann-dev</tt> on Debian and derivatives);
Most of the dependencies can be obtain using the 'apt-get' command from Ubuntu/Debian. Other dependencies are automatically obtained using the python scripts provided (see above).
+ [MATLAB][matlab] with the Engine library, for some plugins.
$ sudo apt-get install libeigen3-dev libgomp1 libcgal-dev libflann-dev libopenexr-dev libnlopt-dev coinor-libipopt-dev libatlas-base-dev libsuitesparse-dev
For your convenience, some of these dependencies are shipped with ALTA,
as noted above. Others are automatically downloaded unless
<tt>--no-externals</tt> is passed to <tt>scons</tt> (see below.)
#### OSX
We advise to install the MacPorts package manager.
## Portability
$ sudo port install libeigen3 libcgal-dev libflann-dev libopenexr-dev ceres-solver
ALTA is developed as a cross-platform library, with support for several
OSes (GNU/Linux, MacOS X, Microsoft Windows) and several C++ compilers
(GCC, Clang, MSVC). ALTA is under [continuous
integration](, where several combinations are
## Building
### Cross platform
To build ALTA, simply run [SCons][scons] from the top-level source
ALTA is developed as a cross platform library. However, we do not test it
against any possible combination of platform/compiler/architecture. The
latest version is regularly tested using *continuous integration*. See our
[Jenkins logs](
$ scons
Here is a recap of the currently tested combinations:
<td>Debian 7.0</td>
<td>GCC 4.7.2</td>
<td>OS X 10.9.1</td>
<td>clang 500.2.79</td>
<td>Matlab plugins are not tested on this configuration<br />
<td>Windows 7</td>
<td>Visual Studio 2007</td>
<td>Matlab plugins are not tested on this configuration<br />
By default, the build system automatically checks whether the required
dependencies are met, and which of the optional dependencies are
available. All the compilation byproducts go to the
<tt>sources/build</tt> sub-directory.
Some of the missing dependencies, such as NlOpt, IpOpt, and CERES, are
automatically downloaded from upstream when they are not found. The
downloaded files are integrity-checked, and then the software is built
and installed under the <tt>external/build</tt> sub-directory of the
source tree.
This automatic behavior can be disabled by running:
### SCons
$ scons --no-externals
Using [SCons](, the compilation of ALTA is
Lastly, the default settings of the build system, such as the compiler
being used and locations of libraries and headers, can be overridden in
a configuration file:
$ cd $ALTA
$ scons --cfg=[filename]
$ scons
You need to provide a system dependant configuration file. You will find
examples of such configuration files in the <em>$ALTA/configs/scons</em>
directory. This compilation command automatically download the dependencies of
ALTA core and plugins.
Here <tt></tt> must define SCons <em>construction
variables</em> in Python syntax. The list of configuration variables
and their default values can be seen by running:
All the resulting elements of ALTA (binaries, dynamic and static libraries)
are outputted in: <em>$ALTA/sources/build</em> directory. The dependencies
(ipopt, ceres, nlopt, ...) will be compiled in the <em>$ALTA/external/build</em>
$ scons --help
Examples of configuration files are provided under
[eigen]: "Eigen"
[quadprog]: "QuadProg++"
[matlab]: "Matlab"
[matlab]: "MATLAB"
[cgal]: "CGAL"
[ceres]: "Ceres solver"
[ceres]: "CERES solver"
[flann]: "FLANN"
......@@ -33,6 +33,15 @@ You are working on BRDFs and you want to **benchmark new BRDF models** and compa
The full list of features is available in the \ref features page.
### Download
ALTA is free software available under the [Mozilla Public License,
version 2.0](, from our Git repository:
git clone
See \ref install "the installation instruction" for more information.
### Sample results
Here are presented some of the result one can obtain using ALTA for *nonlinear fitting*, *rational fitting* and *data conversion* of BRDF data (please click on the picture to change the horizontal position of the vertical cut). To see how those results where generated, follow the link above the picture.
......@@ -63,35 +72,6 @@ Those images have been produced using [Mitsuba renderer](http://www.mitsuba-rend
<br /><br />
Download and install
### Obtain sources
To access the sources of ALTA, you can clone the public git repository:
$ git clone
### Build
You can build ALTA using [SCons]( SCons is lightweight and only requires Python to be installed (ALTA uses Python for its high level scripting mechanism). To build, go to the root directory of ALTA and type:
$ scons
You might want to provide a platform dependant configuration file using the `--cfg=[file]` argument. You will find examples of such configuration files in the `$ALTA/configs/scons` directory. Running this command should obtain some of ALTA's dependencies (such as Eigen) and compile the main package of the library (i.e. the core, the programs, and some plugins).
For a more detailed view of ALTA's building scripts and dependencies, please refer to \ref install.
Once the packages are compiled, you will need to update some environment variables. Under GNU/Linux and OSX this is automatically done using the script (at the root):
$ source
Under MS Windows, you will need to update/set `PATH`, `ALTA_LIB`, and `PYTHON_PATH` manually. See \ref install for more information about it.
<br /><br />
How to use it
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment