Pacific Graphics 2026 — The 34th Pacific Conference on Computer Graphics and Applications
The repository contains submodules, thus please check it out with
# SSH
git clone git@github.com:trinity-graphics/truncgradgs.git --recursive --depth=1or
# HTTPS
git clone https://github.com/trinity-graphics/truncgradgs.git --recursive --depth=1Prerequisites: setup docker with the nvidia container toolkit.
I provide a convenient docker image, published at dubiouscactus/cudags:latest.
You can build it with this command: docker build --rm -t cudags ..
To run it, you need to mount the data volume in a specific path because the dataset comes with symbolic links for my system:
docker run -it --runtime=nvidia \
--gpus all \
--shm-size=64gb \
--mount type=bind,src=<path/to/datasets/root>,dst=/home/cactus/Data/Blender \
--mount type=bind,src=.,dst=/home/ \
cuda-gs:latestI typically mount the repository to /home/ so I can experiment in my docker image, and that way you have direct access to the output models.
For any other setup, refer to the original 3DGS repo.
For our experiments, I provide shell scripts which are self explanatory.
For static scenes, we want to evaluate our method against the baseline (3DGS) in various settings: random init, COLMAP init, COLMAP dense init, etc.
To run XP1, you must:
- Set whether this is the baseline or not with this env var:
IS_BASELINE=1. - Set the model initialization with this env var:
MODEL_INIT=<init_type>. Must be one oftrue,random,random_ours,colmap,colmap_dense. For our synthetic scenes, we userandom_ours. - Call the script (
run_exp_1_ours.shorrun_exp_1_general.shdepending on the benchmark):
./scripts/run_exp_1_ours.sh <dataset_root> <scene> <white_bg> <method_name> <exp_name>
This will loop over 8 frames and synchronize the experiment to wandb.ai. For the
experiment name, please use <init>-<method> such as random-baseline or random-ours, etc.
For our method, you will need the motion masks which can be generated with our script. To make things easier, you can run it standalone (no virtual environment required) with uv:
uv run scripts/export_motion_masks.py --helpIf you use this work, please cite:
@inproceedings{morales2026truncgradgs,
title = {TruncGradGS: Improved 3D Gaussian Splatting via Truncated Gradient Updates},
author = {Morales, Th{\'e}o and Le-Pham, Nhat-Quynh and Atkins, Robin and Hua, Binh-Son},
booktitle = {Proceedings of Pacific Graphics 2026},
year = {2026},
publisher = {The Eurographics Association},
eprint = {2609.03534},
archivePrefix = {arXiv},
primaryClass = {cs.CV}
}