{"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/carl-controllable-agent-with-reinforcement","title":"CARL: Controllable Agent with Reinforcement Learning for Quadruped Locomotion","arxiv_id":"2005.03288","date":"2020-05-07","proceeding":null,"authors":["Ying-Sheng Luo","Jonathan Hans Soeseno","Trista Pei-Chun Chen","Wei-Chao Chen"],"abstract":"Motion synthesis in a dynamic environment has been a long-standing problem for character animation. Methods using motion capture data tend to scale poorly in complex environments because of their larger capturing and labeling requirement. Physics-based controllers are effective in this regard, albeit less controllable. In this paper, we present CARL, a quadruped agent that can be controlled with high-level directives and react naturally to dynamic environments. Starting with an agent that can imitate individual animation clips, we use Generative Adversarial Networks to adapt high-level controls, such as speed and heading, to action distributions that correspond to the original animations. Further fine-tuning through the deep reinforcement learning enables the agent to recover from unseen external perturbations while producing smooth transitions. It then becomes straightforward to create autonomous agents in dynamic environments by adding navigation modules over the entire process. We evaluate our approach by measuring the agent's ability to follow user control and provide a visual analysis of the generated motion to show its effectiveness.","url_abs":"https://arxiv.org/abs/2005.03288v3","url_pdf":"https://arxiv.org/pdf/2005.03288v3.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":"carl-controllable-agent-with-reinforcement","repo_url":"https://github.com/inventec-ai-center/carl-siggraph2020","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"deep-reinforcement-learning","task_name":"Deep Reinforcement Learning"},{"task_slug":"motion-synthesis","task_name":"Motion Synthesis"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2005.03288","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.03288"}},"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/inventec-ai-center/carl-siggraph2020","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":3},"by_repo_kind":{"official":{"samples":3,"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":0,"samples":[{"code_sha256_prefix":"894146f560e9f673","entry":"build_normalizer","repo":"inventec-ai-center/carl-siggraph2020","repo_kind":"official","path":"CARL/plot_action_dist.py","file_url":"https://github.com/inventec-ai-center/carl-siggraph2020/blob/HEAD/CARL/plot_action_dist.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"894146f560e9f673"}},{"code_sha256_prefix":"a000faf23fac88fd","entry":"calc_display_anim_time","repo":"inventec-ai-center/carl-siggraph2020","repo_kind":"official","path":"CARL/CARL_Runner.py","file_url":"https://github.com/inventec-ai-center/carl-siggraph2020/blob/HEAD/CARL/CARL_Runner.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a000faf23fac88fd"}},{"code_sha256_prefix":"5a63f5f1f3182799","entry":"get_vars","repo":"inventec-ai-center/carl-siggraph2020","repo_kind":"official","path":"CARL/plot_action_dist.py","file_url":"https://github.com/inventec-ai-center/carl-siggraph2020/blob/HEAD/CARL/plot_action_dist.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5a63f5f1f3182799"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}