GitHub - VAST-AI-Research/TripoSF: SparseFlex: High-Resolution and Arbitrary-Topology 3D Shape Modeling

2 min read Original article ↗

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

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 $1024^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 ($1024^3$ reconstruction)
    • Inference scripts and examples
    • SparseFlex implementation

🚀 Getting Started

System Requirements

  • CUDA-capable GPU (≥12GB VRAM for $1024^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

gradio_example

Optimization Tips 💡

For Open Surfaces

  • Enable pruning in the configuration:
  • 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.