MCPcopy Index your code
hub / github.com/JasonLSC/GSCodec_Studio

github.com/JasonLSC/GSCodec_Studio @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,412 symbols 5,352 edges 148 files 497 documented · 35%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

Teaser

News

June 5, 2025: The paper about this framework has been released on arXiv.

Installation

Repo. & Environment

Please first clone the repository and cd to the root directory.

git clone --recursive https://git.mpeg.expert/MPEG/Explorations/GSC/gsc-software/gscodec_studio.git
cd GSCodec_Studio

If you are interested in MPEG GSC Video Anchor, please check out related repository:

git checkout MPEG152_video_anchor_1f_vid

Set up conda environment.

# Make a conda environment
conda create --name gscodec_studio python=3.10
conda activate gscodec_studio

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.

pip install .

If you want to do further development based on this framework, you use following command to install Python packages in editable mode.

pip install -e . # (develop)

Examples

Preparations

Same as gsplat, we need to install some extra dependencies and download the relevant datasets before the evaluation.

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 and place these datasets under 'data' folder.

# place other dataset, e.g Tanks and Temples dataset, under 'data' folder
ln -s /xxxx/Dataset/tandt data/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.

cd ..
pip install third_party/python-fpnge-master
pip install third_party/gridencoder

If you are interested in post-training compression, you also need to install library for vector quantization and plas sorting, before running scripts.

# refer to https://github.com/DeMoriarty/TorchPQ?tab=readme-ov-file#install to see how to install TorchPQ

# install original implementation of PLAS
pip install git+https://github.com/fraunhoferhhi/PLAS.git

MPEG GSC Activities

If you are interested in MPEG GSC activities, you can find related descriptions in this file. This covers how to run Video-based anchor, how to perform pre and post-processing of Gaussian Splats, and how to conduct Quality Assessment after completing compression experiments.

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.

# Tanks and Temples dataset
bash benchmarks/compression/final_exp/mcmc_tt_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.

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

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.

cd examples
bash benchmarks/load_ply_and_render.sh

Contributors

This project is developed by the following contributors:

  • Sicheng Li: jasonlisicheng@zju.edu.cn
  • Chengzhen Wu: chengzhenwu@zju.edu.cn
  • Zhiwei Zhu: zhuzhiwei21@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.

Core symbols most depended-on inside this repo

get
called by 165
gsplat/compression/post_training/codecs/__init__.py
write
called by 58
examples/helper/STG/general_utils.py
run
called by 47
gsplat/compression_simulation/runtime.py
update
called by 45
examples/simple_viewer_dyn.py
step
called by 33
gsplat/optimizers/selective_adam.py
focal2fov
called by 33
examples/helper/STG/graphics_utils.py
state_dict
called by 30
gsplat/compression_simulation/mask.py
_make_lazy_cuda_func
called by 26
gsplat/cuda/_wrapper.py

Shape

Function 643
Method 582
Class 186
Enum 1

Languages

Python100%
C++1%

Modules by API surface

gsplat/compression_simulation/simulation.py52 symbols
gsplat/cuda/_wrapper.py47 symbols
examples/simple_trainer_old.py39 symbols
gsplat/compression_simulation/mask.py34 symbols
gsplat/compression_simulation/runtime.py33 symbols
gsplat/compression/yuv_compression.py33 symbols
examples/simple_trainer_dyngs.py31 symbols
examples/codec_ply_sequence.py31 symbols
gsplat/compression/entropy_coding_compression.py30 symbols
gsplat/compression/seq_hevc_compression.py29 symbols
gsplat/compression_simulation/entropy_model.py25 symbols
examples/simple_trainer.py25 symbols

For agents

$ claude mcp add GSCodec_Studio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact