{"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/solving-rubiks-cube-with-a-robot-hand","title":"Solving Rubik's Cube with a Robot Hand","arxiv_id":"1910.07113","date":"2019-10-16","proceeding":null,"authors":["OpenAI","Ilge Akkaya","Marcin Andrychowicz","Maciek Chociej","Mateusz Litwin","Bob McGrew","Arthur Petron","Alex Paino","Matthias Plappert","Glenn Powell","Raphael Ribas","Jonas Schneider","Nikolas Tezak","Jerry Tworek","Peter Welinder","Lilian Weng","Qiming Yuan","Wojciech Zaremba","Lei Zhang"],"abstract":"We demonstrate that models trained only in simulation can be used to solve a manipulation problem of unprecedented complexity on a real robot. This is made possible by two key components: a novel algorithm, which we call automatic domain randomization (ADR) and a robot platform built for machine learning. ADR automatically generates a distribution over randomized environments of ever-increasing difficulty. Control policies and vision state estimators trained with ADR exhibit vastly improved sim2real transfer. For control policies, memory-augmented models trained on an ADR-generated distribution of environments show clear signs of emergent meta-learning at test time. The combination of ADR with our custom robot platform allows us to solve a Rubik's cube with a humanoid robot hand, which involves both control and state estimation problems. Videos summarizing our results are available: https://openai.com/blog/solving-rubiks-cube/","url_abs":"https://arxiv.org/abs/1910.07113v1","url_pdf":"https://arxiv.org/pdf/1910.07113v1.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":"solving-rubiks-cube-with-a-robot-hand","repo_url":"https://github.com/bay3s/auto-dr","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"solving-rubiks-cube-with-a-robot-hand","repo_url":"https://github.com/sabeaussan/ROS_Unity","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"meta-learning","task_name":"Meta-Learning"},{"task_slug":"rubik-s-cube","task_name":"Rubik's Cube"},{"task_slug":"state-estimation","task_name":"State Estimation"}],"methods":[{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1910.07113","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}