{"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/v-3-viewing-volumetric-videos-on-mobiles-via","title":"V^3: Viewing Volumetric Videos on Mobiles via Streamable 2D Dynamic Gaussians","arxiv_id":"2409.13648","date":"2024-09-20","proceeding":null,"authors":["Penghao Wang","Zhirui Zhang","Liao Wang","Kaixin Yao","Siyuan Xie","Jingyi Yu","Minye Wu","Lan Xu"],"abstract":"Experiencing high-fidelity volumetric video as seamlessly as 2D videos is a long-held dream. However, current dynamic 3DGS methods, despite their high rendering quality, face challenges in streaming on mobile devices due to computational and bandwidth constraints. In this paper, we introduce V^3 (Viewing Volumetric Videos), a novel approach that enables high-quality mobile rendering through the streaming of dynamic Gaussians. Our key innovation is to view dynamic 3DGS as 2D videos, facilitating the use of hardware video codecs. Additionally, we propose a two-stage training strategy to reduce storage requirements with rapid training speed. The first stage employs hash encoding and shallow MLP to learn motion, then reduces the number of Gaussians through pruning to meet the streaming requirements, while the second stage fine tunes other Gaussian attributes using residual entropy loss and temporal loss to improve temporal continuity. This strategy, which disentangles motion and appearance, maintains high rendering quality with compact storage requirements. Meanwhile, we designed a multi-platform player to decode and render 2D Gaussian videos. Extensive experiments demonstrate the effectiveness of V^3, outperforming other methods by enabling high-quality rendering and streaming on common devices, which is unseen before. As the first to stream dynamic Gaussians on mobile devices, our companion player offers users an unprecedented volumetric video experience, including smooth scrolling and instant sharing. Our project page with source code is available at https://authoritywang.github.io/v3/.","url_abs":"https://arxiv.org/abs/2409.13648v2","url_pdf":"https://arxiv.org/pdf/2409.13648v2.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":"v-3-viewing-volumetric-videos-on-mobiles-via","repo_url":"https://github.com/AuthorityWang/VideoGS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3dgs","task_name":"3DGS"}],"methods":[{"method_slug":"pruning","method_name":"Pruning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2409.13648","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.13648"}},"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/AuthorityWang/VideoGS","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_honours":1,"ran":2,"unverified":10},"by_repo_kind":{"listed":{"samples":13,"ran":3,"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":"c56b7ef16f309a45","entry":"gaussian","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"utils/loss_utils.py","file_url":"https://github.com/AuthorityWang/VideoGS/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"ac0e42d6fbcfbbe6","entry":"l1_loss","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"utils/loss_utils.py","file_url":"https://github.com/AuthorityWang/VideoGS/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ac0e42d6fbcfbbe6"}},{"code_sha256_prefix":"8c3b0f873ba11813","entry":"l2_loss","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"utils/loss_utils.py","file_url":"https://github.com/AuthorityWang/VideoGS/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8c3b0f873ba11813"}},{"code_sha256_prefix":"1cb7499d7671fea8","entry":"denormalize_uint16","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"compress/decompress_video_2_ckpt.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/compress/decompress_video_2_ckpt.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1cb7499d7671fea8"}},{"code_sha256_prefix":"7dd44bb86b47efb6","entry":"denormalize_uint8","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"compress/decompress_video_2_ckpt.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/compress/decompress_video_2_ckpt.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7dd44bb86b47efb6"}},{"code_sha256_prefix":"e31a9ca5ec35e095","entry":"entropy_regularization_loss","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"train_dynamic.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/train_dynamic.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e31a9ca5ec35e095"}},{"code_sha256_prefix":"87f73e8bf0b19ac0","entry":"get_attribute","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"prune_gaussian.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/prune_gaussian.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"87f73e8bf0b19ac0"}},{"code_sha256_prefix":"154f4c361d622201","entry":"get_ply_matrix","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"prune_gaussian.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/prune_gaussian.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"154f4c361d622201"}},{"code_sha256_prefix":"96e623af5b067403","entry":"normalize_uint16","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"compress/compress_ckpt_2_image.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/compress/compress_ckpt_2_image.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96e623af5b067403"}},{"code_sha256_prefix":"fc6fcf7c1438e113","entry":"normalize_uint8","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"compress/compress_ckpt_2_image.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/compress/compress_ckpt_2_image.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fc6fcf7c1438e113"}},{"code_sha256_prefix":"bc0ca979e779a1a6","entry":"normalize_uint8_tog","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"compress/compress_ckpt_2_image.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/compress/compress_ckpt_2_image.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc0ca979e779a1a6"}},{"code_sha256_prefix":"74c6a993a0948239","entry":"prepare_output_and_logger","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"train_dynamic.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/train_dynamic.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"74c6a993a0948239"}},{"code_sha256_prefix":"a52be4820c08e12e","entry":"read_video","repo":"AuthorityWang/VideoGS","repo_kind":"listed","path":"compress/decompress_video_2_ckpt.py","file_url":"https://github.com/AuthorityWang/VideoGS/blob/HEAD/compress/decompress_video_2_ckpt.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a52be4820c08e12e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}