{"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/sa-gs-scale-adaptive-gaussian-splatting-for","title":"SA-GS: Scale-Adaptive Gaussian Splatting for Training-Free Anti-Aliasing","arxiv_id":"2403.19615","date":"2024-03-28","proceeding":null,"authors":["Xiaowei Song","Jv Zheng","Shiran Yuan","Huan-ang Gao","Jingwei Zhao","Xiang He","Weihao Gu","Hao Zhao"],"abstract":"In this paper, we present a Scale-adaptive method for Anti-aliasing Gaussian Splatting (SA-GS). While the state-of-the-art method Mip-Splatting needs modifying the training procedure of Gaussian splatting, our method functions at test-time and is training-free. Specifically, SA-GS can be applied to any pretrained Gaussian splatting field as a plugin to significantly improve the field's anti-alising performance. The core technique is to apply 2D scale-adaptive filters to each Gaussian during test time. As pointed out by Mip-Splatting, observing Gaussians at different frequencies leads to mismatches between the Gaussian scales during training and testing. Mip-Splatting resolves this issue using 3D smoothing and 2D Mip filters, which are unfortunately not aware of testing frequency. In this work, we show that a 2D scale-adaptive filter that is informed of testing frequency can effectively match the Gaussian scale, thus making the Gaussian primitive distribution remain consistent across different testing frequencies. When scale inconsistency is eliminated, sampling rates smaller than the scene frequency result in conventional jaggedness, and we propose to integrate the projected 2D Gaussian within each pixel during testing. This integration is actually a limiting case of super-sampling, which significantly improves anti-aliasing performance over vanilla Gaussian Splatting. Through extensive experiments using various settings and both bounded and unbounded scenes, we show SA-GS performs comparably with or better than Mip-Splatting. Note that super-sampling and integration are only effective when our scale-adaptive filtering is activated. Our codes, data and models are available at https://github.com/zsy1987/SA-GS.","url_abs":"https://arxiv.org/abs/2403.19615v1","url_pdf":"https://arxiv.org/pdf/2403.19615v1.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":"sa-gs-scale-adaptive-gaussian-splatting-for","repo_url":"https://github.com/zsy1987/sa-gs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[{"method_slug":"aware","method_name":"AWARE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.19615","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.19615"}},"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/zsy1987/sa-gs","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":7,"ran_honours":1,"unverified":1},"by_repo_kind":{"official":{"samples":9,"ran":8,"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":0,"samples":[{"code_sha256_prefix":"ef629806ceb3aa84","entry":"down2","repo":"zsy1987/sa-gs","repo_kind":"official","path":"convert_blender_data.py","file_url":"https://github.com/zsy1987/sa-gs/blob/HEAD/convert_blender_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ef629806ceb3aa84"}},{"code_sha256_prefix":"c56b7ef16f309a45","entry":"gaussian","repo":"zsy1987/sa-gs","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/zsy1987/sa-gs/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"1062706373562fdb","entry":"get_render_cams","repo":"zsy1987/sa-gs","repo_kind":"official","path":"render_custom.py","file_url":"https://github.com/zsy1987/sa-gs/blob/HEAD/render_custom.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1062706373562fdb"}},{"code_sha256_prefix":"04d71d9e264c4dde","entry":"get_train_cams","repo":"zsy1987/sa-gs","repo_kind":"official","path":"render_custom.py","file_url":"https://github.com/zsy1987/sa-gs/blob/HEAD/render_custom.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"04d71d9e264c4dde"}},{"code_sha256_prefix":"ac0e42d6fbcfbbe6","entry":"l1_loss","repo":"zsy1987/sa-gs","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/zsy1987/sa-gs/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ac0e42d6fbcfbbe6"}},{"code_sha256_prefix":"8c3b0f873ba11813","entry":"l2_loss","repo":"zsy1987/sa-gs","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/zsy1987/sa-gs/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8c3b0f873ba11813"}},{"code_sha256_prefix":"afcd7cc27bec2727","entry":"load_renderings","repo":"zsy1987/sa-gs","repo_kind":"official","path":"convert_blender_data.py","file_url":"https://github.com/zsy1987/sa-gs/blob/HEAD/convert_blender_data.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"afcd7cc27bec2727"}},{"code_sha256_prefix":"cdd00787894554b5","entry":"readImages","repo":"zsy1987/sa-gs","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/zsy1987/sa-gs/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cdd00787894554b5"}},{"code_sha256_prefix":"07bd0da29c4dc7bb","entry":"get_network","repo":"zsy1987/sa-gs","repo_kind":"official","path":"lpipsPyTorch/modules/networks.py","file_url":"https://github.com/zsy1987/sa-gs/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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"07bd0da29c4dc7bb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}