{"id":13528634,"url":"https://github.com/openai/roboschool","last_synced_at":"2025-10-05T13:29:02.304Z","repository":{"id":40694174,"uuid":"91389763","full_name":"openai/roboschool","owner":"openai","description":"DEPRECATED: Open-source software for robot simulation, integrated with OpenAI Gym.","archived":false,"fork":false,"pushed_at":"2023-04-02T11:37:04.000Z","size":13334,"stargazers_count":2148,"open_issues_count":83,"forks_count":487,"subscribers_count":279,"default_branch":"master","last_synced_at":"2025-05-12T05:40:58.172Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-05-15T22:17:09.000Z","updated_at":"2025-05-09T06:46:31.000Z","dependencies_parsed_at":"2023-02-10T09:31:48.841Z","dependency_job_id":"3a5574c8-ed7d-464f-b378-16c02c48baf2","html_url":"https://github.com/openai/roboschool","commit_stats":{"total_commits":349,"total_committers":10,"mean_commits":34.9,"dds":"0.18338108882521487","last_synced_commit":"d32bcb2b35b94168b5ce27233ca62f3c8678886f"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Froboschool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Froboschool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Froboschool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Froboschool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openai","download_url":"https://codeload.github.com/openai/roboschool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149732,"owners_count":22022846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T07:00:22.094Z","updated_at":"2025-10-05T13:28:57.269Z","avatar_url":"https://github.com/openai.png","language":"Python","funding_links":[],"categories":["Reinforcement Learning (RL) and Deep Reinforcement Learning (DRL)","Environments","Robotics","Python","Robotic simulator"],"sub_categories":["RL/DRL Environments","General-Purpose Machine Learning","Multi-task learning"],"readme":"**Status:** Archive (code is provided as-is, no updates expected)\n\n# DEPRECATED: Please use [PyBullet](https://github.com/openai/gym/blob/master/docs/environments.md#pybullet-robotics-environments) instead\n\nNEWS\n====\n\n**2019 September 27**\n\n* We are deprecating Roboschool and now recommend using [PyBullet](https://github.com/openai/gym/blob/master/docs/environments.md#pybullet-robotics-environments) instead.\n\n**2017 July 17, Version 1.1**\n\n* All envs version bumped to “-v1\", due to stronger stuck joint punishment, that improves odds of getting a good policy.\n* Flagrun-v1 is much more likely to develop a symmetric gait,\n* FlagrunHarder-v1 has new \"repeat-underlearned\" learning schedule, that allows it to be trained to stand up, walk and turn without falling. \n* Atlas robot model, modified (empty links removed, overly powerful feet weakaned).\n* All -v1 envs are shipped with better zoo policies, compared to May versions.\n* Keyboard-controlled humanoid included.\n\n\nRoboschool\n==========\n\nRelease blog post is here:\n\nhttps://blog.openai.com/roboschool/\n\n\nRoboschool is a long-term project to create simulations useful for research. The roadmap is as follows:\n\n1. Replicate Gym MuJoCo environments.\n2. Take a step away from trajectory-centric fragile MuJoCo tasks.\n3. Explore multiplayer games.\n4. Create tasks with camera RGB image and joints in a tuple.\n5. Teach robots to follow commands, including verbal commands.\n\n\nSome wiki pages:\n\n[Contributing New Environments](https://github.com/openai/roboschool/wiki/Contributing-New-Environments)\n\n[Help Wanted](https://github.com/openai/roboschool/wiki/Help-Wanted)\n\n\n\nEnvironments List\n=================\n\nThe list of Roboschool environments is as follows:\n\n- RoboschoolInvertedPendulum-v1\n- RoboschoolInvertedPendulumSwingup-v1\n- RoboschoolInvertedDoublePendulum-v1\n- RoboschoolReacher-v1\n- RoboschoolHopper-v1\n- RoboschoolWalker2d-v1\n- RoboschoolHalfCheetah-v1\n- RoboschoolAnt-v1\n- RoboschoolHumanoid-v1\n- RoboschoolHumanoidFlagrun-v1\n- RoboschoolHumanoidFlagrunHarder-v1\n- RoboschoolPong-v1\n\nTo obtain this list: `import roboschool, gym; print(\"\\n\".join(['- ' + spec.id for spec in gym.envs.registry.all() if spec.id.startswith('Roboschool')]))`.\n\n\nBasic prerequisites\n===================\nRoboschool is compatible and tested with python3 (3.5 and 3.6), osx and linux. You may be able to compile it with python2.7 (see Installation from source),\nbut that may require non-trivial amount of work. \n\nInstallation\n============\n\nIf you are running Ubuntu or Debian Linux, or OS X, the easiest path to install roboschool is via pip (:\n```bash\npip install roboschool\n```\nNote: in a headless machine (e.g. docker container) you may need to install graphics libraries; this can be achieved via `apt-get install libgl1-mesa-dev`\n\nIf you are running some other Linux/Unix distro, or want the latest and the greatest code, or want to tweak the compiler optimization options, read on...\n\nInstallation from source\n========================\n\nPrerequisites\n-------------\nFirst, make sure you are installing from a github repo (not a source package on pypi). That is, clone this repo and cd into cloned folder:\n```bash\ngit clone https://github.com/openai/roboschool \u0026\u0026 cd roboschool\n```\n\nThe system-level dependencies of roboschool are qt5 (with opengl), boost-python3 (or boost-python if you are compiling with python2), assimp and cmake. \nLinux-based distros will need patchelf utility to tweak the runtime paths. Also, some version of graphics libraries is required. \nQt5, assimp, cmake and patchelf are rather straightforward to install:\n\n- Ubuntu / Debian: \n\n    ```bash\n    sudo apt-get install qtbase5-dev libqt5opengl5-dev libassimp-dev cmake patchelf\n    ```\n\n- OSX:\n    \n    ```bash\n    brew install qt assimp cmake\n    ```\n\nNext, we'll need boost-python3. On osx `brew install boost-python3` is usually sufficient, however, on linux it is not always available as a system-level package (sometimes it is available, but compiled against wrong version of python). If you are using anaconda/miniconda, boost-python3 can be installed via `conda install boost`. Otherwise, do we despair? Of course not! We install it from source!\nThere is a script `install_boost.sh` that should do most of the heavy lifting - note that it will need sudo\nto install boost-python3 after compilation is done. \n\nNext, need a custom version of bullet physics engine. In both osx and linux its installation is a little involved, fortunately, there is a \nhelper script `install_bullet.sh` that should do it for you. \nFinally, we also need to set up some environment variables (so that pkg-config knows where has the software been installed) - this can be done via sourcing `exports.sh` script\n\nTo summarize, all the prerequisites can be installed as follows:\n- Ubuntu / Debian: \n\n    ```bash\n    sudo apt-get install qtbase5 libqt5opengl5-dev libassimp-dev patchelf cmake\n    ./install_boost.sh\n    ./install_bullet.sh\n    source exports.sh\n    ```\n- Ubuntu / Debian with anaconda:\n\n    ```bash\n    sudo apt-get install qtbase5 libqt5opengl5-dev libassimp-dev patchelf cmake\n    conda install boost\n    ./install_bullet.sh\n    source exports.sh\n    ```\n\n- OSX:\n    \n    ```bash\n    brew install qt assimp boost-python3 cmake\n    ./install_bullet.sh\n    source exports.sh\n    ```\nTo check if that installation is successful, run `pkg-config --cflags Qt5OpenGL assimp bullet` - you should see something resembling compiler options and not \nan error message. Now we are ready to compile the roboschool project itself.\n\nCompile and install\n-------------------\nThe compiler options are configured in the [Makefile](roboschool/cpp-household/Makefile). Feel free to tinker with them or leave those as is. To\ncompile the project code, and then install it as a python package, use the following:\n```bash\ncd roboschool/cpp-household \u0026\u0026 make clean \u0026\u0026 make -j4 \u0026\u0026 cd ../.. \u0026\u0026 pip install -e .\n```\n\nA simple check if resulting installation is valid:\n```python\nimport roboschool\nimport gym\n\nenv = gym.make('RoboschoolAnt-v1')\nwhile True:\n    env.step(env.action_space.sample())\n    env.render()\n```\nYou can also check the installation running a pretrained agent from the agent zoo, for instance:\n```bash\npython agent_zoo/RoboschoolHumanoidFlagrun_v0_2017may.py\n```\n\nTroubleshooting\n---------------\nA lot of the issues during installation from source are due to missing / incorrect PKG_CONFIG_PATH variable.\nIf the command `pkg-config --cflags Qt5OpenGL assimp bullet` shows an error, you can try manually finding missing `*.pc` files (for instance, for if the `pkg-config` complains about assimp, run `find / -name \"assimp.pc\"` - this is a bit bruteforce, but it works :)) and then adding folder with that files to PKG_CONFIG_PATH. \n\nSometime distros of linux may complain about generated code being not platform-independent, and ask you to recompile something with `-fPIC` option (this was seen on older versions of CentOS). In that case, try removing `-march=native` compilation option in the Makefile. \n\nOn the systems with nvidia drivers present, roboschool sometimes is not be able to find hardware-accelerated libraries. If you see errors\nlike\n```\n.build-release/render-ssao.o: In function `SimpleRender::ContextViewport::_depthlinear_paint(int)':\n/home/peter/dev/roboschool/roboschool/cpp-household/render-ssao.cpp:75: undefined reference to `glBindMultiTextureEXT'\n/home/peter/dev/roboschool/roboschool/cpp-household/render-ssao.cpp:78: undefined reference to `glBindMultiTextureEXT'\ncollect2: error: ld returned 1 exit status\nMakefile:130: recipe for target '../robot-test-tool' failed\n```\nyou can try disabling hardware rendering by setting `ROBOSCHOOL_DISABLE_HARDWARE_RENDER` env variable:\n```bash\nexport ROBOSCHOOL_DISABLE_HARDWARE_RENDER=1\n```\n\nAgent Zoo\n=========\n\nWe have provided a number of pre-trained agents in the `agent_zoo` directory.\n\nTo see a humanoid run towards a random varying target:\n\n```bash\npython agent_zoo/RoboschoolHumanoidFlagrun_v0_2017may.py\n```\n\nTo see three agents in a race:\n\n```bash\npython agent_zoo/demo_race2.py\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenai%2Froboschool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenai%2Froboschool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenai%2Froboschool/lists"}