Skip to content

ucla-mobility/EnerGS

Repository files navigation

EnerGS

paper

[ICML 2026] EnerGS: Energy-Based Gaussian Splatting with Partial Geometric Priors

Rui Song1,2, Tianhui Cai1, Markus Gross3, Yun Zhang1, Walter Zimmer1, Zhiyu Huang1, Olaf Wysocki2, Jiaqi Ma1

1University of California, Los Angeles    2University of Cambridge    3Technical University of Munich

overview

Overview

EnerGS reformulates partial geometric supervision in 3D Gaussian Splatting as a continuous energy field that provides soft, observability-aware guidance during optimization. Instead of treating LiDAR (or any partial geometric prior) as a hard constraint, EnerGS partitions space into Occupied / Free / Unknown regions and induces an adaptive potential landscape over them, enabling robust reconstruction in LiDAR-blind but camera-visible areas while still rejecting floaters in certified free space.

Installation

1. Clone the repository

git clone --recursive https://github.com/ucla-mobility/EnerGS.git
cd EnerGS

2. Create the conda environment

Option A: Provided environment file (CUDA 12.1)

conda env create -f gs_cuda12.yaml
conda activate gs_cuda12

Option B: Manual setup

conda create -n energs python=3.10
conda activate energs

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install plyfile tqdm scipy numpy pillow lpips

3. Build the CUDA extensions

pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
pip install submodules/fused-ssim  # optional, faster SSIM

Data Preparation

EnerGS expects:

  1. A standard 3DGS-style COLMAP scene.
  2. A pre-computed geometric field cache field_cache.npz (Euclidean Distance Transform + region labels derived from LiDAR ray-tracing). The toolkit that generates this cache will be released alongside the dataset bundle.

Expected layout:

<scene>/
├── images/
├── sparse/0/
│   ├── cameras.bin
│   ├── images.bin
│   └── points3D.bin
└── field_cache.npz   # geometric energy / gradient field

Training

python train_energs.py \
    -s <path/to/scene> \
    -m <output/path> \
    --field_npz <path/to/field_cache.npz> \
    --iterations 30000 \
    --eval

Key EnerGS-specific flags:

Flag Default Description
--energs_w_occ 1.0 Attractor weight in occupied space
--energs_sigma_occ 1.0 Welsch kernel bandwidth (m) in occupied space
--energs_w_unk 0.25 Weak attractor weight in unknown space
--energs_barrier_lambda 2.0 Boltzmann/Softplus barrier strength in free space
--energs_relax_lr 0.005 Geometric relax step size η_μ
--energs_prune_free False Enable discrete FREE-space pruning

Rendering and Evaluation

python render.py  -m <output/path>
python metrics.py -m <output/path>

Reported metrics include PSNR / SSIM (photometry) and Leak / OccCov / Margin / Thick (geometry), measured against a unified voxelized occupancy field derived from LiDAR.

Project Structure

EnerGS/
├── train_energs.py        # Main training entrypoint
├── render.py              # Novel-view rendering
├── metrics.py             # PSNR / SSIM / geometry metrics
├── energs/                # EnerGS core module
│   ├── geometric_energy.py    # E_occ / E_free / E_unk and gradient field
│   ├── gaussian_model.py      # GaussianModelEnerGS (decoupled update)
│   └── coverage.py            # Coverage modulation / FREE pruning
├── scene/                 # Scene loading (COLMAP + field cache)
├── gaussian_renderer/     # Differentiable rasterization wrappers
├── arguments/             # CLI argument definitions
└── submodules/            # CUDA extensions

Acknowledgments

EnerGS is built on top of 3D Gaussian Splatting by Kerbl et al. We thank the authors of 3DGS, 2DGS, Taming-3DGS, GeoGaussian, Mip-Splatting, Scaffold-GS, Street Gaussians, SplatAD, and the broader Gaussian Splatting community for releasing their code.

Citation

If you find this repository useful for your research, please consider giving us a star and citing our paper.

@inproceedings{song2026energs,
  title={EnerGS: Energy-Based Gaussian Splatting with Partial Geometric Priors},
  author={Song, Rui and Cai, Tianhui and Gross, Markus and Zhang, Yun and Zimmer, Walter and Huang, Zhiyu and Wysocki, Olaf and Ma, Jiaqi},
  booktitle={Proceedings of the International Conference on Machine Learning (ICML)},
  year={2026}
}

About

[ICML 2026] EnerGS for 3D Rconstruction with Partial Geometric Priors

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors