{"id":37082961,"url":"https://github.com/fszewczyk/rocket-landing-rl","last_synced_at":"2026-01-14T10:02:18.627Z","repository":{"id":65422347,"uuid":"576276185","full_name":"fszewczyk/rocket-landing-rl","owner":"fszewczyk","description":"Custom OpenAI Gym for vertical rocket landing and Deep Q-Learning implementation.","archived":false,"fork":false,"pushed_at":"2024-02-11T22:04:10.000Z","size":2615,"stargazers_count":17,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-27T19:55:01.119Z","etag":null,"topics":["deep-q-learning","deep-q-network","q-learning","reinforcement-learning","rocket-landing","thrust-vector-control"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/rocketgym/","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/fszewczyk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-12-09T12:43:17.000Z","updated_at":"2025-05-27T07:26:05.000Z","dependencies_parsed_at":"2023-02-15T16:45:22.403Z","dependency_job_id":null,"html_url":"https://github.com/fszewczyk/rocket-landing-rl","commit_stats":{"total_commits":59,"total_committers":3,"mean_commits":"19.666666666666668","dds":"0.13559322033898302","last_synced_commit":"1e2bdcd283ec0012ee2bff5f0176c30b100fdb18"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fszewczyk/rocket-landing-rl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fszewczyk%2Frocket-landing-rl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fszewczyk%2Frocket-landing-rl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fszewczyk%2Frocket-landing-rl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fszewczyk%2Frocket-landing-rl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fszewczyk","download_url":"https://codeload.github.com/fszewczyk/rocket-landing-rl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fszewczyk%2Frocket-landing-rl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28416497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["deep-q-learning","deep-q-network","q-learning","reinforcement-learning","rocket-landing","thrust-vector-control"],"created_at":"2026-01-14T10:02:17.972Z","updated_at":"2026-01-14T10:02:18.614Z","avatar_url":"https://github.com/fszewczyk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"_Part of [SHKYERA](https://youtu.be/Kb4bNZGqKyE) project_\n\n![background](img/shkyera.png \"Shkyera Aerospace\")\n![Rocket landing](img/landing_anim.gif)\n\n# Rocket Landing - Reinforcement Learning\n\n## Environment\n\nI made a custom OpenAI-Gym environment with fully functioning 2D physics engine. If you want to test your own algorithms using that, download the package by simply typing in terminal:\n\n```\npip install rocketgym\n```\n\nAll the environment's functionalities are described [here](environment/README.md).\n\n### Minimal usage\n\nMake sure that all dependencies are installed by `pip install -r requirements.txt`\n\n```python\nfrom rocketgym.environment import Environment\n\nimport random\n\nenv = Environment()\nobservation = env.reset()\ndone = False\n\nwhile not done:\n    observation, reward, done, info = env.step(random.randint(0,3))\n    env.render()\n```\n\n## Learning\n\n```\npython3 train.py -h\nusage: Rocket Landing - Reinforcemeng Learning [-h] [--curriculum] [--softmax] [--save] [-model MODEL]\n\noptional arguments:\n  -h, --help    show this help message and exit\n  --curriculum  Use Curriculum Learning\n  --softmax     Use Softmax exploration instead of eps-greedy\n  --save        Save flight logs and models every 100 episodes\n  -model MODEL  Path to the model to load. Overrides the curriculum and exploration\n                settings. Renders the scene from the start.\n```\n\nIn the `train.py` you can see, how agent training is implemented. All you need to do is specify the exploration strategy and adjust the environment to your needs. I found that it takes around 2000 iterations to learn to land without any curriculum learning, but the process can be significantly sped up by setting up a task difficulty schedule. This can be easily done through the `Curriculum` module.\n\n## Diagnostics\n\nIf you want to make pretty plots, like this one\n![pretty plot](img/pretty_plot.png)\nfeel free to use `diagnostics.py`. All you need to know to do that is described in the script itself.\n\n_**For a detailed explanation of the environment and the learning algorithms I used, see [here](https://drive.google.com/file/d/1iqoxaIz_gqfDMqdZBwWLJYfiu0FzKDsv/view?usp=sharing).**_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffszewczyk%2Frocket-landing-rl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffszewczyk%2Frocket-landing-rl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffszewczyk%2Frocket-landing-rl/lists"}