{"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/neus-learning-neural-implicit-surfaces-by","title":"NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction","arxiv_id":"2106.10689","date":"2021-06-20","proceeding":"NeurIPS 2021 12","authors":["Peng Wang","Lingjie Liu","YuAn Liu","Christian Theobalt","Taku Komura","Wenping Wang"],"abstract":"We present a novel neural surface reconstruction method, called NeuS, for reconstructing objects and scenes with high fidelity from 2D image inputs. Existing neural surface reconstruction approaches, such as DVR and IDR, require foreground mask as supervision, easily get trapped in local minima, and therefore struggle with the reconstruction of objects with severe self-occlusion or thin structures. Meanwhile, recent neural methods for novel view synthesis, such as NeRF and its variants, use volume rendering to produce a neural scene representation with robustness of optimization, even for highly complex objects. However, extracting high-quality surfaces from this learned implicit representation is difficult because there are not sufficient surface constraints in the representation. In NeuS, we propose to represent a surface as the zero-level set of a signed distance function (SDF) and develop a new volume rendering method to train a neural SDF representation. We observe that the conventional volume rendering method causes inherent geometric errors (i.e. bias) for surface reconstruction, and therefore propose a new formulation that is free of bias in the first order of approximation, thus leading to more accurate surface reconstruction even without the mask supervision. Experiments on the DTU dataset and the BlendedMVS dataset show that NeuS outperforms the state-of-the-arts in high-quality surface reconstruction, especially for objects and scenes with complex structures and self-occlusion.","url_abs":"https://arxiv.org/abs/2106.10689v3","url_pdf":"https://arxiv.org/pdf/2106.10689v3.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":"neus-learning-neural-implicit-surfaces-by","repo_url":"https://github.com/Totoro97/NeuS","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"neus-learning-neural-implicit-surfaces-by","repo_url":"https://github.com/cvg/nice-slam","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"neus-learning-neural-implicit-surfaces-by","repo_url":"https://github.com/ishanchadha01/lightneus","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"neus-learning-neural-implicit-surfaces-by","repo_url":"https://github.com/mli0603/blenderneuralangelo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"neus-learning-neural-implicit-surfaces-by","repo_url":"https://github.com/sanowar-raihan/meta-neus","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"neus-learning-neural-implicit-surfaces-by","repo_url":"https://github.com/ventusff/neurecon","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"neus-learning-neural-implicit-surfaces-by","repo_url":"https://github.com/PJLab-ADG/neuralsim/blob/main/docs/methods/neus_in_10_minutes.md","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"nerf","task_name":"NeRF"},{"task_slug":"novel-view-synthesis","task_name":"Novel View Synthesis"},{"task_slug":"surface-reconstruction","task_name":"Surface Reconstruction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/novel-view-synthesis-on-refref","task":"Novel View Synthesis","dataset":"RefRef","model":"NeuS","rank_in_archive_order":6,"of":8,"metrics":{"Average PSNR (dB)":"19.62"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.10689","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.10689"}},"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/ventusff/neurecon","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Totoro97/NeuS","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PJLab-ADG/neuralsim/blob/main/docs/methods/neus_in_10_minutes.md","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sanowar-raihan/meta-neus","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cvg/nice-slam","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mli0603/blenderneuralangelo","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ishanchadha01/lightneus","reach":null}],"summary":{"ran_honours":2,"ran_draft_wrong":5,"ran_fixture":1,"unverified":8},"by_repo_kind":{"official":{"samples":8,"ran":4,"repositories":1},"listed":{"samples":8,"ran":4,"repositories":3}},"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":"967d31403271a227","entry":"cdf_Phi_s","repo":"ventusff/neurecon","repo_kind":"listed","path":"models/frameworks/neus.py","file_url":"https://github.com/ventusff/neurecon/blob/HEAD/models/frameworks/neus.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"967d31403271a227"}},{"code_sha256_prefix":"1f2fc3e977362a4d","entry":"extract_fields","repo":"Totoro97/NeuS","repo_kind":"official","path":"models/renderer.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/models/renderer.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1f2fc3e977362a4d"}},{"code_sha256_prefix":"bb0e12df9c0d2a05","entry":"get_embedder","repo":"Totoro97/NeuS","repo_kind":"official","path":"models/embedder.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/models/embedder.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bb0e12df9c0d2a05"}},{"code_sha256_prefix":"8a38e306ff4c5b42","entry":"read_cameras_text","repo":"Totoro97/NeuS","repo_kind":"official","path":"preprocess_custom_data/colmap_preprocess/colmap_read_model.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/preprocess_custom_data/colmap_preprocess/colmap_read_model.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8a38e306ff4c5b42"}},{"code_sha256_prefix":"56858e04e6fdb2ff","entry":"read_next_bytes","repo":"Totoro97/NeuS","repo_kind":"official","path":"preprocess_custom_data/colmap_preprocess/colmap_read_model.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/preprocess_custom_data/colmap_preprocess/colmap_read_model.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"56858e04e6fdb2ff"}},{"code_sha256_prefix":"dad6efeeea24fad9","entry":"sample_pdf","repo":"ishanchadha01/lightneus","repo_kind":"listed","path":"models/renderer.py","file_url":"https://github.com/ishanchadha01/lightneus/blob/HEAD/models/renderer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dad6efeeea24fad9"}},{"code_sha256_prefix":"7bf297619343c144","entry":"sdf_to_alpha","repo":"ventusff/neurecon","repo_kind":"listed","path":"models/frameworks/neus.py","file_url":"https://github.com/ventusff/neurecon/blob/HEAD/models/frameworks/neus.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7bf297619343c144"}},{"code_sha256_prefix":"caee1b0439b2c3e5","entry":"sdf_to_w","repo":"ventusff/neurecon","repo_kind":"listed","path":"models/frameworks/neus.py","file_url":"https://github.com/ventusff/neurecon/blob/HEAD/models/frameworks/neus.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"caee1b0439b2c3e5"}},{"code_sha256_prefix":"d76caca25c942469","entry":"build_shapenet","repo":"sanowar-raihan/meta-neus","repo_kind":"listed","path":"datasets/shapenet.py","file_url":"https://github.com/sanowar-raihan/meta-neus/blob/HEAD/datasets/shapenet.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":"d76caca25c942469"}},{"code_sha256_prefix":"1dca0b455d2dd9a8","entry":"create_posemat","repo":"sanowar-raihan/meta-neus","repo_kind":"listed","path":"vis/object_rendering.py","file_url":"https://github.com/sanowar-raihan/meta-neus/blob/HEAD/vis/object_rendering.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":"1dca0b455d2dd9a8"}},{"code_sha256_prefix":"b547a755ccf17ef4","entry":"get_360_poses","repo":"sanowar-raihan/meta-neus","repo_kind":"listed","path":"vis/object_rendering.py","file_url":"https://github.com/sanowar-raihan/meta-neus/blob/HEAD/vis/object_rendering.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":"b547a755ccf17ef4"}},{"code_sha256_prefix":"69986a1a9ebdac78","entry":"load_K_Rt_from_P","repo":"Totoro97/NeuS","repo_kind":"official","path":"models/dataset.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/models/dataset.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":"69986a1a9ebdac78"}},{"code_sha256_prefix":"a3e32109361b1697","entry":"load_data","repo":"Totoro97/NeuS","repo_kind":"official","path":"preprocess_custom_data/colmap_preprocess/pose_utils.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/preprocess_custom_data/colmap_preprocess/pose_utils.py","link_basis":"plan_row","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":"a3e32109361b1697"}},{"code_sha256_prefix":"567061f23c36a283","entry":"minify_v0","repo":"Totoro97/NeuS","repo_kind":"official","path":"preprocess_custom_data/colmap_preprocess/pose_utils.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/preprocess_custom_data/colmap_preprocess/pose_utils.py","link_basis":"plan_row","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":"567061f23c36a283"}},{"code_sha256_prefix":"3d7e294ff8567d46","entry":"read_cameras_binary","repo":"Totoro97/NeuS","repo_kind":"official","path":"preprocess_custom_data/colmap_preprocess/colmap_read_model.py","file_url":"https://github.com/Totoro97/NeuS/blob/HEAD/preprocess_custom_data/colmap_preprocess/colmap_read_model.py","link_basis":"plan_row","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":"3d7e294ff8567d46"}},{"code_sha256_prefix":"9eef5b142b6f34a7","entry":"synthesize_views","repo":"sanowar-raihan/meta-neus","repo_kind":"listed","path":"vis/object_rendering.py","file_url":"https://github.com/sanowar-raihan/meta-neus/blob/HEAD/vis/object_rendering.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":"9eef5b142b6f34a7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}