/SamplinSafari

Samplin' Safari is a research tool to visualize and interactively inspect high-dimensional (quasi) Monte Carlo samplers.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Samplin' Safari

Master branch: macOS build Linux build Windows build

Samplin' Safari is a research tool to visualize and interactively inspect high-dimensional (quasi) Monte Carlo samplers.

It was initially developed as part of the publication:

Orthogonal Array Sampling for Monte Carlo Rendering
Wojciech Jarosz, Afnan Enayet, Andrew Kensler, Charlie Kilpatrick, Per Christensen
In Computer Graphics Forum (Proceedings of EGSR), 38(4), July 2019
Project page PDF

and now released under the 3-clause BSD license. For details, see the LICENSE file.

Screenshots

Screenshot Screenshot Screenshot

Features

Supported samplers

Additional features

  • interactively switching samplers, setting number of samples, dimensions, and various sampler parameters
  • 3D and 2D orthographic views for X, Y and Z dimensions
  • view of all 2D projections (useful for high-dimensional samples)
  • custom mapping of any (higher) dimensions to X, Y or Z
  • save all of these views as vector EPS files
  • show point index and point coordinates
  • show stratification grids
  • displaying only a subset of points, either by subsetting on sample index, or sample coordinates.

Compiling

Compiling requires CMake and a C++11 toolchain. Primary development in on macOS, but the code should also successfully compile on Linux and Windows.

macOS and Linux

On macOS and Linux, compiling should be as simple as

git clone --recursive https://github.com/wkjarosz/SamplinSafari.git
cd SamplinSafari
mkdir build
cd build
cmake ../
make -j 4

Acknowledgements

Samplin' Safari was primarily developed by Wojciech Jarosz with additions from Afnan Enayet.

The code depends on the following libraries (which are included as git submodules in the ext subdirectory):

  • NanoGUI, which is available under a BSD-style license.
  • galois++, which is available under a BSD-style license.
  • pcg32, which is available under the Apache License.
  • tinyformat, which is available under the Boost Software License.

Several of the orthogonal array constructions are adapted from Art Owen's code in Statlib.

The Halton and Sobol samplers use code from Leonhard Grünschloß.