gscodec_studio
An open-source framework for Gaussian Splats Compression research
Science Score: 41.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.9%) to scientific vocabulary
Repository
An open-source framework for Gaussian Splats Compression research
Basic Info
Statistics
- Stars: 74
- Watchers: 4
- Forks: 7
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
GSCodec Studio
GSCodec Studio is an open-source framework for Gaussian Splats Compression, including static and dynamic splats representation, reconstruction and compression. It is bulit upon an open-source 3D Gaussian Splatting library gsplat, and extended to support 1) dynamic splats representation, 2) training-time compression simulation, 3) more test-time compression strategies.

News
June 5, 2025: The paper about this framework has been released on arXiv.
Installation
Repo. & Environment
```bash
Clone the repo.
git clone https://github.com/JasonLSC/GSCodecStudio.git --recursive cd GSCodecStudio
Make a conda environment
conda create --name gscodecstudio python=3.10 conda activate gscodecstudio ```
Packages Installation
Please install Pytorch first. Then, you can install the gsplat library extended with more compression features from source code. In this way it will build the CUDA code during installation.
bash
pip install .
If you want to do further development based on this framework, you use following command to install Python packages in editable mode.
bash
pip install -e . # (develop)
Examples
Preparations
Same as gsplat, we need to install some extra dependencies and download the relevant datasets before the evaluation.
```bash cd examples pip install -r requirements.txt
download mipnerf_360 benchmark data
python datasets/download_dataset.py
You can download the Tanks and Temples dataset and Deep Blending dataset used in original 3DGS via [this link](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/datasets/input/tandt_db.zip) and place these datasets under 'data' folder.
bash
place other dataset, e.g Tanks and Temples dataset, under 'data' folder
ln -s data/tandt /xxxx/Dataset/tandt ```
We also use third-party library, 'python-fpnge', to accelerate image saving operations during the experiment for now. We also use third-party library, 'gridencoder', to facilitate hash encoding.
bash
cd ..
pip install third_party/python-fpnge-master
pip install third_party/gridencoder
Before we start running scripts, we also need to install library for vector quantization and plas sorting. ```bash
refer to https://github.com/DeMoriarty/TorchPQ?tab=readme-ov-file#install to see how to install TorchPQ
pip install git+https://github.com/fraunhoferhhi/PLAS.git ```
Static Gaussian Splats Training and Compression
We provide a script that enables more memory-efficient Gaussian splats while maintaining high visual quality, such as representing the Truck scene with only about 8MB of storage. The script includes 1) the static splats training with compression simulation, 2) the compression of trained static splats, and 3) the metric evaluation of uncompressed and compressed static splats.
```bash
Tanks and Temples dataset
bash benchmarks/compression/finalexp/mcmctt_sim.sh ```
Dynamic Gaussian Splats Training and Compression
First, please follow the dataset preprocessing instruction described in this file for training data prepration.
Next, run the script for dynamic gaussian splats training and compression.
bash
cd examples
bash benchmarks/dyngs/dyngs.sh
Extract Per-Frame Static Gaussian from Dynamic Splats
If you finsh the training of dynamic splats, then you can use the script to extract static gaussian splats stored at discrte timesteps in ".ply" file
bash
cd examples
bash benchmarks/dyngs/export_plys.sh
Load .ply File and Render
If you want to directly read and render splats exported as PLY files, you can use the following script.
Note: You need to modify the PLY file path in the scripts.
bash
cd examples
bash benchmarks/load_ply_and_render.sh
Compress Tracked Gaussian Splats Sequences via Video Codec
If you're interested in MPEG Gaussian Splats Coding, we have implemented a simple coding method for compressing temporally tracked Gaussian Splats using Video Codec as the core component. You can try this method using the script below.
bash
cd examples
bash benchmarks/mpeg/video_anchor_bench.sh
To compare with the Point Cloud Compression-based approach in MPEG Gaussian Splats Coding group, we have developed a simple wrapper based on their software. This allows us to evaluate both methods using the same evaluation protocol. You can try the Point Cloud Compression-based approach using the script below.
bash
cd examples
bash benchmarks/mpeg/pcc_anchor_bench.sh
Note:
Before using the scripts mentioned above, please note the following:
1. Please modify the input parameters --ply_dir, --data_dir, and --result_dir in the script to match your local paths.
2. These experiments involve third-party programs, including point cloud codec and QMIV (quality evaluation software). If you need newer versions, you can compile them yourself and replace the current executables under examples/helper.
Contributors
This project is developed by the following contributors:
- Sicheng Li: jasonlisicheng@zju.edu.cn
- Chengzhen Wu: chengzhenwu@zju.edu.cn
If you have any questions about this project, please feel free to contact us.
Acknowledgement
This project is bulit on gsplat. We thank all contributors from gsplat for building such a great open-source project.
Owner
- Name: Sicheng Li
- Login: JasonLSC
- Kind: user
- Location: Hangzhou, Zhejiang
- Company: Zhejiang Univ.
- Repositories: 2
- Profile: https://github.com/JasonLSC
Citation (CITATION.bib)
@article{ye2024gsplatopensourcelibrarygaussian,
title={gsplat: An Open-Source Library for {Gaussian} Splatting},
author={Vickie Ye and Ruilong Li and Justin Kerr and Matias Turkulainen and Brent Yi and Zhuoyang Pan and Otto Seiskari and Jianbo Ye and Jeffrey Hu and Matthew Tancik and Angjoo Kanazawa},
year={2024},
eprint={2409.06765},
journal={arXiv preprint arXiv:2409.06765},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2409.06765},
}
GitHub Events
Total
- Issues event: 2
- Watch event: 63
- Issue comment event: 3
- Push event: 20
- Pull request event: 2
- Fork event: 6
- Create event: 2
Last Year
- Issues event: 2
- Watch event: 63
- Issue comment event: 3
- Push event: 20
- Pull request event: 2
- Fork event: 6
- Create event: 2
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 1
- Total pull requests: 1
- Average time to close issues: 8 days
- Average time to close pull requests: 1 minute
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 1.0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 1
- Average time to close issues: 8 days
- Average time to close pull requests: 1 minute
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 1.0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- zhuzhiwei99 (1)
Pull Request Authors
- SS-hj (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/upload-artifact v3 composite
- actions/checkout v3 composite
- actions/setup-python v5 composite
- actions/checkout v3 composite
- actions/setup-python v3 composite
- peaceiris/actions-gh-pages v4 composite
- actions/checkout v3 composite
- actions/setup-python v5 composite
- peaceiris/actions-gh-pages v3 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- peaceiris/actions-gh-pages v3 composite
- furo *
- sphinx *
- sphinx-copybutton *
- sphinx-design *
- sphinxcontrib-bibtex *
- sphinxcontrib-video *
- Pillow *
- imageio *
- matplotlib *
- nerfview ==0.0.2
- numpy <2.0.0
- opencv-python *
- pyyaml *
- scikit-learn *
- tensorboard *
- tensorly *
- torchmetrics *
- tqdm *
- tyro >=0.8.8
- viser *
- jaxtyping *
- ninja *
- numpy *
- rich >=12
- torch *
- typing_extensions *
- Pillow *
- black *
- numpy *
- opencv-python-headless *
- pytest *