Polatory is a fast and memory-efficient framework for RBF (radial basis function) interpolation, developed by GSI Co., Ltd.
NOTE: This is a pre-release version. APIs subject to change without notice.
Features | License | Building | Contribution | Module Index | Acknowledgements
Features
- Fast spline surface reconstruction from 2.5D/3D point cloud
- Fast interpolation of 1D/2D/3D scattered data (kriging prediction)
- Meshing isosurfaces
- Supports large number (millions) of input points
- Supports inequality constraints
- List of available RBFs
Platforms
Polatory runs on x86-64 processors and continuously tested on the following platforms.
OS | Toolchain |
---|---|
Ubuntu 18.04 LTS | GCC 7.4 and Clang 6.0 |
Windows | Visual Studio 2019 |
Benchmark)
Kriging via RBF Interpolation (Polatory can perform kriging prediction via RBF interpolation (dual kriging). Although different terminologies are used, both methods produce the same results. Here is the correspondence between them:
Kriging | RBF interpolation |
---|---|
Prediction | Interpolation (fitting + evaluation) |
Covariance function | RBF, positive definite |
Generalized covariance function of order k | RBF, conditionally positive definite of order k + 1 |
Nugget effect model | Spline smoothing |
Simple kriging | Interpolant with no polynomial |
Ordinary kriging | Interpolant with polynomial of degree 0 |
Universal kriging | Interpolant with polynomial of degree >= 1 |
Weights | (Not computed) Cardinal basis functions |
Kriging variance | (Not computed) |
A limited number of covariance functions are supported. See the list of available RBFs for details.
License
Polatory is available under two different licenses:
- GNU General Public License, version 3
- Commercial license (please contact at namihisa(at)gsinet.co.jp)
Building
On Ubuntu
-
Install build tools
sudo apt install build-essential cmake curl git ninja-build unzip
If you use Clang,
libomp-dev
is required.sudo apt install clang libomp-dev
-
Download and install Intel(R) MKL.
See https://software.intel.com/articles/installing-intel-free-libs-and-python-apt-repo for details.
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB -O - | sudo apt-key add - sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list' sudo apt update sudo apt install intel-mkl-64bit-2019.5-075
-
Clone Polatory
git clone --recursive https://github.com/polatory/polatory.git cd polatory
To update an existing repository:
git submodule sync git submodule update --init --recursive
-
Build polatory
./run init-vcpkg ./run cmake ./run build
On Windows
-
Install Visual Studio Community 2019
Under the Workloads tab, select the following item.
- Desktop development with C++
Under the Individual components tab, select the following item.
- Code tools > Git for Windows
-
Clone Polatory
git clone --recursive https://github.com/polatory/polatory.git cd polatory
To update an existing repository:
git submodule sync git submodule update --init --recursive
-
Build polatory
.\run init-vcpkg .\run cmake .\run build
Contribution
We welcome your contributions! You can contribute to this project in several ways:
Add a Star
You can just click the ★Star button to show your interest.
File an Issue
Feel free to file an issue, if you have any questions, feature requests, or if you have found any unexpected results (please include a minimal reproducible example).
Create a Pull Request
You can fork the source tree and make some improvements to it. Then feel free to create a PR. When sending a PR for the first time, please review and sign the Individual Contributor License Agreement.
Module Index
Module | Description |
---|---|
common | Common utility functions and classes. |
fmm | Fast multipole methods (wrapper of ScalFMM). |
geometry | Geometric utilities. |
interpolation | RBF fitting and evaluation. |
isosurface | Isosurface generation. |
kriging | Parameter estimation and validation for kriging. |
krylov | Krylov subspace methods. |
numeric | Numerical utilities. |
point_cloud | SDF data generation from point clouds. |
polynomial | Polynomial part of RBF interpolant. |
preconditioner | The preconditioner used with Krylov subspace methods. |
rbf | Definition of RBFs/covariance functions. |
Acknowledgements
Polatory is built upon the following libraries. Each library may have other dependencies.
- Abseil
- Apache License 2.0
- Boost
- Boost Software License 1.0
- Ceres Solver
- BSD 3-Clause License
- double-conversion
- BSD 3-Clause License
- Eigen
- Mozilla Public License 2.0
- FLANN
- BSD 2-Clause License
- Google Test
- BSD 3-Clause License
- gsl-lite
- MIT License
- Intel(R) MKL
- Intel Simplified Software License
- ScalFMM
- CeCILL-C License 1.0