MEGS²: Memory-Efficient Gaussian Splatting via Spherical Gaussians and Unified Pruning (ICLR 2026)
February 8, 2026 · View on GitHub
Jiarui Chen1*, Yikeng Chen1,2*, Yingshuang Zou1, Ye Huang3, Peng Wang4, Yuan Liu1, Yujing Sun5, Wenping Wang6
1 The Hong Kong University of Science and Technology 2 Shenzhen University 3 Sun Yat-sen University 4 Adobe 5 Nanyang Technological University 6 Texas A&M University
We introduce MEGS², a new framework that makes 3D Gaussian Splatting truly memory-efficient for real-time rendering.

NEWS
- Feb. 7, 2026: We released our full training code and scripts, which we modified from GaussianSpa.
- Sept.24, 2025: We released our WebGL viewer code, which we modified from the repository (Kwok & Ye) to support both Spherical Gaussians and 3rd-order Spherical Harmonics.
- Sept. 7, 2025: We released our paper.
Environment Setup
This code has been tested on RTX3090 with CUDA 11.7. Follow the steps below to set up the environment.
1. Clone the repository
The repository contains submodules, please check it out with
# HTTPS
git clone https://github.com/IGL-HKUST/MEGS-2.git --recursive
2. Setup environment
conda create -n MEGS2 python=3.7
conda activate MEGS2
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt
3. Download datasets
Download datasets Mip-360 and Tanks&Temples and Deep Blending. The expected folder structure is:
MEGS-2
├──eval.sh
└── ...
Dataset
├── drjohnson
├── playroom
├── bicycle
├── bonsai
├── counter
├── flowers
├── garden
├── kitchen
├── room
├── stump
├── treehill
├── train
└── truck
Inference
cd MEGS-2
bash eval.sh
Command Line Arguments
--prune_ratio1
Ratios for pruning points at the simplifying iteration1.
--prune_ratio2
Ratios for spasifying/pruning points at the sparisifying stop iteration.
--sharpness_ratio
Ratios for spasifying Gaussian lobes at the sparisifying iteration.
--sharpness_threshold
Threshold for pruning Gaussian lobes at the sparisifying stop iteration.
--optimizing_spa_interval
Interval to perform the “sparsifying” step every fixed number of iterations
Other arguments are similar to offical 3DGS and Mini-Splatting and GaussianSpa.
WebGL Viewer
1.Download node and npm
You can download node and npm by following the guidance from Node.js
2.Download http-server
For installation:
npm install http-server -g
3.Run in the browser
First, you need to place the .ply file in the WebGL_viewer folder, or directly modify the url path index in the main() function of the .js file to ensure it points to the correct path.
Then, you need to select the corresponding .js file in the .html file. Among them, main_sg.js is used to run Gaussian with Gaussian Lobes attribute in MEGS-2, while main_sh.js is for running the vanilla Gaussian. Unlike the previous repository (Kwok & Ye), we have added support for third-order SH coefficients, which therefore imposes a heavier burden on the device during runtime.
Finally, run the following command:
cd WebGL_viewer
http-server
TODO
- Release our WebGL viewer code (with support for various devices)
- Release our training code
Citation
If you find this work useful, please cite our paper:
@article{chen2025MEGS²,
title={MEGS²: Memory-Efficient Gaussian Splatting via Spherical Gaussians and Unified Pruning},
author={Jiarui Chen and Yikeng Chen and Yingshuang Zou and Ye Huang and Peng Wang and Yuan Liu and Yujing Sun and Wenping Wang},
year={2025},
eprint={2509.07021},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2509.07021},
}