TripoSF: High-Resolution and Arbitrary-Topology 3D Shape Modeling with SparseFlex

April 7, 2025 ยท View on GitHub

Project Page Paper Model

By Tripo

teaser

๐ŸŒŸ Overview

TripoSF represents a significant leap forward in 3D shape modeling, combining high-resolution capabilities with arbitrary topology support. Our approach enables:

  • ๐Ÿ“ˆ Ultra-high resolution mesh modeling (up to $1$024^{3}$$)
  • ๐ŸŽฏ Direct optimization from rendering losses
  • ๐ŸŒ Efficient handling of open surfaces and complex topologies
  • ๐Ÿ’พ Dramatic memory reduction through sparse computation
  • ๐Ÿ”„ Differentiable mesh extraction with sharp features

SparseFlex

SparseFlex, the core design powering TripoSF, introduces a sparse voxel structure that:

  • Focuses computational resources only on surface-adjacent regions
  • Enables natural handling of open surfaces (like cloth or leaves)
  • Supports complex internal structures without compromises
  • Achieves massive memory reduction compared to dense representations

๐Ÿ”ฅ Updates

  • [2025-03] Initial Release:
    • Pretrained VAE model weights ($1$024^{3}$$ reconstruction)
    • Inference scripts and examples
    • SparseFlex implementation

๐Ÿš€ Getting Started

System Requirements

  • CUDA-capable GPU (โ‰ฅ12GB VRAM for $1$024^{3}$$ resolution)
  • PyTorch 2.0+

Installation

  1. Clone the repository:
git clone https://github.com/VAST-AI-Research/TripoSF.git
cd TripoSF
  1. Install dependencies:
# Install PyTorch (select the correct CUDA version)
pip install torch torchvision --index-url https://download.pytorch.org/whl/{your-cuda-version}

# Install other dependencies
pip install -r requirements.txt

๐Ÿ’ซ Usage

Pretrained Model Setup

  1. Download our pretrained models from Hugging Face
  2. Place the models in the ckpts/ directory

Running Inference

Basic reconstruction using TripoSFVAE:

python inference.py --mesh-path "assets/examples/jacket.obj" \
                   --output-dir "outputs/" \
                   --config "configs/TripoSFVAE_1024.yaml"

Local Gradio Example

python app.py

gradio_example

Optimization Tips ๐Ÿ’ก

For Open Surfaces

  • Enable pruning in the configuration:
    pruning: true
    
  • Benefits:
    • Higher-fidelity reconstruction
    • Faster processing
    • Better memory efficiency

For Complex Shapes

  • Increase sampling density:
    sample_points_num: 1638400  # Default: 819200
    
  • Adjust resolution based on detail requirements:
    resolution: 1024  # Options: 256, 512, 1024
    

๐Ÿ“Š Technical Details

TripoSF VAE Architecture:

  • Input: Point clouds (preserving source geometry details)
  • Encoder: Sparse transformer for efficient geometry encoding
  • Decoder: Self-pruning upsampling modules maintaining sparsity
  • Output: High-resolution SparseFlex parameters for mesh extraction

๐Ÿ“ Citation

@article{he2025triposf,
  title={SparseFlex: High-Resolution and Arbitrary-Topology 3D Shape Modeling},
  author={He, Xianglong and Zou, Zi-Xin and Chen, Chia-Hao and Guo, Yuan-Chen and Liang, Ding and Yuan, Chun and Ouyang, Wanli and Cao, Yan-Pei and Li, Yangguang},
  journal={arXiv preprint arXiv:2503.21732},
  year={2025}
}

๐Ÿ“š Acknowledgements

Our work builds upon these excellent repositories:

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.