{"id":19696215,"url":"https://github.com/mithi/hexapod-robot-simulator","last_synced_at":"2025-04-13T00:45:02.315Z","repository":{"id":37665274,"uuid":"240484880","full_name":"mithi/hexapod-robot-simulator","owner":"mithi","description":"A hexapod robot simulator built from first principles","archived":false,"fork":false,"pushed_at":"2023-05-01T21:37:40.000Z","size":2380,"stargazers_count":805,"open_issues_count":10,"forks_count":114,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-13T00:44:58.338Z","etag":null,"topics":["dash","hacktoberfest","hexapod","inverse-kinematics","kinematics","plotly","plotly-dash","plotly-example","plotly-python","robot","robotics","simulator"],"latest_commit_sha":null,"homepage":"","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/mithi.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":"2020-02-14T10:37:49.000Z","updated_at":"2025-04-10T20:49:36.000Z","dependencies_parsed_at":"2022-07-14T21:46:51.656Z","dependency_job_id":"a561bc7a-0011-4559-bbab-fee0b6fc3f78","html_url":"https://github.com/mithi/hexapod-robot-simulator","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-robot-simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-robot-simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-robot-simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-robot-simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mithi","download_url":"https://codeload.github.com/mithi/hexapod-robot-simulator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650420,"owners_count":21139672,"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":["dash","hacktoberfest","hexapod","inverse-kinematics","kinematics","plotly","plotly-dash","plotly-example","plotly-python","robot","robotics","simulator"],"created_at":"2024-11-11T19:34:18.704Z","updated_at":"2025-04-13T00:45:02.297Z","avatar_url":"https://github.com/mithi.png","language":"Python","readme":"[![](https://img.shields.io/badge/Buy%20me%20-coffee!-orange.svg?logo=buy-me-a-coffee\u0026color=795548)](https://ko-fi.com/minimithi)\n[![Build Status](https://travis-ci.com/mithi/hexapod-robot-simulator.svg?branch=master)](https://travis-ci.com/github/mithi/hexapod-robot-simulator)\n[![codecov](https://codecov.io/gh/mithi/hexapod-robot-simulator/branch/master/graph/badge.svg)](https://codecov.io/gh/mithi/hexapod-robot-simulator)\n[![Code Climate](https://codeclimate.com/github/mithi/hexapod-robot-simulator/badges/gpa.svg)](https://codeclimate.com/github/mithi/hexapod-robot-simulator)\n[![](https://img.shields.io/codeclimate/tech-debt/mithi/hexapod-robot-simulator)](https://codeclimate.com/github/mithi/hexapod-robot-simulator/trends/technical_debt)\n[![HitCount](https://hits.dwyl.com/mithi/hexapod-robot-simulator.svg)](https://hits.dwyl.com/mithi/hexapod-robot-simulator)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![PRs welcome!](https://img.shields.io/badge/contributions-welcome-orange.svg?style=flat)](https://github.com/mithi/hexapod-robot-simulator/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)\n[![first-timers-only](https://img.shields.io/badge/first--timers--only-friendly-blueviolet.svg?style=flat)](https://www.firsttimersonly.com/)\n\n# Mithi's Hexapod Robot Simulator\n\n- A bare minimum browser-based hexapod robot simulator built from first principles 🕷️\n- If you like this project, consider [buying me a few ☕ cups of coffee](https://ko-fi.com/minimithi). 💕\n\n|  |  |  |  |\n|---------|---------|---------|---------|\n|![Twisting turning and tilting](https://mithi.github.io/robotics-blog/robot-only-x1.gif)|\u003cimg src=\"https://mithi.github.io/robotics-blog/v2-hexapod-1.gif\" width=\"550\"/\u003e|\u003cimg src=\"https://mithi.github.io/robotics-blog/v2-hexapod-2.gif\" width=\"500\"/\u003e|![Adjusting camera view](https://mithi.github.io/robotics-blog/robot-only-x3.gif)|\n\n# Announcement\n\nYou might be interested in checking out my [rewrite in Javascript](http://github.com/mithi/hexapod), live at: https://hexapod.netlify.app/ , which is like 10000000x faster. If you'd like to build you're own user interface with Node, you can download the algorithm alone as a package in the npm registry: [Hexapod Kinematics Library](https://github.com/mithi/hexapod-kinematics-library). There is also [a \"fork\" modified where you can use the app to control a physical hexapod robot](https://github.com/mithi/hexapod-irl) as you can see in the gif below.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1670421/103467765-451a2180-4d8d-11eb-8f94-1a23201595b9.gif\" alt=\"drawing\" /\u003e\n\u003c/p\u003e\n\n# Features\n\n| STATUS | FEATURE   | DESCRIPTION  |\n|---|-----------|--------------|\n| 🎉 | Forward Kinematics | Given the angles of each joint, what does the robot look like?|\n| 🎉 | Inverse Kinematics | What are the angles of each joint to make the robot look the way I want? Is it even possible? Why or why not? |\n| 🎉 | Uniform Movements |  If all of the legs behaved the same way, how will the hexapod robot as a whole behave? |\n| 🎉 | Customizability | Set the dimensions and shape of the robot's body and legs. (6 parameters) |\n| 🎉 | Usability | Control the camera view, pan, tilt, zoom, whatever. |\n| 🎉 | Simplicity | Minimal dependencies. Depends solely on Numpy for calculations. Uses only Plotly Dash for plotting, Dash can be safely replaced if a better 3d plotting library is available. |\n| ❗ | Stability Check (WIP) | If we pose the robot in a particular way, will it fall over? |\n| ❗ | Fast | Okay, it's not as fast as I wanted, but when run locally, it's okay |\n| ❗ | Bug-free | Fine, right now there's still room for improvement |\n| ❗ | Well-tested | Yeah, I need to compile test cases first |\n\n## Preview\n\n|![image](https://mithi.github.io/robotics-blog/v2-ik-ui.gif)|![image](https://mithi.github.io/robotics-blog/v2-kinematics-ui.gif)|\n|----|----|\n| ![image](https://mithi.github.io/robotics-blog/UI-1.gif) | ![image](https://mithi.github.io/robotics-blog/UI-2.gif) |\n\n## Requirements\n\n- [x] Python 3.8.1\n- [x] Plotly Dash 1.18.1\n- [x] Plotly Dash Daq 0.5.0\n- [x] Numpy 1.19.5\n- [x] See also [./requirements.txt](./requirements.txt)\n\n## Run\n\n```bash\n$ python index.py\nRunning on http://127.0.0.1:8050/\n```\n\n- Modify default settings with [./settings.py](./settings.py)\n- Dark Mode is the default - modify page styles with [./style_settings.py](./style_settings.py)\n\n## Screenshots\n\n| ![Kinematics](https://mithi.github.io/robotics-blog/v2-kinematics-screenshot.png)|\n|---|\n| ![IK](https://mithi.github.io/robotics-blog/v2-ik-screenshot.png)|\n\n## More Information\nCheck the [Wiki](https://github.com/mithi/hexapod-robot-simulator/wiki/Notes) for more additional information\n\n## 🤗 Contributors\n\n- [@mithi](https://github.com/mithi/)\n- [@philippeitis](https://github.com/philippeitis/)\n- [@mikong](https://github.com/mikong/)\n- [@guilyx](https://github.com/guilyx)\n- [@markkulube](https://github.com/markkulube)\n\n![](https://img.shields.io/github/last-commit/mithi/hexapod-robot-simulator)\n![](https://img.shields.io/github/commit-activity/y/mithi/hexapod-robot-simulator)\n![](https://img.shields.io/github/languages/code-size/mithi/hexapod-robot-simulator?color=yellow)\n![](https://img.shields.io/github/repo-size/mithi/hexapod-robot-simulator?color=violet)\n![](https://tokei.rs/b1/github/mithi/hexapod-robot-simulator?category=blanks)\n![](https://tokei.rs/b1/github/mithi/hexapod-robot-simulator?category=lines)\n![](https://tokei.rs/b1/github/mithi/hexapod-robot-simulator?category=files)\n![](https://tokei.rs/b1/github/mithi/hexapod-robot-simulator?category=comments)\n![](https://tokei.rs/b1/github/mithi/hexapod-robot-simulator?category=code)\n![](https://img.shields.io/github/languages/top/mithi/hexapod-robot-simulator)\n","funding_links":["https://ko-fi.com/minimithi"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmithi%2Fhexapod-robot-simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmithi%2Fhexapod-robot-simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmithi%2Fhexapod-robot-simulator/lists"}