Interactive Optimization of Scaffolded Procedural Patterns

ACM SIGGRAPH ' - Conference Track
Davide Sforza*
Marzia Riso*
Filippo Muzzini
Nicola Capodieci
Fabio Pellacini

*Joint first authors

Teaser image
We interactively edit procedural patterns by optimizing their parameters towards the best match with respect to hand-drawn sketches. We base our work on the use of scaffolded procedural patterns, that are sets of coarse-to-fine procedural functions, called levels, each of which is parametrized by a superset of the previous function’s procedural parameters. Scaffolded patterns are edited level-by-level, allowing users to sketch in a coarse-to-fine manner rather than requiring them to sketch all details simultaneously. Also, since the optimization is split into multiple levels, the overall method is fast and stable, making it suitable for real-time sketching. Here, we show a pattern drawn in seven steps, using red to highlight user’s strokes.

Abstract

A procedural program is the representation of a family of assets that share the same structural or semantic properties, whose final appearance is determined by different parameter assignments. Identifying the parameter values that define a desired asset is usually a time-consuming operation, since it requires manually tuning parameters separately and in a non-intuitive manner. In the domain of procedural patterns, recent works focused on estimating parameter values to match a target render or sketch, using parameter optimization or inference via neural networks. However, these approaches are neither fast enough for interactive design nor precise enough to give direct control. In this work, we propose an interactive method for procedural parameter estimation based on the idea of scaffolded procedural patterns. A scaffolded procedural pattern is a sequence of procedural programs that model a pattern in a coarse-to-fine manner, in which the desired pattern appearance is reached step-by-step by inheriting previously optimized parameters. Through scaffolding, patterns are more straightforward to sketch for users and easier to optimize for most algorithms. In our implementation, patterns are represented as procedural signed distance functions whose parameters are estimated with a gradient-free optimization method that runs in real-time on the GPU. We show that scaffolded patterns can be created with a node-based interface familiar to artists. We validate our approach by creating and interactively editing several scaffolded patterns. We show the effectiveness of scaffolding through a user study, where scaffolding enhances both the output quality and the editing experience with respect to approaches that optimize the procedural parameters all at once. We also perform a comparison with previous strategies and provide several recordings of real-time editing sessions in the accompanying materials.

Results

Scaffolding simplifies the sketching and optimization of complex patterns by increasing the number of intermediate steps. In the "Video" supplementary page, we present recordings of the editing sessions that produced the results shown in the main figures of the paper. The "Code" supplementary page contains the graph representations and the corresponding CUDA implementations for each procedural pattern.

Citation

@inproceedings{10.1145/3721238.3730667, author = {Sforza, Davide and Riso, Marzia and Muzzini, Filippo and Capodieci, Nicola and Pellacini, Fabio}, title = {Interactive Optimization of Scaffolded Procedural Patterns}, year = {2025}, publisher = {ACM}, booktitle = {Proceedings of the Special Interest Group on Computer Graphics and Interactive Techniques Conference Conference Papers}, doi = {10.1145/3721238.3730667} }