Demo and reference implementation of the heat method for approximating geodesic distance on triangle meshes.
Try it here: https://davreev.gitlab.io/demos/geodesic-heat/
This project can be built to run natively or in a web browser. Build instructions vary slightly between the two targets.
Build via cmake
⚠️ Currently only tested with Clang and GCC. MSVC is not supported.
mkdir build
cmake -S . -B ./build -G <generator>
cmake --build ./build [--config <config>]
Download the Emscripten SDK and dot source the provided script to initialize the Emscripten toolchain
# Bash
EMSDK_DIR="absolute/path/of/emsdk/root"
. ./emsc-init.sh
# Powershell
$EMSDK_DIR="absolute/path/of/emsdk/root"
. ./emsc-init.ps1
Then build via emcmake
mkdir build
emcmake cmake -S . -B ./build -G <generator>
cmake --build ./build [--config <config>]
Output can be served locally for testing e.g.
python -m http.server
The following build-time dependencies are expected to be installed locally:
slangc
(>= 2025.5.0)spirv-cross
( >= 2021.01.15)spirv-tools
( >= 2022.1)
Remaining build-time dependencies are fetched during CMake's configure step (see cmake/deps
).