{"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/score-matching-via-differentiable-physics","title":"Solving Inverse Physics Problems with Score Matching","arxiv_id":"2301.10250","date":"2023-01-24","proceeding":"NeurIPS 2023 11","authors":["Benjamin J. Holzschuh","Simona Vegetti","Nils Thuerey"],"abstract":"We propose to solve inverse problems involving the temporal evolution of physics systems by leveraging recent advances from diffusion models. Our method moves the system's current state backward in time step by step by combining an approximate inverse physics simulator and a learned correction function. A central insight of our work is that training the learned correction with a single-step loss is equivalent to a score matching objective, while recursively predicting longer parts of the trajectory during training relates to maximum likelihood training of a corresponding probability flow. We highlight the advantages of our algorithm compared to standard denoising score matching and implicit score matching, as well as fully learned baselines for a wide range of inverse physics problems. The resulting inverse solver has excellent accuracy and temporal stability and, in contrast to other learned inverse solvers, allows for sampling the posterior of the solutions.","url_abs":"https://arxiv.org/abs/2301.10250v2","url_pdf":"https://arxiv.org/pdf/2301.10250v2.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":"score-matching-via-differentiable-physics","repo_url":"https://github.com/tum-pbs/smdp","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"}],"methods":[{"method_slug":"denoising-score-matching","method_name":"Denoising Score Matching"},{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2301.10250","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2301.10250"}},"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":"deterministic:regex_extraction","url":"https://github.com/tum-pbs/SMDP","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tum-pbs/smdp","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":3,"ran":1,"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":"1bfb2e3f7e3a5670","entry":"log_videos","repo":"tum-pbs/SMDP","repo_kind":"official","path":"buoyancy-flow/train_autoregressive.py","file_url":"https://github.com/tum-pbs/SMDP/blob/HEAD/buoyancy-flow/train_autoregressive.py","link_basis":"first_harvest_node","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":"1bfb2e3f7e3a5670"}},{"code_sha256_prefix":"0e2d2449708613e2","entry":"gradient_backward_fn_manual","repo":"tum-pbs/SMDP","repo_kind":"official","path":"buoyancy-flow/train_autoregressive.py","file_url":"https://github.com/tum-pbs/SMDP/blob/HEAD/buoyancy-flow/train_autoregressive.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":"0e2d2449708613e2"}},{"code_sha256_prefix":"7bf06d46444fbdde","entry":"gradient_forward_fn_manual","repo":"tum-pbs/SMDP","repo_kind":"official","path":"buoyancy-flow/train_autoregressive.py","file_url":"https://github.com/tum-pbs/SMDP/blob/HEAD/buoyancy-flow/train_autoregressive.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":"7bf06d46444fbdde"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}