Patate Lib  0.4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Getting started


The only external library that is absolutely necessary to make Patates work is Eigen, the swiss army knife of linear algebra. Additional libraries might be required in specific instances, but only for advanced algorithms. We'll try to keep these dependencies to the minimum necessary, promised. Some examples will require additional libraries as well in an effort to keep them lean and legible.

The modules are also compatible with CUDA, so that you may run patates on the GPU, provided you own an NVidia graphics card. This is an efficient way to make patates available through CUDA-compatible languages such as Matlab or Python. Eigen can now be compiled by nvcc (NVIDIA CUDA Compiler Driver), see Eigen documentation for more details.


The Patate library is currently under active development and some functionalities have already been implemented and thoroughly tested. If you want to get a taste of these prime features, use the latest package available here:

You may also want to monitor our efforts in developping the library, in which case you will want to access the development repository:

git clone git://


The Patate lib is an header-only library. It could not be easier to install: the only thing you have to do is to include the header of the module you want to use in your code. Moreover, each patate|module is independent from the others, hence you may only use the header corresponding to the module you are interested in. For example:

#include <Patate/grenaille.h>

That said, the (quite heavy) use of templates in some modules may increase compilation times. Precompiled headers are recommended if this becomes a source of frustration. You will also have to pre-compile patates using nvcc if you want to use CUDA versions. This is explained in more details in related examples.

If you want to see Patates in action, you will of course have to compile examples. And the same is true if you want to get the latest version of the documentation you are presently reading (well, not the exact same documentation, unless you've already compiled it, but then why are you reading this?). In both cases, have a look at the readme file, everything is explained there, no need to duplicate that here.

First steps

You're now ready to play with Patates! But where to start from? Just have a look at thelist of available patates|modules., or directly access the Patates user manuals (links under Patetes names):

  • Grenaille: this module provides efficient methods for the fitting and analysis of point-clouds in arbitrary dimensions. Sounds a bit abstract, and indeed, it is templated in every corner of the code.
  • Vitelotte: this module provides tool to manipulate mesh-based vector graphics with arbitrary connectivity. It includes a generic mesh representation, a diffusion solver to generate colors from a sparse set of constraint, an OpenGL renderer and input/output through the mvg file format.

We've already been a bit too deep for that "Getting Started" page, so we should end it up soon. One last thing: if you get stuck or have a problem/bug using patates, please send an email to for further assistance. Remember that the library is under development so we are pleased to get your feedback.