{"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/learning-integrable-dynamics-with-action","title":"Learning Integrable Dynamics with Action-Angle Networks","arxiv_id":"2211.15338","date":"2022-11-24","proceeding":null,"authors":["Ameya Daigavane","Arthur Kosmala","Miles Cranmer","Tess Smidt","Shirley Ho"],"abstract":"Machine learning has become increasingly popular for efficiently modelling the dynamics of complex physical systems, demonstrating a capability to learn effective models for dynamics which ignore redundant degrees of freedom. Learned simulators typically predict the evolution of the system in a step-by-step manner with numerical integration techniques. However, such models often suffer from instability over long roll-outs due to the accumulation of both estimation and integration error at each prediction step. Here, we propose an alternative construction for learned physical simulators that are inspired by the concept of action-angle coordinates from classical mechanics for describing integrable systems. We propose Action-Angle Networks, which learn a nonlinear transformation from input coordinates to the action-angle space, where evolution of the system is linear. Unlike traditional learned simulators, Action-Angle Networks do not employ any higher-order numerical integration methods, making them extremely efficient at modelling the dynamics of integrable physical systems.","url_abs":"https://arxiv.org/abs/2211.15338v1","url_pdf":"https://arxiv.org/pdf/2211.15338v1.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":"learning-integrable-dynamics-with-action","repo_url":"https://github.com/ameya98/actionanglenetworks","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":null}],"tasks":[{"task_slug":"numerical-integration","task_name":"Numerical Integration"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2211.15338","atlas_url":"https://app.syntology.ai/?focus=2211.15338","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2211.15338"}},"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/ameya98/actionanglenetworks","reach":null}],"summary":{"ran":1,"ran_honours":1,"ran_violates":1,"unverified":2},"by_repo_kind":{"official":{"samples":5,"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":"7286256ed3535fd5","entry":"ActionAngleNetwork","repo":"ameya98/actionanglenetworks","repo_kind":"official","path":"action_angle_networks/models.py","file_url":"https://github.com/ameya98/actionanglenetworks/blob/HEAD/action_angle_networks/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7286256ed3535fd5"}},{"code_sha256_prefix":"59a6dd48365d5309","entry":"cartesian_to_polar","repo":"ameya98/actionanglenetworks","repo_kind":"official","path":"action_angle_networks/models.py","file_url":"https://github.com/ameya98/actionanglenetworks/blob/HEAD/action_angle_networks/models.py","link_basis":"first_harvest_node","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":"59a6dd48365d5309"}},{"code_sha256_prefix":"c787d35684a064db","entry":"polar_to_cartesian","repo":"ameya98/actionanglenetworks","repo_kind":"official","path":"action_angle_networks/models.py","file_url":"https://github.com/ameya98/actionanglenetworks/blob/HEAD/action_angle_networks/models.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c787d35684a064db"}},{"code_sha256_prefix":"4265300dd1f9f61a","entry":"CoordinateDecoder","repo":"ameya98/actionanglenetworks","repo_kind":"official","path":"action_angle_networks/models.py","file_url":"https://github.com/ameya98/actionanglenetworks/blob/HEAD/action_angle_networks/models.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":"4265300dd1f9f61a"}},{"code_sha256_prefix":"8ca37af455fb39b5","entry":"CoordinateEncoder","repo":"ameya98/actionanglenetworks","repo_kind":"official","path":"action_angle_networks/models.py","file_url":"https://github.com/ameya98/actionanglenetworks/blob/HEAD/action_angle_networks/models.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":"8ca37af455fb39b5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}