{"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/plenoctrees-for-real-time-rendering-of-neural","title":"PlenOctrees for Real-time Rendering of Neural Radiance Fields","arxiv_id":"2103.14024","date":"2021-03-25","proceeding":"ICCV 2021 10","authors":["Alex Yu","RuiLong Li","Matthew Tancik","Hao Li","Ren Ng","Angjoo Kanazawa"],"abstract":"We introduce a method to render Neural Radiance Fields (NeRFs) in real time using PlenOctrees, an octree-based 3D representation which supports view-dependent effects. Our method can render 800x800 images at more than 150 FPS, which is over 3000 times faster than conventional NeRFs. We do so without sacrificing quality while preserving the ability of NeRFs to perform free-viewpoint rendering of scenes with arbitrary geometry and view-dependent effects. Real-time performance is achieved by pre-tabulating the NeRF into a PlenOctree. In order to preserve view-dependent effects such as specularities, we factorize the appearance via closed-form spherical basis functions. Specifically, we show that it is possible to train NeRFs to predict a spherical harmonic representation of radiance, removing the viewing direction as an input to the neural network. Furthermore, we show that PlenOctrees can be directly optimized to further minimize the reconstruction loss, which leads to equal or better quality compared to competing methods. Moreover, this octree optimization step can be used to reduce the training time, as we no longer need to wait for the NeRF training to converge fully. Our real-time neural rendering approach may potentially enable new applications such as 6-DOF industrial and product visualizations, as well as next generation AR/VR systems. PlenOctrees are amenable to in-browser rendering as well; please visit the project page for the interactive online demo, as well as video and code: https://alexyu.net/plenoctrees","url_abs":"https://arxiv.org/abs/2103.14024v2","url_pdf":"https://arxiv.org/pdf/2103.14024v2.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":"plenoctrees-for-real-time-rendering-of-neural","repo_url":"https://github.com/sxyu/plenoctree","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"paper_slug":"plenoctrees-for-real-time-rendering-of-neural","repo_url":"https://github.com/shubhendu-jena/neural-mesh-based-graphics","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"plenoctrees-for-real-time-rendering-of-neural","repo_url":"https://github.com/MaximeVandegar/Papers-in-100-Lines-of-Code/tree/main/PlenOctrees_for_Real_time_Rendering_of_Neural_Radiance_Fields","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"plenoctrees-for-real-time-rendering-of-neural","repo_url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"plenoctrees-for-real-time-rendering-of-neural","repo_url":"https://github.com/sxyu/volrend","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"nerf","task_name":"NeRF"},{"task_slug":"neural-rendering","task_name":"Neural Rendering"},{"task_slug":"novel-view-synthesis","task_name":"Novel View Synthesis"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.14024","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.14024"}},"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/sxyu/plenoctree","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sxyu/volrend","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/shubhendu-jena/neural-mesh-based-graphics","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MaximeVandegar/Papers-in-100-Lines-of-Code/tree/main/PlenOctrees_for_Real_time_Rendering_of_Neural_Radiance_Fields","reach":null}],"summary":{"ran_draft_wrong":3,"ran":3,"unverified":7},"by_repo_kind":{"official":{"samples":7,"ran":1,"repositories":1},"listed":{"samples":6,"ran":5,"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":"961e4858abd50485","entry":"ComputeSH","repo":"suoxinkey/PlenOctrees_NeRF-SH","repo_kind":"listed","path":"modeling/spacenet.py","file_url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH/blob/HEAD/modeling/spacenet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"961e4858abd50485"}},{"code_sha256_prefix":"118360ca96b82409","entry":"DenseLayer","repo":"suoxinkey/PlenOctrees_NeRF-SH","repo_kind":"listed","path":"modeling/spacenet.py","file_url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH/blob/HEAD/modeling/spacenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"118360ca96b82409"}},{"code_sha256_prefix":"985be58f00d5d5dc","entry":"SpaceNet","repo":"suoxinkey/PlenOctrees_NeRF-SH","repo_kind":"listed","path":"modeling/spacenet.py","file_url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH/blob/HEAD/modeling/spacenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"985be58f00d5d5dc"}},{"code_sha256_prefix":"5c0eb0bb07f7c4d5","entry":"Trigonometric_kernel","repo":"suoxinkey/PlenOctrees_NeRF-SH","repo_kind":"listed","path":"modeling/spacenet.py","file_url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH/blob/HEAD/modeling/spacenet.py","link_basis":"first_harvest_node","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":"5c0eb0bb07f7c4d5"}},{"code_sha256_prefix":"6a06392b5d8a30ca","entry":"dense_layer","repo":"sxyu/plenoctree","repo_kind":"official","path":"octree/nerf/model_utils.py","file_url":"https://github.com/sxyu/plenoctree/blob/HEAD/octree/nerf/model_utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6a06392b5d8a30ca"}},{"code_sha256_prefix":"4600902bb4439578","entry":"get_embedder","repo":"suoxinkey/PlenOctrees_NeRF-SH","repo_kind":"listed","path":"modeling/spacenet.py","file_url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH/blob/HEAD/modeling/spacenet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4600902bb4439578"}},{"code_sha256_prefix":"73b45a7ea6ac09e9","entry":"auto_scale","repo":"sxyu/plenoctree","repo_kind":"official","path":"octree/extraction.py","file_url":"https://github.com/sxyu/plenoctree/blob/HEAD/octree/extraction.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"73b45a7ea6ac09e9"}},{"code_sha256_prefix":"63673f823b637957","entry":"cast_rays","repo":"sxyu/plenoctree","repo_kind":"official","path":"nerf_sh/nerf/model_utils.py","file_url":"https://github.com/sxyu/plenoctree/blob/HEAD/nerf_sh/nerf/model_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"63673f823b637957"}},{"code_sha256_prefix":"e51ca9b39922f7d2","entry":"computeRGB","repo":"suoxinkey/PlenOctrees_NeRF-SH","repo_kind":"listed","path":"modeling/spacenet.py","file_url":"https://github.com/suoxinkey/PlenOctrees_NeRF-SH/blob/HEAD/modeling/spacenet.py","link_basis":"first_harvest_node","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":"e51ca9b39922f7d2"}},{"code_sha256_prefix":"c527f39512491ca6","entry":"posenc","repo":"sxyu/plenoctree","repo_kind":"official","path":"nerf_sh/nerf/model_utils.py","file_url":"https://github.com/sxyu/plenoctree/blob/HEAD/nerf_sh/nerf/model_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c527f39512491ca6"}},{"code_sha256_prefix":"85c8efa3dca48076","entry":"posenc","repo":"sxyu/plenoctree","repo_kind":"official","path":"octree/nerf/model_utils.py","file_url":"https://github.com/sxyu/plenoctree/blob/HEAD/octree/nerf/model_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"85c8efa3dca48076"}},{"code_sha256_prefix":"f7d4878a6f883a8d","entry":"restore_model_state","repo":"sxyu/plenoctree","repo_kind":"official","path":"octree/nerf/models.py","file_url":"https://github.com/sxyu/plenoctree/blob/HEAD/octree/nerf/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"f7d4878a6f883a8d"}},{"code_sha256_prefix":"f126e5167d10b39d","entry":"sample_along_rays","repo":"sxyu/plenoctree","repo_kind":"official","path":"nerf_sh/nerf/model_utils.py","file_url":"https://github.com/sxyu/plenoctree/blob/HEAD/nerf_sh/nerf/model_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"f126e5167d10b39d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}