{"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/wildlight-in-the-wild-inverse-rendering-with","title":"WildLight: In-the-wild Inverse Rendering with a Flashlight","arxiv_id":"2303.14190","date":"2023-03-24","proceeding":"CVPR 2023 1","authors":["Ziang Cheng","Junxuan Li","Hongdong Li"],"abstract":"This paper proposes a practical photometric solution for the challenging problem of in-the-wild inverse rendering under unknown ambient lighting. Our system recovers scene geometry and reflectance using only multi-view images captured by a smartphone. The key idea is to exploit smartphone's built-in flashlight as a minimally controlled light source, and decompose image intensities into two photometric components -- a static appearance corresponds to ambient flux, plus a dynamic reflection induced by the moving flashlight. Our method does not require flash/non-flash images to be captured in pairs. Building on the success of neural light fields, we use an off-the-shelf method to capture the ambient reflections, while the flashlight component enables physically accurate photometric constraints to decouple reflectance and illumination. Compared to existing inverse rendering methods, our setup is applicable to non-darkroom environments yet sidesteps the inherent difficulties of explicit solving ambient reflections. We demonstrate by extensive experiments that our method is easy to implement, casual to set up, and consistently outperforms existing in-the-wild inverse rendering techniques. Finally, our neural reconstruction can be easily exported to PBR textured triangle mesh ready for industrial renderers.","url_abs":"https://arxiv.org/abs/2303.14190v1","url_pdf":"https://arxiv.org/pdf/2303.14190v1.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":"wildlight-in-the-wild-inverse-rendering-with","repo_url":"https://github.com/za-cheng/wildlight","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"3d-reconstruction","task_name":"3D Reconstruction"},{"task_slug":"inverse-rendering","task_name":"Inverse Rendering"}],"methods":[],"datasets_introduced":[{"slug":"wildlight","name":"wildlight","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2303.14190","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.14190"}},"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/za-cheng/wildlight","reach":null}],"summary":{"ran":1,"ran_draft_wrong":6,"ran_violates":1,"ran_fixture":2,"unverified":3},"by_repo_kind":{"official":{"samples":13,"ran":10,"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":"c101cc1029ae2104","entry":"RenderingNetwork","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c101cc1029ae2104"}},{"code_sha256_prefix":"84d139e578e2c9d6","entry":"_CC_smith","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"84d139e578e2c9d6"}},{"code_sha256_prefix":"ba43b3f2481d4847","entry":"_GGX_shading","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ba43b3f2481d4847"}},{"code_sha256_prefix":"cae029906e10de30","entry":"_GGX_smith","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cae029906e10de30"}},{"code_sha256_prefix":"cc6783f5d8fc6e7e","entry":"_apply_lighting_GGX","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cc6783f5d8fc6e7e"}},{"code_sha256_prefix":"efcbe8be6e3ac595","entry":"_apply_shading_burley","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"efcbe8be6e3ac595"}},{"code_sha256_prefix":"9a854d2789db8ef5","entry":"_diffuse","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9a854d2789db8ef5"}},{"code_sha256_prefix":"3d0d17b2d648af91","entry":"_format_brdf_params","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3d0d17b2d648af91"}},{"code_sha256_prefix":"b59af2edcf212db0","entry":"dot","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.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":"b59af2edcf212db0"}},{"code_sha256_prefix":"87ddcc15a7a13f2f","entry":"unpack_brdf_params_GGX","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"87ddcc15a7a13f2f"}},{"code_sha256_prefix":"c174d38b3b7873e0","entry":"PhysicalRenderingNetwork","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.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":"c174d38b3b7873e0"}},{"code_sha256_prefix":"72788d58336d65d9","entry":"_burley_shading","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.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":"72788d58336d65d9"}},{"code_sha256_prefix":"de7faceb3c8032c4","entry":"unpack_brdf_params_burley","repo":"za-cheng/wildlight","repo_kind":"official","path":"models/physicalshader.py","file_url":"https://github.com/za-cheng/wildlight/blob/HEAD/models/physicalshader.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":"de7faceb3c8032c4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}