Skip to content

Repository files navigation

Deformable Triangle Splatting:
Flexible Primitives for Real-Time Radiance Field Rendering

Project page  |  arXiv  |  Paper  |  Video  |  Models

Oriol Jiménez-Ayguadé, Antonio Agudo

Institut de Robòtica i Informàtica Industrial, CSIC-UPC, Barcelona


DETRIS pipeline

This repository contains the official implementation of Deformable Triangle Splatting (DETRIS).

DETRIS augments each triangle primitive with K learnable control points per edge, each parameterized by a single scalar displacement that shifts the boundary inward or outward along the edge normal. This lets a single primitive represent non-convex shapes (crescents, arrows, concavities) while keeping the three base vertices that define its 3D plane. All boundary deformations and per-pixel distance computations are performed in the triangle's barycentric coordinate frame, making the learned shape strictly view-independent. Rendering combines a ray-casting winding-number test, a polynomial smooth-minimum distance field with learnable corner rounding, and a power-law opacity window, all implemented as a custom CUDA rasterizer.

This code builds directly on top of Triangle Splatting, which itself builds on 3D Convex Splatting and 3D Gaussian Splatting.

Cloning the Repository + Installation

The code has been tested with Python 3.11 on CUDA 13.0 (PyTorch 2.9) and CUDA 12.1. To run on CUDA 12.x, set cuda-toolkit to your version and a matching PyTorch build in requirements.yaml (e.g. for CUDA 12.1: cuda-toolkit=12.1, torch==2.5.1+cu121, torchvision==0.20.1+cu121).

git clone <repo-url> deformable-triangle-splatting
cd deformable-triangle-splatting

We suggest using a virtual environment for the dependencies. This creates an environment named detris (Python 3.11, CUDA 13.0, PyTorch 2.9):

micromamba create -f requirements.yaml
micromamba activate detris

(If you use conda, replace micromamba with conda.)

Then compile the custom CUDA rasterizer and the simple-knn helper:

bash compile.sh
cd submodules/simple-knn
pip install .
cd ../..

Pretrained Models

Pretrained models for all 11 evaluated scenes (Mip-NeRF 360 ×9, Tanks & Temples ×2), as final 30k-iteration checkpoints, are available on the Hugging Face Hub. To skip training and render a scene directly:

# requires: pip install huggingface_hub
hf download Orioljim/detris-models detris_models.zip --local-dir .
unzip detris_models.zip
python render.py -m main_results/mipnerf360/garden

Training

To train on indoor scenes:

python train.py -s <path_to_scene> -m <output_model_path> --eval

For outdoor scenes, add the --outdoor flag:

python train.py -s <path_to_scene> -m <output_model_path> --outdoor --eval

The number of control points per edge K is set with --n_subdivisions (default 3):

python train.py -s <path_to_scene> -m <output_model_path> --eval --n_subdivisions 3

Rendering

python render.py -m <path_to_model>

Evaluation

python metrics.py -m <path_to_model>

Video

python create_video.py -m <path_to_model>

Replication of the results

python full_eval.py --output_path <output_path> -m360 <path_to_MipNeRF360> -tat <path_to_T&T>

Note on corner rounding (delta). The learnable corner-rounding smoothing (delta) is disabled by default in train.py/render.py to provide a faster variant: the majority of the perceptual gain is driven by the per-edge control points, so turning delta off yields a substantial speed-up at only a small quality cost. The paper's results were produced with delta enabled, and the full_eval.py command above already runs with delta on. To enable it in a standalone run, pass --enable_delta to both train.py and render.py.

BibTeX

If you find our work useful, please cite:

@inproceedings{JimenezAyguade2026Deformable,
  title     = {Deformable Triangle Splatting: Flexible Primitives for Real-Time Radiance Field Rendering},
  author    = {Jiménez-Ayguadé, Oriol and Agudo, Antonio},
  booktitle = {Proceedings of the European Conference on Computer Vision (ECCV)},
  year      = {2026},
}

As this work builds on Triangle Splatting and 3D Convex Splatting, please also cite them:

@article{Held2025Triangle,
  title   = {Triangle Splatting for Real-Time Radiance Field Rendering},
  author  = {Held, Jan and Vandeghen, Renaud and Deliege, Adrien and Hamdi, Abdullah and Cioppa, Anthony and Giancola, Silvio and Vedaldi, Andrea and Ghanem, Bernard and Tagliasacchi, Andrea and Van Droogenbroeck, Marc},
  journal = {arXiv},
  year    = {2025},
}

@inproceedings{Held2025Convex,
  title     = {3D Convex Splatting: Radiance Field Rendering with 3D Smooth Convexes},
  author    = {Held, Jan and Vandeghen, Renaud and Hamdi, Abdullah and Deliege, Adrien and Cioppa, Anthony and Giancola, Silvio and Vedaldi, Andrea and Ghanem, Bernard and Van Droogenbroeck, Marc},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year      = {2025},
}

License

This project builds upon Triangle Splatting, 3D Convex Splatting and 3D Gaussian Splatting. The modifications are released under the terms in LICENSE.md; the original Gaussian Splatting code remains under the Inria/GRAPHDECO research license in LICENSE_GS.md.

Acknowledgements

This implementation is built on top of Triangle Splatting and 3D Gaussian Splatting. We thank the authors for releasing their code.

About

Deformable Triangle Splatting (DETRIS) — Flexible Primitives for Real-Time Radiance Field Rendering (ECCV 2026)

Resources

Stars

21 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages