Skip to content

Uni{corn|form} Tool Kit

The UTK tool kit aims at providing executables to generate and analyze point sets in unit domains [0,1)^s. It is originally meant to help researchers developing sampling patterns in a numerical integration using Monte Carlo estimators. More precisely, it was developed with the precise question of optimizing image synthesis via Path tracing algorithms.

UTK is a C++ library that implements a large variety of samplers and tools to analyze and compare them (discrepancy evaluation, spectral analysis, numerical integration tests…).


The core of the library is available under the BSD license. For some samplers, the library is just a wrapper on some codes with specific license (see the samplers page for details).

Clone and Build

UTK is hosted on a git repository. To install it, the first step is to clone the repository on your computer. This can be done using the following command line:

git clone

The code can be build on a Linux or a Mac environment. The Windows build is not yet supported. To build it, one can use the following commands, assuming the current working directory is the cloned utk repository.

mkdir build
cd build
cmake ..

See Using UTK/* documentation pages for mor information and building options.

External libraries

Main external libraries are downloaded automatically by CMake (spdlog, cli11). When the python binding is enabled (cmake flag UTK_PYTHON set to true), pybind11 is fetched.

If UTK_USE_FFTW cmake flag is set to true (the default setting) and if the fftw library is available on your system, the Fourier tools will use it.

Finally, if UTK_USE_CGAL is set to true, samplers with CGAL as dependency will be built. CGAL and SuiteSparse must be installed on your system.


The UTK library was developed mainly by

But was also contributed to by

If you want to refer to UTK in your publications, please use the following bibtex entry:

title = {Uni(corn|form) tool kit},
note = {url{}}


UTK is an open-source, community driven, project. If you want to help us (typos, documentations issues, new samplers, new tools…), feel free to create a Pull-Request on the Github project.