Walkin' Robin: Walk on Stars with Robin Boundary Conditions
Bailey Miller*Rohan Sawhney*Keenan Crane†Ioannis Gkioulekas†
ACM Trans. Graph. (2024)
teaser

Numerous scientific and engineering applications require solutions to boundary value problems (BVPs) involving elliptic partial differential equations, such as the Laplace or Poisson equations, on geometrically intricate domains. We develop a Monte Carlo method for solving such BVPs with arbitrary first-order linear boundary conditions—Dirichlet, Neumann, and Robin. Our method directly generalizes the walk on stars (WoSt) algorithm, which previously tackled only the first two types of boundary conditions, with a few simple modifications. Unlike conventional numerical methods, WoSt does not need finite element meshing or global solves. Similar to Monte Carlo rendering, it instead computes pointwise solution estimates by simulating random walks along star-shaped regions inside the BVP domain, using efficient ray-intersection and distance queries. To ensure WoSt produces bounded-variance estimates in the presence of Robin boundary conditions, we show that it is sufficient to modify how WoSt selects the size of these star-shaped regions. Our generalized WoSt algorithm reduces estimation error by orders of magnitude relative to alternative grid-free methods such as the walk on boundary algorithm. We also develop bidirectional and boundary value caching strategies to further reduce estimation error. Our algorithm is trivial to parallelize, scales sublinearly with increasing geometric detail, and enables progressive and view-dependent evaluation.

Bailey Miller*, Rohan Sawhney*, Keenan Crane†, Ioannis Gkioulekas† (2024). Walkin' Robin: Walk on Stars with Robin Boundary Conditions. ACM Trans. Graph., 43(4).

@article{Miller:2024:WRW,
author = {Bailey Miller* and Rohan Sawhney* and Keenan Crane† and Ioannis Gkioulekas†},
title = {Walkin' Robin: Walk on Stars with Robin Boundary Conditions},
journal = {ACM Trans. Graph.},
volume = {43},
number = {4},
year = {2024},
publisher = {ACM},
address = {New York, NY, USA},
}