This is the official implementation of [Flatten Anything Model (FAM)], an unsupervised neural architecture for global free-boundary surface parameterization.
We have previously conducted a series of works on regular 3D geometry representations. Please refer to the following:
- RegGeoNet for large-scale 3D point clouds.
- Flattening-Net for feed-forward point cloud structurization.
- SPCV for dynamic 3D point cloud sequences.
More recently, FAM is further extended for flexible multi-chart local parameterization. Please refer to FlexPara.
conda create -n fam python==3.9
conda activate fam
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txtNote that in util/custo_knn_cpu the k-NN operator is pre-compiled for Python 3.9, hence you need to specify this specific Python version when creating conda environment so that you can directly use it. Or you can refer to the original implementation for compilation on your own setup.
In case that there are some problems with your input mesh, you can use the clean_mesh() function in util/funcs.py to clean it up in advance.
Training: Specify the number of input points and training iterations.
python train_mesh.py "./example/input_model/test_model.obj" "./exported" 10000 10000For unoriented point clouds, you can simply input normals=None into the train_fam() and test_fam() functions in util/workflow.py, which will disable the calculation of the normal cosine similarity loss term.
Testing
python test_mesh.py "./example/input_model/test_model.obj" "./exported/test_model/fam.pth" "./example/checker_map/20x20.png" "./exported/test_model" "mesh_verts"You can also perform testing on points sampled from mesh by specifying the input_format and --N_poisson_approx arguments.
If you find our work useful in your research, please consider citing:
@inproceedings{zhang2024flatten,
title={Flatten Anything: Unsupervised Neural Surface Parameterization},
author={Zhang, Qijian and Hou, Junhui and Wang, Wenping and He, Ying},
booktitle={Proc. NeurIPS},
year={2024}
}

