{"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/phase2vec-dynamical-systems-embedding-with-a","title":"Phase2vec: Dynamical systems embedding with a physics-informed convolutional network","arxiv_id":"2212.03857","date":"2022-12-07","proceeding":null,"authors":["Matthew Ricci","Noa Moriel","Zoe Piran","Mor Nitzan"],"abstract":"Dynamical systems are found in innumerable forms across the physical and biological sciences, yet all these systems fall naturally into universal equivalence classes: conservative or dissipative, stable or unstable, compressible or incompressible. Predicting these classes from data remains an essential open challenge in computational physics at which existing time-series classification methods struggle. Here, we propose, \\texttt{phase2vec}, an embedding method that learns high-quality, physically-meaningful representations of 2D dynamical systems without supervision. Our embeddings are produced by a convolutional backbone that extracts geometric features from flow data and minimizes a physically-informed vector field reconstruction loss. In an auxiliary training period, embeddings are optimized so that they robustly encode the equations of unseen data over and above the performance of a per-equation fitting method. The trained architecture can not only predict the equations of unseen data, but also, crucially, learns embeddings that respect the underlying semantics of the embedded physical systems. We validate the quality of learned embeddings investigating the extent to which physical categories of input data can be decoded from embeddings compared to standard blackbox classifiers and state-of-the-art time series classification techniques. We find that our embeddings encode important physical properties of the underlying data, including the stability of fixed points, conservation of energy, and the incompressibility of flows, with greater fidelity than competing methods. We finally apply our embeddings to the analysis of meteorological data, showing we can detect climatically meaningful features. Collectively, our results demonstrate the viability of embedding approaches for the discovery of dynamical features in physical systems.","url_abs":"https://arxiv.org/abs/2212.03857v2","url_pdf":"https://arxiv.org/pdf/2212.03857v2.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":"phase2vec-dynamical-systems-embedding-with-a","repo_url":"https://github.com/nitzanlab/phase2vec","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series","task_name":"Time Series Analysis"},{"task_slug":"time-series-classification","task_name":"Time Series Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2212.03857","atlas_url":"https://app.syntology.ai/?focus=2212.03857","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2212.03857"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/nitzanlab/phase2vec","reach":null}],"summary":{"ran_draft_wrong":1,"ran_violates":1,"ran_honours":1,"unverified":1},"by_repo_kind":{"official":{"samples":4,"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":4,"samples":[{"code_sha256_prefix":"fadd33f406ecf61b","entry":"get_last_config","repo":"nitzanlab/phase2vec","repo_kind":"official","path":"phase2vec/utils/_utils.py","file_url":"https://github.com/nitzanlab/phase2vec/blob/HEAD/phase2vec/utils/_utils.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fadd33f406ecf61b"}},{"code_sha256_prefix":"28fd2e4c52372a93","entry":"str_to_list","repo":"nitzanlab/phase2vec","repo_kind":"official","path":"phase2vec/utils/_utils.py","file_url":"https://github.com/nitzanlab/phase2vec/blob/HEAD/phase2vec/utils/_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"28fd2e4c52372a93"}},{"code_sha256_prefix":"1bcdea4247a7a9e3","entry":"strtuple_to_list","repo":"nitzanlab/phase2vec","repo_kind":"official","path":"phase2vec/utils/_utils.py","file_url":"https://github.com/nitzanlab/phase2vec/blob/HEAD/phase2vec/utils/_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1bcdea4247a7a9e3"}},{"code_sha256_prefix":"8ad9fd3e8ba91ec9","entry":"run_epoch","repo":"nitzanlab/phase2vec","repo_kind":"official","path":"phase2vec/train/_train.py","file_url":"https://github.com/nitzanlab/phase2vec/blob/HEAD/phase2vec/train/_train.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8ad9fd3e8ba91ec9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}