Illustration of our results. Given an input image (left), our method reconstructs a dynamic sand painting process (middle) and supports interactive editing (right). The first example shows reconstruction from a real photograph, the second from a real sand painting result, and the third from a sketch input.
Abstract
Sand painting is a process-driven art where visual appearance emerges from granular accumulation. Given a single image, reconstructing a plausible sand painting process requires modeling coherent stroke structures and material-dependent effects. Existing methods, including stroke-based optimization and diffusion-based video synthesis, often lack structural coherence and material consistency, leading to unrealistic drawing sequences. We present SandSim, a framework that reconstructs a sand painting process from a single image. We introduce a curve-guided Gaussian representation that models strokes as sequences of anisotropic primitives along continuous trajectories, whose smooth kernels capture the soft boundaries of sand strokes and enable coherent stroke formation. We further adopt a subtractive compositing scheme to model light attenuation during sand accumulation. We incorporate a semantic-guided planning module for scene decomposition and drawing order inference. Our framework jointly optimizes stroke geometry and appearance and can be integrated with a physics-based simulator for interactive sand dynamics and editing. Experiments show that our method produces temporally coherent and visually realistic results, achieving improved reconstruction quality and perceptual fidelity compared to existing approaches.Paper
[Paper Arxiv], to appear in ACM MM 2026
@InProceedings{SandSim2026,
title={SandSim: Curve-Guided Gaussian Splatting for Reconstructing Sand Painting Processes},
author={Yilin Wang and Haojie Huang and Chen Li and Yang Li and Changbo Wang and Chenhui Li},
booktitle={Proceedings of the ACM International Conference on Multimedia},
year={2026},
doi={10.1145/3767308.3835956},
eprint={2604.27572},
archivePrefix={arXiv}
}