{"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/moglow-probabilistic-and-controllable-motion","title":"MoGlow: Probabilistic and controllable motion synthesis using normalising flows","arxiv_id":"1905.06598","date":"2019-05-16","proceeding":null,"authors":["Gustav Eje Henter","Simon Alexanderson","Jonas Beskow"],"abstract":"Data-driven modelling and synthesis of motion is an active research area with applications that include animation, games, and social robotics. This paper introduces a new class of probabilistic, generative, and controllable motion-data models based on normalising flows. Models of this kind can describe highly complex distributions, yet can be trained efficiently using exact maximum likelihood, unlike GANs or VAEs. Our proposed model is autoregressive and uses LSTMs to enable arbitrarily long time-dependencies. Importantly, is is also causal, meaning that each pose in the output sequence is generated without access to poses or control inputs from future time steps; this absence of algorithmic latency is important for interactive applications with real-time motion control. The approach can in principle be applied to any type of motion since it does not make restrictive, task-specific assumptions regarding the motion or the character morphology. We evaluate the models on motion-capture datasets of human and quadruped locomotion. Objective and subjective results show that randomly-sampled motion from the proposed method outperforms task-agnostic baselines and attains a motion quality close to recorded motion capture.","url_abs":"https://arxiv.org/abs/1905.06598v3","url_pdf":"https://arxiv.org/pdf/1905.06598v3.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":"moglow-probabilistic-and-controllable-motion","repo_url":"https://github.com/chaiyujin/glow-pytorch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"moglow-probabilistic-and-controllable-motion","repo_url":"https://github.com/simonalexanderson/MoGlow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"moglow-probabilistic-and-controllable-motion","repo_url":"https://github.com/simonalexanderson/StyleGestures","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"motion-synthesis","task_name":"Motion Synthesis"},{"task_slug":"normalising-flows","task_name":"Normalising Flows"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1905.06598","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.06598"}},"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/simonalexanderson/MoGlow","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/simonalexanderson/StyleGestures","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chaiyujin/glow-pytorch","reach":null}],"summary":{"ran_honours":1,"unverified":1},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":1,"ran":0,"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":1,"samples":[{"code_sha256_prefix":"7b018b41c2151d29","entry":"select_index","repo":"chaiyujin/glow-pytorch","repo_kind":"official","path":"infer_celeba.py","file_url":"https://github.com/chaiyujin/glow-pytorch/blob/HEAD/infer_celeba.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7b018b41c2151d29"}},{"code_sha256_prefix":"c8269d5944ff8d1a","entry":"f","repo":"simonalexanderson/StyleGestures","repo_kind":"listed","path":"glow/models.py","file_url":"https://github.com/simonalexanderson/StyleGestures/blob/HEAD/glow/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c8269d5944ff8d1a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}