{"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/dyffusion-a-dynamics-informed-diffusion-model-1","title":"DYffusion: A Dynamics-informed Diffusion Model for Spatiotemporal Forecasting","arxiv_id":"2306.01984","date":"2023-06-03","proceeding":"NeurIPS 2023 11","authors":["Salva Rühling Cachay","Bo Zhao","Hailey Joren","Rose Yu"],"abstract":"While diffusion models can successfully generate data and make predictions, they are predominantly designed for static images. We propose an approach for efficiently training diffusion models for probabilistic spatiotemporal forecasting, where generating stable and accurate rollout forecasts remains challenging, Our method, DYffusion, leverages the temporal dynamics in the data, directly coupling it with the diffusion steps in the model. We train a stochastic, time-conditioned interpolator and a forecaster network that mimic the forward and reverse processes of standard diffusion models, respectively. DYffusion naturally facilitates multi-step and long-range forecasting, allowing for highly flexible, continuous-time sampling trajectories and the ability to trade-off performance with accelerated sampling at inference time. In addition, the dynamics-informed diffusion process in DYffusion imposes a strong inductive bias and significantly improves computational efficiency compared to traditional Gaussian noise-based diffusion models. Our approach performs competitively on probabilistic forecasting of complex dynamics in sea surface temperatures, Navier-Stokes flows, and spring mesh systems.","url_abs":"https://arxiv.org/abs/2306.01984v2","url_pdf":"https://arxiv.org/pdf/2306.01984v2.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":"dyffusion-a-dynamics-informed-diffusion-model-1","repo_url":"https://github.com/rose-stl-lab/dyffusion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"computational-efficiency","task_name":"Computational Efficiency"},{"task_slug":"inductive-bias","task_name":"Inductive Bias"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.01984","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.01984"}},"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/rose-stl-lab/dyffusion","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":1,"ran_honours":2,"unverified":3},"by_repo_kind":{"official":{"samples":6,"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":"ad43d63d6e052f6c","entry":"convert_image_to_fn","repo":"rose-stl-lab/dyffusion","repo_kind":"official","path":"src/diffusion/denoising_diffusion.py","file_url":"https://github.com/rose-stl-lab/dyffusion/blob/HEAD/src/diffusion/denoising_diffusion.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ad43d63d6e052f6c"}},{"code_sha256_prefix":"a1229a9f4df127e2","entry":"normalize_to_neg_one_to_one","repo":"rose-stl-lab/dyffusion","repo_kind":"official","path":"src/diffusion/denoising_diffusion.py","file_url":"https://github.com/rose-stl-lab/dyffusion/blob/HEAD/src/diffusion/denoising_diffusion.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a1229a9f4df127e2"}},{"code_sha256_prefix":"97e1bbd232dfe092","entry":"unnormalize_to_zero_to_one","repo":"rose-stl-lab/dyffusion","repo_kind":"official","path":"src/diffusion/denoising_diffusion.py","file_url":"https://github.com/rose-stl-lab/dyffusion/blob/HEAD/src/diffusion/denoising_diffusion.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"97e1bbd232dfe092"}},{"code_sha256_prefix":"33d191fee7a8c7e9","entry":"drop_lat_lon_info","repo":"rose-stl-lab/dyffusion","repo_kind":"official","path":"src/datamodules/oisstv2.py","file_url":"https://github.com/rose-stl-lab/dyffusion/blob/HEAD/src/datamodules/oisstv2.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"33d191fee7a8c7e9"}},{"code_sha256_prefix":"05b08c801f94b958","entry":"get_dims_of_dataset","repo":"rose-stl-lab/dyffusion","repo_kind":"official","path":"src/datamodules/dataset_dimensions.py","file_url":"https://github.com/rose-stl-lab/dyffusion/blob/HEAD/src/datamodules/dataset_dimensions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"05b08c801f94b958"}},{"code_sha256_prefix":"141360be4706fb0a","entry":"get_name_for_boxes","repo":"rose-stl-lab/dyffusion","repo_kind":"official","path":"src/datamodules/oisstv2.py","file_url":"https://github.com/rose-stl-lab/dyffusion/blob/HEAD/src/datamodules/oisstv2.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"141360be4706fb0a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}