{"id":35624073,"url":"https://github.com/hanruihua/ir-sim","last_synced_at":"2026-04-06T15:01:04.768Z","repository":{"id":61855881,"uuid":"497780232","full_name":"hanruihua/ir-sim","owner":"hanruihua","description":"A  Python-based lightweight robot simulator designed for navigation, control, and learning","archived":false,"fork":false,"pushed_at":"2026-04-03T18:03:22.000Z","size":151823,"stargazers_count":1047,"open_issues_count":12,"forks_count":132,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-03T20:25:21.318Z","etag":null,"topics":["autonomous-driving","control","ir-sim","multi-agent","navigation","python","reinforcement-learning","robotics","robotics-simulation","simulator"],"latest_commit_sha":null,"homepage":"https://ir-sim.readthedocs.io/en/stable/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hanruihua.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"hanruihua"}},"created_at":"2022-05-30T03:51:40.000Z","updated_at":"2026-04-02T08:35:07.000Z","dependencies_parsed_at":"2024-03-10T16:29:45.344Z","dependency_job_id":"94ca17db-5446-4471-ad46-e35bc98a5e10","html_url":"https://github.com/hanruihua/ir-sim","commit_stats":{"total_commits":297,"total_committers":5,"mean_commits":59.4,"dds":0.05387205387205385,"last_synced_commit":"b92058d013f8e9650b0349b9e641f455a5d09bf7"},"previous_names":["hanruihua/ir-sim"],"tags_count":55,"template":false,"template_full_name":null,"purl":"pkg:github/hanruihua/ir-sim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanruihua%2Fir-sim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanruihua%2Fir-sim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanruihua%2Fir-sim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanruihua%2Fir-sim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hanruihua","download_url":"https://codeload.github.com/hanruihua/ir-sim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanruihua%2Fir-sim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31477013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T14:34:32.243Z","status":"ssl_error","status_checked_at":"2026-04-06T14:34:31.723Z","response_time":112,"last_error":"SSL_read: 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":["autonomous-driving","control","ir-sim","multi-agent","navigation","python","reinforcement-learning","robotics","robotics-simulation","simulator"],"created_at":"2026-01-05T07:24:09.708Z","updated_at":"2026-04-06T15:01:04.761Z","avatar_url":"https://github.com/hanruihua.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n\n# Intelligent Robot Simulator (IR-SIM)\n\n*A lightweight, YAML-driven robot simulator for navigation, control, and learning*\n\n\u003ca href=\"https://pypi.org/project/ir-sim/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/ir-sim?color=orange\u0026style=for-the-badge\" alt=\"PyPI Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue?style=for-the-badge\" alt=\"Python Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim/actions/workflows/python-version-test.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/hanruihua/ir-sim/python-version-test.yml?branch=main\u0026style=for-the-badge\u0026label=CI\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/hanruihua/ir-sim\"\u003e\u003cimg src=\"https://img.shields.io/codecov/c/github/hanruihua/ir-sim?style=for-the-badge\u0026color=yellow\" alt=\"Coverage\"\u003e\u003c/a\u003e\n\u003ca href=\"https://ir-sim.readthedocs.io/en/stable/\"\u003e\u003cimg src=\"https://img.shields.io/readthedocs/ir-sim?style=for-the-badge\" alt=\"Docs\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim?tab=MIT-1-ov-file\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue?style=for-the-badge\" alt=\"License\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pepy.tech/project/ir-sim\"\u003e\u003cimg src=\"https://img.shields.io/pepy/dt/ir-sim?style=for-the-badge\" alt=\"Downloads\"\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n## Overview\n\n**IR-SIM** is an open-source, Python-based, lightweight robot simulator designed for navigation, control, and learning. It provides a simple, user-friendly framework with built-in collision detection for modeling robots, sensors, and environments. Ideal for academic and educational use, IR-SIM enables rapid prototyping of robotics and learning algorithms in custom scenarios with minimal coding and hardware requirements.\n\n## Key Features\n\n- Simulate robot platforms with diverse kinematics, sensors, and behaviors  ([support](#support)). \n- Quickly configure and customize scenarios using straightforward YAML files. No complex coding required.\n- Visualize simulation outcomes using a naive visualizer matplotlib for immediate debugging.\n- Support collision detection and customizable behavior policies for each object.\n- Suitable for mutli-agent/robot learning ([Projects](#projects-using-ir-sim)).\n\n## Demonstrations\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/5930b088-d400-4943-8ded-853c22eae75b\" width=\"240\"/\u003e\u003cbr/\u003e\n\u003cb\u003eMulti-Robot RVO Collision Avoidance\u003c/b\u003e\u003cbr/\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim/blob/main/usage/11collision_avoidance/collision_avoidance.py\"\u003eSource\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/3257abc1-8bed-40d8-9b51-e5d90b06ee06\" width=\"240\"/\u003e\u003cbr/\u003e\n\u003cb\u003eAckermann Robot with 2D LiDAR\u003c/b\u003e\u003cbr/\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim/blob/main/usage/10grid_map/grid_map.py\"\u003eSource\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/0fac81e7-60c0-46b2-91f0-efe4762bb758\" width=\"240\"/\u003e\u003cbr/\u003e\n\u003cb\u003eHM3D / MatterPort3D Grid Map\u003c/b\u003e\u003cbr/\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim/blob/main/usage/10grid_map/grid_map_hm3d.py\"\u003eSource\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/7aa809c2-3a44-4377-a22d-728b9dbdf8bc\" width=\"240\"/\u003e\u003cbr/\u003e\n\u003cb\u003eField-of-View Detection\u003c/b\u003e\u003cbr/\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim/blob/main/usage/15fov_world/fov_world.py\"\u003eSource\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/1cc8a4a6-2f41-4bc9-bc59-a7faff443223\" width=\"240\"/\u003e\u003cbr/\u003e\n\u003cb\u003eDynamic Random Obstacles\u003c/b\u003e\u003cbr/\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim/blob/main/usage/08random_obstacle/dynamic_random.py\"\u003eSource\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/162cf52e-070d-4588-b9b2-bf21c487fbc8\" width=\"240\"/\u003e\u003cbr/\u003e\n\u003cb\u003e200-Agent ORCA via \u003ca href=\"https://github.com/hanruihua/pyrvo\"\u003epyrvo\u003c/a\u003e\u003c/b\u003e\u003cbr/\u003e\n\u003ca href=\"https://github.com/hanruihua/ir-sim/blob/main/usage/19orca_world/orca_behavior_world.py\"\u003eSource\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Installation\n\n\u003e **Requires Python \u003e= 3.10**\n\n### pip\n\n```bash\npip install ir-sim\n\n# Optional: keyboard control and all extras\npip install ir-sim[all]\n```\n\n### From source\n\n```bash\ngit clone https://github.com/hanruihua/ir-sim.git\ncd ir-sim\npip install -e .\n```\n\n### uv\n\n```bash\ngit clone https://github.com/hanruihua/ir-sim.git\ncd ir-sim\nuv sync\n```\n\n## Quick Start\n\nA minimal example: a differential-drive robot navigates toward a goal using the built-in `dash` behavior.\n\n```python\nimport irsim\n\nenv = irsim.make('robot_world.yaml') # initialize the environment with the configuration file\n\nfor i in range(300): # run the simulation for 300 steps\n\n    env.step()  # update the environment\n    env.render() # render the environment\n\n    if env.done(): break # check if the simulation is done\n\nenv.end() # close the environment\n```\n\nYAML Configuration: `robot_world.yaml`\n\n```yaml\nworld:\n  height: 10  # the height of the world\n  width: 10   # the width of the world\n  step_time: 0.1  # 10Hz calculate each step\n  sample_time: 0.1  # 10 Hz for render and data extraction\n  offset: [0, 0] # the offset of the world on x and y\n\nrobot:\n  kinematics: {name: 'diff'}  # omni, diff, acker\n  shape: {name: 'circle', radius: 0.2}  # radius\n  state: [1, 1, 0]  # x, y, theta\n  goal: [9, 9, 0]  # x, y, theta\n  behavior: {name: 'dash'} # move toward to the goal directly\n  color: 'g' # green\n```\n\nFor more examples, see the [usage directory](https://github.com/hanruihua/ir-sim/tree/main/usage) and the [documentation](https://ir-sim.readthedocs.io/en).\n\n## Support\n\n| **Category**     | **Features**                                                                                                                                                                            |\n| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **Kinematics**   | Differential Drive mobile Robot · Omnidirectional mobile Robot · Ackermann Steering mobile Robot                                                                                        |\n| **Sensors**      | 2D LiDAR · FOV Detector                                                                                                                                                                |\n| **Geometries**   | Circle · Rectangle · Polygon · LineString · Binary Grid Map                                                                                                                             |\n| **Behaviors**    | dash (move directly toward goal) · RVO (Reciprocal Velocity Obstacle) · ORCA (Optimal Reciprocal Collision Avoidance)                                                                   |\n\n## Documentation\n\n- **English:** [https://ir-sim.readthedocs.io/en](https://ir-sim.readthedocs.io/en)\n- **Chinese (中文):** [https://ir-sim.readthedocs.io/zh-cn](https://ir-sim.readthedocs.io/zh-cn)\n\n## Projects Using IR-SIM\n\n### Academic Publications\n\n- **[RAL \u0026 ICRA 2023]** [rl-rvo-nav](https://github.com/hanruihua/rl_rvo_nav) -- Reinforcement learning-based RVO behavior for multi-robot navigation.\n- **[RAL \u0026 IROS 2023]** [RDA_planner](https://github.com/hanruihua/RDA_planner) -- Accelerated collision-free motion planner for cluttered environments.\n- **[T-RO 2025]** [NeuPAN](https://github.com/hanruihua/NeuPAN) -- Direct point robot navigation with end-to-end model-based learning.\n\n### Community Projects\n\n- [DRL-robot-navigation-IR-SIM](https://github.com/reiniscimurs/DRL-robot-navigation-IR-SIM) -- Deep reinforcement learning for robot navigation.\n- [AutoNavRL](https://github.com/harshmahesheka/AutoNavRL) -- Autonomous navigation using reinforcement learning.\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](https://github.com/hanruihua/ir-sim/blob/main/CONTRIBUTING.md) for guidelines.\n\n## Acknowledgement\n\n- [PythonRobotics](https://github.com/AtsushiSakai/PythonRobotics)\n\n## License\n\nIR-SIM is released under the [MIT License](https://github.com/hanruihua/ir-sim?tab=MIT-1-ov-file).\n\n\n","funding_links":["https://github.com/sponsors/hanruihua"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanruihua%2Fir-sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhanruihua%2Fir-sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanruihua%2Fir-sim/lists"}