Skip to content
AlayaLabPublic

About

Sprint3D: Accelerating End-to-End 3D Asset Generation through Pipeline Optimization

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

Sprint3D: Accelerating End-to-End 3D Asset Generation through Pipeline Optimization

Alaya Lab

arXiv 2611.16701 Project page Weights on Hugging Face Code licence: Apache-2.0

Twenty-eight assets, each generated by Sprint3D from one image, rendered in Blender

Sprint3D turns one image into a textured 3D mesh (GLB, about 1M faces, 4096² texture) in 4.05 s on a single NVIDIA H200: 33× faster than the released Pixal3D pipeline it is built on, at the same export settings.

Most of the time of such a pipeline is spent after its networks: the released Pixal3D pipeline spends 85 % of its end-to-end time in mesh post-processing and 14 % in its four rectified flows. Sprint3D rebuilds the mesh post-processing on the GPU and takes it off the critical path, cuts the per-evaluation overhead of the flows, and replaces the four flows by distilled students (LoRA adapters on the released flow models) that need 8 network evaluations per image instead of 76.

The Sprint3D pipeline: image conditioner, structure flow, coarse- and fine-shape flows, texture flow, GPU mesh post-processing

News

Results

Pipeline End-to-end time ↓ Network evaluations ↓ IoU ↑ Normal PSNR ↑ Normal SSIM ↑ Normal LPIPS ↓ Mean angular error ↓
Pixal3D (released) 133.0 s 76 96.97 20.87 0.668 0.021 14.25°
Sprint3D 4.05 s 8 96.78 21.56 0.712 0.018 13.00°

Time: median from reading the image to the closed GLB file on one H200, at the export settings of Pixal3D's own script (1,000,000 faces, 4096 × 4096 texture). Quality: the protocol of the Pixal3D paper on 2,653 held-out Toys4K test objects (Table 4 of the report). The speed-up is not free: Sprint3D scores slightly lower under the point-cloud encoders ULIP-2 and Uni3D and has less fine texture detail than the 12-step texture flow its 2-step student replaces. The report has the comparison with other generators, the time saved by each change and the transfer of the rebuilt post-processing to TRELLIS.2.

Installation

Linux with an NVIDIA GPU and CUDA 12.8, Python 3.10 and PyTorch 2.7.0. The reported numbers use a Hopper GPU (sm_90); on other GPUs the package falls back from FlashAttention-3 to FlashAttention-2 (--fa2), which gives the same results up to rounding but is slower.

git clone --recursive https://github.com/AlayaLab/sprint3d.git && cd sprint3d
bash env/install.sh                       # conda environment, pinned packages, source builds, patched extensions

The installation takes 1 to 1.5 hours with 4 CPU cores and about 30 GB of disk; when a step fails, running the script again resumes at that step. docs/INSTALL.md describes every step, and env/Dockerfile has the same steps as a container recipe.

Weights

python scripts/download_weights.py         # students and upstream models, about 32.6 GB in total
python scripts/verify_weights.py           # size and sha256 of every file

The four students (5.19 GB) come from AlayaLab/sprint3d on Hugging Face; the upstream models (Pixal3D, DINOv3, MoGe-2, RMBG-2.0, NAF) are fetched from public sources, pinned by revision or sha256. Pixal3D is gated in the EU and RMBG-2.0 is gated: accept their terms first. docs/WEIGHTS.md lists every file, its revision and its licence.

Quick start

python scripts/infer.py --image third_party/Pixal3D/assets/images/4_img.png --output out/4_img.glb \
    --students weights/students --pixal3d weights/pixal3d --timing-json out/timing.json
  • The GLB uses the export settings of Pixal3D's own script (1,000,000 faces, 4096 × 4096 texture); --list inputs.jsonl --out-dir out/ processes many inputs in one process.
  • The first request of a process is slower, because it compiles kernels and tunes the sparse convolutions; use --warmup 1 (the default) before timing.
  • python scripts/run_official.py --image <image> --output <out>.glb runs Pixal3D's own script for the reference output, and bash scripts/check.sh checks an installation.

Documentation

Topic Where
Timing protocol behind the numbers above docs/TIMING.md
Evaluation suite and object lists (no data is distributed) docs/EVALUATION.md, docs/DATA.md
The individual optimizations and their flags docs/LEVERS.md
Cumulative measurement, ablations, TRELLIS.2 port and baselines docs/REPRODUCE_PAPER.md
Retraining the four students docs/TRAINING.md
Agreement between this package and the measurement code of the report, including the criteria that are not met docs/PARITY.md
Checkpoint loading, pickle files and network behaviour docs/SECURITY_NOTES.md

License

The code is released under the Apache License 2.0 (LICENSE, NOTICE). The student weights are released under CC BY-NC 4.0, because their training data includes assets under non-commercial and research-only licences. Running the full pipeline also uses third-party components under their own terms, some of them non-commercial (nvdiffrast, the cubvh code in the patched native extension, RMBG-2.0): see THIRD_PARTY_LICENSES.md.

Acknowledgements

Sprint3D builds on the released code and weights of Pixal3D and on TRELLIS.2, and uses CuMesh, FlexGEMM, o-voxel, nvdiffrast, cubvh, MoGe, DINOv3, RMBG-2.0, NAF and FlashAttention, among the components listed in THIRD_PARTY_LICENSES.md. Sprint3D is not affiliated with, endorsed by or reviewed by Tencent or the authors of Pixal3D.

Citation

@misc{kuno2026sprint3d,
  title  = {Sprint3D: Accelerating End-to-End 3D Asset Generation through Pipeline Optimization},
  author = {Kuno, Sho and Yu, Ruihan and Yu, Yonghao and Lin, Guixu and Fu, Lian and Niu, Muyao and
            Tsai, Yu-Ju and Huang, Zheng-Hui and Huang, Yi-Chuan and Yang, Siqi and Lan, Fengbo and
            Wu, Erwin and Zhang, Kaipeng and Wang, Zhixiang},
  year   = {2026},
  eprint = {2611.16701},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CV}
}

About

Sprint3D: Accelerating End-to-End 3D Asset Generation through Pipeline Optimization

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages