An open-source library for computer-generated holography using primitives.
Suyeon Choi*, Brian Chao*, Jacqueline Yang, Manu Gopakumar, Gordon Wetzstein
*denotes equal contribution
Install PyTorch first, and then load the submodules in the gsplat folder with:
git submodule init
git submodule update
Download Mip-NeRF 360 and NeRF synthetic dataset in hsplat/data folder.
Using gsplat, you can generate new scenes and store Gaussians in the hsplat/models folder, but we also provide pre-optimized Gaussians so that you can run the code out of the box. Download them from here and place them in the hsplat/models folder.
The code is organized as follows:
- The
dsplatfolder contains the phase encoding function (e.g., DPAC) for the SLMs, from the complex-valued wavefront output ofhsplat. - The
gsplatfolder contains the gsplat library. - The
hsplatfolder contains CGH algorithm implementations using primitives.
To run our Gaussian Wave Splatting algorithm, run:
bash scripts/main_gws_light.sh
To run CGH algorithms for other primitives, run
bash scripts/main_pc.sh # point cloud
bash scripts/main_meshes.sh # polygon-based CGH
bash scripts/main_gws.sh # GWS matcinhg number of primitives
If you find our work useful in your research, please cite:
@article{choi2025gaussian,
title={Gaussian wave splatting for computer-generated holography},
author={Choi, Suyeon and Chao, Brian and Yang, Jacqueline and Gopakumar, Manu and Wetzstein, Gordon},
journal={ACM Transactions on Graphics (TOG)},
volume={44},
number={4},
pages={1--13},
year={2025},
publisher={ACM New York, NY, USA}
}
If you have any questions, please feel free to email Suyeon Choi and Brian Chao.
