FreeMesh: Boosting Mesh Generation with Coordinates Merging

1Hong Kong University of Science and Technology, 2Tencent Hunyuan, 3South China University of Technology, 4ShanghaiTech University

🚀 Abstract

The next-coordinate prediction paradigm has emerged as the de facto standard in current auto-regressive mesh generation methods. Despite their effectiveness, there is no efficient measurement for the various tokenizers that serialize meshes into sequences. In this paper, we introduce a new metric Per-Token-Mesh-Entropy (PTME) to evaluate the existing mesh tokenizers theoretically without any training. Building upon PTME, we propose a plug-and-play tokenization technique called coordinate merging. It further improves the compression ratios of existing tokenizers by rearranging and merging the most frequent patterns of coordinates. Through experiments on various tokenization methods like MeshXL, MeshAnything V2, and Edgerunner, we further validate the performance of our method. We hope that the proposed PTME and coordinate merging can enhance the existing mesh tokenizers and guide the further development of native mesh generation.

🔥 Method

In this paper, we introduce entropy as a mathematical tool for mesh serialization. Generally, sequences with lower information content are easier for sequence learning. We propose Per-Coordinate-Mesh-Entropy (PCME), a set of formulas derived from the raw representation of MeshXL. PCME quantifies the information in a mesh sequence, with a single coordinate as the basic unit. It's calculated as the product of information entropy and compression rate. A lower PCME indicates an easier-to-learn sequence and provides a training-free metric for tokenizer quality.

Guided by PCME, we explore ways to enhance current mesh tokenizers. Our observations revealed significant redundancy in serialized coordinate sequences. To address this, we propose merging multiple coordinates into additional tokens to reduce redundancy and facilitate mesh learning.

We extended PCME to Per-Token-Mesh-Entropy (PTME), where a token can be either a coordinate or a merged token. A good mesh tokenizer should exhibit a relatively low PTME. We validated PTME on existing tokenizers such as MeshXL, MeshAnythingV2, and EdgeRunner. Furthermore, we introduce coordinate merging, a technique that compresses these tokenizers by constructing a new vocabulary from high-frequency coordinates. This increases vocabulary size, further reducing PTME by compressing more coordinates. We implement token merging efficiently using SentencePiece training.

Per-Token-Mesh-Entropy

Per-Token-Mesh-Entropy visualization

(a) This visualization demonstrates how our Rearrange & Merge Coordinates (RMC) method significantly enhances geometric detail preservation and improves topology. (b) A comparative analysis between the baseline Merge Coordinates (MC) and our proposed RMC approach. MC fails to reduce PTME, whereas our RMC framework effectively minimizes token entropy.

Coordinate Merging

Coordinate Merging process diagram

Given a mesh, we first use a mesh tokenizer to convert the 3D structure into a 1D coordinate sequence. This sequence then undergoes rule-based rearrangement followed by token merging using the Byte Pair Encoding (BPE) algorithm. This approach significantly reduces sequence length, enabling poly generation models to create meshes with more faces.

🚀 Acknowledgement

We are deeply grateful to Jianlin Su for his insightful blog on building tokenizers, which provided valuable guidance for our work. We also thank Yiwen Chen for open-sourcing MeshAnythingV2 and Jiangxiang Tang for open-sourcing EdgeRunner. These two projects are wonderful contributions to the field of autoregressive mesh generation and provided valuable reference code.

🔥 Citation

@article{liu2025freemesh,
  title={FreeMesh: Boosting Mesh Generation with Coordinates Merging},
  author={Liu, Jian and Weng, Haohan and Lei, Biwen and Yang, Xianghui and Zhao, Zibo and Chen, Zhuo and Guo, Song and Han, Tao and Guo, Chunchao},
  journal={arXiv preprint arXiv:2505.13573},
  year={2025}
}