{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/compressed-3d-gaussian-splatting-for","title":"Compressed 3D Gaussian Splatting for Accelerated Novel View Synthesis","arxiv_id":"2401.02436","date":"2023-11-17","proceeding":"CVPR 2024 1","authors":["Simon Niedermayr","Josef Stumpfegger","Rüdiger Westermann"],"abstract":"Recently, high-fidelity scene reconstruction with an optimized 3D Gaussian splat representation has been introduced for novel view synthesis from sparse image sets. Making such representations suitable for applications like network streaming and rendering on low-power devices requires significantly reduced memory consumption as well as improved rendering efficiency. We propose a compressed 3D Gaussian splat representation that utilizes sensitivity-aware vector clustering with quantization-aware training to compress directional colors and Gaussian parameters. The learned codebooks have low bitrates and achieve a compression rate of up to $31\\times$ on real-world scenes with only minimal degradation of visual quality. We demonstrate that the compressed splat representation can be efficiently rendered with hardware rasterization on lightweight GPUs at up to $4\\times$ higher framerates than reported via an optimized GPU compute pipeline. Extensive experiments across multiple datasets demonstrate the robustness and rendering speed of the proposed approach.","url_abs":"https://arxiv.org/abs/2401.02436v2","url_pdf":"https://arxiv.org/pdf/2401.02436v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"compressed-3d-gaussian-splatting-for","repo_url":"https://github.com/KeKsBoTer/c3dgs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":null,"task_name":"GPU"},{"task_slug":"novel-view-synthesis","task_name":"Novel View Synthesis"},{"task_slug":"quantization","task_name":"Quantization"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/novel-view-synthesis-on-mip-nerf-360","task":"Novel View Synthesis","dataset":"Mip-NeRF 360","model":"Compressed 3D Gaussian Splatting","rank_in_archive_order":9,"of":14,"metrics":{"LPIPS":"0.238","PSNR":"26.98","SSIM":"0.80"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2401.02436","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.02436"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/KeKsBoTer/c3dgs","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran_honours":1,"ran":6,"unverified":3},"by_repo_kind":{"official":{"samples":10,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":10,"samples":[{"code_sha256_prefix":"c56b7ef16f309a45","entry":"gaussian","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/utils/loss_utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"ac0e42d6fbcfbbe6","entry":"l1_loss","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/utils/loss_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ac0e42d6fbcfbbe6"}},{"code_sha256_prefix":"8c3b0f873ba11813","entry":"l2_loss","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/utils/loss_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c3b0f873ba11813"}},{"code_sha256_prefix":"3a8bc0b60256c75d","entry":"mortonEncode","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"scene/gaussian_model.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/scene/gaussian_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"3a8bc0b60256c75d"}},{"code_sha256_prefix":"1dab900b2adbe38e","entry":"normalize_activation","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"lpipsPyTorch/modules/utils.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/lpipsPyTorch/modules/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1dab900b2adbe38e"}},{"code_sha256_prefix":"cdd00787894554b5","entry":"readImages","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/metrics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cdd00787894554b5"}},{"code_sha256_prefix":"cfe5b4cc9c47281f","entry":"splitBy3","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"scene/gaussian_model.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/scene/gaussian_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"cfe5b4cc9c47281f"}},{"code_sha256_prefix":"07bd0da29c4dc7bb","entry":"get_network","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"lpipsPyTorch/modules/networks.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/lpipsPyTorch/modules/networks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"07bd0da29c4dc7bb"}},{"code_sha256_prefix":"b06f27c08cf5d0ca","entry":"get_state_dict","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"lpipsPyTorch/modules/utils.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/lpipsPyTorch/modules/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b06f27c08cf5d0ca"}},{"code_sha256_prefix":"72363ba7e3067c9e","entry":"join_features","repo":"KeKsBoTer/c3dgs","repo_kind":"official","path":"compression/vq.py","file_url":"https://github.com/KeKsBoTer/c3dgs/blob/HEAD/compression/vq.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"72363ba7e3067c9e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}