This repository contains the code for the extension to image representation proposed in Section 6.1.4 of Learning View-Dependent Splatting Kernels. We represent a single 2D image with learned 2D primitives and neural rasterization.
For comparison, we reproduce Gabor Splatting for High-Quality Gigapixel Image Representations on the same 2D Gaussian Splatting codebase, and evaluate image reconstruction quality against our neural 2D kernel under matching parameter budgets. Specifically, we set the latent 3D dimension of our method to 1, while Gabor Splatting uses its default configuration with two additional frequency parameters. The resulting per-primitive parameter ratio is 10:11 (ours vs. Gabor), so we set the primitive count ratio to 11:10 to ensure a fair comparison.
The tested setup uses Python 3.9, PyTorch 2.5.1 (cu124 wheel), a CUDA 12.x
compiler, and local CUDA extensions under submodules/.
Clone with submodules enabled:
git clone <repo-url> --recursive
cd 2dsplatIf the repository was cloned without submodules:
git submodule update --init --recursiveconda env create -f environment.yml
conda activate 2dsplat
pip install -r requirements.txtRun the full baboon smoke test: first pretrain the neural rasterizer for 15000 iterations, then fit the image for 10000 iterations with our method and the Gabor baseline.
bash script/run_pretrain15000_then_compare.sh ./data/baboon.jpg quickstart_baboon 1000 1.0Outputs are written under:
output/quickstart_baboon/
The script generates checkpoints, validation images, training videos, validation videos, and primitive visualization videos.
Cite as below if you find this repository is helpful to your project:
@inproceedings{ding2026kernel,
title = {Learning View-Dependent Splatting Kernels},
author = {Huakeng Ding and Zhangpeng Liu and Fan Pei and Kun Zhou and Hongzhi Wu},
booktitle = {SIGGRAPH 2026 Conference Papers},
year = {2026}
}
We have intensively borrowed code from gaussian splatting and 3D Gabor Splatting. Many thanks to the authors for sharing their codes.