Delin An and Chaoli Wang
University of Notre Dame
SurfPatch is a framework for exploratory stream surface visualization. Our method leverages a hierarchical, bottom-up approach with vertex-level classification, patch-level matching, and surface-level clustering for fine-grained multiscale analysis. SurfPatch supports stream surfaces from steady and unsteady flows and isosurfaces from scalar fields, providing an intuitive interface for users to explore and analyze various surfaces.
SurfPatch is for analyzing surfaces through a three-stage process: (1) classifying vertices based on heat kernel signature (HKS) features and partitioning the surface into fine-grained patches using agglomerative hierarchical clustering (AHC) with connectivity constraints, (2) matching similar patches within or across surfaces by aggregating vertex-level features into patch-level features, and (3) clustering surfaces by further aggregating patch-level features into surface-level features, enabling efficient querying and exploration of patches and surfaces.
The code is developed by Python. After cloning the repository, follow the steps below for installation:
- Create and activate the conda environment
conda create --name surfpatch python=3.10
conda activate surfpatch- Install dependencies
pip install -r requirements.txt- Run the interface
python main.pySurfPatch could handle stream surfaces generated from steady and unsteady flows and isosurfaces extracted from scalar fields. The dataset folder for surfaces should be organized as follows:
./dataset/
|
├── data/
├── gallery/
├── hks_feature/
├── patch/
│ └── level1/
└── project2d/
└── level1/
We provide a subset of the Two Swirls dataset as an example for testing our method.
Should you have any questions, please send emails to dan3@nd.edu.

