Auto-Regressive Surface Cutting

*: Equal contributions
1Tencent Hunyuan 2SYSU 3CUHKSZ 4SCUT

SeamGPT generates surfaces cutting seams, facilitating UV flatten and part decomposition.

Abstract

Surface cutting is a fundamental task in computer graphics, with applications in UV parameterization, texture mapping, and mesh decomposition. However, existing methods often produce technically valid but overly fragmented atlases that lack semantic coherence. We introduce SeamGPT, an auto-regressive model that generates cutting seams by mimicking professional workflows. Our key technical innovation lies in formulating surface cutting as a next token prediction task: sample point clouds on mesh vertices and edges, encode them as shape conditions, and employ a GPT-style transformer to sequentially predict seam segments with quantized 3D coordinates. Our approach achieves exceptional performance on UV unwrapping benchmarks containing both manifold and non-manifold meshes, including artist-created, and 3D-scanned models. In addition, it enhances existing 3D segmentation tools by providing clean boundaries for part decomposition.

Video

Pipeline

Interpolate start reference image.

SeamGPT architecture: Point cloud encoder extracts shape context; Causal transformer decoder generates axis-ordered seam coordinates. Color indicates the prediction order is of the seam segments (red to blue).

Mesh UV-unwrapping

Interpolate start reference image.

Seam Enhanced 3D Part Segmentation

Interpolate start reference image.

Ablation of point sampling strategy

Interpolate start reference image.

Ablation study of encoder and decoder

Interpolate start reference image.

Seam length control and diversity

Interpolate start reference image.

BibTeX


      @misc{seamgpt,
        title={Auto-Regressive Surface Cutting}, 
        author={Yang Li and Victor Cheung and Xinhai Liu and Yuguang Chen and Zhongjin Luo and Biwen Lei and Haohan Weng and Zibo Zhao and Jingwei Huang and Zhuo Chen and Chunchao Guo},
        year={2025},
        eprint={},
        archivePrefix={arXiv},
        primaryClass={cs.CV},
        url={}, 
    }