{"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/hamiltonian-prior-to-disentangle-content-and","title":"Hamiltonian latent operators for content and motion disentanglement in image sequences","arxiv_id":"2112.01641","date":"2021-12-02","proceeding":null,"authors":["Asif Khan","Amos Storkey"],"abstract":"We introduce \\textit{HALO} -- a deep generative model utilising HAmiltonian Latent Operators to reliably disentangle content and motion information in image sequences. The \\textit{content} represents summary statistics of a sequence, and \\textit{motion} is a dynamic process that determines how information is expressed in any part of the sequence. By modelling the dynamics as a Hamiltonian motion, important desiderata are ensured: (1) the motion is reversible, (2) the symplectic, volume-preserving structure in phase space means paths are continuous and are not divergent in the latent space. Consequently, the nearness of sequence frames is realised by the nearness of their coordinates in the phase space, which proves valuable for disentanglement and long-term sequence generation. The sequence space is generally comprised of different types of dynamical motions. To ensure long-term separability and allow controlled generation, we associate every motion with a unique Hamiltonian that acts in its respective subspace. We demonstrate the utility of \\textit{HALO} by swapping the motion of a pair of sequences, controlled generation, and image rotations.","url_abs":"https://arxiv.org/abs/2112.01641v4","url_pdf":"https://arxiv.org/pdf/2112.01641v4.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":"hamiltonian-prior-to-disentangle-content-and","repo_url":"https://github.com/mdasifkhan/halo","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"motion-disentanglement","task_name":"Motion Disentanglement"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2112.01641","atlas_url":"https://app.syntology.ai/?focus=2112.01641","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.01641"}},"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/mdasifkhan/halo","reach":null}],"summary":{"ran":11,"unverified":6},"by_repo_kind":{"official":{"samples":17,"ran":11,"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":17,"samples":[{"code_sha256_prefix":"cf7f0fc61a47f6f9","entry":"ContentMotion","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cf7f0fc61a47f6f9"}},{"code_sha256_prefix":"8b4d15bd7d9c92ca","entry":"ConvLayer","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8b4d15bd7d9c92ca"}},{"code_sha256_prefix":"fd558b0db03032df","entry":"DecoderConv","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fd558b0db03032df"}},{"code_sha256_prefix":"e097781700e4fdac","entry":"DecoderConv1","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e097781700e4fdac"}},{"code_sha256_prefix":"0be669dbf9e0166b","entry":"DecoderConv2","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0be669dbf9e0166b"}},{"code_sha256_prefix":"cac4955b0a2be37c","entry":"DecoderMNIST","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cac4955b0a2be37c"}},{"code_sha256_prefix":"77c1b0c9c5264487","entry":"EncoderConv","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"77c1b0c9c5264487"}},{"code_sha256_prefix":"98d25ef5167c31f0","entry":"EncoderConv1","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"98d25ef5167c31f0"}},{"code_sha256_prefix":"ce4c15459866e8ea","entry":"EncoderMNIST","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ce4c15459866e8ea"}},{"code_sha256_prefix":"0daeff304a700a85","entry":"ResLayer2D","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0daeff304a700a85"}},{"code_sha256_prefix":"09924b4499ae2dee","entry":"TemporalBlock","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"09924b4499ae2dee"}},{"code_sha256_prefix":"fd07c729f8489524","entry":"DecoderResNet","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.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":"fd07c729f8489524"}},{"code_sha256_prefix":"c29739929829d2d1","entry":"DynamicalModel","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.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":"c29739929829d2d1"}},{"code_sha256_prefix":"e3f3cf53c61dd728","entry":"EncoderConv2","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.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":"e3f3cf53c61dd728"}},{"code_sha256_prefix":"fcf9b40884cf385e","entry":"EncoderResNet","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.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":"fcf9b40884cf385e"}},{"code_sha256_prefix":"2c97c8872892a8f0","entry":"SelfAttention","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.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":"2c97c8872892a8f0"}},{"code_sha256_prefix":"45a2484768ea653d","entry":"SubspaceVAE","repo":"mdasifkhan/halo","repo_kind":"official","path":"model.py","file_url":"https://github.com/mdasifkhan/halo/blob/HEAD/model.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":"45a2484768ea653d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}